Поменять longtitle и.т.д. на лету из сниппета
Добрый день, возникла такая проблема.
в сниппете обращаюсь к данным кастомной таблички и через virtual-page всё вывожу.
В чанк всё передаётся и отлично. Но хотелось бы перезаписать longtitle, description, pagetitle своими данными. Так как вызываются названия городов из таблицы и хотелось динамически формировать всё нужное для SEO.
Конечно всё это можно передать в плэйсходеры и что-то колхозить. но мне кажется это не верно.
Тут формирую свои данные для замены.
Первый.
Так как они меняют в уже загруженном документе, а пользователь на экране видит старые данные.
Как вариант думал сделать сниппет, который вставить в самое нало документа вообще, может тогда когда дело дойдёт до заполнения метатегов и.т.д там будут уже нужные данные. Но что-то мне подсказывает. что я не в том направлении копаю.
Подскажите пожалуйста, кто уже решал подобную проблему.
в сниппете обращаюсь к данным кастомной таблички и через virtual-page всё вывожу.
В чанк всё передаётся и отлично. Но хотелось бы перезаписать longtitle, description, pagetitle своими данными. Так как вызываются названия городов из таблицы и хотелось динамически формировать всё нужное для SEO.
Конечно всё это можно передать в плэйсходеры и что-то колхозить. но мне кажется это не верно.
Тут формирую свои данные для замены.
$longtitle = "Разработка проекта перепланировки h1 в $prepositionalCase, быстро и недорого!";
$pagetitle = "Разработка проекта перепланировки title в $genitiveСase, быстро и недорого!";
$description = "Разработка проекта перепланировки description в $prepositionalCase, быстро и недорого!";И сделал 2 вариантаПервый.
$id = $modx->resource->get('id');
$page = $modx->getObject('modResource', $id);
$page->set('longtitle',$longtitle);
$page->save();Второйif($doc = $modx->getObject('modResource',$id)){
$data = $doc->toArray();
$data['longtitle'] = $longtitle;
$data['pagetitle'] = $pagetitle;
$data['description'] = $description;
$modx->runProcessor('resource/update', $data);
$modx->cacheManager->clearCache();
}Оба варианта меняют нужные мне поля, но надо перезагружать страницу ещё раз.Так как они меняют в уже загруженном документе, а пользователь на экране видит старые данные.
Как вариант думал сделать сниппет, который вставить в самое нало документа вообще, может тогда когда дело дойдёт до заполнения метатегов и.т.д там будут уже нужные данные. Но что-то мне подсказывает. что я не в том направлении копаю.
Подскажите пожалуйста, кто уже решал подобную проблему.
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Надо в этот плагин параметры передавать, когда вызывается сниппет, так?
Спасибо!!!
Сниппет вам не нужен будет скорее всего, раз вы в плагине все менять будете.
получили массив данных, поменяли в нем что нужно и вывели пользователю, все. Зачем вы себе лишних проблем добавляете?
вчера только узнал что такое сниппет в modx, освоил более менее механику работы. Щас дожму плагины, тоже вот только из коммента выше узнал, что это )))