Покопался в наследованиях и в функции CheckFieldsField. Для решения вопроса с проверкой новых типов полей придется в наследованной функции переписывать весь ее код, в котором перечислять новые типы, что потом может обернуться другими проблемами с совместимостью при обновлении движка, например. Я прав?
Приветствую еще раз. Правильно ли я понимаю, что в текущей версии движка реализовать свои типы полей с помощью хуков или плагинов не получится — в качестве field_type могут выступать только значения 'input', 'textarea', 'photoset', 'link', 'select', 'date', 'map', 'daoobj', 'object', 'user', 'file', 'litepoll', 'gallery'. При попытке добавить с помощью хука свои, вываливается ошибка FIELD_TYPE_ERROR, потому что в функции проверки полей CheckFieldsField жестко прописаны типы, которые могут использоваться.
Это так или я чего-то еще не знаю?
Значит дополнительные поля добавлять только плагинами или хуками. Понятно. Тогда, допустим, за обработку поля «файл» какой модуль/хук отвечает?
А первоначально я хотел узнать у вас, не вынесен ли каждый тип поля в отдельный файл, в котором описывается вся логика его работы. Чтобы можно было изменять или добавлять новые типы полей без лишних заморочек.
Такую систему я встретил в дополнении IP.Content для IP.Board (http://www.invisionpower.com/support/guides/_/advanced-and-developers/ipcontent/creating-database-fields-r161). Там для добавления нового типа поля достаточно было положить файл с необходимым кодом в определенную директорию, а движок сам его подхватывал. Оставалось только указать его в нужном месте.
Это замечательно. Только вопрос как раз и состоит в том, чтобы можно было менять обработку этих полей или создавать свои типы полей, а всю функциональность описывать в php файле.
Это так или я чего-то еще не знаю?
А первоначально я хотел узнать у вас, не вынесен ли каждый тип поля в отдельный файл, в котором описывается вся логика его работы. Чтобы можно было изменять или добавлять новые типы полей без лишних заморочек.
Такую систему я встретил в дополнении IP.Content для IP.Board (http://www.invisionpower.com/support/guides/_/advanced-and-developers/ipcontent/creating-database-fields-r161). Там для добавления нового типа поля достаточно было положить файл с необходимым кодом в определенную директорию, а движок сам его подхватывал. Оставалось только указать его в нужном месте.