We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 13400
    • 44 Posts
    Добрый день!

    Весь день мучаюсь, не могу сделать латиницей ЧПУ, токо на русском получаются, кто-нить знает как в Revo сделать?


    ТрансАлиас, наверно, еще не сделали
      • 1035
      • 81 Posts
      Интересно, ... опишите поподробней - как это?

      У Вас включен ЧПУ и в качестве сервера используется Апач (идет в комплекте Денвера)
      И:
      - Вы создаете документ, в Алиасе ничего не пишите (потому что стоит в конфигурации "автоматически проставлять алиас") или пишите алиас но на русском, и алиас берется из pagetitle (заголовок документа то есть) -> там же у Вас все на русском и в результате у Вас получается ссылка вида

      хттп://site_name/информационные_системы.html
      вместо того что Вы хотели (приближенно)
      хттп://site_name/informacionnye_sistemy.html

      Вы хотите чтобы алиас на русском транслитерировался на Английский?

      Если да - то проще самому прописать на английском алиас или написать алиас на русском..
      И да, еще что - еслив pagetitle только русские символы - то алиас то же будет на русском, а если используется сочетание русских и английских символов, то в алиас попадут только английские символы...
        Чем я занят на данный момент, читайте в этой теме: [EVO] Ресурс-контроллер?
        • 1035
        • 81 Posts
        Quote from: Jager at Jul 25, 2010, 11:13 AM

        Добрый день!

        Весь день мучаюсь, не могу сделать латиницей ЧПУ, токо на русском получаются, кто-нить знает как в Revo сделать?


        ТрансАлиас, наверно, еще не сделали

        Если же Вы пишите алиас латиницей и ссылка не работает... То Вам в Баг Трек, хотя я , право, не сталкивался с подобным - все работает...
          Чем я занят на данный момент, читайте в этой теме: [EVO] Ресурс-контроллер?
          • 13400
          • 44 Posts
          Quote from: Alextekkk at Jul 30, 2010, 04:34 AM

          Интересно, ... опишите поподробней - как это?

          У Вас включен ЧПУ и в качестве сервера используется Апач (идет в комплекте Денвера)
          И:
          - Вы создаете документ, в Алиасе ничего не пишите (потому что стоит в конфигурации "автоматически проставлять алиас") или пишите алиас но на русском, и алиас берется из pagetitle (заголовок документа то есть) -> там же у Вас все на русском и в результате у Вас получается ссылка вида

          хттп://site_name/информационные_системы.html
          вместо того что Вы хотели (приближенно)
          хттп://site_name/informacionnye_sistemy.html

          Вы хотите чтобы алиас на русском транслитерировался на Английский?

          Если да - то проще самому прописать на английском алиас или написать алиас на русском..
          И да, еще что - еслив pagetitle только русские символы - то алиас то же будет на русском, а если используется сочетание русских и английских символов, то в алиас попадут только английские символы...


          Вот именно, хочу чтобы как в modx 1, алиас на русском транслитерировался на английский. Дело в том что я-то могу писать алиасы на английском, но веб-редакторов на это много времени уходит.
            • 1035
            • 81 Posts
            Вот именно, хочу чтобы как в modx 1, алиас на русском транслитерировался на английский. Дело в том что я-то могу писать алиасы на английском, но веб-редакторов на это много времени уходит.

            Я тоже работаю с Revo - но задачи такой не стояло...
            Может написать самому скрипт по заменен на транслитерационный вариант?
            Правда придется использовать регулярные выражения ... А это моя ьольная тема )))
            От синдрома зубочистки рябит в глазах....
            preg_replace Вам в помощь))).
            Хотя может быть лучше поискать готовые решения в нете и адаптировать их к модексу рево (честно скажу - я не любитель такого варианта)))
            ___________________________________________
            Кстати, а зачем вам нужен механизь транслитерации???
              Чем я занят на данный момент, читайте в этой теме: [EVO] Ресурс-контроллер?
              • 8643
              • 271 Posts
              Я себе от Evolution плагин rustulatalias переписал под Revo.

              if ($modx->event->name == ’OnDocFormSave’)
              {
              if (!strlen($_POST[’alias’]))
              {
              $id = $scriptProperties[’id’];
              $resource = $modx->getObject(’modResource’, $id);
              $trans = array("а"=>"a", "б"=>"b", "в"=>"v", "г"=>"g", "д"=>"d", "е"=>"e","ё"=>"jo", "ж"=>"zh", "з"=>"z", "и"=>"i", "й"=>"jj", "к"=>"k", "л"=>"l","м"=>"m", "н"=>"n", "о"=>"o", "п"=>"p", "р"=>"r", "с"=>"s", "т"=>"t", "у"=>"u","ф"=>"f", "х"=>"kh", "ц"=>"c", "ч"=>"ch", "ш"=>"sh", "щ"=>"shh", "ы"=>"y","э"=>"eh", "ю"=>"yu", "я"=>"ya", "А"=>"a", "Б"=>"b", "В"=>"v", "Г"=>"g", "Д"=>"d", "Е"=>"e", "Ё"=>"jo", "Ж"=>"zh", "З"=>"z", "И"=>"i", "Й"=>"jj", "К"=>"k", "Л"=>"l", "М"=>"m", "Н"=>"n", "О"=>"o", "П"=>"p", "Р"=>"r", "С"=>"s","Т"=>"t", "У"=>"u", "Ф"=>"f", "Х"=>"kh", "Ц"=>"c", "Ч"=>"ch", "Ш"=>"sh", "Щ"=>"shh", "Ы"=>"y", "Э"=>"eh", "Ю"=>"yu", "Я"=>"ya", " "=>"-", "."=>"-",", "=>"-", "_"=>"-", "+"=>"-", ":"=>"-", ";"=>"-", "!"=>"-", "?"=>"-");
              $alias = mysql_escape_string($_POST[’pagetitle’]);
              $alias = strip_tags(strtr($alias, $trans));
              $alias = preg_replace(’/&.+?;/’, ’’, $alias);
              $alias = preg_replace("/[^a-zA-Z0-9-]/", "", $alias);
              $alias = preg_replace(’/([-]){2,}/’, ’\1’, $alias);
              $docArray = $modx->getCollection(’modResource’, "id<>’$id’ AND alias=’$alias’");
              if ($docArray)
              {
              $alias .= "-".$id;
              }
              $resource->set(’alias’, $alias);
              $resource->save();
              }
              }
                • 1035
                • 81 Posts
                Quote from: elastic at Aug 02, 2010, 04:36 AM

                Я себе от Evolution плагин rustulatalias переписал под Revo.

                if ($modx->event->name == ’OnDocFormSave’)
                {
                if (!strlen($_POST[’alias’]))
                {
                $id = $scriptProperties[’id’];
                $resource = $modx->getObject(’modResource’, $id);
                $trans = array("а"=>"a", "б"=>"b", "в"=>"v", "г"=>"g", "д"=>"d", "е"=>"e","ё"=>"jo", "ж"=>"zh", "з"=>"z", "и"=>"i", "й"=>"jj", "к"=>"k", "л"=>"l","м"=>"m", "н"=>"n", "о"=>"o", "п"=>"p", "р"=>"r", "с"=>"s", "т"=>"t", "у"=>"u","ф"=>"f", "х"=>"kh", "ц"=>"c", "ч"=>"ch", "ш"=>"sh", "щ"=>"shh", "ы"=>"y","э"=>"eh", "ю"=>"yu", "я"=>"ya", "А"=>"a", "Б"=>"b", "В"=>"v", "Г"=>"g", "Д"=>"d", "Е"=>"e", "Ё"=>"jo", "Ж"=>"zh", "З"=>"z", "И"=>"i", "Й"=>"jj", "К"=>"k", "Л"=>"l", "М"=>"m", "Н"=>"n", "О"=>"o", "П"=>"p", "Р"=>"r", "С"=>"s","Т"=>"t", "У"=>"u", "Ф"=>"f", "Х"=>"kh", "Ц"=>"c", "Ч"=>"ch", "Ш"=>"sh", "Щ"=>"shh", "Ы"=>"y", "Э"=>"eh", "Ю"=>"yu", "Я"=>"ya", " "=>"-", "."=>"-",", "=>"-", "_"=>"-", "+"=>"-", ":"=>"-", ";"=>"-", "!"=>"-", "?"=>"-");
                $alias = mysql_escape_string($_POST[’pagetitle’]);
                $alias = strip_tags(strtr($alias, $trans));
                $alias = preg_replace(’/&.+?;/’, ’’, $alias);
                $alias = preg_replace("/[^a-zA-Z0-9-]/", "", $alias);
                $alias = preg_replace(’/([-]){2,}/’, ’\1’, $alias);
                $docArray = $modx->getCollection(’modResource’, "id<>’$id’ AND alias=’$alias’");
                if ($docArray)
                {
                $alias .= "-".$id;
                }
                $resource->set(’alias’, $alias);
                $resource->save();
                }
                }

                Главное в настройках плагина потом поставьте галочку напротив "OnDocFormSave".
                  Чем я занят на данный момент, читайте в этой теме: [EVO] Ресурс-контроллер?
                  • 13400
                  • 44 Posts
                  Спасибо)) я тоже первым делом попытался адаптировать, но все что пробовал приводило к зависанию документа при сохранении)))
                    • 18955
                    • 24 Posts
                    1) во-первых надо исправить в коде:
                    $alias .= "-".$id;
                    заменить на
                    $alias .= $modx->getOption('setting_friendly_alias_word_delimiter').$id;


                    2) есть небольшая проблема при обновлении материала: когда я удаляю псевдоним, а после жму сохранить, то страница не перегружается целиком, а только аяксом перегружаются значения. И псевдоним становится русским с разделителем ’-’. Т.е. без обработки плагином.
                    Если страницу перегрузить целиком, то оказывается, что значение этого псевдонима верное!

                    засада в том, что если продолжить редактирование после сохранения, то после окончательного сохранения сохранится русский псевдоним!!!
                      • 6862
                      • 97 Posts
                      Quote from: mdomansky at Oct 13, 2010, 06:26 AM

                      1) во-первых надо исправить в коде:
                      $alias .= "-".$id;
                      заменить на
                      $alias .= $modx->getOption('setting_friendly_alias_word_delimiter').$id;


                      2) есть небольшая проблема при обновлении материала: когда я удаляю псевдоним, а после жму сохранить, то страница не перегружается целиком, а только аяксом перегружаются значения. И псевдоним становится русским с разделителем ’-’. Т.е. без обработки плагином.
                      Если страницу перегрузить целиком, то оказывается, что значение этого псевдонима верное!

                      засада в том, что если продолжить редактирование после сохранения, то после окончательного сохранения сохранится русский псевдоним!!!
                      Без всяких плагинов
                      http://modxcms.com/forums/index.php/topic,52617.msg305104.html#msg305104