При создании дополнительных свойств инфоблока мы можем выбрать один из множества типов, например:
Строка
Число
Список
Привязка к разделам или элементам
Файл
и многие другие
Проблема возникает, когда мы хотим создать поле, значение которого бинарно — либо «да», либо «нет».
До сих пор лично я исхитрялся делать простое текстовое поле и предупреждать пользователей, чтобы писали туда либо "N", либо "Y". Они при этом писали всякую фигню (это присуще пользователям).
Поэтому пришлось мне сесть и написать дополнительный тип свойства — флажок, который сам в базу данных пишет либо "Y", либо "N". [spoiler] Для установки дополнительного типа свойств в Битрикс, произведите следующие действия:
1. Скачайте и распакуйте куда-нибудь в свой компьютер архив: http://evgeny.neverov.name/prop_checkbox.rar (правой кнопочкой по ссылке — сохранить объект как; вес — 3 КБ; кодировка — юникод).
2. Скопируйте файл prop_checkbox.php в папку: <ваш сайт>/bitrix/templates/.default/
3. В файл /bitrix/php_interface/init.php допишите следующие две команды для подключения этого типа:
Есть одно неудобство, иногда хотелось бы вместо буквы Y видеть что то более осмысленное, например слово "Активен","Есть","Да". Для клиентов все таки делаем, а не для программистов.
Как вариант ещё можно было не писать класс с нуля, а унаследовать от готового, например от строки или целого числа, и переопределить методы, GetUserTypeDescription, GetAdminListViewHTML, GetPublicViewHTML, GetPublicEditHTML.
p.s. недавно накатил обновления за полгодика и обнаружил, что в некоторых файлах classes/general/prop_*.php отсутствует метод GetUserTypeDescription(), может кто-нибудь в курсе как и где битрикс узнаёт описания свойств, по идеи он должен где то расширять этот класс остальными методами, но вот где
Не хватает флажка (переключателя), который можно установить только у одного товара. Если устанавливаем у другого, то автоматом сбрасывается у предыдущего. Никто не писал?
Я также делал. Только в две строки, "Да" и "Нет". Или "Активно" и "Неактивно". В коде предусматриваем значение по-умолчанию, на случай, если пользователь ничего не выбрал. Например, если ничего не выбрано или выбрано "Нет" - считаем за "Нет".
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».