Как я могу определить путь к сайту с помощью php / smarty? - PullRequest
1 голос
/ 22 апреля 2010

Хорошо, скажем, у меня есть страница с URL: URL.com/checkout/completed, как мне настроить оператор if для выполнения:

<if "This page has url of checkout/completed">

No Content

<else>

Content

</if>

Есть ли способ? Проще говоря, моего php / smarty-fu не хватает .. Очень много.

EDIT:

{if $smarty.server.REDIRECT_URL eq 'http://www.euroworker.no/checkout/completed'}
&nbsp;
{else}  
<div id="scrollwrap">   
    <div class="scrollFieldContent"> 

Scrolled content
        </div>

<div class="probetalings">Velg betalingsmåte</div>

{include file="/choosePaymentMethod.tpl"}
</div> 

{/if}

Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 апреля 2010

Я бы предпочел SCRIPT_NAME, который будет возвращать полный путь запроса, но не строку запроса, как REQUEST_URI.

if ($_SERVER["SCRIPT_NAME"] == "/checkout/completed")
 ......
2 голосов
/ 22 апреля 2010

Посмотрите на $_SERVER['REQUEST_URI']; и $_SERVER['REDIRECT_URL'];

if($_SERVER['REDIRECT_URL'] == 'checkout/completed') {
   echo 'Some content';
}

в смарте:

{if $smarty.server.REDIRECT_URL eq 'checkout/completed'}
Some content
{/if}

Если у вас не установлен REDIRECT_URL и вы используете REQUEST_URI, вы можете использовать strstr вместо типичного сравнения, если вы просто хотите сопоставить этот URI, игнорируя любые дополнительные параметры, которые могут быть отправлены, или перейдите SCRIPT_NAME как предложил @Pekka:

if(strstr($_SERVER['REQUEST_URI'], 'checkout/completed')) {
   echo 'Some content';
}

РЕДАКТИРОВАТЬ: Попробуйте:

{if $smarty.server.REQUEST_URI eq '/checkout/completed'}
...