Yams: Ditto и YAMS
- Дополнения
- Yams
- Ditto и YAMS
Yams: Ditto и YAMS
С Ditto обстоит намного сложней, но без него никуда.
К вызову Ditto нужно подключать расширение:
&extenders=`@FILE assets/modules/yams/yams.extender.inc.php`
Если вызов некэшируемый [!Ditto!], то в параметрах вызова надо указывать id и язык:
&id=`(yams_id)` &language=`(yams_mname)`
А в шаблоне плейсхолдеры указываются тогда так:
[+(yams_id)_pagetitle+].
Если вызов кэшируемый [[Ditto]], то автор предлагает поместить в каждый язык по вызову Ditto, также в вызове прописать &id=`id` &language=`имя языка`.
И третий способ по пути наименьшего сопротивления, расширение подключать не нужно, в вызове Ditto чанк с шаблоном имеет окончание соответствующее языку:
[[Ditto? &tpl=`news_(yams_id)`]]
Существует два чанка news_ru, news_en. В зависимости от того, какой язык текущий, параметр (yams_id) подменяется обозначением языка.
А в самих чанках:
<h1>[+introtext_ru+]</h1><p>[+content_ru+]</p>
Это прямой вызов TV-параметров, заменивших встроенные поля.
Неудобен этот способ тем, что нужно создавать большое количество чанков, но работает без осечек, с некоторыми сниппетами, например, eForm-ом иначе и не получится.
Это общая информация, не вдаваясь в мелкие детали, чтобы собрать мультиязычный сайт её вполне достаточно.
Сначала пришлось набить шишек и довольно много с ним помучиться, тем более, что версии постарше не работали так, как нужно, но после нескольких осечек, уже проще разобраться, как работает YAMS и использовать его совершенно не проблематично.