5

joomla 2.5 テンプレートを作成しようとしています。index.php で次のコードを使用して、トップ メニュー項目を表示しています。

 <?php if ($this->countModules('topmenu')): ?>    
  <hr>
  <div class="container">
     <jdoc:include type="modules" name="topmenu"/>
  </div>
<?php endif; ?>

上記のコードは、次の html を生成します

<ul class="menunav">
   <li class="item-464 active"><a href="/joomla2/" >Home</a></li>
   <li class="item-444"><a href="/joomla2/index.php/sample-sites" >Sample Sites</a>
   </li><li class="item-207"><a href="http://joomla.org" >Joomla.org</a></li>
</ul>

問題は、トップ メニュー項目の設計に使用したクラス名でnavあり、次のような html がある場合、メニューは完全に機能するはずです。

  <ul class="nav">
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">Sample Sites</a></li>
      <li><a href="#">Joomla ORG</a></li>
  </ul>

class suffixについて聞いたことがありますが、管理パネルから実行しないようにしています。新しいユーザーが私のテンプレートを使用するたびに、管理パネルからクラス サフィックスを追加する必要があるためです。

次のコードを試しましたが、何も変更されていません。

<script type="text/javascript">
    $(document).ready(function() {
       $('.menunav').removeClass('menunav').addClass('nav');
    });
</script>

joomla 2.5でトップメニューのクラス名を変更する方法を教えてください。

4

1 に答える 1

4

最初に私は間違った答えをしました。以下で確認できます。役に立つかもしれません。

今、本当の答え。メニュー出力のデフォルト スタイルをオーバーライドする必要があります。テンプレート フォルダー内にフォルダー html を作成し、その中にフォルダー mod_menu を作成します。default.phpからそこにファイルをコピーしますmodules\mod_menu\tmpl

ファイルを開き、行を変更します

<ul class="menu<?php echo $class_sfx;?>"

<ul class="nav".

Joomla はオーバーライドを使用してメニューをレンダリングします。このようにして、コア ファイルを変更せずに Joomla の出力をオーバーライドできます。

そして今、カスタムモジュール出力を作成するための以前の回答は、誰かに役立つかもしれません:

を新規作成する必要がありますmodule chrome。テンプレートの html フォルダーに、 というファイルを作成しますmodules.php

内部では、このような関数を作成します

defined('_JEXEC') or die;

function modChrome_nosfx($module, &$params, &$attribs)
{
    if (!empty ($module->content)) : ?>
        <div class="moduletable">
        <?php if ($module->showtitle != 0) : ?>
            <h3><?php echo $module->title; ?></h3>
        <?php endif; ?>
            <?php echo $module->content; ?>
        </div>
    <?php endif;
}

このようにして、カスタム モジュール出力を作成できます。

次に、テンプレート ファイルに、次のようにモジュールを含めます。

 <?php if ($this->countModules('topmenu')): ?>    
  <hr>
  <div class="container">
     <jdoc:include type="modules" name="topmenu" style="nosfx" />
  </div>
<?php endif; ?>

style="nosfx"新しい関数を追加した後、モジュールをレンダリングするために使用されます。デフォルトのスタイルはxhtmlで、そのコードはtemplates/system/htmlmodules.php ファイルのフォルダーにあります。

于 2013-03-01T08:34:00.237 に答える