Как узнать, включен ли Joomla SEF или нет - PullRequest
0 голосов
/ 07 февраля 2011

Мне нужно выяснить, включен ли 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 (строчные или получить переменные).сделать функцию немного более эффективной, хотя это звучит как большой взлом, с серьезными последствиями.

Конечно, поиск ответа на Joomla Docs, StackOverflow и Google, безуспешно.Я также проверил внутренние компоненты Joomla, но ничего не вышло.

Ответы [ 3 ]

3 голосов
/ 07 февраля 2011

Просто позвоните: JFactory::getConfig():

return (boolean) JFactory::getConfig()->getValue('config.sef', false);
3 голосов
/ 07 февраля 2011

При использовании Joomla Core SEF System вы можете сами настроить и проверить, установлен ли SEF в true.

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

(не тестировалось)

Надеюсь, это немного поможет.Cheers

Для Joomla 3.x вам потребуется:

$conf = &JFactory::getConfig();
echo ' SEF is:  '.(($conf->get('sef') == 1) ? 'on' : 'off'); 
2 голосов
/ 07 февраля 2011

Ну, это смущает ...

Я просматривал какой-то старый код и обнаружил следующее:

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

Кажется, он делает то, что я хочу, хотя я не уверен, какой из них лучше ...

Мех, теперь официально, неделя в любом проекте, и я забыл все о своем собственном коде: D

...