Обработка php-кода в файлах .tpl

12
CJ
На сайте с 20.11.2006
Offline
129
10200

Есть скрипт сайта, который строит запрашиваемую страницу из файлов шаблона с расширением .tpl. Есть необходимость вставить php-код в страницы сайта. Удобнее всего это сделать именно через эти шаблонные файлы. Но php-код у меня на хостинг-аккаунте в этих файлах не обрабатывается и выкидывается в браузер. Прописал в файле .htaccess следующую строчку: "AddHandler application/x-httpd-php .php .htm .tpl .html" - не помогло. Подскажите, плиз, в чём ещё может быть проблема.

proffregg
На сайте с 21.09.2006
Offline
32
#1

он и не бдует обрабатывать пхп код в tpl

Вам нужно прописать новую функцию (к примеру вывод вашего кода на экран), непосредственно в файле, который отвечает за обработку функций из шаблоных файлов. Т.е. добавить новый элемент в шаблон типа {my_func} и потом уже вставить в любое место шаблона.

Читайте на сапе мануалы по вставке кода в раличные движки, там как раз то что Вам нужно есть.

Люблю свой - АплМакБукЭир.
Ufaweb
На сайте с 03.03.2008
Offline
182
#2

Если делаете include("qwerty.tpl") или require("qwerty.tpl"), то php в них обрабатывается!

Нужно в нужных местах в файлах tpl написать <?=time();?> допустим, тогда функция будет выполнена.

kxk
На сайте с 30.01.2005
Offline
970
kxk
#3

Ufaweb, require_once для сборки сайта на инклюдах будет имхо правильнее.

Ваш DEVOPS
Ufaweb
На сайте с 03.03.2008
Offline
182
#4
kxk:
Ufaweb, require_once для сборки сайта на инклюдах будет имхо правильнее.

Под конкретный случай выбирается, я привел обобщающий пример. Ведь tpl может использоваться несколько раз для вывода пунктов меню, например :)

kxk
На сайте с 30.01.2005
Offline
970
kxk
#5

Ufaweb, Дык вызвать столько раз сколько надо в чём проблема то, зачем его в цикле вызывать чтоб нагрузки больше было?

Shtogrin
На сайте с 02.11.2006
Offline
95
#6

kxk, Ufaweb, так может tpl это все таки файл шаблона и не надо его никак инклудить. ТС напишите что у вас за движок.

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
deedee
На сайте с 13.06.2006
Offline
118
#7

возможно речь идет о smarty. тогда в шаблонах {php}тут пхп код{/php}

DyaDya
На сайте с 11.04.2007
Offline
147
#8

примеры решения проблемы уже были озвучены.

Можно просто ассигнуть еще одни параметр дополнительный. Мне обычно так легче сделать.

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
Коля Дубр
На сайте с 02.03.2005
Offline
153
#9
CrazyJohn:
Удобнее всего это сделать именно через эти шаблонные файлы.

Это вам так кажется. На самом деле - шаблонные файлы не просто так придумали, и php-коду там, скорее всего, делать нечего. Я вам настоятельно рекомендую получше разобраться в системе, и решить задачу согласно предлагаемой системой архитектуре. Т.е. подготовить данные, а затем отправить их в шаблон.

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

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
CJ
На сайте с 20.11.2006
Offline
129
#10
Коля Дубр:
Расскажите подробнее, что у вас за зверь такой и что нужно сделать.

Зверь - скрипт каталога ссылок FairLinks, задача - вставить код системы sape.ru. Для меня проще работать с шаблонами, в php не силён. Да и раньше на другие движки вставлял через шаблон без особых проблем (тот же wordpress), вот и в этот раз решил, что так будет легче.

Shtogrin:
kxk, Ufaweb, так может tpl это все таки файл шаблона и не надо его никак инклудить. ТС напишите что у вас за движок.

Правильно, сам файл шаблона .tpl никуда инклюдить не нужно. Мне необходимо установить код сапы. Решил сделать это через шаблон, который разбит на несколько файлов с расширением .tpl.

Ufaweb:
Если делаете include("qwerty.tpl") или require("qwerty.tpl"), то php в них обрабатывается!
Нужно в нужных местах в файлах tpl написать <?=time();?> допустим, тогда функция будет выполнена.

Вот не понял, а куда и что предлагается инклюдить?

Всем спасибо за обсуждение, не ожидал такого ажиотажа, если честно. :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий