UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: pomoykin от 23 Июня 2011, 12:43:11

Название: [Решено]языковая панель в шаблоне
Отправлено: pomoykin от 23 Июня 2011, 12:43:11
Прошу простить нуба, подскажите, пожалуйста, как в шаблоне прописать выбор языка? Нужно, чтобы как в админке была языковая панелька. Не ручками же ее рисовать...

Сайт на трех языках, вроде разобрался как наполнять контент, с шаблонами XSLT только два часа как начал разбираться (собственно, с ЮМИ три часа как дружу) :)

Большое спасибо за помощь!
Название: Re:языковая панель в шаблоне
Отправлено: admin от 23 Июня 2011, 12:50:04
то есть вы хотите чтобы у вас были ссылки на разные версии сайта для пользователей?
Название: Re:языковая панель в шаблоне
Отправлено: pomoykin от 23 Июня 2011, 12:55:42
да-да-да! нужны ссылочки на разные языки (языки прописаны в системе, наполнение есть, если руками УРЛ забивать - работают).
думаю, что руками в шаблоне ХыТыМыЛить как-то некомильфо :)
должна быть какая-то функция али макрос...
Название: Re:языковая панель в шаблоне
Отправлено: admin от 23 Июня 2011, 13:00:36
для вывода существующих языковых версий есть макрос %system getLangsList% — Выводит список существующих языковых версий сайта. почитайте про него в документации http://help-dev.umi-cms.ru/system.getLangsList.html

и может где понадобиться
%pre_lang% — Выводит языковой префикс текущей языковой версии сайта. http://help-dev.umi-cms.ru/global.pre_lang.html
Название: Re:языковая панель в шаблоне
Отправлено: pomoykin от 23 Июня 2011, 13:13:48
спасибо, пойду копать в эту сторону.
о результатах отпишусь.

ЗЫ: такое ощущение, что никто на ЮМИ не реализовывал многоязычность - информации в сети ноль :(

ЗЗЫ: а не подскажите, где лежат XSLT-шаблоны админки? может, проще там подсмотреть, чем лисапед изобретать?
Название: Re:языковая панель в шаблоне
Отправлено: admin от 23 Июня 2011, 13:18:15
)) направление насчет админки интересное.

попробуйте может там и есть в явном виде. они лежат в /styles/skins/mac
Название: Re:языковая панель в шаблоне
Отправлено: pomoykin от 23 Июня 2011, 14:39:14
вобщем, чую, что нужное лежит в /styles/skins/mac/interface/ui/site-langs.xsl но применить это не могу в силу слабых познаний XSLT... тупое копирование куска кода не спасает - видимо, из-за ошибки дает пустую страницу...

может, кто быстро прояснит момент или тки самому обложиться букварями?
Название: Re:языковая панель в шаблоне
Отправлено: admin от 23 Июня 2011, 14:51:24
сделайте вывод макроса <xsl:apply-templates select="document('udata://system/getLangsList')/udata" mode="lang_change">

создайте шаблоны типа
<xsl:template match="udata" mode="lang_change">
 <xsl:apply-templates select="items/item" mode="lang_change"/>
 </xsl:template>

 <xsl:template match="item" mode="lang_change">
<xsl:variable name="lang_link" select="@prefix."/>
 <a href="{@prefix}.ссылка-текущей-страницы">
<xsl:value-of select="."/>
 </a>

 </xsl:template>

писал слету, так что могут быть помарки
Название: Re:языковая панель в шаблоне
Отправлено: pomoykin от 23 Июня 2011, 15:08:33
спасибище огроменное!

я тем временем решил проблему другим путем:

1. скопировал /styles/skins/mac/interface/ui/site-langs.xsl в /xsltTpls
2. в скопированном файле добавил определение переменных, которых не хватало (где-то она в админке определяется раньше, наверное)
<xsl:variable name="lang-prefix" select="/result/@pre-lang"/>
<xsl:variable name="site-langs" select="document('udata://system/getLangsList')/udata" />
3. подредактировал в том же файле генерируемые пути, чтобы в админку не выносило :)
4. добавил вызов этого фйлика в /xsltTpls/__common.xsl
5. в шаблон довавил
<xsl:apply-templates select="$site-langs" />

всё прекрасно работает!

пишу подробно, ибо мало ли кому понадобится, а в сети про это ни слова не нашел...

еще раз спасибо Уважаемому Админу за помощь!
Название: Re:языковая панель в шаблоне
Отправлено: admin от 23 Июня 2011, 15:11:38
отличное решение) рад что все получилось даже лучше чем я думал

и хорошо что отписали, действительно о языковых версиях почти нет информации
Название: Re:языковая панель в шаблоне
Отправлено: pomoykin от 23 Июня 2011, 15:15:19
вобщем, на тему можно вешать [solved]
мне ЮМИ понравилась, буду разбираться дальше и тусоваться тут :)
еще раз спасибо за помощь!