Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Для реализации необходимо кастомизировать три компонента:
- "Добавление элементов инфоблока"(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 /><? |
Назад в раздел
Подписаться на новые материалы раздела:
Загрузка...
Наверх