Добрый день. На битриксе работаю недавно...все вроде замечательно было но вот тут появилась проблема.
Решил добавить в свойства в каталог помимо уже готовых (Новинка, Лидер продаж, Спец предложение) под названием "Супер цена".
Добавил, сделал полное соответствие с аналагами (Точная копия Новинки, только название другое). Вроде всё проверил, поставил "активно"
Захожу в нужный мне продукт а там этого сво-ва нету.
Начал же копать почему так. И вот что нашел:
В файле \bitrix\modules\iblock\admin\iblock_element_edit.php есть вот такой код, как раз отвечающий за вывод сво-тв.
Сделал дамп $PROP . Всё отлично, сво-ство там присутствует(даже проверял, похоже ли на "Новинки", массивы почти идентичны).
Код |
---|
<?
print_r($PROP) // Сделал дамп, сво-во моё присутствует
foreach($PROP as $prop_code=>$prop_fields):
$prop_values = $prop_fields["VALUE"];
print_r($prop_values) // Сво-ва так же всё еще присутствует
$tabControl->BeginCustomField("PROPERTY_".$prop_fields["ID"], $prop_fields["NAME"], $prop_fields["IS_REQUIRED"]==="Y");
print_r($prop_values) // Сво-ва ИСЧЕЗЛО
?>
<tr id="tr_PROPERTY_<?echo $prop_fields["ID"];?>">
.....
|
Подебажив увидел что после :
Код |
---|
$tabControl->BeginCustomField("PROPERTY_".$prop_fields["ID"], $prop_fields["NAME"], $prop_fields["IS_REQUIRED"]==="Y"); |
Сво-ва исчезает.... . Полез в эту функцию, начал дебажить её
Код |
---|
function BeginCustomField($id, $content, $required = false)
{
$this->sCurrentLabel = $this->GetCustomLabel($id, $content);
$this->bCurrentReq = $required;
......
}
|
В итоге заметил что всё дело в
Код |
---|
$this->GetCustomLabel($id, $content); |
А именно :
Код |
---|
function GetCustomLabel($id, $content)
{
.....
if($id === false)
return $this->sCurrentLabel;
elseif(array_key_exists($id, $this->arCustomLabels))
return $this->arCustomLabels[$id].($bColumnNeeded? ":": "");
else
return $content;
}
|
Всё дело вот в это строке
Код |
---|
elseif(array_key_exists($id, $this->arCustomLabels))
return $this->arCustomLabels[$id].($bColumnNeeded? ":": ""); |
Не знаю что такое arCustomLabels, но по непонятным причинам моё сво-во не присутствует в этом массиве. Ладно, пошел дальше, немного поискав понял что форма берётся из базы а именно из поля b_user_option:
Вот моя строка
Код |
---|
(7, 1, 'form', 'form_element_3', 'a:1:{s:4:"tabs";s:950:"edit1--#--Товар--,--ACTIVE--#--Разместить товар на сайте--,--NAME--#--*Название--,--CODE--#--*Символьный код--,--DETAIL_PICTURE--#--Изображение--,--PROPERTY_1--#--Спец. предложение--,--PROPERTY_2--#--Новинка--,--PROPERTY_3--#--Лидер продаж--,--PROPERTY_4--#--Габариты (Д х Ш х В)--,--PROPERTY_5--#--Размеры спального места--,--PROPERTY_7--#--Артикул--,--PROPERTY_8--#--Материал--,--PROPERTY_9--#--Производитель--,--PROPERTY_10--#--С этим товаром рекомендуем--,--PROPERTY_6--#--Картинки--,--CATALOG--#--*Торговый каталог--;--cedit1--#--Описание--,--PREVIEW_TEXT--#--Краткое описание--,--DETAIL_TEXT--#--Полное описание--,--cedit1_csection1--#----Разделы каталога--,--SECTIONS--#--Разделы--;--";}', 'N'), |
Как видно, тут записываются все сво-ва...однако моего ТУТ НЕТУУ !!. Вставив вручную, оно появляется но почему исчезают некоторые другие блоки, но дело не в этом. Почему не добавляется туда моё сво-во ?????????
Помогите плиз !!!