2

次のことをしたい:

背景にいくつかの画像が表示される Joomla Web サイトを開発しています。

私が望むのは、表示されるウェブサイトのセクションに応じて異なる画像を表示することです。たとえば、次のようになります。

HOME: ../images/img1.jpg ../images/img2.jpg

私たちについて: ../images/img3.jpg ../images/img4.jpg

バックエンドの「編集メニュー項目」レイアウトに何らかのオーバーライドを使用して、そのセクションに表示する写真を選択する新しいフィールドを追加し、それらのファイルをテンプレートに HTML として出力することを考えました。

これを行う方法はありますか?

または、もっと簡単な方法があるかもしれません。

4

4 に答える 4

2

これは、テンプレート スタイルのバリエーション (2.5 以降) またはさまざまな拡張機能を使用してこれを行うさまざまな方法があるため、Joomla でコードを記述する必要があるものではありません。

シンプルなソリューションが必要で、1.5->2.5 で機能する場合、長年にわたって「 Menu Dependent Items 」拡張機能を使用してきました。

于 2012-11-12T02:46:49.413 に答える
0

テンプレート スタイルの使用に同意します。

テンプレートをコピーし、背景画像の新しいパラメーターを template.xml に追加します。次に、テンプレートの index.php に画像を挿入するコードを追加します。

次に、使用する各画像のスタイルを作成します。

適切なスタイルを適切なメニュー項目に割り当てます。

于 2012-11-12T04:52:06.367 に答える
0

これはあなたに役立つかもしれません....

まず、フィールドを作成する必要がありますadministrator/components/com_menus/models/forms/item.xml

<field name="your_fieldname" type="media"
                label="fieldname"
                description="Give your field description" />

この行を追加しますadministrator/components/com_menus/views/item/tmpl/edit.php

<li><?php echo $this->form->getLabel('your_fieldname'); ?>
<?php echo $this->form->getInput('your_fieldname'); ?></li>

にフィールドをもう 1 つ追加しyourtableprefix_menuます。フィールド名は自分のフィールド名にする必要があります。

追加した

ファイル内includes/menu.php、関数 load()

次の行にフィールド名を追加します

$query->select('m.id, m.menutype, m.title, m.alias, m.path AS route, m.link, m.type, m.level, m.language,m.our_image');

私は追加されましたm.our_image。このように、フィールド名を追加できます

ファイルindex.php

$menu = &JSite::getMenu();
$menuItem = $menu->getActive();
print_r($menuItem); 
echo $menuItem->your_fieldname; //for get the particular value
于 2012-11-12T05:38:20.280 に答える
0

あなたの質問が理解できれば

<?php
$menu = &JSite::getMenu();
$menuItem = $menu->getActive();

print_r($menuItem);
?>

現在のメニューに応じて、CSS を出力できます。問題がある場合はお知らせください。

于 2012-11-12T01:40:40.170 に答える