dio_bless Опубликовано 11 Апреля 2014 Жалоба Поделиться Опубликовано 11 Апреля 2014 В общем, встала задача модификации форума. В частности поменять стили отображения событий, в зависимости от типа события в календаре. А в админ-панели соответственно добавить возможность управлять (добавить/редактировать/удалить) типами событий. При добавлении в календарь события добавить поле типа события. Несколько нубских вопросов, если это всё уже описано, прошу ткнуть ссылкой). Как распутывать структуру контроллеров-шаблонов? Есть, например, урл :/develop/board/upload/index.php?/calendar/ Есть ли файл маршрутов, где однозначно описано на какой контроллер он ведёт? Попробовал тупо грепнуть по названию элемента стиля(из исходного кода в сгенерённой странице), вышел на /xml/calendar_root_templates, изменения в котором ни к чему не привели. Отсюда вопрос, станицы генерятся на основании xml шаблонов или таки откуда-то из базы.В общем нужна помощь, с чего начать копать) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 11 Апреля 2014 Жалоба Поделиться Опубликовано 11 Апреля 2014 там все в базе данных Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Denis Chursinov Опубликовано 11 Апреля 2014 Жалоба Поделиться Опубликовано 11 Апреля 2014 Ну эээ с чего бы начать...Первый вопрос про путь: index.php?/calendar/ Это FURL(ЧПУ) . Такая ссылка разбирается в соответствии с правилами формирования ЧПУ в запрос вида index.php?app=calendar и могут быть еще &module, §ion, &do . Получить реальную ссылку можно отключив $INFO['use_friendly_urls'] в conf_global.php . Или самому пройтись по таблице подстановки. Её кэш лежит в /cache/furlCache.phpНу а дальше поехали app=calendar - /admin/apllications_addon/ips/calendar . Core,forum,members лежат в /admin/applications , остальные в /admin/applications_addon/ips или other .module= если есть такое, то это /admin/apllications_addon/ips/calendar/modules_public, если админка то modules_admin .section= это уже конкретный php в папке модуляУ каждого приложения есть дефолтный модуль и секция. Модуль задается где-то в скриптах, не угадаешь, а секция в defaultSection.php/xml/calendar_root_templates.xml - файл шаблонов, но он дистрибутивный. При установке приложения его шаблоны, настройки, языковые строки импортируются из xml в базу. Потом из базы шаблоны превращаются в php и складываются в /cache/skin_cache/cacheid_НОМЕР Редактируются шаблоны в админке - внешний вид - управление стилями . Можно просто поискать через внешний вид - поиск и замена элемент стиля, чтобы определить конкретный шаблон. Vagners отреагировал на это 1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
dio_bless Опубликовано 14 Апреля 2014 Автор Жалоба Поделиться Опубликовано 14 Апреля 2014 Спасибо за ответ. А вот как ещё такую вещь сделать, подскажите пожалуйста: мне нужен, возможно ни с чем не связанный набор значений. Те же типы событий. Я создам под них отдельную табличку, типа id | name | color. Где мне нужно будет инициализировать массив с выбранными из таблички значениями, что бы он был доступен в шаблонах стилей, по приципу, как ща доступны элементы события -- span itemprop="name">{$event['event_title']} ?И второй вопрос: сложно ли добавить в админку новые поля меню, или лучше новый функционал добавлять в уже существующие разделы? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Denis Chursinov Опубликовано 14 Апреля 2014 Жалоба Поделиться Опубликовано 14 Апреля 2014 Кривая это дорожка - править код напрямую.У IPS на сайте есть целый раздел про создание хуков и приложений. Он по английски, но все вполне понятно и доступно. Внутри шаблона вы можете оперировать переменными, которые ему передаются и общими переменными. Шаблон при кешировании превращается в функцию с параметрами и в ней можно эти параметры использовать. То, что вы хотите сделать, реализуется хуками шаблона.В шаблонах есть точки входа для хуков. Выглядят как и так же для foreach . В такие точки можно выводить свои данные. Для этого нужно в режиме разработчика создать в админке новый хук, указать точку входа и исполняемый файл. В исполняемом файле в папке hooks должен быть класс(имя класса совпадает с именем файла) с методом getOutput() . Посмотрите уже имеющиеся хуки для примера. Вот туда вы можете сунуть запрос из вашей таблички и вывод в какое-то место на странице. Vagners отреагировал на это 1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.