Вывод и генерация страниц из своих таблиц
        Добрый день.
есть своя база с таблицами: регионы -> города -> компании -> и.т.д.
Как только вопросы гуглу не завал, даже близко к ответу не приблизился.
Возможно ли в 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 так и работает если не ошибаюсь.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.