Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // разберём на примере создания кастомного свойства элемента инфоблока в админке битрикс
- ob_start();
- // id открывающегося окна
- $windowTableId = "iblockprop-E-".$strHTMLControlName["VALUE"];
- //////////////////////////////////////////////////////////////////////////////////////////////
- // в переменной $input_value_string кладем шаблон красивого показа имени элемента если он уже создан
- // в данном случае если свойство уже сохраненено с каким то значением мне нужно было вывести имя и фамилию специалиста
- if($arProperty["LINK_IBLOCK_ID"] == IBLOCK_SPECIALISTS && !empty($value["VALUE"])){
- $arFilter = array(
- 'IBLOCK_ID' => $arProperty["LINK_IBLOCK_ID"],
- 'ID' => $value["VALUE"],
- 'SHOW_HISTORY' => 'Y',
- 'IBLOCK_ID' => $arProperty["LINK_IBLOCK_ID"],
- );
- $rsElements = CIBlockElement::GetList(array(), $arFilter, false, false, array('IBLOCK_ID','ID','NAME','PROPERTY_LAST_NAME',"PROPERTY_SECOND_NAME"));
- if ($arElement = $rsElements->GetNext())
- {
- $input_value_string = $arElement["PROPERTY_LAST_NAME_VALUE"]." ".$arElement["NAME"]." ".$arElement["PROPERTY_SECOND_NAME_VALUE"]." [".$arElement["ID"]."]";// "Наталия [2061]";
- }
- else {
- // если по какой то причине специалист не найден - заполняем переменуюю как бы это сделал стандартный функционал битрикс
- $input_value_string = htmlspecialcharsback(CIBlockPropertyElementAutoComplete::GetValueForAutoComplete(
- $arProperty,
- $value,
- array(",",";"),
- array(" "," ")
- ));
- }
- }
- //заполняем переменю как бы это сделал стандартный функционал битрикс
- else {
- $input_value_string = htmlspecialcharsback(CIBlockPropertyElementAutoComplete::GetValueForAutoComplete(
- $arProperty, // массив свойства
- $value, // массив значений
- array(",",";"), // (системное значение по умолчанию, не трогать)
- array(" "," ") // (системное значение по умолчанию, не трогать)
- ));
- }
- $control_id = $APPLICATION->IncludeComponent(
- "bitrix:main.lookup.input",
- "iblockedit",
- array(
- "CONTROL_ID" => preg_replace(
- "/[^a-zA-Z0-9_]/i",
- "x",
- $strHTMLControlName["VALUE"].'_'.mt_rand(0, 10000)
- ),
- "INPUT_NAME" => $strHTMLControlName["VALUE"],
- "INPUT_NAME_STRING" => "inp_".$strHTMLControlName["VALUE"],
- "INPUT_VALUE_STRING" => $input_value_string,
- "START_TEXT" => "выберите значение",
- "MULTIPLE" => "N",
- "MAX_WIDTH" => 0,
- "IBLOCK_ID" => $arProperty["LINK_IBLOCK_ID"], // инфоблок
- 'WITHOUT_IBLOCK' => true,
- 'BAN_SYM' => $arSymbols['BAN_SYM_STRING'], // Заменяемые при показе символы
- 'REP_SYM' => $arSymbols['REP_SYM_STRING'], // Символ, который заменит при показе запрещенные символы
- 'FILTER' => 'Y' // можно ли использовать фильтр в открывшемся окне
- ), null, array("HIDE_ICONS" => "Y")
- );
- $html .= ob_get_contents();
- ob_end_clean();
- // первая кнопка выбора из списка, вторая кнопка - добавление элемента
- $html .= "<input style='float: left; margin-right: 10px; margin-top: 5px;'
- type='button' value='...'
- title='...'
- onclick='jsUtils.OpenWindow(\"/bitrix/admin/iblock_element_search.php?lang=".LANGUAGE_ID."&IBLOCK_ID=".$arProperty["LINK_IBLOCK_ID"]."&n=&k=&lookup=jsMLI_".$control_id."&iblockfix=y&tableId=".$windowTableId."\", 900, 700);'>
- <input type='button' style='margin-top: 5px;' value='+'
- title='+'
- onclick='jsUtils.OpenWindow(\"/bitrix/admin/".CIBlock::GetAdminElementEditLink(
- $arProperty["LINK_IBLOCK_ID"],
- null,
- array(
- 'menu' => null,
- 'IBLOCK_SECTION_ID' => -1,
- 'find_section_section' => -1,
- 'lookup' => 'jsMLI_'.$control_id,
- 'tableId' => $windowTableId
- ),
- 1 // закрепиться только за выбрнным инфоблоком в открытом окне
- )."\", 900, 700);'>";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement