Надо сделать ЧПУ для компонента Joomla 3. вида:
{название сайта}/directory/{название подраздела}.html
Это уже реализовано для этого компонента для Joomla 1.5, а вот в J3 не работает.
В компоненте есть свой файл router.php, но по "красивому" URL он не отрабатывает
<?php
/**
* @version $Id: router.php 14401 2010-01-26 14:10:00Z louis $
* @package Joomla
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
function JcompBuildRoute(&$query)
{
$segments = array();
print_r($query);
echo "query <br>";
// get a menu item based on Itemid or currently active
$menu = &JSite::getMenu();
//print_r($menu);
if (empty($query['Itemid'])) {
$menuItem = &$menu->getActive();
} else {
$menuItem = &$menu->getItem($query['Itemid']);
}
// print_r($menuItem->query['id_b']);
$id_b = (empty($menuItem->query['id_b']))? null : $menuItem->query['id_b'];
$tabType = (empty($menuItem->query['tabType']))? null : $menuItem->query['tabType'];
$sql = "
SELECT `seoUrl`, id
FROM `#__Jcomp`
WHERE `id` = '2'";
//WHERE `id` = '".$query['id_b']."'";
// print '<pre>LINE:' . __LINE__ . ' | $sql = ' . print_r($sql, true). "<br>\n</pre>";
$database =& JFactory::getDBO();
$database->setQuery($sql);
$database->query();
$seoUrl = $database->loadResult();
//print_r($seoUrl);
$segments[] = $seoUrl;
unset($query['id_b']);
if(!empty($query['tabType']) && $query['tabType'] != '1x2') {
$segments[] = $query['tabType'];
}
unset($query['tabType']);
return $segments;
}
function JcompParseRoute($segments)
{
$vars = array();
//Get the active menu item
$menu =& JSite::getMenu();
$item =& $menu->getActive();
// Count route segments
$count = count($segments);
//Standard routing for articles
if(1)
{
$vars['id_b'] = @mysql_real_escape_string($segments[0]);
$vars['id_b'] = str_replace(':','-',$vars['id_b']);
print_r($vars['id_b']);
$sql = "
SELECT `id`
FROM `#__Jcomp`
WHERE `seoUrl` = '".$vars['id_b']."'";
$database =& JFactory::getDBO();
$database->setQuery($sql);
$database->query();
$id_b = $database->loadResult();
if(empty($id_b)){
$vars['id_b'] = -1;
}else{
$vars['id_b'] = $id_b;
}
//print_r($vars['id_b']);
$vars['tabType'] = $segments[$count - 1];
return $vars;
}
return $vars;
}
Посоветуйте пожалуйста решение или ссылки для чтения.
Спасибо!