Мультиязычность

Как можно сделать на modx revo мультиязычный (2-3 языка) магазин на основе стандартных компонентов?
Aleksey
05 марта 2013, 09:41
modx.pro
1
4 346
0

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

Василий Наумкин
05 марта 2013, 13:50
0
На miniShop1 этого нормально не сделать.

На miniShop2 сделать, но там еще нет инструмента связи товаров через контексты, придётся юзать Babel.

Про остальных не знаю.
    Aleksey
    05 марта 2013, 14:15
    0
    Простых вариантов нет — это точно. Может быть miniShop2 порадует.
      Василий Наумкин
      05 марта 2013, 14:24
      0
      Вот прямо сейчас делаю, чтобы чанки писем заказа оформлялись на языке того контекста, в котором он сделан.

      То есть, MS2 пишется с расчётом на мультиязычность. Другой вопрос, насколько удобно получится?
        Галич Сергей
        05 марта 2013, 14:33
        0
        нормульно будет, если babel поддерживает)

        в модиксе мультиязычность намного удобнее чем в других платформах например.
          Смирнов Николай
          Смирнов Николай
          29 мая 2013, 11:02
          0
          В MODX мультиязычность совсем не удобно реализована.
          удобнее чем в других платформах
          Пример платформ приведите, если не затруднит, чтобы не быть голословным.
            Галич Сергей
            30 мая 2013, 02:49
            0
            из наиболее распространненных: joomla, opencart, устроит?)

            незнаю просто ваш опыт, и пробовали ли на модиксе сделать мультиязычность) потому что она реализована идеально :) я лучше не могу придумать, да и не видел
          Aleksey
          06 марта 2013, 08:17
          0
          Тут больше вопрос не в заказах, а в товарах и категориях. Одни и те же товары и категории на разных языках, а вот заказы как раз можно и на одном.
        Владимир
        28 мая 2013, 22:14
        0
        Василий привет… а если я готов проспонсировать мультиязычность для minishop2, это может как то ускорить создание такой фичи? или вам сейчас не до этого?
      Владимир
      02 июня 2013, 11:30
      1
      0
      попробовал babel прикрутить к minishop вроде получилось. чтоб каждому товару не загружать одинаковые картинки написал сниппет небольшой. Берет id документа, получает alias, затем по alias ищет id в главном контексте и выводит фото товара. Подскажите правильно это?
      $res = $modx->getObject('modResource',array('id' => $id));
      $alias = $res->get('alias');
      $resources = $modx->getCollection('modResource', array(
      'alias' => $alias,
      'context_key' => 'web'
      ));
      foreach ($resources as $resource) {
      return($resource->get('id'));
      break;
      }
      посмотреть можно тут testvgrish.tmweb.ru/
        Василий Наумкин
        02 июня 2013, 12:03
        0
        Если используешь babel, то гораздо проще и правильнее получать id другой страницы из его ТВ.

        Типа
        return $modx->resource->getTVValue('babel');
        Не уверен насчет имени ТВ только.
          Владимир
          02 июня 2013, 12:17
          0
          так он выдаст в формате web:10;english:11;de:12
          а как отсюда выдрать номер ресурса под web я не сообразил(((
            Василий Наумкин
            02 июня 2013, 12:44
            0
            $tv = $modx->resource->getTVValue('babel');
            if (preg_match('/web\:(\d+)/'), $tv, $matches) {
            	return $matches[1];
            }
              Владимир
              02 июня 2013, 13:15
              0
              что то не то...500 ую ошибку выкидывает. а регулярка вроде правильная
                Владимир
                02 июня 2013, 13:35
                0
                наверно несоответствие какое то… может надо tv в строку преобразовать?
                  Владимир
                  02 июня 2013, 13:52
                  0
                  if (preg_match('/web\:(\d+)/', $modx->resource->getTVValue('babelLanguageLinks'), $matches)) {
                  	return($matches[1]);
                  }
                  вот так работает!)))
                  СПАСИБО ВАСИЛИЙ!
                Василий Наумкин
                02 июня 2013, 14:31
                0
                Дык, я скобочку забыл закрывающую.

                Не расслабляйся при копипасте =)
                  Сергей С
                  09 апреля 2015, 15:03
                  0
                  Василий не подскажешь как выводить превью (thumbnail) картинку для товара который в другом контексте с помощью msProducts?
          Сергей С
          09 апреля 2015, 14:59
          0
          Спасибо за идею, воспользовался снипетом.
          На странице товара выводит галерею из основного языка, а как вы реализовали это в выводе товаров в категории (то что выводит msProducts)?
            Kirill A. Rusanov
            05 октября 2015, 16:27
            +1
            Я для себя решил эту проблему следующим образом.
            Небольшой сниппет, который делает выборку товаров из указанной категории и из нужного (основного) контекста, leftjoin нужных картинок из msProductFiles, includeTVs babelLanguageLinks. Сниппет разбирает babelLanguageLinks и ставит плейсхолдеры вида [[+префикс.id ресурса в текущем контесте]] => [[url картинки из основного контекста]].
            Потом обычный вывод msProducts без includeThumbs, в шаблоне прописываем наш плейсхолдер.
            Минусы: плюс один запрос, отдельный чанк для вывода товара в каждом контексте.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          21