Как я могу получить доступ к имени хоста в шаблоне ExpressionEngine

Как проще всего получить доступ к имени хоста HTTP внутри шаблона ExpressionEngine (без использования PHP в шаблоне).

Был ли уже создан плагин для этого, или я должен использовать какую-то глобальную переменную?

Бонусные баллы, если есть способ доступа к другим переменным HTTP-сервера внутри шаблона ExpressionEngine.


person Adrian Macneil    schedule 27.10.2012    source источник
comment
Вы пытаетесь определить имя хоста или хотите установить его где-нибудь для использования в своих шаблонах?   -  person foamcow    schedule 28.10.2012


Ответы (4)


Вы можете установить имя хоста в качестве глобальной переменной и использовать ее. Вы можете установить глобальную переменную в своем файле конфигурации с помощью php, и тогда у вас будет доступ к ней в шаблоне.

Или вы можете использовать {path='site_index'}

$assign_to_config['global_vars']['global_var_name'] = 'Global var value';
person Alex Glover    schedule 27.10.2012
comment
Спасибо, я думал, что глобальные переменные могут подойти. Для дальнейшего использования, не могли бы вы уточнить, как добавить это в файл конфигурации? - person Adrian Macneil; 27.10.2012

Как насчет использования стандартной глобальной переменной {site_url}?

Если вы хотите назначить переменную конфигурации, вы можете сделать:

$assign_to_config['global_vars']['gv_hostname'] = $_SERVER['HTTP_HOST']; 

а затем в вашем шаблоне вы можете вызвать его через {gv_hostname}, конечно, это не добавит http:// перед именем хоста.

person Steven Grant    schedule 27.10.2012

Для этого можно использовать надстройку под названием Server Variable http://devot-ee.com/add-ons/server-variable

{exp:server_var:server var="HTTP_HOST"}

Также доступны любые другие переменные сервера: http://php.net/manual/en/reserved.variables.server.php

person Victor Gutierrez    schedule 28.10.2012

Вы можете добавить следующий код в свой файл /system/expressionengine/config/config.php

$assign_to_config['global_vars']['my_http_host'] = $_SERVER['HTTP_HOST'];

Затем это можно было бы использовать в таких шаблонах:

{my_http_host}

Если вам нужен протокол, т.е. http, если не https, вы можете сделать это:

$assign_to_config['global_vars']['my_protocol'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';

Затем это можно было бы использовать в шаблоне следующим образом:

{мой_протокол}

Вот список зарезервированных переменных сервера PHP

person Natetronn    schedule 27.10.2012