Для админских скриптов бывает необходимо сделать выпадающий список с перечнем инфоблоков. Например, в CSV-импорте.
[spoiler]
Для этого есть удобная функция Максима Смирнова - GetIBlockDropDownList()
Формат вызова:
Первый параметр - ID выбранного инфоблока, второй - имя поля со списком типов инфоблоков, третий - имя поля, куда передается выбранный инфоблок. Последний, необязательный, - фильтр. Все хорошо, но функция ориентирована на функционал модуля инфоблоков. Поэтому выводит она только те инфоблоки, на которые у пользователя есть право записи.
В ряде случаев это неудобно. Да и может потребоваться выполнять какие-то действия при выборе. Так что теперь есть еще одна функция - GetIBlockDropDownListEx()
Формат вызова:
Она точно также выводит два выпадающих списка, но с дополнениями. Первые три параметра аналогичны параметрам GetIBlockDropDownList(). Если фильтр не задавать, функция так же выберет лишь те инфоблоки, на которые у пользователя есть право записи. Если указать явно MIN_PERMISSION - будут показаны инфоблоки с соотв правами. Т.е при MIN_PERMISSION => 'R' - в список попадут все инфоблоки с правами "Чтение" и выше.
[spoiler]
Для этого есть удобная функция Максима Смирнова - GetIBlockDropDownList()
Формат вызова:
echo GetIBlockDropDownList($IBLOCK_ID, $strTypeName, $strIBlockName, $arFilter = false); |
В ряде случаев это неудобно. Да и может потребоваться выполнять какие-то действия при выборе. Так что теперь есть еще одна функция - GetIBlockDropDownListEx()
Формат вызова:
echo GetIBlockDropDownListEx($IBLOCK_ID, $strTypeName, $strIBlockName, $arFilter = false, $onChangeType = '', $onChangeIBlock = '', $strAddType = '', $strAddIBlock = ''); |
- $onChangeType - jscript, который выполнится на событии onChange в списке типов инфоблоков
- $onChangeIblock - jscript, который выполнится на событии onChange в списке инфоблоков того самого типа
- $strAddType - произвольные атрибуты (стили, классы), которые пойдут в тэг select списка типов
- $strAddIBlock - произвольные атрибуты (стили, классы), которые пойдут в тэг select списка инфоблоков