We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5336
    • 15 Posts
    Есть некий сниппет (news), который показывает список заголовков новостей из таблицы (modx_news_content).

    Список заголовков выводится на странице http://example.com/news/ , а текст полной новости соответсвенно должен выводиться на странице http://example.com/news/some-news-id/
    some-news-id — числовой идентификатор новости.

    Показывать через гет параметры не подходит, rewrite rule писать тоже не подходит.
    Есть возможность воспользоваться дефолтным роутером MODx?
      • 785
      • 2,113 Posts
      Quote from: cinic at Apr 07, 2011, 11:04 AM

      rewrite rule писать тоже не подходит.
      Как раз правильный вариант - писать в .htaccess, а иначе без коррекций в коде modx не получится, разве что отлавливать событие OnPageNotFound и прерывать вывод страницы об ошибке, а выводить то, что надо.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 5336
        • 15 Posts
        Quote from: AKots at Apr 07, 2011, 12:38 PM

        Quote from: cinic at Apr 07, 2011, 11:04 AM

        rewrite rule писать тоже не подходит.
        Как раз правильный вариант - писать в .htaccess, а иначе без коррекций в коде modx не получится, разве что отлавливать событие OnPageNotFound и прерывать вывод страницы об ошибке, а выводить то, что надо.

        Спасибо, облегчили мои страдания wink Раз без реврайта не обойтись, значит будем реврайтить.
          • 1611
          • 591 Posts
          На самом деле я тоже давно задумываюсь над этим вопросом, только шире.
          1. как в своих сниппетах делать FURLS
          2. как добавлять в цепочку Breadcrumbs свои звенья.

          Писать реврайты это хорошо, но ведь у modx свой родной алгоритм FURLs через разбор переменной q. Было бы наверное правильно как-то вклинится в него и получать свои переменные.
            • 785
            • 2,113 Posts
            Quote from: Andrey at Apr 08, 2011, 01:08 AM

            Было бы наверное правильно как-то вклинится в него
            Если хочется менять код MODx... А вообще, раздел с множеством сгенерированных страниц требует одной строки в .htaccess, почему бы ее не добавить (конечно, в коде сниппета тоже нужны определенные дополнения)?
            Системные адреса хранятся в файле системного кэша, если хочется реализовать универсальное решение, надо достаточно глубоко внедряться в MODx.

            Например, на одном проекте я добавлял строку:
            RewriteRule ^offer/(.*)$ index.php?q=offer&otp=$1 [L,QSA]
            А на странице offer вызывал сниппет, который реализовывал несколько тысяч страниц и разбирал otp.
              Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
              Статьи о MODx, регулярно новые публикации
              • 5336
              • 15 Posts
              Quote from: Andrey at Apr 08, 2011, 01:08 AM

              На самом деле я тоже давно задумываюсь над этим вопросом, только шире.
              1. как в своих сниппетах делать FURLS
              2. как добавлять в цепочку Breadcrumbs свои звенья.

              Писать реврайты это хорошо, но ведь у modx свой родной алгоритм FURLs через разбор переменной q. Было бы наверное правильно как-то вклинится в него и получать свои переменные.
              Про хлебные крошки я совсем забыл. Как в них будут отображаться пути.? huh

              Quote from: AKots at Apr 08, 2011, 01:19 AM

              Quote from: Andrey at Apr 08, 2011, 01:08 AM

              Было бы наверное правильно как-то вклинится в него

              Например, на одном проекте я добавлял строку:
              RewriteRule ^offer/(.*)$ index.php?q=offer&otp=$1 [L,QSA]
              А на странице offer вызывал сниппет, который реализовывал несколько тысяч страниц и разбирал otp.


              Пока что я за такой реврайт, так как он кажется мне единственным правильным вариантом. undecided
                • 5336
                • 15 Posts
                Реализовал реврайт.
                Но столкнулся со следующей траблой:
                Шаблон для типичной страницы контента содержит:
                <h1>[[*pagetitle]]</h1>
                

                по идее если проваливаться в глубь новости, то pagetitle должен изменяться.
                $modx->resource->set(’pagetitle’,’blablabla’) срабатывает, но тайтл страницы не меняется, видимо если вызывать это внутри сниппета, то работать не будет.

                Есть какие–нибудь здравые идеи?
                  • 785
                  • 2,113 Posts
                  Используйте плейсхолдеры, я недавно о похожем писал http://modxcms.com/forums/index.php/topic,63149.msg358045.html#msg358045
                  И лично я не стал бы использовать Revo (ну не нравится мне эта система).
                    Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                    Статьи о MODx, регулярно новые публикации
                    • 5336
                    • 15 Posts
                    Quote from: AKots at Apr 08, 2011, 06:10 AM

                    Используйте плейсхолдеры, я недавно о похожем писал http://modxcms.com/forums/index.php/topic,63149.msg358045.html#msg358045
                    И лично я не стал бы использовать Revo (ну не нравится мне эта система).

                    Да видимо придётся создавать отдельный шаблон для раздела «Новости», но буду признателен если подскажете, как внутри сниппета получить шаблон чтобы можно было налету изменять его данные.
                      • 785
                      • 2,113 Posts
                      Quote from: cinic at Apr 08, 2011, 06:41 AM

                      как внутри сниппета получить шаблон чтобы можно было налету изменять его данные.
                      Простой способ - прочитать из базы, но, наверное, можно и из памяти получить...
                        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                        Статьи о MODx, регулярно новые публикации