Сколько не рыл, нормального описания на руском нигде не нашел, максимум машинный перевод с офсайта.
Думаю гуру смогут подсказать?
Собственно мой вопрос:
Есть такой компонент PUarcade, это флэш игры. Так в нем роутер просто отсутствует. Попытался почитать документацию по роутингу и написать свой вариант роутера. Ничего хорошего не получилось. Добился вывода крвсивой ссылки, но перехода по ней не происходит, открывается все та же главная страница сайта.
Нутром чую что загвоздка в переменных, но никак не могу сообразить что делать. Там фигурируют fid и gid, собственно получилось преобразовать ссылки:
http://domain.ru/index.php?option=com_puarcade&Itemid=78&fid=10000 >>> http://domain.ru/mults/10000.html
http://domain.ru/index.php?option=com_puarcade&Itemid=78&fid=10000&gid=6 >>> http://domain.ru/mults/10000/6.html где mults - это алиас меню компонента. Прикол в том что не происходит перехода по новым ссылкам. Если использовать в роутере параметр Itemid, то ссылка включает в себя вместо алиаса еще и
...component/puarcade..., причем перехода так же не происходит.
Кто нибудь может подсказать в чем дело? А еще лучше расписать что в этом файле и за что отвечает? Почему где то пишется VIEW а где то CATEGORY или например TASK? И как правильно написать роутер для стороннего компонента? Ведь все примеры даны на основе com_conten, а на его основе мало что понятно...Вот код который я использовал в роутере:
<?php
function puarcadeBuildRoute( &$query )
{
$segments = array();
if(isset($query['fid']))
{
$segments[] = $query['fid'];
unset( $query['fid'] );
}
if(isset($query['gid']))
{
$segments[] = $query['gid'];
unset( $query['gid'] );
};
return $segments;
}
function puarcadeParseRoute( $segments )
{
$vars = array();
switch($segments[0])
{
case 'fid':
$vars['fid'] = 'fid';
break;
case 'gid':
$vars['fid'] = 'fid';
$id = explode( ':', $segments[1] );
$vars['gid'] = (int) $id[0];
break;
}
return $vars;
}
?>