партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Простой адаптивный форум - модуль для битрикс
Страницы: 1
Ответить
RSS
Использование модуля в iblock.element.add.form
 
Отличный модуль! Спасибо за разработку! :):)
Такой вопрос появился: создали мы инфоблок, сделали там кастумную привязку и т.д.
Далее мы хотим дать редактирование и добавление этих инфоблоков юзерам, для чего используем iblock.element.add.form
А вот можно ли в iblock.element.add.form использовать ваш модуль? И как это сделать?
 
Ещё момент, а что означают параметры FIELD_CODE и VALUE при вызове компонента grain:links.edit ?
 
Короче, разобрался. Делается, также как и на Свойствах-таблицах.
В шаблоне компонента ищем код строки:
Код
   case "S":
   case "N":
далее пихаем:
Код
case "S":
   case "N":
                        
                        // если у нас поле "свойства таблицы" - модуль Эстрина
                        if($arResult["PROPERTY_LIST_FULL"][$propertyID]["USER_TYPE"]=="gtable") {
                        
                           if($arResult["PROPERTY_LIST_FULL"][$propertyID]["MULTIPLE"]=="Y") {
                              $value=Array();                           
                              if(is_array($arResult["ELEMENT_PROPERTIES"][$propertyID]) ) {
                                 foreach($arResult["ELEMENT_PROPERTIES"][$propertyID] as $v) {
                                    if(count($v["~VALUE"]) > 0){
                                       $value[] = $v["~VALUE"];
                                    }
                                 }
                              }
                           }else{
                              $value = $arResult["ELEMENT_PROPERTIES"][$propertyID];
                           }
                        
                           $GLOBALS["APPLICATION"]->IncludeComponent(
                              "grain:table.edit",
                              $template_name,
                              Array(
                                 "SETTINGS" => $arResult["PROPERTY_LIST_FULL"][$propertyID]["USER_TYPE_SETTINGS"],
                                 "MULTIPLE" => $arResult["PROPERTY_LIST_FULL"][$propertyID]["MULTIPLE"]=="Y"?"Y":"N",
                                 "USER_FIELDS" => "N",
                                 "VALUE" => $value,
                                 "NAME" => $arResult["PROPERTY_LIST_FULL"][$propertyID]["MULTIPLE"]=="Y"?"PROPERTY[".$propertyID."]":"PROPERTY[".$propertyID."][0]",
                              ),
                              null,
                              array('HIDE_ICONS' => 'Y')
                           );
                        // если у нас поле "Универсальная привязка
                        }elseif($arResult["PROPERTY_LIST_FULL"][$propertyID]["USER_TYPE"]=="grain_link"){
                           echo '<pre>'; print_r($arResult["PROPERTY_LIST_FULL"][$propertyID]); echo '</pre>';
                           echo '<pre>'; print_r($arResult["ELEMENT_PROPERTIES"][$propertyID]); echo '</pre>';
                           if($arResult["PROPERTY_LIST_FULL"][$propertyID]["MULTIPLE"]=="Y") {
                              $value=Array();                           
                              if(is_array($arResult["ELEMENT_PROPERTIES"][$propertyID]) ) {
                                 foreach($arResult["ELEMENT_PROPERTIES"][$propertyID] as $v) {
                                    if(count($v["~VALUE"]) > 0){
                                       $value[] = $v["~VALUE"];
                                    }
                                 }
                              }
                           }else{
                              $value = $arResult["ELEMENT_PROPERTIES"][$propertyID];
                           }
                           echo '<pre>'; print_r($value); echo '</pre>';
                           $GLOBALS["APPLICATION"]->IncludeComponent(
                              "grain:links.edit", 
                              ".default", 
                              array(
                                 "DATA_SOURCE" => "iblock_element",
                                 "INPUT_NAME" => "PROPERTY[303]",
                                 "MULTIPLE" => "Y",
                                 "USE_AJAX" => "N",
                                 "SHOW_URL" => "N",
                                 "IBID" => "35",
                                 "FIELD_CODE" => "NAME",
                                 "VALUE" => $value,
                                 "NAME_TRUNCATE_LEN" => "",
                                 "SCRIPTS_ONLY" => "N",
                                 "ON_AFTER_SELECT" => "",
                                 "ON_AFTER_REMOVE" => "",
                                 "USE_SEARCH" => "N",
                                 "USE_SEARCH_COUNT" => "",
                                 "EMPTY_SHOW_ALL" => "Y",
                                 "IBLOCK_TYPE" => "service",
                                 "IBLOCK_ID" => "35",
                                 "PARENT_SECTION" => "0",
                                 "INCLUDE_SUBSECTIONS" => "Y",
                                 "ACTIVE" => "N",
                                 "CHECK_DATES" => "N",
                                 "CHECK_PERMISSIONS" => "Y",
                                 "SORT_BY1" => "NAME",
                                 "SORT_ORDER1" => "ASC",
                                 "SORT_BY2" => "SORT",
                                 "SORT_ORDER2" => "ASC",
                                 "DETAIL_URL" => "",
                                 "CACHE_TYPE" => "A",
                                 "CACHE_TIME" => "0"
                              ),
                              false
                           );
                        }                        
                        else // все остальные случаи полей
                        {
 
Цитата
Эрли написал:
Делается, также как и на Свойствах-таблицах.
В шаблоне компонента ищем код строки...

Да, можно так если этот компонент все еще не поддерживает пользовательские типы свойств.

А вот "Универсальные списки" в свойствах-таблицах уже поддерживаются (в универсальных свойствах привязки будет поддержка универсальных списков в след. версии).
 
Цитата
Сергей Эстрин написал:
Да, можно так если этот компонент все еще не поддерживает пользовательские типы свойств.
Если взять компонент, и поставить дефолтный шаблон, то выводятся просто input`ы куда надо вбивать id элементов инфоблока для подвязки. Т.е. формально то редактировать можно, но компонент grain:links.edit не подтягивается. А тут весь смысыл то в компоненте...
Вообще, как я вижу, разработчики битрикса не любят iblock.element.add.form. За 3 года никаких изменений... :(

Ещё вопрос: в случае если поле множественное, как можно ограничить число привязок 3-мя? А то при существующей ситуации юзер может сделать хоть 20 привязок.
 
Цитата
Эрли написал:
Ещё вопрос: в случае если поле множественное, как можно ограничить число привязок 3-мя? А то при существующей ситуации юзер может сделать хоть 20 привязок.
Может хоть 1000 и больше, это не ограничено. Ограничить можно при желании копированием компонета grain:links.edit и его доработкой (доработкой script.js).
Страницы: 1
Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Ничего не найдено
Загрузить картинки
Отправить Отменить
 
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru