Вывод и генерация страниц из своих таблиц

Добрый день.
есть своя база с таблицами: регионы -> города -> компании -> и.т.д.

Как только вопросы гуглу не завал, даже близко к ответу не приблизился.
Возможно ли в modx генерировать старницы на основе свои таблиц.
Чтобы к примеру нагененировать странц из таблицы города и страницы из компаний.
на каждый город и компанию отдельная страница, автоматически.
Подскажите в какую сторону копать и есть ли такая возможность или решения.
А то уже на laravel хотел, только тогда там докучи придётся cms накидать, не люблю велосипеды делать))
Alexander777
03 октября 2016, 05:11
modx.pro
1
2 275
0

Комментарии: 11

Наумов Алексей
03 октября 2016, 09:46
0
Да, можно.
Я бы взял компонент VirtualPage и настроил там обработчики нужных типов страниц. Это 100% рабочий вариант, я так делал)
    Alexander777
    03 октября 2016, 12:10
    0
    Спасибо! попробуем, что из этого выйдет! Отпишу о результате!
      Alexander777
      22 июня 2017, 06:44
      0
      Снова вернулся к этом вопросу, поставил virtualpage
      дальше только не пойму. как из базы получить записи с страницу.
      Сделал маршрут /city/{id:[0-9]+}
      тип GET
      событие OnHandleRequest

      Обработчик. Тип Ресурс.

      по переходу site.ru/city/5
      открывается просто указанная страничка.

      я так понимаю надо выловить id=5
      и по нему вытащить из базы. но где все эти запросы и условия прописывать.
      тыкните носом пожалуйста, на какую тему поискать документацию.
      Спасибо!
        Наумов Алексей
        22 июня 2017, 09:16
        0
        Теперь на этом ресурсе вызываете любой сниппет.

        В нем для начала сделайте
        print_r($_REQUEST);
        думаю, дальше будет понятно.

        Цитата из описания:
        Все именованные параметры fastrouter можно получить в $_REQUEST. Ключ по умолчанию 'fastrouter'
        при обработчике тип — ресурс, параметры также доступны в плейсходерах с префиксом vp.
          Alexander777
          22 июня 2017, 09:47
          0
          Спасибо. за утро уже докопался, что PHP код можно писать в Сниппетах ))
          там в сниппете уже и делать запросы к БД через PDO или xPDO?!
            Володя
            22 июня 2017, 09:51
            2
            +1
            с шаблонизатором все проще, можно писать прям в шаблоне все
            {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}
              Alexander777
              22 июня 2017, 13:53
              0
              До такого уровня (шаблонизатор в MODx ещё не дорос) хотя читал статьи, что это в разы ускорят. Но тут вроде используется smary. А я уж привык к blade в laravel))
              Пока без шаблонизатора, а то сроки горят. ну а в целом так как обычно. из Request вытаскивать параметры, и из базы по ним доставать значения в массив и вставлять в нужные места на странице?
          Alexander777
          22 июня 2017, 15:45
          0
          Что-то чем дальше читаю разные источники, тем больше запутался.
          Табличку свою в базу залил.
          но как к ней не обращаюсь, толку нет.
          и так и сяк и так $modx->getObject('my_cityes',array('id'=>5))
          полное название таблицы modx_my_cityes.
          Нужно перед этим xml схему и php файлы какие-то генерировать чтоли?
          ну чтобы с xPDO работать и обращаться к таблице.
            Alexander777
            22 июня 2017, 16:18
            0
            Вобщем пока 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);
      but1head
      03 октября 2016, 17:15
      0
      $modx->resource = $resource;
      $modx->request->prepareResponse();
      Как вариант использовать плагины на 404, ну а $resource уже ваш объект.
      VirtualPage так и работает если не ошибаюсь.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        11