- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
bool
CIBlockElement::Update(...);
// ......
$el = new CIBlockElement;
// ......
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Этот поиск практически ничего не может найти! Но вы всё-таки попытайтесь, вдруг повезет.
Найдено: 65
+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 )
+156
foreach($PROP as $k1 => $val1)
{
if(is_array($val1))
{
foreach($val1 as $k2 => $val2)
{
$text_name = preg_replace("/([^a-z0-9])/is", "_", "PROP[".$k1."][".$k2."][VALUE][TEXT]");
if(array_key_exists($text_name, $_POST))
{
$type_name = preg_replace("/([^a-z0-9])/is", "_", "PROP[".$k1."][".$k2."][VALUE][TYPE]");
$PROP[$k1][$k2]["VALUE"] = array(
"TEXT" => $_POST[$text_name],
"TYPE" => $_POST[$type_name],
);
}
}
}
}
foreach($PROP as $k1 => $val1)
{
if(is_array($val1))
{
foreach($val1 as $k2 => $val2)
{
if(!is_array($val2))
$PROP[$k1][$k2] = array("VALUE" => $val2);
}
}
}
bitrix
как вам организация цикла(ов)
+153
if(!empty($this->aActions))
$sMenuItems = htmlspecialcharsbx(CAdminPopup::PhpToJavaScript($this->aActions));
?>
<tr class="adm-list-table-row<?=(isset($this->aFeatures["footer"]) && $this->aFeatures["footer"] == true? ' footer':'')?><?=$this->bEditMode?' adm-table-row-active' : ''?>"<?=($sMenuItems <> ""? ' oncontextmenu="return '.$sMenuItems.';"':'');?><?=($sDefAction <> ""? ' ondblclick="'.$sDefAction.'"'.(!empty($sDefTitle)? ' title="'.GetMessage("admin_lib_list_double_click").' '.$sDefTitle.'"':''):'')?>>
<?
if(count($this->pList->arActions)>0 || $this->pList->bCanBeEdited):
$check_id = RandString(5);
?>
<td class="adm-list-table-cell adm-list-table-checkbox adm-list-table-checkbox-hover<?=$this->bReadOnly? ' adm-list-table-checkbox-disabled':''?>"><input type="checkbox" class="adm-checkbox adm-designed-checkbox" name="ID[]" id="<?=$this->table_id."_".$this->id."_".$check_id;?>" value="<?=$this->id?>" autocomplete="off" title="<?=GetMessage("admin_lib_list_check")?>"<?=$this->bReadOnly? ' disabled="disabled"':''?><?=$this->bEditMode ? ' checked="checked" disabled="disabled"' : ''?> /><label class="adm-designed-checkbox-label adm-checkbox" for="<?=$this->table_id."_".$this->id."_".$check_id;?>"></label></td>
<?
endif;
if($this->pList->bShowActions):
if(!empty($this->aActions)):
?>
<td class="adm-list-table-cell adm-list-table-popup-block" onclick="BX.adminList.ShowMenu(this.firstChild, this.parentNode.oncontextmenu(), this.parentNode);"><div class="adm-list-table-popup" title="<?=GetMessage("admin_lib_list_actions_title")?>"></div></td>
<?
else:
?>
<td class="adm-list-table-cell"></td>
<?
endif;
endif;
bitrix
Лапша PHP кода, с подливкой из HTML. Присутствуют специи из альтернативного синтаксиса оператора if для шаблонов
+155
global $strError, $MESS, $HTTP_GET_VARS, $arrFORM_FILTER;
global $find_date_create_1, $find_date_create_2, $lAdmin;
$str = "";
CheckFilterDates($find_date_create_1, $find_date_create_2, $date1_wrong, $date2_wrong, $date2_less);
if ($date1_wrong=="Y") $str.= GetMessage("FORM_WRONG_DATE_CREATE_FROM")."<br>";
if ($date2_wrong=="Y") $str.= GetMessage("FORM_WRONG_DATE_CREATE_TO")."<br>";
if ($date2_less=="Y") $str.= GetMessage("FORM_FROM_TILL_DATE_CREATE")."<br>";
bitrix
- использование HTTP_GET_VARS уже давно deprecated
- магические переменные find_date_create_1, find_date_create_2, да и lAdmin тоже не понятно что
- зачем-то используются символы Y и N вместо true и false или 1 и 0
+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
+164
function EscapePHPString($str)
{
$str = str_replace("\\", "\\\\", $str);
$str = str_replace("\$", "\\\$", $str);
$str = str_replace("\"", "\\"."\"", $str);
return $str;
}
function UnEscapePHPString($str)
{
$str = str_replace("\\\\", "\\", $str);
$str = str_replace("\\\$", "\$", $str);
$str = str_replace("\\\"", "\"", $str);
return $str;
}
Bitrix.
+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.
+151
<?
$arPrimary = array();
if(!empty($item['IB_ELEMENT']['PROPERTIES']['MANUFACTURER']['VALUE'])){
$arPrimary['ПРОИЗВОДИТЕЛЬ'] = $item['IB_ELEMENT']['PROPERTIES']['MANUFACTURER']['VALUE'];
}
if(!empty($item['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE'])){
$arPrimary['ПРОИЗВОДИТЕЛЬ'] = $item['IB_ELEMENT']['PROPERTIES']['MATERIAL']['VALUE'];
}
if(!empty($arPrimary)):
$c = count($arPrimary); $i = 1;
?>
<ul class="primary">
<?foreach($arPrimary as $k => $v):
$last = false;
if($i == $c){
$last = true;
}
?>
<li<?if($last):?> class="last"<?endif;?>>
<span class="label"><?=$k?>:</span>
<?=$v?>
</li>
<?
$i++;
endforeach;?>
</ul>
<?endif;?>
Bitrix же!
+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 от битрикса