web-dev-qa-db-ja.com

変数に基づく動的URL(エイリアス)

APIからのデータに基づいて、複数の小売業者を持つコンポーネントがあります。

各小売業者には「もっと読む」リンクがあります。

今、私が必要なのは、バックエンドの各小売業者にエイリアス/メニュー項目を追加する必要なしに、各小売業者に独自のエイリアスを与えることです。

したがって、特定の「続きを読む」リンクをクリックすると、通常の(非SEF)URLは次のようになります。

https://www.mysite.com?index.php&option=com_wherecanisave&retailerID=1

ターゲットページで、もう一度APIを呼び出して、小売業者の名前を調べます。次に、URLを次のようにします。

http://www.mysite.com/joes-car-wash

バックエンドやデータベースにエイリアスを追加する必要なしに、これをどのように実現できますか?

2
Jacques

それには少なくとも2つの方法があり、それぞれに経験豊富なプログラマーが必要です。

カスタムルーターを作成する

カスタムコンポーネントを使用している場合は、Routerを拡張して、このコンポーネントビューをホームページとして設定できます(これにより、コンポーネントルーターがWebサイトのデフォルトルーターになります)。ここでは、正しい方法で適切な説明を見つけることができます。

https://docs.joomla.org/Supporting_SEF_URLs_in_your_component

カスタムシステムプラグインの作成

また、適切なシステムプラグインを作成してonAfterInitialiseにフックし、リダイレクトまたはアプリケーションルータで作業することもできます。

0
Artur Stępień