Поэтому у меня есть заголовок страницы, который является частью шаблона Magento; Я бы хотел, чтобы он отображал 1 из 2 вариантов, в зависимости от того, какой URL-адрес. Если URL-адрес является параметром 1, заголовок заголовка 1. Если URL-адрес – что-то еще, заголовок заголовка 2. Это то, что я придумал, но это приводит к сбою страницы:
<div class="page-title"> <h1><?php $host = parse_url($domain, PHP_URL_HOST); if($host == 'http://domain.com/customer/account/create/?student=1') { echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!') } else { echo $this->__('Create an Account') } ?></h1> </div>
У кого-нибудь есть идеи?
EDIT: Значит, это должно выглядеть так?
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if($host == 'http://domain.com/customer/account/create/?student=1')
Вы ищете URL-адрес, на котором в данный момент находится страница? Вы используете parse_url неправильно; то есть, если вы хотите получить хост или домен, то есть только «dev.obtura.com». Похоже, ты хочешь большего. Кроме того, вы никогда не устанавливаете переменную $domain
, поэтому parse_url()
не знает, что с ней делать. Так как теперь, ваш оператор if
всегда будет возвращать «Создать учетную запись».
Вместо этого установите $host
с переменными $ _SERVER :
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
Вам также нужно будет удалить «http: //» из вашей проверки – $host
будет содержать все после «http: //»,
Как предложил Арон Седерхолм , вам нужно добавить точки с запятой ( ;
) до конца ваших эхо-заявлений.
Итак, ваш PHP-код должен выглядеть так:
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; if($host == 'domain.com/customer/account/create/?student=1') { echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!'); } else { echo $this->__('Create an Account'); }
Я не уверен, что вы получаете право домена. Я не очень разбираюсь в parse_url, и вы не показали нам, что такое $domain
.
Обычно, если я хочу получить доменное имя, я бы сделал это: $host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']
Затем остальная часть вашего кода.
Это, если выражение else кажется мне законным, так что я бы попробовал выше и посмотрел, как это происходит. 😉
Edit: К сожалению, Джон избил меня. 🙂
Вы должны добавить точки с запятой в свои утверждения внутри вашего if-else.
if($host == 'http://dev.obtura.com/customer/account/create/?student=1') { echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!'); } else { echo $this->__('Create an Account'); }