簡體   English   中英

下拉菜單中的語言,Joomla! 3.1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM