Переключатель языка, как его слепить так как нужно?

  • 41 Ответов
  • 5300 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Подскажите пожалуйста. Где можно выставить чтобы чтобы обозначения языка (флажки) стояли в ряд,а не в колонку?

Вот что я имею в виду, у меня сейчас вот так: 

RU
UA
EN


Как сделать чтобы вот так было: "RU UA EN"   ?

 ^-^


*

Оффлайн HiopsNerevar

  • *****
  • 656
  • [+]88 / [-]0
  • Я удобный.
    • Просмотр профиля
Посмотрите стиль для флажков и поставьте в CSS float: left;
Это бидаль пича.

К сожалению мне это не помогло. Даже почему то нижний блок поднялся вверх на ~50px. То что код сырой я не отрицаю ни сколько, от туда и ошибки. Может есть ссылка к какому нибудь сайту где это реализовано? Там я уже firebug-ом сам "прошерстю" и думаю разберусь. Как говорят "истинна познается в сравнении", так и я, буду сравнивать!

*

Оффлайн sergoguga

  • ******
  • 954
  • [+]70 / [-]8
  • www.mpbox.ru
    • Просмотр профиля
    • Секреты веб-разработки
Посмотрите стиль для флажков и поставьте в CSS float: left;
ну и width добавить, не?
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!

Есть одна проблемка. Много искал, но так и не нашел ответа. Стандартный модуль переключения языков позволяет отображаться только в 3-х вариантах: флаги (без подписей), выпадающий текстовый список (без флагов) и горизонтальное текстовое меню (тоже без флагов).
Есть ли способ заставить выпадающий список отображаться с флагами и названием языка?
Можно конечно сделать простое выпадающее CSS-меню с ссылками на главные страницы языковых версий и оформить его как душе угодно, но тогда не будет связи между пунктами меню. 
modules\mod_languages\tmpl тут лежит файлик default.php который, как я понял отвечает за то как переключатель выглядит (помимо css).
Спойлер
[свернуть]
Кто подскажет что нужно дописать, чтобы перед пунктом в выпадающем списке языков стояли флаги?
Или может альтернативный модуль переключения существует?

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
Вот этот кусочек отвечает за вывод выподющего списка:

Код: (php) [Выделить]
<select class="inputbox" onchange="document.location.replace(this.value);" >
<?php foreach($list as $language):?>
<option dir=<?php echo JLanguage::getInstance($language->lang_code)->isRTL()? '"rtl"' '"ltr"'?> value="<?php echo $language->link;?>" <?php echo $language->active 'selected="selected"' ''?>>
<?php echo $language->title_native;?></option>
<?php endforeach; ?>
</select>
А добавить нужно вот это:

Код: (php) [Выделить]
<?php echo JHtml::_('image''mod_languages/'.$language->image.'.gif'$language->title_native, array('title'=>$language->title_native), true);?>
Но разве это можно добавить рядом с option?

Спасибо за быстрый ответ!
Можно ли добавить рядом с option? Не знаю. Эти куски, на сколько я понял, взаимоисключающие, иначе в чем тогда логика предупреждений в настройках модуля: Если включен параметр 'Включить выпадающий список', указанные ниже настройки будут игнорироваться
Сомневаюсь что рядом, внутри - может быть, но точно не в таком же виде.
Мне не понятно почему стандартный модуль это не позволяет. И в настройках и в коде (в php не разбираюсь) видно что идет проверка: если dropdown включен, то никаких флагов.
Если посмотреть на строку про select, то видим value="<?php echo $language->link;?>" похоже как раз на пункт языка. Если после открывающей кавычки воткнуть еще одно эхо например: value="<?php echo кусок выводящий нужный gif ?> <?php echo $language->link;?>" то может и получится, но что именно написать я не понимаю. вот это: echo JHtml::_('image', 'mod_languages/'.$language->image.'.gif' ?
попробую щас на денвере но сильно сомневаюсь что сработает. Если все так просто то почему в сети нет рецептов... да и модулей альтернативных, с расширенными настройками я не нашел. Слайдшоу всяких тьма, а про языки ничего.

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
По идее так:

Код: (php) [Выделить]
<select class="inputbox" onchange="document.location.replace(this.value);" >
<?php foreach($list as $language):?>
<option dir=<?php echo JLanguage::getInstance($language->lang_code)->isRTL()? '"rtl"' '"ltr"'?> value="<?php echo $language->link;?>" <?php echo $language->active 'selected="selected"' ''?>>
<?php echo JHtml::_('image''mod_languages/'.$language->image.'.gif'$language->title_native, array('title'=>$language->title_native), true);?> <?php echo $language->title_native;?></option>
<?php endforeach; ?>
</select>

Не работает. код с подстановкой флага полюбому должен быть в value... но как его правильно написать я не представляю

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
Почему не работает? И почему Вы решили, что в value? Как раз таки в value это не надо добавлять, а именно между тегами option, где по идее все что угодно можно написать: http://htmlbook.ru/html/select

Верно, ошибся, но тем не менее кусок кода про картинку не работает. Может препятствуют другие куски? Я их не удалял.
Сейчас весь код выглядит так:
<?php
/**
 * @package Joomla.Site
 * @subpackage mod_languages
 * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 */

// no direct access
defined('_JEXEC') or die('Restricted access');
JHtml::_('stylesheet''mod_languages/template.css', array(), true);
?>

<div class="mod-languages<?php echo $moduleclass_sfx ?>">
<?php if ($headerText) : ?>
<div class="pretext"><p><?php echo $headerText?></p></div>
<?php endif; ?>

<?php if ($params->get('dropdown'1)) : ?>
<form name="lang" method="post" action="<?php echo JURI::current(); ?>">
<select class="inputbox" onchange="document.location.replace(this.value);" >
<?php foreach($list as $language):?>
<option dir=<?php echo JLanguage::getInstance($language->lang_code)->isRTL()? '"rtl"' '"ltr"'?> value="<?php echo $language->link;?>" <?php echo $language->active 'selected="selected"' ''?>>
<?php echo JHtml::_('image''mod_languages/'.$language->image.'.gif'$language->title_native, array('title'=>$language->title_native), true);?>
<?php echo $language->title_native;?></option>
<?php endforeach; ?>
</select>
</form>
<?php else : ?>
<ul class="<?php echo $params->get('inline'1)? 'lang-inline' 'lang-block';?>">
<?php foreach($list as $language):?>
<?php if ($params->get('show_active'0) || !$language->active):?>
<li class="<?php echo $language->active 'lang-active' '';?>" dir="<?php echo JLanguage::getInstance($language->lang_code)->isRTL()? 'rtl' 'ltr' ?>">
<a href="<?php echo $language->link;?>">
<?php if ($params->get('image'1)):?>
<?php echo JHtml::_('image''mod_languages/'.$language->image.'.gif'$language->title_native, array('title'=>$language->title_native), true);?>
<?php else : ?>
<?php echo $params->get('full_name'1)? $language->title_native strtoupper($language->sef);?>
<?php endif; ?>
</a>
</li>
<?php endif;?>
<?php endforeach;?>
</ul>
<?php endif; ?>

<?php if ($footerText) : ?>
<div class="posttext"><p><?php echo $footerText?></p></div>
<?php endif; ?>
</div>

по прежнему денвер, кэш чистил...


*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit

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

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit

*

Оффлайн verstalshik

у вас языки как сделаны - на поддоменах? если на поддоменах или разных доменах, то ставьте плагинчик и модуль переключения языков сделать как код, Ефаныч советовал как-то в какой-то теме соседней, а штатный модуль переключения выкиньте.
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!

Joomla 2.5.6 шаблон "minisite"  T3Framework от JoomlArt. Что значит переопределен вывод модуля языков? Похож на все остальные, код не сравнивал правда, гляну.
Языки сделаны встроенными средствами на одном домене, иначе я не парился бы со штатным модулем, сделал бы список выпадающий на CSS и всё. А совет Ефаныча позволял связывать пункты меню? Это ведь единственная польза от штатного модуля.

*

Оффлайн verstalshik

так все-таки как языки разделены? сено-солома... домен.зона/ru/Бла-бла и домен.зона/en/блабла ?
по совету Ефаныча кнопки - это ссылки на другой домен, т.е. в текущий путь вставляется нужный домен и все! т.е. связь пунктов меню в принципе не нужна! красиво!
например, вы находитесь на русскоязычной страничке abcde.ru/block33/page204.html, жмем кнопку и вместо abcde.ru вставляется abcde.com - в результате мы попадаем на англоязычную страничку abcde.com/block33/page204.html
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!

я же говорю, языки сделаны встроенными средствами на одном домене. именно так как вы написали: домен.зона/ru/Бла-бла и домен.зона/en/блабла
но никак у меня не укладывается мысль, что на php нельзя дописать массив условий и проверок какие языки активны и если выводится в списке такой-то язык, то передним должен стоять вот этот конкретный гиф. Я космос придумал? Для знающих Joomla и PHP, мне кажется, это как почесаться и чаю попить. Подправил штатный модуль и все в шоколаде. Хорошо конечно когда языковые версии находятся в своих зонах, но у меня так не случилось


*

Оффлайн Shustry

  • *****
  • 6426
  • [+]736 / [-]3
  • Рисую дизайны
    • Просмотр профиля
    • Примеры работ
img внутрь option не работает! Но можно назначить фоном:
Код: (php) [Выделить]
<?php if ($params->get('dropdown'1)) : ?>
<form name="lang" method="post" action="<?php echo JURI::current(); ?>">
<select class="inputbox" onchange="document.location.replace(this.value);" >
<?php foreach($list as $language):?>
<?php $imgbg 'media/mod_languages/images/'.$language->image.'.gif'?>
<option dir=<?php echo JLanguage::getInstance($language->lang_code)->isRTL()? '"rtl"' '"ltr"'?> value="<?php echo $language->link;?>" <?php echo $language->active 'selected="selected"' ''?>
style='padding:2px 2px 2px 20px; background: url(<?php echo $imgbg;?>) 0 center no-repeat;'>
<?php echo $language->title_native;?>
</option>
<?php endforeach; ?>
</select>
</form>
<?php else : ?>
Бесплатно консультирую по дизайну и вёрстке (только в icq и личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!


*

Оффлайн sergoguga

  • ******
  • 954
  • [+]70 / [-]8
  • www.mpbox.ru
    • Просмотр профиля
    • Секреты веб-разработки
Во как, а жаль...
вот оно чо!!))
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!

*

Оффлайн brood

Ребят а как сделать чтоб не было выпадаюшего списко ни флагов, чтоб было только название языка. Вот как на этом сайте: http://redsupertools.com/index.html . Как это сделать? 


*

Оффлайн brood

Там такого нету. Может я что то не так делаю? Скрином можете скинуть? Спасибо !

*

Оффлайн brood

Все нашел... Sorry....

Добрый день..

Решил написать сюдой.
у меня задача сделать выпадающий список просто флагами.
ну это сделано, но мне нужно чтоб активный язык отображался первым, то есть видимым.

в выпадающем списке видно только один язык.
может кто делал такое?
подскажите.

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
Добрый день..

Решил написать сюдой.
у меня задача сделать выпадающий список просто флагами.
ну это сделано, но мне нужно чтоб активный язык отображался первым, то есть видимым.

в выпадающем списке видно только один язык.
может кто делал такое?
подскажите.
Чисто теоретически такое возможно, но сложновато. Надо переписывать логику в макете вывода языков.

Чисто теоретически такое возможно, но сложновато. Надо переписывать логику в макете вывода языков.

Это только в модуле?

ну суть такая? :
если есть активный язык, то он выводится первый, если не активный то вторым?

или в другой способ?

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit