Перейти к содержимому


Фотография

Изменение шаблона для отображения календаря

Форумы IBResource

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4
dio_bless
  • Участники
  • Cообщений: 8

Отправлено

    В общем, встала задача модификации форума. В частности поменять стили отображения событий, в зависимости от типа события в календаре. А в админ-панели соответственно добавить возможность управлять (добавить/редактировать/удалить) типами событий. При добавлении в календарь события добавить поле типа события.

   Несколько нубских вопросов, если это всё уже описано, прошу ткнуть ссылкой).

  Как распутывать структуру контроллеров-шаблонов? 

  Есть, например, урл :/develop/board/upload/index.php?/calendar/
  Есть ли файл маршрутов, где однозначно описано на какой контроллер  он ведёт?
 
 Попробовал тупо грепнуть по названию элемента стиля(из исходного кода в сгенерённой странице), вышел на /xml/calendar_root_templates, изменения в котором ни к чему не привели. Отсюда вопрос, станицы генерятся на основании xml шаблонов или таки откуда-то из базы.

В общем нужна помощь, с чего начать копать)
  

 



Arhar
  • Команда форума
  • Cообщений: 5 631

Отправлено

там все в базе данных



Denis Chursinov
  • Клиенты
  • Cообщений: 659

Отправлено

Ну эээ с чего бы начать...
Первый вопрос про путь:

index.php?/calendar/ 

Это FURL(ЧПУ) . Такая ссылка разбирается в соответствии с правилами формирования ЧПУ в запрос вида index.php?app=calendar и могут быть еще &module, &section, &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_НОМЕР 

Редактируются шаблоны в админке - внешний вид - управление стилями . Можно просто поискать через внешний вид - поиск и замена элемент стиля, чтобы определить конкретный шаблон.


 



dio_bless
  • Участники
  • Cообщений: 8

Отправлено

Спасибо за ответ. А вот как ещё такую вещь сделать, подскажите пожалуйста: мне нужен, возможно ни с чем не связанный набор значений. Те же типы событий. Я создам под них отдельную табличку, типа id | name | color. Где мне нужно будет инициализировать массив с выбранными из таблички значениями, что бы он был доступен в шаблонах стилей, по приципу, как ща доступны элементы события -- span itemprop="name">{$event['event_title']} ?

И второй вопрос:  сложно ли добавить в админку новые поля меню, или лучше новый функционал добавлять в уже существующие разделы? 



Denis Chursinov
  • Клиенты
  • Cообщений: 659

Отправлено

Кривая это дорожка - править код напрямую.
У IPS на сайте есть целый раздел про создание хуков и приложений. Он по английски, но все вполне понятно и доступно. Внутри шаблона вы можете оперировать переменными, которые ему передаются и общими переменными. Шаблон при кешировании превращается в функцию с параметрами и в ней можно эти параметры использовать. 

То, что вы хотите сделать, реализуется хуками шаблона.

В шаблонах есть точки входа для хуков. Выглядят как <if test='КЛЮЧ_ТОЧКИ_ВХОДА:|:условие'> и так же для foreach . В такие точки можно выводить свои данные. Для этого нужно в режиме разработчика создать в админке новый хук, указать точку входа и исполняемый файл. В исполняемом файле в папке hooks должен быть класс(имя класса совпадает с именем файла) с методом getOutput() . Посмотрите уже имеющиеся хуки для примера. Вот туда вы можете сунуть запрос из вашей таблички и вывод в какое-то место на странице.






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных