インターネット上で人々がこれについて話しているのを見ることができます。使用中JRoute::_($URL)
は、最初の値を計算してから、Itemid
次のように入力 URL に追加する必要があります。
JRoute::_('index.php?option=com_abc&view=xyz&id=32'.'&Itemid='.$itemid);
Itemid
ただし、指定された URL から Joomla コア ルーター内で自動的に計算することが常に望ましいです。
今日の Joomla 1.5 から 3.2 以降、
JRouterSite::_buildSefRoute
または最新のJRouterSite::buildSefRoute
大きく変わっていません。
ファイルのコードで/libraries/cms/router/site.php
、目的の形式の sef URL を作成するにはItemid=XXX
、渡された URL に含めることが必須であることがわかります。さもないと
JRoute::_('index.php?option=com_abc&view=xyz&id=32');
次のような URL を生成します
`/component/abc/?view=xyz&id=32`
希望とは異なり
/our-component/?id=32
our-component
を指すメニュー項目のメニューエイリアスはどこですか
index.php?option=com_abc&view=xyz
コンポーネントごとに独自の router.php ファイルを使用することで、後半?view=xyz&id=32
を処理できることがわかっています。しかし、コンポーネントのベース URLは、そのカスタム router.php の範囲外です。/component/abc
私がこの考えで正しいのか、それとも何か大きなものを見逃しているのか、誰かアドバイスしてください。また、この問題を克服する方法を教えてください。