[DLE] Обрабатывать дополнительные поля перед выводом

O
На сайте с 29.05.2008
Offline
195
2400

Здравствуйте.

Есть портал музыкальной тематики. Нужно реализовать разметку HTML5 Microdata. Решил информацию о альбомах добавлять не в содержание, а через дополнительные поля. Но некоторые поля, такие как, треклист, нужно дополнительно прогнать через PHP функцию перед выводом.

Как правильно реализовать без ковыряния исходного кода CMS?

BrightGuy
На сайте с 03.10.2010
Offline
179
#1
нужно дополнительно прогнать через PHP функцию перед выводом

Какие данные там изначально, и что должно быть в этоге?

-= Сайты на заказ | Правки, обновление, работы по DLE =- (/ru/forum/791118) Skype: rus.shevchuk (skype:rus.shevchuk?chat) | Telegram: @ruslansh (tg://resolve?domain=ruslansh) | ICQ: 606535768 | info@ruslan-shevchuk.com
O
На сайте с 29.05.2008
Offline
195
#2

BrightGuy, например, продолжительность альбома в формате часы:минуты:секунды, а нужно P1H25M для атрибута content дополнительно. Треклист в формате 1 трек на одну строку, а нужно каждый трек дополнительно разметить, указать номер.

BrightGuy
На сайте с 03.10.2010
Offline
179
#3

Без ковыряния кода не получится, стандартными средствами это не реализовать. Разве что через js как-то но утверждать не буду, я не спец в этом.

O
На сайте с 29.05.2008
Offline
195
#4
BrightGuy:
Без ковыряния кода не получится, стандартными средствами это не реализовать.

А раздел разработка и подключение модулей из официальной документации говорит обратное.

Также вы можете подключать PHP файлы вашего модуля передав им различные параметры, например:

{include file="engine/modules/mymod.php?param=value1&variable2=value2"}

Благодаря подобному подключению, вы можете делать ваши модификации многофункциональными, которые будут выполнять различные роли и функции при различных подключениях. Переданные переменные будут доступны в вашем модуле как $param и $variable2 соответственно.

Начиная с версии DataLife Engine 8.3 в качестве параметров к подключаемым модулям вы можете задавать шаблонные теги скрипта, например при добавлении в шаблон полной новости конструкции {include file="engine/modules/mymod.php?param={news-id}"}, вы можете передавать вашему стороннему модулю в качестве параметра ID новости и т.д. Вниманию разработчиков: Передаваемые в скрипт параметры, это аналоги GET параметров URL браузера, соответственно при выборе передаваемых тегов вы должны учитывать ограчения GET строки, другими словами вы не можете передать в качестве параметра содержимое полной новости к примеру.

Также вы можете использовать подключение своих модулей и для замены основного блока, где выводятся новости и другая основная информация, для этого необходимо использовать данный тег совместно с тегами [aviable=раздел]текст[/aviable] и [not-aviable=раздел]текст[/not-aviable] Описание тегов смотрите в документации в разделе "Вывод новостей на страницах". Вы можете использовать как стандартный список разделов, так и использовать создание собственного раздела сайта, передав его в URL браузера. Рассмотрим простейший пример. Вы хотите добавить к стандартным разделам сайта, добавить свой раздел и выводить информацию в нем из вашего модуля. Допустим вы хотите создать раздел FAQ. Для этого в шаблоне main.tpl прописывается конструкция:

[aviable=faq]{include file="engine/modules/mymod.php"}[/aviable]
[not-aviable=faq]{content}[/not-aviable]
BrightGuy
На сайте с 03.10.2010
Offline
179
#5

Не успел ответить вы уже пост правите, умно.

O
На сайте с 29.05.2008
Offline
195
#6

BrightGuy, вводить людей в заблуждение - еще умнее.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий