- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
bool
CIBlockElement::Update(...);
// ......
$el = new CIBlockElement;
// ......
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Этот поиск практически ничего не может найти! Но вы всё-таки попытайтесь, вдруг повезет.
Найдено: 108
+156
bool
CIBlockElement::Update(...);
// ......
$el = new CIBlockElement;
// ......
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);
Нынче статический метод вызывается через объект.
( Пример из официальной документации Битрикс https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/update.php )
+144
<?endif;?>
<?endforeach;?>
<?foreach($arResult["SHOW_PROPERTIES"] as $code=>$arProperty):
битрикс, что ты делаешь. ахах прекрати
+154
[ITEAM] => Array
(
[0] => Array
(
[CITY_NAME] => value
[CITY_DETAIL_URL] => value
[OBJECT_NAME] => value
[OBJECT_ID] => 2487
[DATE_CREATE] => 02.07.2006
[STATUS] => Y
[PAID_STATUS] => Y
[DATEIL_OBJECT_URL] => value
)
[1] => Array
(
[CITY_NAME] => value
[CITY_DETAIL_URL] => value
[OBJECT_NAME] => value
[OBJECT_ID] => 2489
[DATE_CREATE] => 02.07.2006
[STATUS] => Y
[PAID_STATUS] => N
[DATEIL_OBJECT_URL] => value
)
Битрикс!!
Особое внимание на ключи:
ITEAM и DATEIL_OBJECT_URL )))
http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=3014
#bitrix #black chi
+153
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
class CBPTask2Activity
extends CBPActivity
{
public function __construct($name)
{
parent::__construct($name);
$this->arProperties = array(
"Title" => "", //название действия
"TaskGroupId" => "", //личная или группа
"TaskOwnerId" => "", //
"TaskCreatedBy" => "", //автор
"TaskActiveFrom" => "", //РѕС‚
"TaskActiveTo" => "", //РґРѕ
"TaskName" => "", //название таски
"TaskDetailText" => "", //описание
"TaskPriority" => "", //приоритет
"TaskAssignedTo" => "", //ответственный
"TaskTrackers" => "", //следящие
"TaskCheckResult" => "", //
"TaskReport" => "", //
"TaskChangeDeadline" => "",
);
}
Копия кода из официальной документации битрикса:
http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=57&TYPE=Y (внизу)
#bitrix #black chi
+155
...........
var name = '';
var price = 0.0;
var priceFormated = '';
var priceBase = 0.0;
var priceBaseFormat = '';
var priceType = '';
var currency = '';
var priceDiscount = 0.0;
var quantity = 0;
var summaFormated = '';
var weight = 0;
var vatRate = 0.0;
var module = '';
var valutaFormat = '';
var catalogXmlID = '';
var productXmlID = '';
var url = '';
var urlImg = '';
var urlEdit = '';
var balance = '';
var priceTotalFormated = '';
var discountPercent = '';
var callback = '';
var orderCallback = '';
var cancelCallback = '';
var payCallback = '';
var productProviderClass = '';
var arSkuProps = [];
var barcodeMulti = '';
var arStores = [];
var productType = '';
var setParentId = '';
if (!!arParams.id)
product_id = arParams.id;
if (!!arParams.name)
name = arParams.name;
if (!!arParams.price)
price = arParams.price;
if (!!arParams.priceFormated)
priceFormated = arParams.priceFormated;
if (!!arParams.priceBase)
priceBase = arParams.priceBase;
if (!!arParams.priceBaseFormat)
priceBaseFormat = arParams.priceBaseFormat;
if (!!arParams.priceType)
priceType = arParams.priceType;
if (!!arParams.currency)
currency = arParams.currency;
if (!!arParams.priceDiscount)
priceDiscount = arParams.priceDiscount;
if (!!arParams.quantity)
quantity = arParams.quantity;
if (!!arParams.summaFormated)
summaFormated = arParams.summaFormated;
if (!!arParams.weight)
weight = arParams.weight;
if (!!arParams.vatRate)
vatRate = arParams.vatRate;
if (!!arParams.module)
module = arParams.module;
if (!!arParams.valutaFormat)
valutaFormat = arParams.valutaFormat;
if (!!arParams.catalogXmlID)
catalogXmlID = arParams.catalogXmlID;
if (!!arParams.productXmlID)
productXmlID = arParams.productXmlID;
if (!!arParams.url)
url = arParams.url;
if (!!arParams.urlImg)
urlImg = arParams.urlImg;
if (!!arParams.urlEdit)
urlEdit = arParams.urlEdit;
if (!!arParams.balance)
balance = arParams.balance;
if (!!arParams.priceTotalFormated)
priceTotalFormated = arParams.priceTotalFormated;
if (!!arParams.discountPercent)
discountPercent = arParams.discountPercent;
if (!!arParams.callback)
callback = arParams.callback;
if (!!arParams.orderCallback)
orderCallback = arParams.orderCallback;
if (!!arParams.cancelCallback)
cancelCallback = arParams.cancelCallback;
if (!!arParams.payCallback)
payCallback = arParams.payCallback;
if (!!arParams.productProviderClass)
productProviderClass = arParams.productProviderClass;
if (!!arParams.skuProps)
{
arSkuProps = (BX.type.isString(arParams.skuProps) ? eval('('+arParams.skuProps+')') : arParams.skuProps);
}
if (!!arParams.barcodeMulti)
barcodeMulti = arParams.barcodeMulti;
if (!!arParams.productType)
productType = arParams.productType;
if (!!arParams.setParentId)
.......... и так далее еще очень долго)
Битрикс, такой битрикс)
+157
if (strlen($arResult["ERROR_MESSAGE"]) <= 0){
// любая ахинея
}
2014 год. Битрикс все так же терпеливо ожидает патент на строки отрицательной длины.
Полагаю, такой икспрешн используется не только в компоненте корзины, учитывая страсть авторов к копипасте.
+154
if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($_REQUEST["backButton"]) > 0 && ($arParams["DELIVERY_NO_SESSION"] == "N" || check_bitrix_sessid()))
{
if($arResult["POST"]["CurrentStep"] == 6 && $arResult["SKIP_FORTH_STEP"] == "Y")
$arResult["CurrentStepTmp"] = 3;
if($arResult["POST"]["CurrentStepTmp"] <= 5 && $arResult["SKIP_THIRD_STEP"] == "Y")
$arResult["CurrentStepTmp"] = 2;
if($arResult["POST"]["CurrentStepTmp"] <= 3 && $arResult["SKIP_SECOND_STEP"] == "Y")
$arResult["CurrentStepTmp"] = 1;
if(IntVal($arResult["CurrentStepTmp"])>0)
$arResult["CurrentStep"] = $arResult["CurrentStepTmp"];
else
$arResult["CurrentStep"] = $arResult["CurrentStep"] - 2;
$arResult["BACK"] = "Y";
}
if ($arResult["CurrentStep"] <= 0)
$arResult["CurrentStep"] = 1;
$arResult["ERROR_MESSAGE"] = "";
Компонент страницы заказа в магазине Битрикса, 14я версия.
Тут вам и отсутствие констант для осмысленных шагов, и отсутствие конфигурирования этих шагов, как они i18n-ятся, вообще не представляю.
КАК ЭТО ВСЁ РАБОТАЕТ??!!!
ЗЫ мало того, тут же в компонент вкопипащен (или переговнокоден заново, не сравнивал) процесс залогинивания/регистрации нового юзера, елси он не залогинен. Не смог перекопипастить эту копипасту лишь потому, что она содержит 310 строк. Неслабый DRY.
+154
foreach ($arResult['SECTIONS'] as $key => $arSection)
{
$arMap[$arSection['ID']] = $key; /*Собираем все ID секций, при этом в качестве ключа пишем ID, а в качестве значения - индекс цикла (?!)*/
}
$rsSections = CIBlockSection::GetList(array(), array('ID' => array_keys($arMap)), false, $arSelect);
/*вызываем API - выборку из базы, при этом фильтруем по ID-шникам, вынимая их значения через array_keys() (??!!!) при том, что мы сами записывали ID шники в ключи а не в значения*/
while ($arSection = $rsSections->GetNext())
{
if (!isset($arMap[$arSection['ID']]))
continue; /*Проверяем еще раз что этот ID-ключ есть в массиве ??? мы его оттуда взяли*/
$key = $arMap[$arSection['ID']]; /*Нахера ??? (см. строчку 03)*/
if ($boolPicture)
{
$arSection['PICTURE'] = intval($arSection['PICTURE']);
$arSection['PICTURE'] = (0 < $arSection['PICTURE'] ? CFile::GetFileArray($arSection['PICTURE']) : false);
$arResult['SECTIONS'][$key]['PICTURE'] = $arSection['PICTURE'];
$arResult['SECTIONS'][$key]['~PICTURE'] = $arSection['~PICTURE'];
}
if ($boolDescr)
{
$arResult['SECTIONS'][$key]['DESCRIPTION'] = $arSection['DESCRIPTION'];
$arResult['SECTIONS'][$key]['~DESCRIPTION'] = $arSection['~DESCRIPTION'];
$arResult['SECTIONS'][$key]['DESCRIPTION_TYPE'] = $arSection['DESCRIPTION_TYPE'];
$arResult['SECTIONS'][$key]['~DESCRIPTION_TYPE'] = $arSection['~DESCRIPTION_TYPE'];
}
}
Битриксоидам за строчки платят? Дефолтный шаблон компонента Битрикса, который вшит ядро.
+155
$hlblock_id = 3;
$hlblock = HL\HighloadBlockTable::getById($hlblock_id)->fetch();
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$main_query = new Entity\Query($entity);
$main_query->setSelect(array('*'));
$main_query->setFilter(array('=UF_NAME' => $arOLDItem['material']));
$result = $main_query->exec();
$result = new CDBResult($result);
$row = $result->Fetch();
Bitrix, HIGHLOAD инфоблоки, данная запись равносильна SQL запросу SELECT * FROM %таблица_название_которой_хранится_в_бд_ под_номером_3% WHERE UF_NAME = $arOLDItem['material']
+зацените супер CamelCase от битрикса
+153
<?php
namespace Custom\Entity;
class slideshow{
const IBLOCK_ID = SLIDER_ON_INDEX_IBLOCK_ID;
static function getLabel($type){
$label = "";
switch($type){
case NEW_OF_DAY_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker news_of_day" src="/static/img/labels/news_of_day_l.png"><img class="sticker news_of_day_r" src="/static/img/labels/news_of_day_r.png">';
break;
case HOT_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker hot infoBlock rsABlock rsNoDrag" src="/static/img/labels/hot.png">';
break;
case SLUH_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker infoBlock infoBlockLeftBlack rsABlock rsNoDrag" src="/static/img/labels/gossip.png">';
break;
case ITEM_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker thing_of_week infoBlock rsABlock rsNoDrag" src="/static/img/labels/thing_of_week.png">';
break;
case POPULAR_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker most_popular infoBlock rsABlock rsNoDrag" src="/static/img/labels/most_popular.png">';
break;
case CHOOSE_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker editors_choice infoBlock" src="/static/img/labels/editors_choice.png">';
break;
case BEST_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker the_best infoBlock rsABlock rsNoDrag" src="/static/img/labels/the_best.png">';
break;
case NEW_ENUM_ID_PROPERTY_MAIN_ARTICLES_IBLOCK_ID:
$label = '<img class="sticker new infoBlock rsABlock rsNoDrag" src="/static/img/labels/new.png">';
break;
}
return $label;
}
}
?>
И еще один замечательный пример ChinaCode от "грамотных разработчиков на битриксе, которые знают неймспейсы". Особенно порадовал css-класс rsNoDrag, хотя по большому счету надо было бы данный класс назвать "NoDrugs" и взять на вооружение данным "пейсателям".