Ищу туториал по созданию собственного типа поля

 
Посетитель
no avatar
Сообщений: 70
Посмотрел как реализованы стандартные поля, поле "Город" и не совсем понял. Шаблон типа поля отвечает за вывод поля при его редактировании или и в просмотре тоже? Я бы хотел реализовать такую схему: создать тип поля,в который пишем число (id записи в справочнике), по которому при просмотре вытаскиваем запись из таблицы и отображаем нужные нам поля.
Модератор
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1341
В помощь
почему я задаю мало вопросов? потому, что на 90% из них уже кто-то ответил...
Реклама
cms
Посетитель
no avatar
Сообщений: 70
Там этот вопрос не поднимался. Photobattles не использует самописные типы полей.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3539
Antuanett:
Шаблон типа поля отвечает за вывод поля при его редактировании или и в просмотре тоже?
только за вывод при редактировании. За просмотр отвечает функция parse().
Посетитель
no avatar
Сообщений: 70
Loadырь:

Antuanett:
Шаблон типа поля отвечает за вывод поля при его редактировании или и в просмотре тоже?
только за вывод при редактировании. За просмотр отвечает функция parse().

Спасибо! Может ткнете в пример какой-нибудь?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3539
В конструкторе форм смотри файлы поля iforms.php и iforms.tpl.php.
Посетитель
no avatar
Сообщений: 70
Loadырь:

В конструкторе форм смотри файлы поля iforms.php и iforms.tpl.php.

Спасибо! Как всегда - по делу! v
Пошел читать...
Посетитель
no avatar
Сообщений: 70
Немного разобрался, но немного непонятна философия. Вот например хочу добавить собственный тип поля в профайл пользователя. Тип поля содержит целое число, являющееся id записи в справочнике. В parser вытаскиваю все поля записи. Как дальше действовать? Фильтровать вручную это поле в profile_view.tpl получать из parser массив и делать ему отрисовку? Это фен-шуй?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3539
Философия примерно такая:

есть поле, у него есть опция - id записи справочника, которое указывается при редактировании поля или записи с этим полем. Она выводится файлом шаблона поля,

функция store() сохраняет его значение в базе данных,

функция parse() получает эту опцию и по ней достаёт из базы ту самую (одну) запись с id = опции id записи справочника. Эта же функция (а точнее вы в этой функции) создаёт html код для вывода результата и возвращает на то место где вызвано это поле.
Посетитель
no avatar
Сообщений: 70
Т.е. создаем в parserе как бы сниппет - готовый кусок html кода для вставки в шаблон? Просто обычно принято работать с html только в tpl, поэтому как-то непривычно...
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3539
Antuanett, не совсем, parser() должен вернуть готовый кусок html кода. А откуда он его будет брать - решать вам в зависимости от потребностей. Тут либо жёстко прописать его в методе, либо подтягивать из стороннего tpl файла. Конечно если в выводе всего пара строк html кода которые не будут изменяться, то файл шаблона создавать нет необходимости. Если же код нужен массивный или он будет меняться в зависимости от места вызова или других условий, то лучше вынести в отдельный файл.
Посетитель
no avatar
Сообщений: 70
Хмм...У типа поля есть свой шаблон и он, вроде как, отвечает за прорисовку поля при его редактировании...А как подключить шаблон к parser?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3539
так ведь это
Код PHP:
  1. cmsTemplate::getInstance()->render('путь_к_шаблону', array(параметры));
и ему подобные никто не отменял.
Посетитель
no avatar
Сообщений: 70
Понял. Спасибо!
Посетитель
no avatar
Сообщений: 70
Еще такой вопрос - в связанном с id справочнике есть картинка (ссылка на картинку на стороннем сайте) - хочу ее отображать и интересует - картинка как-то закешируется или всё время будет качаться по ссылке с внешнего сайта?
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.