0

Joomla の SEF が有効になっているかどうかを確認する必要があります。

さらに悪いことに、Joomla にはさまざまな SEF メカニズムがあります (詳細については、こちらを参照してください)。

入力する必要がある関数は単純です。

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

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

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

両方の URL を正規化すると (小文字または get vars を使用)、関数がもう少し効果的になるかもしれませんが、これは大きなハックのように聞こえ、深刻な影響があります。

もちろん、Joomla Docs、StackOverflow、Google で回答を検索しましたが、成功しませんでした。Joomla のランタイム内部も調べましたが、何も表示されませんでした。

4

3 に答える 3

4

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

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

(未検証)

それが少し役立つことを願っています。乾杯

Joomla 3.xの場合、次のものが必要になります。

$conf = &JFactory::getConfig();
echo ' SEF is:  '.(($conf->get('sef') == 1) ? 'on' : 'off'); 
于 2011-02-07T16:39:29.570 に答える
4

電話するだけです JFactory::getConfig()::

return (boolean) JFactory::getConfig()->getValue('config.sef', false);
于 2011-02-07T16:39:50.630 に答える
2

うーん、これは恥ずかしい…

私は私の古いコードを見ていて、次のことを見つけました:

$sef = JFactory::getApplication()->getRouter()->getMode()

どちらが優れているかはわかりませんが、私が望むことをしているようです...

まあ、今では公式で、どのプロジェクトでも1週間ですが、自分のコードをすべて忘れています:D

于 2011-02-07T19:51:31.600 に答える