Интересная, простая реализация переключения языков (решено)

Созрела у меня глубокой ночью одна интересная идея, на своём сайте я уже использую плагин переключения языков (http://livestreetcms.com/addons/view/139/) и впрочем, как любой веб-мастер, желающий улучшить юзабилити сайта я всячески пытаюсь извратиться. Предупреждаю сразу, мой топик из темы: «пытался сделать сам, вышло… но не до конца» и несёт в себе скорее просьбу помочь, чем полноценную реализацию.

Если все вместе реализуем подобную вещь, я думаю очень многим это пригодится.
Добро пожаловать под кат!

Установив плагин, выглядит переключатель довольно функционально, вот так:

Задумал я вот, что: неактивный язык попросту не показывать. Выглядеть это будет примерно вот так:


Вобще выводится этот блок с помощью цикла, вот так:
{foreach from=$AllLanguages item=oOneLang}
  <div class="OneLang {if $oOneLang==$oCurrentLanguage}active{/if}">
    <a href="?{$URLToChangeLang}={$oOneLang|escape:'url'}">{$oOneLang|escape:'html'}</a>
  </div>
{/foreach}

Изначальная цель — это сделать флажок, при нажатии на который меняется язык. Я пытался сделать с помощью css (использовав для активного елемента display:none), но там путаница такая выходит.
Товарищи знатоки, а можно ли сделать так? Убрать цикл и сделать два условных оператора — если сейчас язык==russian, то показываем только ссылку при нажатии на которую язык меняется на английский и наоборот — если язык==english, то показываем только ссылку при нажатии на которую язык меняется на русский.

В программировании я не силён, поэтому очень надеюсь на помощь знающих людей, на вашу помощь.

7 комментариев

avatar

{foreach from=$AllLanguages item=oOneLang}
  {if $oOneLang!=$oCurrentLanguage}
  <div class="OneLang">
    <a href="?{$URLToChangeLang}={$oOneLang|escape:'url'}">{$oOneLang|escape:'html'}</a>
  </div>
  {/if}
{/foreach}


вот так ваша задача решается.
avatar
PSNet спасибо за совет! Но он, к сожалению не полностью решает задачу, которую я поставил. Как бы избавится от цикла и поставить отдельные условия? Ну вот так к примеру:
{if $oOneLang!=english}

{/if}
{if $oOneLang!=russian}

{/if}
Возможно я не достаточно правильно описал, но я планирую сделать ссылки картинками.
avatar

{if $oOneLang=='english'} .....

{if $oOneLang=='russian'} .....

Хотите — пишите так, просто цикл из расчета того, что языков может быть много. Добавите в конфиге ещё и украинский язык и что, будете переписывать модуль заново?

Сделайте тогда уже как-то так:

{foreach from=$AllLanguages item=oOneLang}
  {if $oOneLang!=$oCurrentLanguage}
  <div class="OneLang">
    <a href="?{$URLToChangeLang}={$oOneLang|escape:'url'}">
      <img src="{$oConfig->get('path.static.skin')}/images/languages/{$oOneLang|escape:'url'}.png" border="0" />
    </a>
  </div>
  {/if}
{/foreach}


и положите в папку вашего скина в images/languages файлы изображений ваших языков в виде russian.png и english.png
avatar
Извиняюсь за такой комментарий, так спешил отправить что даже не просмотрел.
avatar
Спасибо! Всё работает!
avatar
можете как нибудь в конце сайта сделать типо как в вк
avatar
поместите указанный выше код в футер
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.