删除joomla路由中不必要的变量

时间:2012-01-31 15:53:40

标签: joomla joomla1.7

目前我的网址是: - 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 个答案:

答案 0 :(得分:2)

我也面临着自定义开发组件的相同问题。所以我解决这个问题的方法是创建一个菜单项,然后在我用来创建链接的组件代码中,即 Jroute(),而不是给予

index.php?option=blabla&view=blabla

我做过尝试

 index.php?Item=<menuitemid>.

通过这种方式,我构建了到我的组件的路由,然后在我的组件路由器的解析器中,我提到了需要的其他条件($ vars)。最重要的是我把它转移到了我的组件,所以我有自己的解析器,我可以在其中提到正确的路径。

我希望它能帮到某个人。 ;)

答案 1 :(得分:0)

在您的管理员中,单击“站点”菜单中的“全局配置”。它应该默认为“站点”选项卡,如果没有,则单击“站点”选项卡。找到搜索引擎优化设置,并确保您有搜索引擎友好的URL,使用URL重写,添加后缀到URL全部打开(设置为是)。然后,您需要在Joomla根目录中找到文件htaccess.txt,并将其重命名为.htaccess。应修复您的网址。

答案 2 :(得分:-1)

我会使用扩展名,例如sh404sef或任何其他SEF扩展名。

答案 3 :(得分:-1)

当您需要升级Joomla版本时,您的老板会怎么说?您的所有修改都将丢失,您将不得不重新创建所有修改。

只需使用像sh404sef这样的SEF组件或在你的htaccess中插入一行代码就可以获得一些不错的网址!