私はコンポーネントを書き、Joomla.orgのドキュメントによってrouter.phpを作成しました。私の問題は、URLからアイテムビューを削除するにはどうすればよいですか?
たとえば、私はこのビューを持っています-> musicses、今私のSEF URLはこのようなものです
/music/99-2016-03-13-06-12-39/musics/3-music77.html?layout=article
次のように変更したい:/music/music77.html
music77がこの投稿の私のタイトルです。
これは私のコードです:
http://sandbox.onlinephpfunctions.com/code/bdcb649b90aae2b415e53054be7d65448cf3049
Com_contentルーターを確認すると、カテゴリブログビューはそのように機能し、domain.com/blogの下に記事のリストが表示され、リンクは次のように生成されますdomain.com/category/1-my-first-article
ただし、次のようなことも可能です。
domain.com/blog/1-my-first-article
したがって、アイテムのコンポーネントでリンク生成(JROUTE)を変更して、アイテムビューを削除する必要があります。リストビューへのルートのみを解析し、アイテムのエイリアスをURL文字列に添付することにより、へのリンクを手動で作成できます。
これも役に立ちます:
https://stackoverflow.com/questions/22116391/advance-url-sef-for-joomla-custom-component
(私はコンポーネントに対してそれをしません。すべてをメインビューにリダイレクトし、外部ルータークラスでセグメントをチェックします。)