удалить ненужные переменные в маршрутизации Joomla - PullRequest
0 голосов
/ 31 января 2012

В настоящее время мой URL-адрес: - http://192.168.1.102/joomla25/index.php/component/component_name/view_name/1/info/normal

Но я хочу только формат: - http://192.168.1.102/joomla25/normal

Какой метод сделать это с помощью файла joomla router.php? Пожалуйста, помогите ....

мой код: ---

<?php
/**
 * @version     $Id: router.php 21389 2011-05-26 17:28:26Z dextercowley $
 * @package     Joomla.Site
 * @copyright   Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights         reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

/**
 * @param   array
 * @return  array
 */


function ComponentNameBuildRoute(&$query)
{
    $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['tab']))
    {
        $segments[] = $query['tab'];
        unset($query['tab']);
    }
    if(isset( $query['pt'] ))
    {
        $segments[] = $query['pt'];
        unset( $query['pt'] );
    }

   //unset( $query['view'] );
   return $segments;
}

function ComponentNameParseRoute($segments)
{
   $vars = array();
   $app =& JFactory::getApplication();
   $menu =& $app->getMenu();
   $item =& $menu->getActive();
   // Count segments

   $count = count( $segments );

   //Handle View and Identifier
   switch( $segments[0] )
   {
        case 'pdetails':
            $vars['view'] = 'pdetails'; 
            $id = explode(':', $segments[1]);
            $tab = explode(':', $segments[2]);
            $pt = explode(':', $segments[3]);

            $vars['id'] = (int) $id[0];
            $vars['tab'] = $tab[0];
            $vars['pt'] = $pt[0];
            break;
   }

   return $vars;
}

Ответы [ 4 ]

2 голосов
/ 13 декабря 2012

Я также столкнулся с той же проблемой с пользовательским компонентом.Итак, что я сделал, чтобы решить эту проблему, так это то, что создал пункт меню, а затем в своем коде компонента, который я использую для создания ссылки, то есть Jroute () , вместо того, чтобы давать

index.php?option=blabla&view=blabla

IЯ пытался

 index.php?Item=<menuitemid>.

. Таким образом, я строил маршрут к своему компоненту, а затем в парсеру маршрутизатора моего компонента я упомянул другое условие ($ vars), которое было необходимо.Главным было то, что я перевел его на мой компонент, поэтому у меня есть свой собственный parseroute, в котором я могу указать правильный маршрут для него.

Надеюсь, это кому-нибудь поможет.;)

0 голосов
/ 02 февраля 2012

В вашем админе, нажмите на Глобальная конфигурация в меню сайта.По умолчанию следует перейти на вкладку «Сайт», в противном случае нажмите на вкладку «Сайт».Найдите настройки SEO и убедитесь, что у вас есть дружественные для поисковых систем URL-адреса, используйте перезапись URL-адресов, добавьте суффикс к URL-адресу всех включенных (установите в «да»).Затем вам нужно найти файл htaccess.txt в корневом каталоге Joomla и переименовать его в .htaccess.это должно исправить ваши URL.

0 голосов
/ 03 февраля 2012

Что скажет ваш босс, когда вам понадобится обновить версию Joomla?Все ваши модификации будут потеряны, и вам придется все заново создавать.

Просто используйте компонент SEF, такой как sh404sef, или вставьте одну строку кода в htaccess, чтобы получить хороший URL-адрес!

0 голосов
/ 01 февраля 2012

Я бы использовал расширение для этого, например sh404sef или любое другое расширение SEF.

...