2012-01-31 26 views
0

をルーティング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; 
} 

答えて

-1

Iは、例えば、sh404sefまたは任意の他のSEFの拡張のために、そのための拡張機能を使用します。

0

管理者の[サイト]メニューの[グローバル設定]をクリックします。 [サイト]タブがデフォルトの設定になっていない場合は、[サイト]タブをクリックします。 SEOの設定を検索し、検索エンジンフレンドリURL、URLリライティングを使用するかどうか、URLにサフィックスを追加するかどうかをすべてオンにします(yesに設定)。次に、ファイルhtaccess.txtをJoomlaのルートディレクトリに配置し、.htaccessに名前を変更する必要があります。 URLを修正する必要があります

+0

私の上司は、.htaccessファイルを使用しないと言っています....それはrouter.phpファイルを通してのみ行われるべきです。だから私はそれを探しています。 – brami

+1

あなたはhtaccessなしでURLを書き直すのに苦労します。コアをハックすることは本当に悪い考えです。アップデートがあるたびに問題が発生します。 –

+0

私はコードをハッキングしていません。私はItemId(これはメニュー項目に付属しています)を使って行いました。しかし、私は表示するために私のコンポーネント内の項目がたくさんあるので...私は非常に多くのメニュー項目を作成することはできません。だから私はメニュー項目を作成せずにこれを解決する必要があります。 – brami

-1

Joomlaのバージョンをアップグレードする必要があるときにあなたの上司は何を言いますか?すべての変更は失われ、すべてを再作成する必要があります。

sh404sefのようなSEFコンポーネントを使用するか、htaccessに1行のコードを挿入して、素敵なURLを付けてください!

2

カスタム開発コンポーネントでも同じ問題が発生しました。それでは、私は問題を解決するためにやったことは、私は

index.php?Item=<menuitemid>. 
を試してみました

index.php?option=blabla&view=blabla 

を与えることではなく、私はJROUTE(すなわち、リンクを作成するために使用私のコンポーネントコード)で、メニュー項目を作成していること

このようにして、私は自分のコンポーネントへのルートを構築し、次に私のコンポーネントルータのparserouteで、必要とされた他の条件($ vars)を述べました。主なことは、私はそれが私のコンポーネントに迂回されたので、私はそれのための正しいルートを言及できる私自身のparserouteをここに持っていたということでした。

私はそれが何かを助けることを願っています。 ;)

関連する問題