Всем привет!
Есть страница на которой снипет отдает некую информацию из стороней БД.
Скажите, можно ли из него (снипета) переопределять заголовок отдаваемой страницы?
Спасибо
Quote from: mamamiya at May 13, 2010, 12:29 PM
можно посмотреть в сторону js
Зачем на ровном месте использовать дополнительные программы на JavaScript? Просто в шаблоне на место заголовка вставить сниппет, и все.
снипет дергает информацию из стороней БД в зависимости от передаваемого парметра в запросе и мне хотелось, чтоб заголовки страницы и другие параметры - переопределялись из снипета, а то получается - в место вызова снипета вставляется динамический контент (основное содеражние страницы), а заголовки при выводе итогового html - остаются те, которые прописаны через админку (свойста страницы)
что было понятно, пример из жизни, который все знают, делаем какой-нить снипет по выводу новостей
одна страница - может генерить как список, а может и детальную новость, в зависимости что ей передаем
/news.php?action=list - список все новостей
/news.php?action=show&ID=1111 - показать новость 1111
у меня не новости, но суть понятна - в modx один скрипт (страница), на различные действия с меняющимся внутри контентом
пришлось реализовывать через плагин, который переопределяет $modx->documentObject[’pagetitle’] по событию
но тут своя кривизна
1) в снипете дергается база;
2) потом нужно писать плагин на ’OnLoadWebDocument’:
проверять моя ли страница, типа такого
$uri = $_SERVER[’REQUEST_URI’];
if (preg_match("#(xxxxxxxxxx)\.html#si",$uri,$m))
{
и если мой, по переданному параметру вновь дергать базу, чтоб считать нужную инфу и переопределить в конечном документе
в итоге вместо одного запроса, получается два + не совсем удобная связка снипет+плагин с проверками
хотя логически, удобнее было бы сделать в самом снипете, не понимаю только почему тот же $modx->documentObject[’pagetitle’] не срабатывет....
Quote from: aix at May 16, 2010, 07:05 AM
заголовки при выводе итогового html - остаются те, которые прописаны через админку (свойста страницы)
А кто сказал, что в шаблоне в качестве заголовка нельзя вызывать сниппет?
В месте шаблона, где задается заголовок, вызвать сниппет, обратиться к базе, вывести то, что надо и записать остальное в глобальные переменные, а далее в месте основного вывода повторно вызвать сниппет с другим параметром и выдать данные, полученные из глобальных переменных. Есть много вариантов реализации, но проще всего для нужных страниц сделать свой шаблон.