Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Не отображаются мои свойства в продукции

00 голосов
7
Добрый день. На битриксе работаю недавно...все вроде замечательно было но вот тут появилась проблема.

Решил добавить в свойства в каталог помимо уже готовых (Новинка, Лидер продаж, Спец предложение) под названием "Супер цена".
Добавил, сделал полное соответствие с аналагами (Точная копия Новинки, только название другое). Вроде всё проверил, поставил "активно"
Захожу в нужный мне продукт а там этого сво-ва нету.
Начал же копать почему так.  И вот что нашел:

В файле \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'),
Как видно, тут записываются все сво-ва...однако моего ТУТ НЕТУУ !!. Вставив вручную, оно появляется но почему исчезают некоторые другие блоки, но дело не в этом. Почему не добавляется туда моё сво-во ?????????
Помогите плиз !!!
спросил 17 Авг, 13 от Nikolette (160 баллов)

7 Ответы

00 голосов
Up
ответил 17 Авг, 13 от Nikolette (160 баллов)
00 голосов
Цитата
sintanial пишет:
Захожу в нужный мне продукт а там этого сво-ва нету.
В админке или на сайте?
Если в админке - то поищите кнопочку "Настроить" на странице элемента каталога, и выведите.
Если на сайте - то в настройках компонента, который выводит товары, укажите вывод этого свойства. (с криво кастомизированным шаблоном компонента может и не помочь smile:D )

Цитата
sintanial пишет:
(Точная копия Новинки, только название другое)

правда? и символьный код такой же как у Новинки?

P.S. "Дебажить" ядро от незнания элементарных вещей - это круто.
Как тут не вспомнить эту цитату
Цитата
Задавшись вопросом: "Как создать сайт на Битриксе?", мы, как правило, сначала «тычем пальцем», а потом, когда не получается или когда все переломаем, беремся за документацию.
ваш случай? может, уже пора изучить это?
ответил 25 Окт, 13 от Texnik (1,860 баллов)
00 голосов
В админке
1) Нашел, кнопочку настройки...нажал добавить моё сво-во. И что я вижу : Сво-во добавилось в колонку http://floomby.ru/s1/JgDQb.
Но в самом продукте его нету http://floomby.ru/s1/xgDpU

2) Я добавлял сво-во по аналогии с тем которое уже было(Новые, Лидеры продаж), и в точности его повторял......

3) Вы что думаете прежде чем лезть в код я не искал проблему на форумах, не гуглил ? Документация это конечно очень хорошо но там нет ВСЕГО, и в частности что делать при появлении вот таких проблем.

P.s. Мне интересно что же такого страшного произойдет от того что я просто выводил дамвы пару переменных в ЯДРЕ(какое страшное слово....). Если это как то повлияет на работу ЦМС в целом, то это плохо структурирована и не очень хорошо написанная цмс.
Уж извиняйте, если от невинного дампа перестанет это всё работать, я сношу битрикс
ответил 29 Янв, 14 от Nikolette (160 баллов)
00 голосов
Цитата
sintanial пишет:
Но в самом продукте его нету
кнопочка настройки есть и в "самом продукте", выражаясь вашим языком... smile;) я про нее писала. вообще это форма редактирования элемента, она тоже настраивается. по умолчанию там и так должно было появиться.
Цитата
sintanial пишет:
1) Нашел, кнопочку настройки...нажал добавить моё сво-во. И что я вижу : Сво-во добавилось в колонку

а чего вы список разделов отпринскринили? smile:D
на втором скрине видно не всю страницу редактирования элемента ИБ, может это свойство у вас внизу где-нибудь? (ну мало ли, не заметили)
Или. вдруг вы нашли правда такой баг, что перестало работать добавление свойств в ИБ? сами не справляетесь - пишите в ТП.
ответил 18 Май, 14 от Texnik (1,860 баллов)
00 голосов
Всё облазил, вдоль и поперёк, увы но там его нету smile:(((( придётся в ТП писать
ответил 14 Сен, 14 от Nikolette (160 баллов)
00 голосов
Ничего не понял! Проблема та же...


Добавил свойство к инфоблоку, но его нет ни в описание товара ни в редактирование товара такого поля нет!
ответил 20 Янв, 15 от regard (100 баллов)
00 голосов
timecard, только что создал свойство, оно сразу появилось в настройках формы: http://s2.ipicture.ru/uploads/20120813/xNUBRlpl.jpg
Наверное вам имеет смысл обновиться, если оно там не появляется
ответил 05 Май, 15 от Yrizer (200 баллов)