We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 25062
    • 4 Posts
    Люди помогите!!!
    Делаю сайт на 3-х языках...
    в MODx 3 папки
    ru
    en
    fr
    в каждой документы имеющие одинаковые псевдонимы...
    ru
    |--home
    en
    |--home
    fr
    |--home
    (использую вложенные адреса, псеводнимы без суффиксов и префиксов типа http://xxxxxxx.xxx/ru/home)
    у меня в верху сайта во всех шаблонах есть чанк который берёт псевдоним и меняет папку
    КОД
    -----
    <a title="Русский" href="ru/[*alias*]" style="color:#FFFFFF"><img src="{{namedirimg}}rus.gif" alt="Русский" width="19" height="13" border="0" />Русский </a>&nbsp;&nbsp;&nbsp;<a href="en/[*alias*]" class="lan" title="English" style="color:#FFFFFF"><img src="{{namedirimg}}eng.gif" alt="English" width="19" height="13" border="0" />English</a> &nbsp;&nbsp;&nbsp;<a href="fr/[*alias*]" title="Francais" style="color:#FFFFFF"><img src="{{namedirimg}}fr.gif" alt="Francais" width="19" height="13" border="0" />Francais</a> &nbsp;&nbsp;
    ----
    В процессе работы я понял что не переходит между языками с вот такими путями ru/news/qwerty на en/news/qwerty
    Сделал снипет который берёт [~[*id*]~] и заменяет в нём /ru/ на /en/
    код я потерял из-за 2-х сбоев в работе(уже надоел одно и тоже переписывать)
    в чём там была фигня, замена была через str_replace
    ничего не получалось, но если передавать в снипет вместо [~[*id*]~] какой-то такой путь http://xxxxxxx.xxx/ru/home
    то всё нормально заменяется
    Подскажите способ менять папку в любом адресе, очень надо, пожалуйста помогите....
    хоть какой-нибудь рабочий пример.....!!!!!
      • 785
      • 2,113 Posts
      Что такое «меняет папку» не совсем понятно. Пара простых примеров:
      Создание многоязычного сайта
      Многоязычный сайт с одним шаблоном
      Также можно использовать YAMS
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 25062
        • 4 Posts
        Строение сайта как в вашей первой ссылке http://e-kao.ru/multilingual
        Мне нужно менять допустим /ru/ в любой строке адреса, на /en/ или /fr/
        (короче, чтобы при нажатии на ссылку ENG перейти на анг версию страницы, нажал на ФР и перешёл на такую же страницу сайта на франц )
        чтобы переходить с русской страницы Х на англ или франц страницу Х
        А менять так как было показано в коде конечно удобно но на вложения не переходит(только на xx/xxx переходит, а на xx/xxxx/xxx/xxx/xxx не переходит....)
          • 25062
          • 4 Posts
          Я выбрал для себя нормальный вариант, мне просто нужно сделать (в кнопке)ссылку на такой же адрес страницы только заменив /ru/ на /en/
            • 1788
            • 1,103 Posts
            Quote from: ridik at May 30, 2010, 10:30 AM

            Я выбрал для себя нормальный вариант, мне просто нужно сделать (в кнопке)ссылку на такой же адрес страницы только заменив /ru/ на /en/
            ru/[*alias*]
            en/[*alias*]
              • 26085
              • 494 Posts
              4 строчки на jquery
                • 785
                • 2,113 Posts
                Quote from: ridik at May 30, 2010, 10:27 AM

                А менять так как было показано в коде конечно удобно но на вложения не переходит(только на xx/xxx переходит, а на xx/xxxx/xxx/xxx/xxx не переходит....)
                Вообще непонятно о чем речь – в примере по ссылке все меняется для любого уровня вложенности.
                Quote from: SamZ at May 30, 2010, 04:50 PM

                4 строчки на jquery
                То есть вместо нескольких строк на PHP грузить jquery и отказаться от поддержки для устройств, на которых нет JavaScript? Замечательное предложение.
                  Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                  Статьи о MODx, регулярно новые публикации
                  • 25062
                  • 4 Posts
                  Я пришёл на этот форум за помощью, а в итоге получил 3 моих же ответа и решения типа ru/[*alias*]
                  Никто ничего дельно не предложил, поэтому я решил написать сам и вышло, всё работает:
                  $vr = array ("/en/", "/fr/");
                  $ve = array ("/ru/", "/fr/");
                  $vf = array ("/en/", "/ru/");

                  switch ($templ) {
                  case "ru": $url = str_replace ($vr, "/ru/", $modx->makeURL($modx->documentIdentifier));
                  break;

                  case "en": $url = str_replace ($ve, "/en/", $modx->makeURL($modx->documentIdentifier));
                  break;

                  case "fr": $url = str_replace ($vf, "/fr/", $modx->makeURL($modx->documentIdentifier));
                  break;
                  }
                  return $url;
                  --------------
                  А если кого-то на форуме обидеть(обозвать, высмеять, нахамить) так все сразу будут оправдываться, в ответ лаятся, а как только что-то дельное спросишь так ничё кроме того что и так сказал не услышишь....
                  Спрашиваю по делу: у кого есть решение как-то улучшить этот код?
                    • 785
                    • 2,113 Posts
                    Quote from: ridik at May 31, 2010, 01:35 AM

                    Я пришёл на этот форум за помощью, а в итоге получил 3 моих же ответа и решения типа ru/[*alias*]
                    Никто ничего дельно не предложил, поэтому я решил написать сам и вышло, всё работает:
                    Вам в первом же сообщении был дан работающий код, и то, что «написал сам» практически от него не отличается. Приходя за помощью, учитесь читать ответы, а также правильно формулировать вопросы.

                    Quote from: ridik at May 31, 2010, 01:35 AM

                    Спрашиваю по делу: у кого есть решение как-то улучшить этот код?
                    Много как его можно улучшить. Для начала совсем выкинуть и заменить одной строкой
                    return (str_replace (array ("/ru/", "/en/", "/fr/"), "/".$templ."/", $modx->makeURL($modx->documentIdentifier)));
                      Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
                      Статьи о MODx, регулярно новые публикации