Joomla のコンポーネントの作成を最終段階にしていますが、URL の書き換えに問題があります。
コンポーネントのベース ファイルによって呼び出される "router.php" クラスを作成し、"JRoute" を使用して SEF でリンクを書き換えます。
問題は、Joomla がコンポーネント ルートターを無視し、ネイティブ コンポーネントのコンテンツをロードすることですcom_content
。
次の URL -
http://lafoliedesvernis.com/vernitheque/revendeurs/2-printemps-haussmann.html - Joomla は、持っている私のコンポーネントの記録を表示するのではなく、com_content
持っている人の記事を表示しますID = 2
ID = 2
私は目標を達成したと感じていますが、どこかに見えないコードがあります。Joomla がルーターを無視してルーターを使用するのはcom_content
なぜですか?
私のルーターのコードは次のとおりです。
<?php
defined ('_JEXEC') or die ('Restricted access');
VernithequeBuildRoute function (& $ query)
{
$ Segments = array ();
if (isset ($ query ['view'])) {
$ Segments [0] = $ query ['view'];
unset ($ query ['view']);
};
if (isset ($ query ['id'])) {
$ Segments [1] = $ query ['id'];
unset ($ query ['id']);
};
return $ segments;
} / / End function VernithequeBuildRoute
VernithequeParseRoute function ($ segments)
{
$ Vars = array ();
if (count ($ segments)> 0) {
$ Vars ['view'] = $ segments [0];
switch ($ vars ['view']) {
case 'all':
$ Catid = explode (':', $ segments [1]);
$ Vars ['catid'] = (int) $ catid [0];
break;
case 'category':
$ Vars ['id'] = (int) $ segments [1];
break;
case 'brand':
$ Id = explode (':', $ segments [1]);
$ Vars ['id'] = (int) $ id [0];
break;
case 'resellers':
$ Id = explode (':', $ segments [1]);
$ Vars ['id'] = (int) $ id [0];
break;
case 'varnish':
$ Id = explode (':', $ segments [1]);
$ Vars ['id'] = (int) $ id [0];
break;
case 'configure':
$ Id = explode (':', $ segments [1]);
$ Vars ['id'] = (int) $ id [0];
break;
box 'panel':
$ Id = explode (':', $ segments [1]);
$ Vars ['id'] = (int) $ id [0];
break;
};
Else {}
$ Vars ['view'] = $ segments [0];
} / / End count (segments) statement
return $ vars;
} / / End VernithequeParseRoute
?>