をルーティングJoomlaの中の不要な変数を削除: - http://192.168.1.102/joomla25/index.php/component/component_name/view_name/1/info/normal現在、私のURLは
しかし、私が唯一の希望形式: - http://192.168.1.102/joomla25/normal
joomla router.phpファイルを使用してこれを行う方法は何ですか? plsは助け....
私のコードは次のとおりです。---
<?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;
}
私の上司は、.htaccessファイルを使用しないと言っています....それはrouter.phpファイルを通してのみ行われるべきです。だから私はそれを探しています。 – brami
あなたはhtaccessなしでURLを書き直すのに苦労します。コアをハックすることは本当に悪い考えです。アップデートがあるたびに問題が発生します。 –
私はコードをハッキングしていません。私はItemId(これはメニュー項目に付属しています)を使って行いました。しかし、私は表示するために私のコンポーネント内の項目がたくさんあるので...私は非常に多くのメニュー項目を作成することはできません。だから私はメニュー項目を作成せずにこれを解決する必要があります。 – brami