партнер компании 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
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки