Я работаю над Joomla 3.X, и у меня есть пользовательский компонент создания.
Вот его ссылка, как открывается страница пользовательского компонента: http://joomlavogueteamdemo.com.bh-in-7.webhostbox.net/petitions-new/view-petitions/ireland/LuasOn
Здесь Petition-new это имя компонента
Просмотр петиций
Мы хотим, чтобы его короткий URL-адрес, как: http://joomlavogueteamdemo.com.bh-in-7.webhostbox.net/petitions-new/ireland/LuasOn
Здесь мы также прикрепили наш код router.php.
function petitionsBuildRoute(&$query)
{
print_r($query);
if($query['Itemid'] != '487'){
$segments = array();
if (isset($query['view']))
{
$segments[] = $query['view'];
unset($query['view']);
}
if (isset($query['id']))
{
$segments[] = $query['id'];
unset($query['id']);
}
if (isset($query['pid']))
{
$segments[] = $query['pid'];
unset($query['pid']);
};
if (isset($query['name']))
{
$segments[] = $query['name'];
unset($query['name']);
};
return $segments;
}else{
$segments = array();
return $segments;
}
}function petitionsParseRoute($segments)
{
$vars = array();
$app = JFactory::getApplication();
$menu = $app->getMenu();
$item = $menu->getActive();if($segments[0] == 'Ireland'){
$vars['view'] = 'Ireland';
$vars['name'] = $segments[1];
//name to get id
$db = JFactory::getDbo();
$query = "SELECT `id` FROM `#__petitions_signataires` WHERE `ref` = '$segments[1]'";
$db->setQuery($query);
$row = $db->loadRow();
$pid= $row[0];
$vars['pid'] = (int) $pid;
return $vars;
}switch($item->query['view'])
{
case 'categories':
$vars['view'] = 'categories';
break;
case 'category_petition':
if($segments[0] == 'detail_petition'){
$vars['view'] = 'detail_petition';
$id = $segments[1];
$vars['id'] = (int) $id ;
}elseif($segments[0] == 'Ireland'){
$vars['view'] = 'Ireland';
$vars['name'] = $segments[1];
//name to get id
$db = JFactory::getDbo();
$query = "SELECT `id` FROM `#__petitions_signataires` WHERE `ref` = '$segments[1]'";
$db->setQuery($query);
$row = $db->loadRow();
$pid= $row[0];
$vars['pid'] = (int) $pid;
}
break;
case 'article':
//$vars['view'] = 'article';
$id = $segments[0];
$vars['pid'] = (int) $id[0];
$vars['latestnews'] = 'latest';
$vars['detailslink'] = 'link';
break;
case 'com_petitions':
$vars['view'] = 'id';
$id = $segments[0];
$vars['id'] = $id[0];
break;
}
return $vars;
}
Поэтому, пожалуйста, помогите нам решить эту единственную проблему в моей работе.
С Уважением,
Urjit
Задача ещё не решена.
Других решений пока нет …