2010-06-03 3 views
5

멋진 템플릿에 다른 섹션이나 다른 섹션을 표시해야합니다. 내 조건은 간단합니다. 현명한 값이 문자열로 시작하면 하나의 섹션을 표시해야하며, 그렇지 않으면 다른 멋진 섹션이 표시되어야합니다. tpl 파일 만 바꿀 수 있습니다.Smarty (PHP)에서 복잡한 조건을 확인하는 방법

{php} 
    if (substr($url,0,4) != 'http') 
    { 
    {/php} 
        section 1 

    {php} 
    } 
    else 
    { 
    {/php} 
     section 2 
    {php} 
    } 
    {/php} 

문제는 이전에 $ smarty-> assign을 사용하여 할당 한 url 변수를 읽을 수 없다는 것입니다. 기본적으로, 나는 값을 검색하는 데 사용할 수있는 현명한 함수를 찾고 있는데, 더 좋은 해결책이 있다면.

+1

템플릿에 할당 된 URL 변수를 읽을 수없는 이유는 무엇입니까? – pws5068

답변

5

먼저 코드를 정리합니다. 당신은 당신이 유식 사용하고, PHP 태그를 필요가 없습니다

{if substr($url,0,4) neq 'http'} 

    section 1 

{else} 
     section 2 
{/if} 

안된이다하지만 꽤 가까이 있어야 ..

를 이제, 당신이 일정한 같은 것을 읽으려고하는 경우에 대한 예를 들어 HTTP_HOST와 같은 서버 변수를 사용하면 다음과 같이 할 수 있습니다.

{assign var='url' value=$smarty.server.HTTP_HOST} 

{if substr($url,0,4) neq 'http'} 

    section 1 

{else} 
     section 2 
{/if} 
+0

방금 ​​시도했지만 작동하지 않습니다. – adiian

+0

php_self가 올바른 서버 변수가 아니기 때문에 작동하지 않을 것입니다. 방금 예제로 사용했습니다. $ smarty.server.HTTP_HOST를 시도 할 수는 있지만 아마도 http를 차단할 것입니다. 서버 변수의 값을 보려면 pws5068

+0

다른 문제로 인해 작동하지 않았습니다. – adiian

관련 문제