2012-02-14 3 views
0

私はrouter.phpのURLを書き換えるとjoomla 1.5を使用しています。ここでrouter.phpの内容は以下のとおりです。JRouterを使用してコントローラとタスクのURLを書き換えるにはどうすればよいですか?

<?php 
function PvcCalcProBuildRoute(&$query) 
{ 
    $segments = array(); 
    if(isset($query['view'])) 
    { 
    $segments[] = $query['view']; 
    unset($query['view']); 
    } 
    return $segments; 
} 
function PvcCalcProParseRoute($segments) 
{ 
    $vars = array(); 
    switch($segments[0]) 
    { 
    case 'cart': 
    $vars['view'] = 'cart'; 
    break; 
    case 'checkout': 
    $vars['view'] = 'checkout'; 
    break; 
    case 'login': 
    $vars['view'] = 'login'; 
    break; 
    case 'orders': 
    $vars['view'] = 'orders'; 
    break; 
    case 'offers': 
    $vars['view'] = 'offers'; 
    break; 
    } 
    return $vars; 
} 
?> 

私はコントローラタスクのURL書き換えを有効にする必要があります。たとえばこの行:私は/コンポーネントに変換したい

JRoute::_('index.php?option=com_pvccalcpro&amp;controller=orders&amp;task=js'); 

JRoute::_('index.php?option=com_pvccalcpro&amp;task=helpers'); 

私は/component/pvccalcpro/helpers.js

そして、このラインに変換したいです/pvccalcpro/orders.js

私は公式でこれを達成する方法を見つけようとしましたしかし、それはまだ多くの日を過ごした後、それは私のためにうまくいかなかった。おそらく私は何かを欠いているでしょうか?ここで

受注例えばコントローラの内容は以下のとおりです。あなたがコンポーネントへのパスを渡すが、それはあなたのJavaScriptファイルへのパスを返すように期待しているあなたの2つのJRoute例で

<?php 
// no direct access 
defined('_JEXEC') or die(); 
jimport('joomla.application.component.model'); 
class PvcCalcProControllerOrders extends PvcCalcProController 
{ 
    function display() 
    { 
     parent::display(); 
    } 

    function js() 
    { 
     $t=time()+31536000; 
     $expires = gmdate('D, d M Y H:i:s \G\M\T',$t); 
     header('Content-type: text/javascript; charset=utf-8'); 
     header('Vary: Accept-Encoding'); 
     header('Last-Modified: Tue, 27 Dec 2001 07:05:43 GMT'); 
     header('Expires: '.$expires); 
     header('Cache-Control: public, max-age=31536000'); 
     require_once(JPATH_COMPONENT.DS.'assets/js/orders.js'); 
     die(); 
    } 
} 
?> 
+0

まだ可能ですか? –

答えて

0

が。

JRouteはJoomla!の人が読めるURLを作成するためのものです。 Javascriptファイルのためにそれを使用しようとしているコンポーネントを表示します。

Joomla! Doc's page - 「Joomlaは、最初は、組み込みコンポーネント用の人間が読めるURLのみを作成できます。

+0

**私は** js **ファイルをどのように使用しているかをよりよく理解するために、** orders ** controllerの内容を追加しました。私はこの方法を多言語能力のために使用しています。 –

関連する問題