-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
foreach ($arResult["ITEMS"] as $key => $arItem)
{
$res = CIBlockSection::GetList(array(), array("ID" => $arItem['IBLOCK_SECTION_ID']), false, array("SECTION_PAGE_URL", "NAME"));
if($ar_res = $res->GetNext())
$arResult["ITEMS"][$key]["SECTION_URL"] = '<a href="'.$ar_res["SECTION_PAGE_URL"] .'">'.$ar_res["NAME"].'</a>';
$arResult["ITEMS"][$key]["SECTION_URI"] = $ar_res['SECTION_PAGE_URL'];
$arResult["ITEMS"][$key]["SECTION_NAME"] = $ar_res['NAME'];
if(is_array($arItem["PREVIEW_PICTURE"]))
{
$arFileTmp = CFile::ResizeImageGet(
$arItem["PREVIEW_PICTURE"],
array("width" => $arParams["DISPLAY_IMG_WIDTH"], "height" => $arParams["DISPLAY_IMG_HEIGHT"]),
BX_RESIZE_IMAGE_EXACT,
true
);
$arResult['ITEMS'][$key]['PREVIEW_PICTURE']['SRC'] = $arFileTmp['src'];
}
$arResult['ITEMS'][$key]["NAME"] = TruncateText($arResult['ITEMS'][$key]["NAME"],45);
$arResult['ITEMS'][$key]["PREVIEW_TEXT"] = TruncateText($arResult['ITEMS'][$key]["PREVIEW_TEXT"],80);
}
?>
Я программист 1C-bitrix и с каждой новой итерацией я делаю новый запрос к инфоблоку.
infolevelru,
04 Апреля 2016
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
public class ResultBase {
private ColumnCollections _columns;
private ArrayList _rows;
...
}
...
public class ColumnCollections : System.Collections.Specialized.NameObjectCollectionBase {}
...
public int Compare(object x, object y) {
if (x != null && y != null) {
object[] objX = x as object[];
object[] objY = y as object[];
if (objX != null && objY != null && objX.Length > 0 && objX.Length == objY.Length) {
switch (_ColumnType.FullName) {
case "System.Int16":
if (_Direction == DirectionType.ASC) {
return ((short)objX[_ColumnIndex]).CompareTo((short)objY[_ColumnIndex]);
} else {
return ((short)objY[_ColumnIndex]).CompareTo((short)objX[_ColumnIndex]);
}
case "System.Int32":
if (_Direction == DirectionType.ASC) {
return ((int)objX[_ColumnIndex]).CompareTo((int)objY[_ColumnIndex]);
} else {
return ((int)objY[_ColumnIndex]).CompareTo((int)objX[_ColumnIndex]);
}
case "System.Int64":
if (_Direction == DirectionType.ASC) {
return ((long)objX[_ColumnIndex]).CompareTo((long)objY[_ColumnIndex]);
} else {
return ((long)objY[_ColumnIndex]).CompareTo((long)objX[_ColumnIndex]);
}
case "System.Double":
if (_Direction == DirectionType.ASC) {
return ((double)objX[_ColumnIndex]).CompareTo((double)objY[_ColumnIndex]);
} else {
return ((double)objY[_ColumnIndex]).CompareTo((double)objX[_ColumnIndex]);
}
case "System.Decimal":
if (_Direction == DirectionType.ASC) {
return ((decimal)objX[_ColumnIndex]).CompareTo((decimal)objY[_ColumnIndex]);
} else {
return ((decimal)objY[_ColumnIndex]).CompareTo((decimal)objX[_ColumnIndex]);
}
case "System.Single":
if (_Direction == DirectionType.ASC) {
return ((float)objX[_ColumnIndex]).CompareTo((float)objY[_ColumnIndex]);
} else {
return ((float)objY[_ColumnIndex]).CompareTo((float)objX[_ColumnIndex]);
}
case "System.String":
String sX = (!Convert.IsDBNull(objX[_ColumnIndex])) ? (String)objX[_ColumnIndex] : String.Empty;
if (String.IsNullOrEmpty(sX)) {
sX = "";
}
String sY = (!Convert.IsDBNull(objY[_ColumnIndex])) ? (String)objY[_ColumnIndex] : String.Empty;
if (String.IsNullOrEmpty(sY)) {
sY = "";
}
if (_Direction == DirectionType.ASC) {
return sX.CompareTo(sY);
} else {
return sY.CompareTo(sX);
}
case "System.DateTime":
if (_Direction == DirectionType.ASC) {
return ((DateTime)objX[_ColumnIndex]).CompareTo((DateTime)objY[_ColumnIndex]);
} else {
return ((DateTime)objY[_ColumnIndex]).CompareTo((DateTime)objX[_ColumnIndex]);
}
case "System.Boolean":
if (_Direction == DirectionType.ASC) {
return ((Boolean)objX[_ColumnIndex]).CompareTo((Boolean)objY[_ColumnIndex]);
} else {
return ((Boolean)objY[_ColumnIndex]).CompareTo((Boolean)objX[_ColumnIndex]);
}
}
}
}
return 0;
}
достался мне в наследство код, который я года два поддерживал. никогда не вдавался в код той тулзы, которая из базы результаты возвращяла, пока не пришлось описать проект комментариями, чтобы отдать его клиенту.
компарер просто божественен...
я конечно точно не знаю, кто это писал, но за то знаю, кому пренадлежил авторство конкретной версии, но за то знаю, кто писал первую... и этот человек мне еще говорил, что мой экстеншен в 50 строк, который через рифлексию миллион строк из IDataReader за секунду в коллекцию объектов возвращял, уверял меня, что это медленное и корявое говно. нет, это медленное и корявое говно!
господи, за что?
Lokich,
21 Марта 2016
-
+5
- 1
- 2
- 3
function cache(cache) {
return cache.cache();
}
thepotato,
14 Марта 2016
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
foreach ($child as $ch) {
if ($ch->nodeName === 'w:style') {
$sum++;
if ($ch->hasAttributes()) {
/** @var DOMAttr $attribute */
foreach ($ch->attributes as $attribute) {
if ($attribute->name === 'styleId') {
if ($attribute->value == $sTempStyle) {
/** @var DOMElement $styleNode */
foreach ($ch->childNodes as $styleNode) {
if (isset($styleNode->tagName) && $styleNode->tagName === 'w:basedOn') {
$basedOn = $styleNode->getAttribute('w:val');
$properties = $this->wordStyle2Array($basedOn, $tagName, $properties);
}
if (isset($styleNode->tagName) && $styleNode->tagName === $tagName) {
$elements = $styleNode->childNodes;
/** @var DOMElement $element */
foreach ($elements as $element) {
if (isset($element->tagName)) {
switch ($element->tagName) {
case 'w:color':
if ($element->hasAttribute('w:val')) {
$properties['color']['hex'] = '#' . $element->getAttribute
('w:val');
}
break;
case 'w:rFonts':
if ($element->hasAttribute('w:ascii')) {
$properties['font_family'] = $element->getAttribute('w:ascii');
}
break;
//кейсы - бесконечные как осень в России
}
}
}
}
}
}
}
}
}
}
Чувак, мы слышали ты любишь плодить уровни вложенности, поэтому мы написали switch в if в foreach в if в foreach в if в if в foreach в if в if в foreach, кажется.
mad_money,
24 Февраля 2016
-
−99
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Запрос.УстановитьПараметр("Бумага", Справочники.Номенклатура.НайтиПоКоду("g0000000012"));
Запрос.УстановитьПараметр("Пленка", Справочники.Номенклатура.НайтиПоКоду("g0000000382"));
Запрос.УстановитьПараметр("Тиснение", Справочники.Номенклатура.НайтиПоКоду("g0000000481"));
Запрос.УстановитьПараметр("Фольга", Справочники.Номенклатура.НайтиПоКоду("g0000000459"));
Запрос.УстановитьПараметр("Полуфабрикат", Справочники.Номенклатура.НайтиПоКоду("g0000001919"));
Запрос.УстановитьПараметр("Ламинация1", Справочники.Номенклатура.НайтиПоКоду("g0000000074"));
Запрос.УстановитьПараметр("Ламинация2", Справочники.Номенклатура.НайтиПоКоду("g0000001292"));
Возможно стоило использовать предопределенные элементы? Или справочник виды номенклатуры? Или свойства и категории объектов? Или создать своё перечисление? ДА БЛИН ЧТО УГОДНО ТОЛЬКО НЕ ЭТО!!!
levxxx,
24 Февраля 2016
-
−1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
private bool IsDriverSuccessfullyInstalled(DriverInfo di, string historyDriverVersion, string historyPackageVersion)
{
bool flag = false;
if (!string.IsNullOrWhiteSpace(di.VersionAfterInstallation) && !string.IsNullOrWhiteSpace(di.VersionAfterInstallation) && new Version(di.VersionAfterInstallation).CompareTo(new Version(di.VersionBeforeInstallation)) >= 0)
flag = true;
return flag;
}
При попытке поставить драйвер интеловской видюхи инсталлер вывалился с ArgumentNullException. Декомпильнул его и увидел вот это.
Копипаста головного мозга.
yamamoto,
13 Февраля 2016
-
−2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System.Collections.ObjectModel;
using System.Linq;
namespace DemoFeb2014.DataContexts
{
using System;
using System.Collections.Generic;
public partial class Author
{
....
public ICollection<Tuple<MusicalWork, string>> Author2MusicalWorkParsed
{
get
{
...
}
}
}
}
Спасибо коллегам! Благодаря только им можно потратить полчаса времени на розыск коммита в котором пропал метод Author2MusicalWorkParsed и выяснения причин того, почему же он пропал...
Видимо комментарии в начале файла недостаточно "жирные".
leon_mz,
12 Февраля 2016
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
<td>Текущий статус</td>
<td><select name="nStatus" size="1" disabled>
<option value="0" <?if ($row[nStatus] == '0') { echo 'SELECTED'; }?>>Cоздан</option>
<option value="1" <?if ($row[nStatus] == '1') { echo 'SELECTED'; }?>>Продан</option>
<option value="2" <?if ($row[nStatus] == '2') { echo 'SELECTED'; }?>>Тестируется</option>
<option value="3" <?if ($row[nStatus] == '3') { echo 'SELECTED'; }?>>Бесплатная работа</option>
<option value="4" <?if ($row[nStatus] == '4') { echo 'SELECTED'; }?>>Эксплуатация</option>
<option value="5" <?if ($row[nStatus] == '5') { echo 'SELECTED'; }?>>Заблокирован</option>
<option value="7" <?if ($row[nStatus] == '7') { echo 'SELECTED'; }?>>Приостановлен</option>
<option value="6" <?if ($row[nStatus] == '6') { echo 'SELECTED'; }?>>Отключен</option>
</select></td>
grieverrr,
11 Февраля 2016
-
−1
- 1
http://i.imgur.com/xzte9cX.png
Я.. я не могу просто взять и скопировать этот код сюда. Посмотрите сами...
mikamika83,
06 Февраля 2016
-
+4
- 1
- 2
- 3
- 4
- 5
check_p = (p)->
if p && p.p
"?p=#{p.p}"
else
''
Не знаю, зачем это нужно и что оно делает
Sandwich,
04 Февраля 2016