views:

283

answers:

1

I need to display a section or another in a smarty template. My condition is simple: if a smarty value starts with a string I should display one section, otherwise the other smarty section should be displayed. I can change only the tpl files.

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

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

The problem is that I can not read the url varible which was previously assigned using $smarty->assign. Basically, I'm looking for the smarty function that can be used to retrieve a value, or if there is a better solution.

+1  A: 

First, I would clean up your code. You don't need php tags, you're using smarty:

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

     section 1

 {else}
        section 2   
 {/if}

That's untested but it should be pretty close..

Now, if you're trying to read something like a constant, for example a server variable like HTTP_HOST, you can do something like this:

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

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

     section 1

 {else}
        section 2   
 {/if}
pws5068
I've just tried but it doesn't work.
php html
It won't work because php_self isnt the right server variable, I just used that as an example. You may want to try $smarty.server.HTTP_HOST but that probably cuts off the http. To look at the values of your server variables upload a page with just <? phpinfo(); ?>
pws5068
it was not working due to some other problem
php html