Jommla 3.x - собственный компонент - пользовательский URL

У меня проблема с созданием SEO-адреса моего компонента joomla.

у меня есть такие ссылки:

$link = JRoute::_( 'index.php?option=com_expose$view=expose&id='.$result->id );
$link2 = JRoute::_( 'index.php?option=com_expose$view=search' );

SEO-адрес выглядит так:

www.domain.com/component/expose/123 www.domain.com/component/search

Как я могу теперь сделать свой собственный псевдоним для URL-адреса? Я хочу что-то вроде этого:

www.domain.com/expose/the-beautiful-page

Без компонента и с названием для id.

по router.php выглядит так:

function ExposeBuildRoute( &$query )
{
       $segments = array();
       if(isset($query['view']))
       {
                $segments[] = $query['view'];
                unset( $query['view'] );
       }
       if(isset($query['id']))
       {
                $segments[] = $query['id'];
                unset( $query['id'] );
       };
       return $segments;
}

function ExposeParseRoute( $segments )
{       
       $vars = array();
       switch($segments[0])
       {
               case 'search':
                       $vars['view'] = 'search';
                       $id = explode( ':', $segments[1] );
                       $vars['id'] = (int) $id[0];
                       break;
               case 'expose':
                       $vars['view'] = 'expose';
                       $id = explode( ':', $segments[1] );
                       $vars['id'] = (int) $id[0];
                       break;
       }
       return $vars;
}

Что нужно сделать, чтобы удалить псевдоним /component/ и заменить идентификатор на правильный заголовок.

Большое спасибо.


person Mafi    schedule 25.02.2014    source источник


Ответы (1)


Проблема в том, что нет пункта меню для поиска компонента. Из-за этого Joomla нуждается в параметре компонента в URL-адресе. Я думаю, что нет возможности удалить компонентную часть в URL-адресе. Возможно, вам следует задать вопрос в списке рассылки разработчиков https://groups.google.com/forum/#!forum/joomla-dev-general. Но я не думаю, что это возможно.

Существует способ изменить маршрутизатор с помощью системного плагина http://docs.joomla.org/J2.5:Creating_a_System_Plugin_to_augment_JRouter. Но я не думаю, что это поможет в вашем случае.

person Laoneo    schedule 26.02.2014