カスタムのcom_tags/tagsレイアウトを作成したいのですが、メニュー項目のparent_idフィールドを保持する必要があります。
私がやったことは作成です:
/templates/mytemplate/html/com_tags/tags/species.php
/templates/mytemplate/html/com_tags/tags/species.xml (copied from administrator/components/tags/config.xml)
これにより、メニュータイプポップアップに「種」エントリが表示されますが、カスタマイズフィールドはありません。 「すべてのタグのリスト」エントリにあるparent_idフィールドが必要です。
私はコードをデバッグしました、そして明らかに私は必要です
/templates/mytemplate/html/com_tags/metadata.xml
ある種の「メニュー」エントリを含める必要があるようです。これがどのようにフォーマットされるべきかの例を見つけることができません。
これは、Akeebaバックアップからのサンプルファイルです https://github.com/akeeba/contactus/blob/master/component/frontend/views/item/metadata.xml しかし、追加する方法がわかりませんここにオプションがありますか?
私の質問を理解した場合、com_tagsコンポーネントのカスタムメニュータイプを作成しようとしていて、メニューマネージャーでメニュー項目を作成するときにメニュー項目のIDを設定する必要があります。
その場合は、config.xmlをコピーしないでください。
あなたはコピーする必要があります
joomlaRoot/components/com_tags/views/tags/default.xml
これには、親IDのフィールドと、それに定義されたパラメータがあります。
Joomlaがこれが別のレイアウトであることを認識できるように、名前を種.xmlに変更し、タイトル/オプションテキストを変更してください。
これがお役に立てば幸いです。
私が正しく理解している場合、別のオプションがあります。それは、ある種のオーバーライドなしでは達成するのが難しい通常の方法を「無視」し、オーバーライドがphpファイルであることを使用して、情報を個別に取得することです。
ここでの私の答えは、メニューアイテムIDを取得して特定のページへのリンクを作成するための次のことを示しています。
_$app = JFactory::getApplication();
$menu = $app->getMenu();
$menuItem = $menu->getItems( 'link', 'index.php?option=com_example&view=something', true );
echo JRoute::_('index.php?Itemid='.$menuItem->id);
_
この場合、_$menuItem
_は実際にはそのメニュー項目に関する情報を含むオブジェクトです。
そう.....
_$app = JFactory::getApplication();
$menu = $app->getMenu();
$menuItem = $menu->getItems( 'link', 'index.php?option=com_example&view=something', true );
echo JRoute::_('index.php?Itemid='.$menuItem->parent_id);
_
親メニュー項目へのリンクを取得する必要があります。
ただし、現在のメニュー項目だけが必要な場合があるため、次の行を調整します。
_$menuItem = $menu->getItems( 'link', 'index.php?option=com_example&view=something', true );
_
に:
_$menuItem = $menu->getActive();
_
現在のページの親のリンクのみを取得できるはずです。実験すると、これをさらに進めることができます。$menu->getItems()
には、使用できるオプションがたくさんあります(ただし、適切なドキュメントページを見つけることができませんでした)。