2

インターネット上で人々がこれについて話しているのを見ることができます。使用中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

私がこの考えで正しいのか、それとも何か大きなものを見逃しているのか、誰かアドバイスしてください。また、この問題を克服する方法を教えてください。

4

1 に答える 1

1

/component/abc、Joomla ルーティングによって生成されます。コンポーネント router.php は、コンポーネントが処理するパラメータを処理するため/our-component/?id=32/our-component/my-id32-alias. どのコンポーネントも、他のすべてのコンポーネントが基づいている基本的なルーティングを微調整できることは望ましくありません。そのため、router.php を使用して URL の一部のみを構成できます。

システムプラグインを使用してルーターを拡張する方法を調査できるかもしれませんが、それはあなたが探しているものではないと思います。

http://docs.joomla.org/J2.5:Creating_a_System_Plugin_to_augment_JRouter

何度も読んだのですが、理解に苦しむ。

于 2014-03-12T09:48:11.323 に答える