UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: atach от 21 Мая 2016, 23:15:44

Название: Системные данные (title, h1 и т.д.) у кастомных макросов
Отправлено: atach от 21 Мая 2016, 23:15:44
Возможно некорректно сформулировал название темы.
Если к примеру я создаю, кастомный макрос/функцию которая обрабатывает какое то там событие и выводит результат.
Она мне нужна как отдельная полноценная страница. Функция к примеру прописывается у модуля "Интернет магазин" и расширяет его функционал.

И когда я обращаюсь по прямому адресу к ней: http://site.ru/emarket/functionname/
Она отрабатывает всё как нужно, но у неё отсутствуют системные поля title, header, h1 ... всё то, что мы указываем при создании страниц в админке. Как и где правильно прописать эти данные для вывода в шаблоне?
Название: Re: Системные данные (title, h1 и т.д.) у кастомных макросов
Отправлено: aghigay от 23 Мая 2016, 00:22:33
Есть 2 варианта реализации намеченного:
1. вы жестко прописываете мета-теги в вашем шаблоне и тогда, при открытии вашей страницы, отображаются ваши мета-теги
2. вы делаете отдельную страницу, например страницу контента, и на ней выводите результаты работы вашего макроса.

Для первого случая что хорошо - вы не меняете URL.
Для второго случая что хорошо - вы даете возможность менять мета-теги через административную зону.
Название: Re: Системные данные (title, h1 и т.д.) у кастомных макросов
Отправлено: atach от 23 Мая 2016, 00:58:59
Этими вариантами я сейчас и пользуюсь, думал есть какое то другое решение. Да и страница системная, не хочется её светить а структуре сайта
Название: Re: Системные данные (title, h1 и т.д.) у кастомных макросов
Отправлено: aghigay от 23 Мая 2016, 11:00:12
Как вариант, можно предложить задать на какой-то странице дополнительный набор мета-тегов и подгружать их оттуда. Это будет комбинация из двух предыдущих вариантов. Позволит и управлять мета-тегами и не делать доп. страницы. Но это чуть сложнее в реализации, а, главное, это сложнее в поддержке. О таком решении нужно помнить.
Название: Re: Системные данные (title, h1 и т.д.) у кастомных макросов
Отправлено: e.ioffe от 23 Мая 2016, 11:23:36
Посмотрите файлы lang.php в системных модулях. В них можно задать header. Если не подходит, то в шаблоне обрабатывайте result и в зависимости от него выводите title.
Для xslt:
<xsl:apply-templates select="result" mode="title" />

<xsl:template match="result" mode="title">
<title>Стандартный title для всех страниц</title>
</xsl:template>

<xsl:template match="result[@module = 'модуль' and @method = 'метод']" mode="title">
<title>Title для системной страницы</title>
</xsl:template>
Название: Re: Системные данные (title, h1 и т.д.) у кастомных макросов
Отправлено: Vladimir от 23 Мая 2016, 20:13:34
Не знаю, как сейчас, в 2.8 и ранее в def_modules были методы setTitle, setH1, setHeader, которые делали то, что вам и нужно.
$this->setHeader('My Page');
Название: Re: Системные данные (title, h1 и т.д.) у кастомных макросов
Отправлено: atach от 26 Мая 2016, 15:43:26
Не знаю, как сейчас, в 2.8 и ранее в def_modules были методы setTitle, setH1, setHeader, которые делали то, что вам и нужно.
$this->setHeader('My Page');

Большое спасибо, то что и нужно было. Без лишних и сложных способов!