- 1
На форме 31 колонка, и динозавр который это делал для каждой прописал одинаковое условное оформление. В конечном итоге я поместил все в цикл, чтобы не резало глаза, остается только предполагать, что я увидел бы если колонок на форме было 1000.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−104
На форме 31 колонка, и динозавр который это делал для каждой прописал одинаковое условное оформление. В конечном итоге я поместил все в цикл, чтобы не резало глаза, остается только предполагать, что я увидел бы если колонок на форме было 1000.
Процедура ДниПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Если ЗначениеЗаполнено(ДанныеСтроки.Д1) Тогда
Если ДанныеСтроки.Д1.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено Тогда
ОформлениеСтроки.Ячейки.Д1.ЦветФона = WebЦвета.СветлоЗеленый;
ИначеЕсли ДанныеСтроки.Д1.СостояниеСобытия = Перечисления.СостоянияСобытий.CRM_НеОбра ботано Тогда
ОформлениеСтроки.Ячейки.Д1.ЦветФона = WebЦвета.СветлоРозовый;
ИначеЕсли ДанныеСтроки.Д1.СостояниеСобытия = Перечисления.СостоянияСобытий.Запланиров ано Тогда
ОформлениеСтроки.Ячейки.Д1.ЦветФона = WebЦвета.Желтый;
КонецЕсли;
ОформлениеСтроки.Ячейки.Д1.Текст = ДанныеСтроки.Д1.ОписаниеСобытия;
Если ДанныеСтроки.Д1.ВидСобытия = Перечисления.ВидыСобытий.ЛичнаяВстреча Тогда
ОформлениеСтроки.Ячейки.Д1.Шрифт = Новый Шрифт(ОформлениеСтроки.Ячейки.Д1.Шрифт,, ,Истина);
КонецЕсли;
КонецЕсли;
...
// И так далее 31 раз
...
Если ЗначениеЗаполнено(ДанныеСтроки.Д31) Тогда
Если ДанныеСтроки.Д31.СостояниеСобытия = Перечисления.СостоянияСобытий.Завершено Тогда
ОформлениеСтроки.Ячейки.Д31.ЦветФона = WebЦвета.СветлоЗеленый;
ИначеЕсли ДанныеСтроки.Д31.СостояниеСобытия = Перечисления.СостоянияСобытий.CRM_НеОбра ботано Тогда
ОформлениеСтроки.Ячейки.Д31.ЦветФона = WebЦвета.СветлоРозовый;
ИначеЕсли ДанныеСтроки.Д31.СостояниеСобытия = Перечисления.СостоянияСобытий.Запланиров ано Тогда
ОформлениеСтроки.Ячейки.Д31.ЦветФона = WebЦвета.Желтый;
КонецЕсли;
ОформлениеСтроки.Ячейки.Д31.Текст = ДанныеСтроки.Д31.ОписаниеСобытия;
Если ДанныеСтроки.Д31.ВидСобытия = Перечисления.ВидыСобытий.ЛичнаяВстреча Тогда
ОформлениеСтроки.Ячейки.Д31.Шрифт = Новый Шрифт(ОформлениеСтроки.Ячейки.Д31.Шрифт, ,,Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
+1
<?php if($this->config->get('UniversumControl_status') == '1'){ ?>
<style type="text/css">
body {
<?php if(( $this->config->get('UniversumControl_body_bg_pattern') != null) && ($this->config->get('UniversumControl_body_bg_pattern') != 'pattern0.png')){ ?>
background:url("catalog/view/theme/<?php echo $this->config->get('config_template'); ?>/image/backgrounds/<?php echo $this->config->get('UniversumControl_body_bg_pattern');?>") top center repeat;
<?php } ?>
background-color:#<?php echo $this->config->get('UniversumControl_body_bg_color') ?>;
font-family:<?php echo $this->config->get('UniversumControl_body_font') ?>;
color:#<?php echo $this->config->get('UniversumControl_text_color') ?>;
}
h1,h2,h3,h4,h5,h6, #menu ul li a, #column-left .box .box-heading, #column-right .box .box-heading, .htabs a, .product-info .price-old, .product-info .price-new, .product-info .cart .button, .offer_title, div.prod_hold .prod-info-fly .name a, .accordeonHolder .name a, .prod_hold .name a, #content .boxPlain .box-heading {
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_custom_font') != null)){ ?>
font-family: '<?php echo $this->config->get('UniversumControl_custom_font_family');?>';
<?php } elseif (($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_custom_font') == null) && ( $this->config->get('UniversumControl_header_font') != 'Arial')){ ?>
<?php $headerFont = $this->config->get('UniversumControl_headings_font');
$font = str_replace("+", " ", $headerFont);
?> font-family: '<?php echo $font; ?>';
<?php } else { ?>
font-family: 'Ubuntu Condensed';
<?php } ?>
}
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_headings_color') != null)){ ?>
h1, h2, h2.heading_title, h3, h4, h5, h6, #column-left .box .box-heading, #column-right .box .box-heading {
color:#<?php echo $this->config->get('UniversumControl_headings_color') ?>;
}
<?php } ?>
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_headings1_size') != null)){ ?>
h1 {
font-size:<?php echo $this->config->get('UniversumControl_headings1_size') ?>px;
}
<?php } ?>
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_headings2_size') != null)){ ?>
h2, #content .boxPlain .box-heading {
font-size:<?php echo $this->config->get('UniversumControl_headings2_size') ?>px;
}
<?php } ?>
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_headings3_size') != null)){ ?>
h3 {
font-size:<?php echo $this->config->get('UniversumControl_headings3_size') ?>px;
}
<?php } ?>
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_headings4_size') != null)){ ?>
h4 {
font-size:<?php echo $this->config->get('UniversumControl_headings4_size') ?>px;
}
<?php } ?>
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_price_size') != null)){ ?>
.product-info .price {
font-size:<?php echo $this->config->get('UniversumControl_price_size') ?>px;
}
<?php } ?>
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_module_title_size') != null)){ ?>
#content h2.heading_title span {
font-size:<?php echo $this->config->get('UniversumControl_module_title_size') ?>px;
}
<?php } ?>
<?php if(($this->config->get('UniversumControl_status') == '1') && ( $this->config->get('UniversumControl_column_title_size') != null)){ ?>
#column-left .box .box-heading, #column-right .box .box-heading {
font-size:<?php echo $this->config->get('UniversumControl_column_title_size') ?>px;
}
И такого кода там еще на 1000 строк.
Интернет-магазин на опенкарте. Видимо кто то сделал систему настраивания css через админку))
+2
$table = (object) null;
$table->fields = array();
Повышенная хитрость
+2
<?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 и с каждой новой итерацией я делаю новый запрос к инфоблоку.
+1
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 за секунду в коллекцию объектов возвращял, уверял меня, что это медленное и корявое говно. нет, это медленное и корявое говно!
господи, за что?
+5
function cache(cache) {
return cache.cache();
}
+1
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, кажется.
−99
Запрос.УстановитьПараметр("Бумага", Справочники.Номенклатура.НайтиПоКоду("g0000000012"));
Запрос.УстановитьПараметр("Пленка", Справочники.Номенклатура.НайтиПоКоду("g0000000382"));
Запрос.УстановитьПараметр("Тиснение", Справочники.Номенклатура.НайтиПоКоду("g0000000481"));
Запрос.УстановитьПараметр("Фольга", Справочники.Номенклатура.НайтиПоКоду("g0000000459"));
Запрос.УстановитьПараметр("Полуфабрикат", Справочники.Номенклатура.НайтиПоКоду("g0000001919"));
Запрос.УстановитьПараметр("Ламинация1", Справочники.Номенклатура.НайтиПоКоду("g0000000074"));
Запрос.УстановитьПараметр("Ламинация2", Справочники.Номенклатура.НайтиПоКоду("g0000001292"));
Возможно стоило использовать предопределенные элементы? Или справочник виды номенклатуры? Или свойства и категории объектов? Или создать своё перечисление? ДА БЛИН ЧТО УГОДНО ТОЛЬКО НЕ ЭТО!!!
−1
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. Декомпильнул его и увидел вот это.
Копипаста головного мозга.
−2
//------------------------------------------------------------------------------
// <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 и выяснения причин того, почему же он пропал...
Видимо комментарии в начале файла недостаточно "жирные".