avatar
+0.47
1.272
mif
mif
Покопался в наследованиях и в функции CheckFieldsField. Для решения вопроса с проверкой новых типов полей придется в наследованной функции переписывать весь ее код, в котором перечислять новые типы, что потом может обернуться другими проблемами с совместимостью при обновлении движка, например. Я прав?
mif
mif
Приветствую еще раз. Правильно ли я понимаю, что в текущей версии движка реализовать свои типы полей с помощью хуков или плагинов не получится — в качестве field_type могут выступать только значения 'input', 'textarea', 'photoset', 'link', 'select', 'date', 'map', 'daoobj', 'object', 'user', 'file', 'litepoll', 'gallery'. При попытке добавить с помощью хука свои, вываливается ошибка FIELD_TYPE_ERROR, потому что в функции проверки полей CheckFieldsField жестко прописаны типы, которые могут использоваться.
Это так или я чего-то еще не знаю?
mif
mif
кстати, а почему бы тогда и вам не реализовать это через плагины, чтобы на их примере можно было бы создавать новые или редактировать существующие?
mif
mif
Будем ковырять, спасибо.
mif
mif
Просто, если я правильно понимаю, мне придется каждый раз править код при обновлении движка, а хотелось бы какой-нибудь независимости
mif
mif
Значит дополнительные поля добавлять только плагинами или хуками. Понятно. Тогда, допустим, за обработку поля «файл» какой модуль/хук отвечает?

А первоначально я хотел узнать у вас, не вынесен ли каждый тип поля в отдельный файл, в котором описывается вся логика его работы. Чтобы можно было изменять или добавлять новые типы полей без лишних заморочек.

Такую систему я встретил в дополнении IP.Content для IP.Board (http://www.invisionpower.com/support/guides/_/advanced-and-developers/ipcontent/creating-database-fields-r161). Там для добавления нового типа поля достаточно было положить файл с необходимым кодом в определенную директорию, а движок сам его подхватывал. Оставалось только указать его в нужном месте.
mif
mif
Это замечательно. Только вопрос как раз и состоит в том, чтобы можно было менять обработку этих полей или создавать свои типы полей, а всю функциональность описывать в php файле.