[英]Languages as dropdown menu, Joomla! 3.1
我在Joomla上有一个网站! 3.1我希望将语言显示为下拉菜单,而不是使用<select>
元素,而不是使用<ul>
-s和<li>
-s作为普通下拉菜单。 活动语言<li>
具有一类“ lang-active”。 在模板覆盖中,我为非活动<li>
添加了一些类,其类名称也为'lang-inactive'。 但是我无法将所有“不启用语言”的<li>
-s放入嵌套的<ul>
标记中,以具有类似于普通下拉菜单的功能。
我希望结构是这样的:
<ul>
<li class="lang-active><a href="#"></a></li>
<ul class="submenu">
<li class="lang-inactive"><a href="#"></a></li>
<li class="lang-inactive"><a href="#"></a></li>
<li class="lang-inactive"><a href="#"></a></li>
</ul>
</ul>
以下是模板替代的代码。
有没有办法做到这一点?
谢谢!
<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' : 'lang-inactive';?>" dir="<?php echo JLanguage::getInstance($language->lang_code)->isRTL() ? 'rtl' : 'ltr' ?>">
<a href="#"></a>
</li>
<?php endif;?>
<?php endforeach;?>
</ul>
这是带有链接的完整代码,当一种语言处于活动状态时,它给我不正确的结果。 有时我的前端有两种英语和一种西班牙语,有时有三种语言。 我想知道问题出在哪里。
<ul class="<?php echo $params->get('inline', 1) ? 'lang-inline' : 'lang-block';?>">
<?php
$active = false;
foreach($list as $k => $language){
if ($language->active) {
$active = $language;
unset($list[$k]);
}
}
if ($params->get('show_active', 0) && $active !== false) : ?>
<li class="lang-active" dir="<?php echo JLanguage::getInstance($active->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 . '.png', $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;?>
<ul class="submenu">
<?php foreach ($list as $language) : ?>
<li class="lang-inactive" 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 . '.png', $language->title_native, array('title' => $language->title_native), true);?><span><?php echo $language->title_native;?></span>
<?php else : ?>
<?php echo $params->get('full_name', 1) ? $language->title_native : strtoupper($language->sef);?>
<?php endif; ?>
</a>
</li>
<?php endforeach;?>
</ul>
</ul>
您可以在创建列表之前找到当前使用的语言。
<ul class="<?php echo $params->get('inline', 1) ? 'lang-inline' : 'lang-block';?>">
<?php
$active = false;
foreach($list as $k => $language){
if ($language->active) {
$active = $language;
unset($list[$k]);
}
}
if ($params->get('show_active', 0) && $active !== false) : ?>
<li class="lang-active" dir="<?php echo JLanguage::getInstance($active->lang_code)->isRTL() ? 'rtl' : 'ltr' ?>">
<a href="#"></a>
</li>
<?php endif;?>
<ul class="submenu">
<?php foreach ($list as $language) : ?>
<li class="lang-inactive" dir="<?php echo JLanguage::getInstance($language->lang_code)->isRTL() ? 'rtl' : 'ltr' ?>">
<a href="#"></a>
</li>
<?php endforeach;?>
</ul>
</ul>
这将创建一个列表活动项目(如果列表配置为显示它)和一个带有其余非活动项目的子列表。
当然,您需要将实际内容添加到列表(链接,图像等)中才能使其可见。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.