Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Для реализации необходимо кастомизировать три компонента:
- "Добавление элементов инфоблока"(iblock.element.add)
- "Форма добавления / редактирования"(iblock.element.add.form)
- "Список своих элементов"(iblock.element.add.list)
Поэтому копируем их в своё пространство имён, например, в папку "/bitrix/components/demo/". Затем потребуется:
1. переименовать папку "/bitrix/components/demo/iblock.element.add/templates/.default/bitrix/" в "/bitrix/components/demo/iblock.element.add/templates/.default/demo/".
2. в файлах
- /bitrix/components/demo/iblock.element.add/templates/.default/list.php
- /bitrix/components/demo/iblock.element.add/templates/.default/form.php
заменить bitrix на demo.
3. заменить во всех скопированных файлах "component.php" и "template.php":
- CODE= на ID=
- "CODE" на "ID" (кроме случаев, где "CODE" расположен в коде $arr["CODE"] в файлах .parameters.php)
Поиск и замену можно осуществить средствами Продукта, перейдя в "Контент - Структура сайта - Файлы и папки" в каждую папку скопированного компонента, нажав на кнопку "Поиск" и указав во вкладке "Заменить" следующие параметры(один пример):
4. найти в скопированных файлах ".parameters.php" код
и добавить после него:
5. в файле "/bitrix/components/demo/iblock.element.add.form/component.php" после строк:
добавить:
6. заменить в файле "/bitrix/components/demo/iblock.element.add/templates/.default/demo/iblock.element.add.form/.default/template.php" строчку:
на код:
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
Поле "Символьный код"(CODE) в компоненте "Добавление элементов инфоблока"(iblock.element.add)
На многих сайтах поле "Символьный код"(CODE) элемента инфоблока генерируется из "Названия" элемента. Но при использовании компонента "Добавление элементов инфоблока"(iblock.element.add) это становится невозможно, так как в нём это не реализовано.Для реализации необходимо кастомизировать три компонента:
- "Добавление элементов инфоблока"(iblock.element.add)
- "Форма добавления / редактирования"(iblock.element.add.form)
- "Список своих элементов"(iblock.element.add.list)
Поэтому копируем их в своё пространство имён, например, в папку "/bitrix/components/demo/". Затем потребуется:
1. переименовать папку "/bitrix/components/demo/iblock.element.add/templates/.default/bitrix/" в "/bitrix/components/demo/iblock.element.add/templates/.default/demo/".
2. в файлах
- /bitrix/components/demo/iblock.element.add/templates/.default/list.php
- /bitrix/components/demo/iblock.element.add/templates/.default/form.php
заменить bitrix на demo.
3. заменить во всех скопированных файлах "component.php" и "template.php":
- CODE= на ID=
- "CODE" на "ID" (кроме случаев, где "CODE" расположен в коде $arr["CODE"] в файлах .parameters.php)
Поиск и замену можно осуществить средствами Продукта, перейдя в "Контент - Структура сайта - Файлы и папки" в каждую папку скопированного компонента, нажав на кнопку "Поиск" и указав во вкладке "Заменить" следующие параметры(один пример):
Имя файла или папки: *mp*.php Слово или фраза в файле: CODE= Заменить на: ID= Искать в папке: /bitrix/components/demo/iblock.element.add.list Во всех подпапках: Да |
"NAME" => GetMessage("IBLOCK_ADD_NAME"), |
"CODE" => "CODE", |
5. в файле "/bitrix/components/demo/iblock.element.add.form/component.php" после строк:
"NAME" => array( "PROPERTY_TYPE" => "S", "MULTIPLE" => "N", "COL_COUNT" => $COL_COUNT, ), |
"CODE" => array( "PROPERTY_TYPE" => "S", "MULTIPLE" => "N", "COL_COUNT" => $COL_COUNT, ), |
6. заменить в файле "/bitrix/components/demo/iblock.element.add/templates/.default/demo/iblock.element.add.form/.default/template.php" строчку:
<input type="text" name="PROPERTY[<?=$propertyID?>][<?=$i?>]" size="25" value="<?=$value?>" /><br /><? |
<? $inputID = ($propertyID == "NAME" || $propertyID == "CODE"? 'id="'.$propertyID.'"': ""); $arIBlock = CIBlock::GetArrayByID($arParams["IBLOCK_ID"]); if($propertyID == "CODE") { $arTranslit = $arIBlock["FIELDS"]["CODE"]["DEFAULT_VALUE"]; if($arTranslit["TRANSLITERATION"] == "Y") { CUtil::InitJSCore(array('translit')); ?> <script type="text/javascript"> var oldValue = ''; function transliterate() { var from = document.getElementById('NAME'); var to = document.getElementById('CODE'); if(from && to && oldValue != from.value) { BX.translit(from.value, { 'max_len' : <?echo intval($arTranslit['TRANS_LEN'])?>, 'change_case' : '<?echo $arTranslit['TRANS_CASE']?>', 'replace_space' : '<?echo $arTranslit['TRANS_SPACE']?>', 'replace_other' : '<?echo $arTranslit['TRANS_OTHER']?>', 'delete_repeat_replace' : <?echo $arTranslit['TRANS_EAT'] == 'Y'? 'true': 'false'?>, 'use_google' : <?echo $arTranslit['USE_GOOGLE'] == 'Y'? 'true': 'false'?>, 'callback' : function(result){to.value = result; setTimeout('transliterate()', 250);} }); oldValue = from.value; } else { setTimeout('transliterate()', 250); } } transliterate(); </script> <? } } ?> <input <?=$inputID?> type="text" name="PROPERTY[<?=$propertyID?>][<?=$i?>]" size="25" value="<?=$value?>" /><br /><? |
Назад в раздел
Подписаться на новые материалы раздела: