Как передать значение в XSL-шаблон?

#
Re: Как передать значение в XSL-шаблон?
Т.е. Если используется ТДС, то все корректировки параметров надо делать в самой ТДС?
#
Re: Re: Как передать значение в XSL-шаблон?

как-то так
#
Re: Как передать значение в XSL-шаблон?
Stepan0v, чета у вас мухи с котлетами вперемешку на схеме
Мне, к сожалению, лениво рисовать в чем-нибудь достойном, я бы может еще от руки набросал, но это будет плохо выглядеть и ничерта не понятно без комментариев голосом.

Stepan0v писал(а):
Т.е. Если используется ТДС, то все корректировки параметров надо делать в самой ТДС?

Вы немного узковато мыслите. У вас может быть _один_ макет на несколько узлов структуры, в каждом из которых _своя_ ТДС. На практике чаще всего так и бывает.
То что результатами работы ТДС можно воспользоваться, еще не означает, что это _всегда_ будет работать.

Возможны, например, такие сценарии.
Есть единый макет на ИС и ИМ
И есть в макете блок, в котором выводятся самые популярные статьи.
При этом условия такие: если вы находитесь в какой-то группе ИС, или в каком-то элементе, то в блоке вам надо отображать самые популярные статьи из этой группы в которой вы находитесь (или из группы, к которой относится просматриваемый элемент, но при этом сам этот элемент в блок попадать не должен)
А если вы находитесь в корне ИС или в любом месте ИМ, то нужно делать выборку самых популярных статей по всей ИС со статьями.

В рамках вашей логики эту задачу не решить, а она решается, и достаточно несложно
Заказов не беру. Консультирую редко.
#
Re: Re: Как передать значение в XSL-шаблон?
Цитата:
мухи с котлетами вперемешку

Что не так? Исправлю. Я только визуализировал то, что понял из вышесказанного.

Цитата:
Вы немного узковато мыслите.

Я не мыслю, а спрашиваю )
Но не уловил вашу, мысль, на что вы намекаете... Понял только, что что-то неправильно )
#
Re: Как передать значение в XSL-шаблон?
Эх. Завтра вечерком постараюсь все-таки нарисовать вам схемку обработки запроса любого url в hostcms.

P.S. Вообще, надо полагать, у разработчиков системы должны быть такие схемки, если бы они поделились, то всем было бы интересно взглянуть.
Заказов не беру. Консультирую редко.
#
Re: Как передать значение в XSL-шаблон?
Stepan0v, не осилил схемку сегодня. Завтра теперь уже.
Заказов не беру. Консультирую редко.
#
Re: Re: Как передать значение в XSL-шаблон?
Ок. С оформлением особо можно не заморачиваться, если что - я перерисую.
#
Re: Как передать значение в XSL-шаблон?
Ну, вот как-то так:

Здесь миниатюрка, а по ссылке - полноформатная версия.

Это очень упрощенная схема обработки запросов страниц в hostcms.
На схеме только два самых распространенных кейса - ТДС (в левой части схемы) и Статичный документ (в правой части схемы).
Кроме того, не показана проверка прав доступа, обработка исключений (404, 403, 503) и специальных запросов (robots.txt, favicon.ico и т.п.)
Ну и там, на самом деле много еще чего не хватает.

А запросы к БД в подобную схему вообще не вписываются, они как бы "растут вглубь", в третье измерение.
Заказов не беру. Консультирую редко.
#
Re: Re: Как передать значение в XSL-шаблон?
Kotoff, спасибо. Полезно.
В принципе, пока не вижу противоречий. У меня же не алгоритм, а схема, иллюстрирующая конкретную ситуацию.
#
Re: Как передать значение в XSL-шаблон?
Stepan0v,
ну, по меньшей мере, у вас Настройки ТДС почему-то оказались в макете, хотя между собой они никак не связаны, это раз, и более того, из настроек ТДС можно переопределить тот макет, который указан в разделе структуры, это два

Соответственно, и разделение на Документ и ТДС происходит еще до макета, а не внутри, как у вас )

И внутри серого прямоугольника "ИС" у вас тоже какая-от странная последовательность стрелочек. На выходе у кода ТДС не может быть БД На выходе у ТДС почти всегда html, иногда XML, как в случае с Яндекс-маркетом, например.
XML для XSL-шаблона получается не напрямую из БД, вокруг данных БД еще много всякой логики навешивается, прежде чем эти данные целиком или частично попадут в результирующий XML.

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

А по поводу неуловленной мысли, я имел в виду, что вставки кода в макет лучше все таки считать независимыми от ТДС, но при этом иметь в виду, что они
а) Могут использовать результаты работы настроек ТДС
б) Могут повлиять на результат исполнения Кода ТДС, если код в макете находится выше чем Core_Page::instance()->execute();
в) Могут использовать результаты работы Кода ТДС, если код в макете находится ниже чем Core_Page::instance()->execute();
г) Один и тот же макет может обслуживать _разные_ ТДС, т.е. прежде чем использовать, например, результат работы настроек ТДС, необходимо убедиться, что текущая ТДС в принципе способна вернуть вам те данные, которые вы хотите использовать.

По поводу пункта г) приведу примерчик. Есть ТДС Инфосистемы, она в настройках определяет, как минимум, текущую группу ИС. И есть, например, ТДС Поиск, она в настройках вычисляет текущую страницу поисковой выдачи. Если, мы находясь в разделе поиска, в макете в php-коде получим текущий инстанс Core_Page::instance() и запросим у него текущую группу инфосистемы, то получим ошибку, потому что данное свойство не определено.
Заказов не беру. Консультирую редко.
Авторизация