We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 4379
    • 23 Posts
    Жаль, что мое появление в местном комьюнити получилось связано с несколько неприятными эмоциями... но, собственно за каким вопросом, я сюда пришел?

    Я последние полгода тыкаюсь-мыкаюсь в поисках максимально удобного средства для разработки сайтов... modx я использую уже давно, но он мне все меньше нравится (о, простите, что опять негатив smiley )... да, система хорошая, я бы даже сказал очень хорошая, особенно если искать нечто среднее между узко заточенной CMS и WAF (web application framework), то CMF, каким и является modx - он в принципе по середине и есть. Хотя я в последнее время больше склоняюсь к WAF и некоторую функциональность от них мне хотелось бы перенести сюда, если это возможно. Зачем? modx я использую давно, а новые фреймворки изучаю недавно, мне надо делать проекты уже сейчас и не ждать, пока я изучу новое или напишу свое (не дорос еще), поэтому я пока и остаюсь с modx, но прелести от waf меня влекут...

    Вобщем, лирику закончил, теперь вопрос.
    Хочется урлы типа /contorller/action/param1/pararm2/.../param3
    т. е. чтобы при реально сущестующем документе с псевдонимом controller он вызывался и получал строку /cation/param1/param2/.../pararm3 в виде параметра, вместо ошибки 404.
    Ну и если это уж совсем не возможно, то расскажите тогда, как опытные разработчики, использующие modx, решают проблему с пагинацией, неужели также как и я все это время - через &page=n ?
    Тогда как-то все прелести ЧПУ сводятся на нет...

    Благодарю за внимание
      • 785
      • 2,113 Posts
      Quote from: bvn at Oct 11, 2008, 06:03 AM

      Тогда как-то все прелести ЧПУ сводятся на нет...
      А какие такие уж особенные прелести?
      А по теме – чтобы вызывалась страница, сделать нетрудно, нужно просто поработать с .htaccess, но этого явно недостаточно. Нужно еще, чтобы в системе генерировались правильные ссылки, и для этого или переделать сниппеты, генерирующие ссылки на дополнительные страницы, или написать плагин, меняющий эти ссылки.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 4379
        • 23 Posts
        Quote from: AKots at Oct 11, 2008, 06:45 AM

        Quote from: bvn at Oct 11, 2008, 06:03 AM

        Тогда как-то все прелести ЧПУ сводятся на нет...
        А какие такие уж особенные прелести?
        Странно слышать этот вопрос... мне казалось, что эти вещи давно всем известны:
        - индексация поисковиками (это самая главная прелесть);
        - просто эстетически красивее smiley

        А по теме – чтобы вызывалась страница, сделать нетрудно, нужно просто поработать с .htaccess, но этого явно недостаточно. Нужно еще, чтобы в системе генерировались правильные ссылки, и для этого или переделать сниппеты, генерирующие ссылки на дополнительные страницы, или написать плагин, меняющий эти ссылки.
        Как раз с написанием/корректированием сниппетов для генерации ссылок проблем нет. Проблемно именно научить modx понимать такие ссылки и я пока не понял, каким образом я могу в .htaccess сделать это... Или вы предлагаете для каждой страницы писать соответсвующее правило?
          • 785
          • 2,113 Posts
          Quote from: bvn at Oct 11, 2008, 06:55 AM

          - индексация поисковиками (это самая главная прелесть);
          - просто эстетически красивее smiley
          Поисковики давно все отлично понимают, если адрес не получается в несколько сотен символов. А эстетически – достаточно спорный вопрос, что красивее: mysite.ru/news?page=5 или mysite.ru/news/5. Да и подавляющее большинство посетителей не обращают внимания на адресную строку.

          Чтобы понять, что писать в .htaccess, надо понять, что означают данные на входе. Например, если введено mysite.ru/news/2008/5 – что это означает? Документ с названием 5, содержащийся в папке 2008 или пятая страница документа 2008, а может 2008 страница документа news. Пока имеется неопределенность, ничего автоматизировать нельзя.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 4379
            • 23 Posts
            Quote from: AKots at Oct 11, 2008, 07:18 AM

            Чтобы понять, что писать в .htaccess, надо понять, что означают данные на входе. Например, если введено mysite.ru/news/2008/5 – что это означает? Документ с названием 5, содержащийся в папке 2008 или пятая страница документа 2008, а может 2008 страница документа news. Пока имеется неопределенность, ничего автоматизировать нельзя.
            В том-то и вопрос, что .htaccess ничего "не знает" о том, что означают данные на входе, елси они могут быть разные:
            blog/5
            blog/post/5
            blog/post/5/17
            news/3
            pages/moja_stranica
            archive/2008/10/7
            catalog/18/add/43
            например
            зато каждый из контроллеров: blog, news, pages, archive, catalog прекрасно знает, что он ждет в качестве параметров...
            Вобщем, я так понял, что без грубого хака ничего в modx не поделаешь - не предусмотрено... я уже код посмотрел, убедился, что это так... и в принципе уже хакнул его, так что тему можно закрывать...
            правда, грубовато хакнул... поиск в массиве документов делать пришлось через foreach... если число их сильно возрастет, то это скажется на быстродействии... как лучше пока не придумал...
              • 4379
              • 23 Posts
              PS: Да, пожалуй, если не рассчитывать на сложное деление сайта на разделы/подразделы/подподразделы/итутужетолькоконтроллеры с переменной длиной пути, а предполагать, что контроллер всегда выступает первым в пути, то пожалуй можно сделать...
              RewriteRule ^(.+)(\/.+)* index.php?q=$1&p=$2 [L,QSA]
              Да, пожалуй меня этот вариант пока устроит smiley