При создании дополнительных свойств инфоблока мы можем выбрать один из множества типов, например:
До сих пор лично я исхитрялся делать простое текстовое поле и предупреждать пользователей, чтобы писали туда либо "N", либо "Y". Они при этом писали всякую фигню (это присуще пользователям).
Поэтому пришлось мне сесть и написать дополнительный тип свойства — флажок, который сам в базу данных пишет либо "Y", либо "N".
[spoiler]
Для установки дополнительного типа свойств в Битрикс, произведите следующие действия:
1. Скачайте и распакуйте куда-нибудь в свой компьютер архив: (правой кнопочкой по ссылке — сохранить объект как; вес — 3 КБ; кодировка — юникод).
2. Скопируйте файл prop_checkbox.php в папку: <ваш сайт>/bitrix/templates/.default/
3. В файл /bitrix/php_interface/init.php допишите следующие две команды для подключения этого типа:
После этого при создании полей инфоблока у вас появится в выборе вариант «Флажок (Y/N)».
Примеры использования:
Найти все элементы инфоблока, у которых значение свойства BLA_BLA равно «да»:
Найти все элементы инфоблока, у которых значение того же свойства не равно «да»:
- Строка
- Число
- Список
- Привязка к разделам или элементам
- Файл
- и многие другие
До сих пор лично я исхитрялся делать простое текстовое поле и предупреждать пользователей, чтобы писали туда либо "N", либо "Y". Они при этом писали всякую фигню (это присуще пользователям).
Поэтому пришлось мне сесть и написать дополнительный тип свойства — флажок, который сам в базу данных пишет либо "Y", либо "N".
[spoiler]
Для установки дополнительного типа свойств в Битрикс, произведите следующие действия:
1. Скачайте и распакуйте куда-нибудь в свой компьютер архив: (правой кнопочкой по ссылке — сохранить объект как; вес — 3 КБ; кодировка — юникод).
2. Скопируйте файл prop_checkbox.php в папку: <ваш сайт>/bitrix/templates/.default/
3. В файл /bitrix/php_interface/init.php допишите следующие две команды для подключения этого типа:
include($_SERVER['DOCUMENT_ROOT'] . '/bitrix/templates/.default/prop_checkbox.php');
AddEventHandler("iblock", "OnIBlockPropertyBuildList", Array("CIBlockPropertyCheckbox", "GetUserTypeDescription")); |
После этого при создании полей инфоблока у вас появится в выборе вариант «Флажок (Y/N)».
Примеры использования:
Найти все элементы инфоблока, у которых значение свойства BLA_BLA равно «да»:
CIBlockElement::GetList(array(), array('PROPERTY_BLA_BLA' => 'Y')); |
Найти все элементы инфоблока, у которых значение того же свойства не равно «да»:
CIBlockElement::GetList(array(), array('!PROPERTY_BLA_BLA' => 'Y')); |