Мультиязычность
Как можно сделать на modx revo мультиязычный (2-3 языка) магазин на основе стандартных компонентов?
Комментарии: 21
На miniShop1 этого нормально не сделать.
На miniShop2 сделать, но там еще нет инструмента связи товаров через контексты, придётся юзать Babel.
Про остальных не знаю.
На miniShop2 сделать, но там еще нет инструмента связи товаров через контексты, придётся юзать Babel.
Про остальных не знаю.
Простых вариантов нет — это точно. Может быть miniShop2 порадует.
Вот прямо сейчас делаю, чтобы чанки писем заказа оформлялись на языке того контекста, в котором он сделан.
То есть, MS2 пишется с расчётом на мультиязычность. Другой вопрос, насколько удобно получится?
То есть, MS2 пишется с расчётом на мультиязычность. Другой вопрос, насколько удобно получится?
нормульно будет, если babel поддерживает)
в модиксе мультиязычность намного удобнее чем в других платформах например.
в модиксе мультиязычность намного удобнее чем в других платформах например.
В MODX мультиязычность совсем не удобно реализована.
удобнее чем в других платформахПример платформ приведите, если не затруднит, чтобы не быть голословным.
из наиболее распространненных: joomla, opencart, устроит?)
незнаю просто ваш опыт, и пробовали ли на модиксе сделать мультиязычность) потому что она реализована идеально :) я лучше не могу придумать, да и не видел
незнаю просто ваш опыт, и пробовали ли на модиксе сделать мультиязычность) потому что она реализована идеально :) я лучше не могу придумать, да и не видел
Тут больше вопрос не в заказах, а в товарах и категориях. Одни и те же товары и категории на разных языках, а вот заказы как раз можно и на одном.
Василий привет… а если я готов проспонсировать мультиязычность для minishop2, это может как то ускорить создание такой фичи? или вам сейчас не до этого?
Вообще не до того.
попробовал 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/
Если используешь babel, то гораздо проще и правильнее получать id другой страницы из его ТВ.
Типа
Типа
return $modx->resource->getTVValue('babel');
Не уверен насчет имени ТВ только.
так он выдаст в формате web:10;english:11;de:12
а как отсюда выдрать номер ресурса под web я не сообразил(((
а как отсюда выдрать номер ресурса под web я не сообразил(((
$tv = $modx->resource->getTVValue('babel');
if (preg_match('/web\:(\d+)/'), $tv, $matches) {
return $matches[1];
}
что то не то...500 ую ошибку выкидывает. а регулярка вроде правильная
наверно несоответствие какое то… может надо tv в строку преобразовать?
if (preg_match('/web\:(\d+)/', $modx->resource->getTVValue('babelLanguageLinks'), $matches)) {
return($matches[1]);
}
вот так работает!)))СПАСИБО ВАСИЛИЙ!
На здоровье!
Дык, я скобочку забыл закрывающую.
Не расслабляйся при копипасте =)
Не расслабляйся при копипасте =)
Василий не подскажешь как выводить превью (thumbnail) картинку для товара который в другом контексте с помощью msProducts?
Спасибо за идею, воспользовался снипетом.
На странице товара выводит галерею из основного языка, а как вы реализовали это в выводе товаров в категории (то что выводит msProducts)?
На странице товара выводит галерею из основного языка, а как вы реализовали это в выводе товаров в категории (то что выводит msProducts)?
Я для себя решил эту проблему следующим образом.
Небольшой сниппет, который делает выборку товаров из указанной категории и из нужного (основного) контекста, leftjoin нужных картинок из msProductFiles, includeTVs babelLanguageLinks. Сниппет разбирает babelLanguageLinks и ставит плейсхолдеры вида [[+префикс.id ресурса в текущем контесте]] => [[url картинки из основного контекста]].
Потом обычный вывод msProducts без includeThumbs, в шаблоне прописываем наш плейсхолдер.
Минусы: плюс один запрос, отдельный чанк для вывода товара в каждом контексте.
Небольшой сниппет, который делает выборку товаров из указанной категории и из нужного (основного) контекста, leftjoin нужных картинок из msProductFiles, includeTVs babelLanguageLinks. Сниппет разбирает babelLanguageLinks и ставит плейсхолдеры вида [[+префикс.id ресурса в текущем контесте]] => [[url картинки из основного контекста]].
Потом обычный вывод msProducts без includeThumbs, в шаблоне прописываем наш плейсхолдер.
Минусы: плюс один запрос, отдельный чанк для вывода товара в каждом контексте.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.