Вывод и генерация страниц из своих таблиц
Добрый день.
есть своя база с таблицами: регионы -> города -> компании -> и.т.д.
Как только вопросы гуглу не завал, даже близко к ответу не приблизился.
Возможно ли в modx генерировать старницы на основе свои таблиц.
Чтобы к примеру нагененировать странц из таблицы города и страницы из компаний.
на каждый город и компанию отдельная страница, автоматически.
Подскажите в какую сторону копать и есть ли такая возможность или решения.
А то уже на laravel хотел, только тогда там докучи придётся cms накидать, не люблю велосипеды делать))
есть своя база с таблицами: регионы -> города -> компании -> и.т.д.
Как только вопросы гуглу не завал, даже близко к ответу не приблизился.
Возможно ли в modx генерировать старницы на основе свои таблиц.
Чтобы к примеру нагененировать странц из таблицы города и страницы из компаний.
на каждый город и компанию отдельная страница, автоматически.
Подскажите в какую сторону копать и есть ли такая возможность или решения.
А то уже на laravel хотел, только тогда там докучи придётся cms накидать, не люблю велосипеды делать))
Комментарии: 11
Да, можно.
Я бы взял компонент VirtualPage и настроил там обработчики нужных типов страниц. Это 100% рабочий вариант, я так делал)
Я бы взял компонент VirtualPage и настроил там обработчики нужных типов страниц. Это 100% рабочий вариант, я так делал)
Спасибо! попробуем, что из этого выйдет! Отпишу о результате!
Снова вернулся к этом вопросу, поставил virtualpage
дальше только не пойму. как из базы получить записи с страницу.
Сделал маршрут /city/{id:[0-9]+}
тип GET
событие OnHandleRequest
Обработчик. Тип Ресурс.
по переходу site.ru/city/5
открывается просто указанная страничка.
я так понимаю надо выловить id=5
и по нему вытащить из базы. но где все эти запросы и условия прописывать.
тыкните носом пожалуйста, на какую тему поискать документацию.
Спасибо!
дальше только не пойму. как из базы получить записи с страницу.
Сделал маршрут /city/{id:[0-9]+}
тип GET
событие OnHandleRequest
Обработчик. Тип Ресурс.
по переходу site.ru/city/5
открывается просто указанная страничка.
я так понимаю надо выловить id=5
и по нему вытащить из базы. но где все эти запросы и условия прописывать.
тыкните носом пожалуйста, на какую тему поискать документацию.
Спасибо!
Теперь на этом ресурсе вызываете любой сниппет.
В нем для начала сделайте
Цитата из описания:
В нем для начала сделайте
print_r($_REQUEST);
думаю, дальше будет понятно.Цитата из описания:
Все именованные параметры fastrouter можно получить в $_REQUEST. Ключ по умолчанию 'fastrouter'
при обработчике тип — ресурс, параметры также доступны в плейсходерах с префиксом vp.
Спасибо. за утро уже докопался, что PHP код можно писать в Сниппетах ))
там в сниппете уже и делать запросы к БД через PDO или xPDO?!
там в сниппете уже и делать запросы к БД через PDO или xPDO?!
с шаблонизатором все проще, можно писать прям в шаблоне все
{extends 'file:templates/category.tpl'}
{block 'initialize'}
{parent}
{var $tag = $_modx->getPlaceholder('vp.tag')}
{var $_modx->resource.longtitle = $tag}
{var $crumbs = 0}
{var $parents = 0}
{var $resources = '!msProducts'|snippet:[
'parents' => 0,
'optionFilters' => json_encode([
'tags' => $tag
]),
'returnIds' => 1
]}
{if $resources is empty}
{var $url = ('site_start'|option) | url : ['scheme' => 'full'] : []}
{$_modx->sendRedirect($url, ['responseCode' => 'HTTP/1.1 404 Not Found'])}
{/if}
{/block}
До такого уровня (шаблонизатор в MODx ещё не дорос) хотя читал статьи, что это в разы ускорят. Но тут вроде используется smary. А я уж привык к blade в laravel))
Пока без шаблонизатора, а то сроки горят. ну а в целом так как обычно. из Request вытаскивать параметры, и из базы по ним доставать значения в массив и вставлять в нужные места на странице?
Пока без шаблонизатора, а то сроки горят. ну а в целом так как обычно. из Request вытаскивать параметры, и из базы по ним доставать значения в массив и вставлять в нужные места на странице?
тут вроде используется smary— нет, fenom:
github.com/fenom-template/fenom/tree/master/docs/ru
docs.modx.pro/components/pdotools/parser
Что-то чем дальше читаю разные источники, тем больше запутался.
Табличку свою в базу залил.
но как к ней не обращаюсь, толку нет.
и так и сяк и так $modx->getObject('my_cityes',array('id'=>5))
полное название таблицы modx_my_cityes.
Нужно перед этим xml схему и php файлы какие-то генерировать чтоли?
ну чтобы с xPDO работать и обращаться к таблице.
Табличку свою в базу залил.
но как к ней не обращаюсь, толку нет.
и так и сяк и так $modx->getObject('my_cityes',array('id'=>5))
полное название таблицы modx_my_cityes.
Нужно перед этим xml схему и php файлы какие-то генерировать чтоли?
ну чтобы с xPDO работать и обращаться к таблице.
Вобщем пока xPDO мне не поддался с первого дня ковыряния, но уже понял, что штука мощная.
пока сделал так для теста.
все данные норм выбирает. буду разбираться как их передать в шаблон для title и.т.д.
$cityID = ($_REQUEST[fastrouter][id]);
$sql = «SELECT * FROM modx_my_cityes where id = $cityID»;
$statement = $modx->query($sql);
$city = $statement->fetchAll(PDO::FETCH_ASSOC);
print_r($city);
пока сделал так для теста.
все данные норм выбирает. буду разбираться как их передать в шаблон для title и.т.д.
$cityID = ($_REQUEST[fastrouter][id]);
$sql = «SELECT * FROM modx_my_cityes where id = $cityID»;
$statement = $modx->query($sql);
$city = $statement->fetchAll(PDO::FETCH_ASSOC);
print_r($city);
$modx->resource = $resource;
$modx->request->prepareResponse();
Как вариант использовать плагины на 404, ну а $resource уже ваш объект.VirtualPage так и работает если не ошибаюсь.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.