2011-02-07 4 views
0

Joomla의 SEF가 활성화되어 있는지 확인해야합니다.Joomla SEF가 켜져 있는지 확인하는 방법

Joomla는 다른 SEF 메커니즘 (자세한 정보는 see here)을 사용합니다.

내가 기입해야 할 기능은 간단하다

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

어쩌면 정상화 두 URL (소문자 또는 GET은 바르에 의해) 만들 수 있습니다

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

내가 지금까지 가지고있는 유일한 생각은 심각한 해킹과 함께 큰 소리처럼 들릴지 모르지만 기능은 조금 더 효과적입니다.

물론 성공없이 Joomla Docs, StackOverflow 및 Google에 대한 답변을 검색했습니다. 또한 Joomla의 런타임 내부를 검사했지만 아무것도 표시되지 않았습니다.

답변

3

Joomla의 Core SEF System을 사용할 때 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의 Core SEF 시스템 설정입니다. 다른 SEF 구성 요소 중 일부는 '1'로 설정해야하며 일부는 설정하지 않아야합니다. 설치된 확장 기능에 대한 데이터베이스 확인, SEF 확장 기능 필터링 및 구성 파일 가져 오기와 같은 대체 기능이 필요할 수 있습니다. 이제 AFAIK 일반적인 방법이 있습니다. –

+0

@Christian thanks! ;) –

3

을 그냥 전화 : 당신이 필요합니다 줌라 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되어 I이었다 몇 가지 오래된 코드를보고 다음을 찾았습니다.

$sef = JFactory::getApplication()->getRouter()->getMode() 
내가 잘 모르겠어요하지만,하고 싶은 일을하는 것처럼 보인다

있는 하나의 더 나은 ...

시큰둥, 지금은 어떤 프로젝트에 주, 공식적으로, 나는 내 자신의 코드에 대한 모든 잊지 : D