2011-02-07 16 views
0

JoomlaのSEFが有効かどうかを調べる必要があります。Joomla SEFがオンかどうかを確認する方法

Joomlaでは、さまざまなSEFメカニズム(詳細についてはsee here)があります。

私は記入する必要がある機能はシンプルです:

function rewrite_enabled(){ 
    return (boolean)$something; // typecast is frivolous 
} 

私がこれまで持っている唯一のアイデアは次のとおりです。

function rewrite_enabled(){ 
    $url='index.php?option=com_xyz'; 
    return JRoute($url)!=$url; 
} 

は多分作るかもしれない両方のURL(小文字かによってVARSを取得)を正規化機能は少し効果的ですが、大きなハックのように聞こえるかもしれませんが、深刻な反響があります。

もちろん、Joomla Docs、StackOverflow、Googleでの回答は検索せずに成功しました。私もJoomlaのランタイム内部を調べましたが、何も出てこなかった。

答えて

3

JoomlaのコアSEFシステムを使用するときは、自分で設定を取得してSEFがtrueに設定されているかどうかを確認できます。

$conf = &JFactory::getConfig(); 
echo ' SEF is: '.(($conf->sef == 1) ? 'on' : 'off'); 

(テストしていません)

が、それは少しお役に立てば幸いです。

$conf = &JFactory::getConfig(); 
echo ' SEF is: '.(($conf->get('sef') == 1) ? 'on' : 'off'); 
+0

私はircmaxellに尋ねたのと同じことをお伺いしたいと思います。 – Christian

+0

Erm、これはJoomlaのコアSEFシステムの設定です。他のSEFコンポーネントの中には、これを '1'に設定する必要があります。インストールされた拡張機能のデータベースをチェックし、SEF拡張機能をフィルタリングし、設定ファイルを取得するなどの代替手段が必要な場合があります。現在、AFAIKの一般的な方法があります。 –

+0

@Christianありがとう! ;) –

3

を呼び出すだけ:あなたが必要となりますJoomlaの3.xの 乾杯

JFactory::getConfig()

return (boolean) JFactory::getConfig()->getValue('config.sef', false); 
+0

ありがとうございますが、それは他のさまざまなSEF設定をどのようにチェックしますか?それともマスターSEF設定のこの種類ですか? – Christian

+1

@Christian:**良い**拡張はコアsef設定を使用し、他の領域のルータを上書きします。この値は、コアのマスター・オン/オフ・スイッチです。他の設定では、どのようにsefが動作するかが決まります... – ircmaxell

+0

私は答えとしてダビッドを答えて+1しました。ありがとうircmaxell – Christian

2

まあ、ええと、これは

... embarasingされる私がいましたいくつかの古いコードを見て、以下を見つけました:

:私はより良い自分の...

MEHわからないのに10

今では、任意のプロジェクトに週公式だ、と私はすべての私自身のコードを忘れて、私がやりたいように見えるんD

関連する問題