Smarty: include файла НЕ из папки темплейтов

korvin0

моська
Smarty: include файла НЕ из папки темплейтов

скрипт: public_html/profiles/eprofile.php
темплейт к нему: template/profiles/eprofile.tpl
Нужно инклудить файл public_html/ssi.html
--------
В темплейте стоит {include file="ssi.html"}, но как я понимаю, этот инклуд подразумевает, что файл ssi.html должен лежать в директории темплейтов.
В мануале написано, что можно указывать абсолютный путь, но я не хочу чтобы при переезде на другой хостинг или просто при изменении структуры вышестоящих папок всё перестало работать. Как можно приинклудить ssi.html ?
 

alexhemp

Новичок
ф-ция {include} служит для подключения других ШАБЛОНОВ - иначе говоря - для создания компонентных шаблонов.

Если файл ssi.html не является шаблоном и его не нужно интерпретировать как шаблон, то его можно вставить с помощью подзапроса используя {fetch} - это будет медленнее но безопаснее если его содержимое вами не контролируется.

Если же это именно шаблон то нужно использовать абсолютный путь.
 

korvin0

моська
alexhemp
О продвинутой защите тут не приходится особенно думать, на сайте попросту практически нечего ломать, а то, что есть - защищенно htaccess'ом.
Короче, чтобы не пришлось менять путь при смене хостинга, сделал так:
{include file="`$smarty.server.DOCUMENT_ROOT`/ssi_contact_info.html"}
 
Сверху