Заголовки и инклуды

Elliot

Новичок
Заголовки и инклуды

Добрый день, возникла такая проблема:
Принялся писать один скрипт.
Возникла проблемка, описываю:

у меня есть файлик index.php
в него передаются параметры типа index.php?act=hello
index.php, если взять упрощённо, выглядит так:

PHP:
$templates->display('header.tpl');
include ($act.'.php');
$templates->display('footer.tpl');
Но с такой моделью, не могу допереть как в каждое действие прописать заголовок страницы.
Есть вариант, в подключаемом файле объявлять переменную с заголовком и передавать в шаблонизатор, а затем подключать шапку в каждом файле, но данный вариант что-то мне подсказывает изначально неверный и некрасивый.

Подскажите как можно всё это организовать покрасивее или поделитесь ссылочкой пожалуйста.

Заранее благодарюза ответ.
 

bedladen

Новичок
что такое заголовок страницы?

PHP:
$templates->display('header.tpl');
...
$templates->display('footer.tpl');
так только второй шаблон покажет "футер.тпл"
 

Elliot

Новичок
Заголовок страницы это
<title>заголовок</title>

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

Фанат

oncle terrible
Команда форума
Elliot
потому что не надо вообще делать сайты, которые работают через индекс.
какая проблема обращаться напрямую к hello.php?
 

bedladen

Новичок
Автор оригинала: Elliot
Заголовок страницы это
<title>заголовок</title>

Про второй шаблон слегка не допонял, в общем проблема в том, что я могу потом во включаемых файлах прописывать его тайтл, но он не работает т.к шапка уже давно подгружена.
я так полагаю у тебя там smarty используется? если да, то почитай display()

после того как поймешь свою ошибку, перейдем к заголовкам
 

Elliot

Новичок
потому что не надо вообще делать сайты, которые работают через индекс.
Это уже интересней, тогда подскажите ссылочку или сами на пальцах поясните как надо, пожалуйста :)

какая проблема обращаться напрямую к hello.php?
Просто таких файлов многовато и в каждом не хочеться объявлять классы и подключать шапки и подвалы.
 

Nogrogomed

Новичок
Не по теме:
потому что не надо вообще делать сайты, которые работают через индекс.
А какова причина? За всю жисть только и вижу - сайты через индекс (за исключением некоторых движков форумов)...
 

bedladen

Новичок
Автор оригинала: *****
Elliot
потому что не надо вообще делать сайты, которые работают через индекс.
какая проблема обращаться напрямую к hello.php?
почему не надо? в этом есть свои плюсы... иногда :)
 

Фанат

oncle terrible
Команда форума
потому что возникают такие вот вопросы. как у аффтара
 

Elliot

Новичок
я так полагаю у тебя там smarty используется?
Совершенно верно.

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

bedladen

Новичок
Автор оригинала: *****
потому что возникают такие вот вопросы. как у аффтара
ну допустим афтарам даже шаблонами лучше не пользоваться

если есть потребность (например цмс) и если грамотно сделать, то использование одного индексного файла вполне себя оправдывает
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Elliot
display в смарти вызвать 1 раз

1-й и последний

-~{}~ 11.10.07 14:31:

Elliot
1. Советую пречитать мануал по смарти _внимательно_
2. юзайте
a) {include file}
b) fetch

Способов много
 

Фанат

oncle terrible
Команда форума
Спасибо, обязательно воспользуюсь.
Подскажите пожалуйста как это использовать именно в моей ситуации.
извини, но эти два предложения противоречат друг другу.
первое ты написал только чтобы от тебя отвязались.

поэтому давай с самого начала.
зачем тебе смарти в твоем проекте?
почему ты не можешь написать
include ($act.'.php');
$templates->display('header.tpl');
$templates->display('footer.tpl');

постарайся внимательно и подробно отвветить на оба этих вопроса
 

Elliot

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

зачем тебе смарти в твоем проекте?
Проба пера =)
почему ты не можешь написать
include ($act.'.php');
$templates->display('header.tpl');
$templates->display('footer.tpl');
В подгружаемом файле находиться начинка сайта
 

Фанат

oncle terrible
Команда форума
зачеркивай все - у тебя ничего не получилось.
потому что
В подгружаемом файле находиться начинка сайта
-~{}~ 11.10.07 16:30:

проблема твоя не технологическая, а идеологическая.
ты не понимаешь зачем тебе смарти и что это такое. поэтому спрашивать какие-то технические решения бесполезно.

при попытке забить молотком в стену шуруп, смена молотка тебе не поможет. понимаешь?
 

Elliot

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

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

Фанат

oncle terrible
Команда форума
Как я сейчас ощущаю, то я понимаю зачем мне шаблонизатор.
попробуй выразить это словами.
во-первых, ты лучше для себя сформулируешь, а во-вторых - если в твоих воззрениях есть логические просчеты, то мы поможем тебе их исправить.
и, самое главное - мы будем одинаково понимать, о чем идет речь. в противном случае друг друга просто не поймем.

ресурсы, где бы рассматривалась теоретическая сторона шаблонизации, увы, мне неизвестно.
поэтому попробуем прямо здесь разбираться.

если шаблонизатор нужен тебе только для того, чтобы вывести шапку и подвал, то тебе не нужен смарти.

тебе нужно обращаться к скриптам напрямую, а внутри скриптов писать:
code
include('header.php');
code
include('footer.php');
 

Elliot

Новичок
Шаблонизатор мне нужен,чтобы отделить код php от кода html.

Smarty мне нужен не только для вывода шапки и подвала, у меня также основная часть генериться из шаблона, также в Smarty использую кэшироание.
В общем у меня всё оформление лежит в шаблонах, в них передаются соотвествующие переменные и они отображаются(шаблоны).
 

Фанат

oncle terrible
Команда форума
очень хорошо.
по пунктам.
Шаблонизатор мне нужен,чтобы отделить код php от кода html
поздравляю! это самое распространенное заблуждение про шаблоны =)
во-первых, это утверждение не отвечает на вопрос "зачем?" зачем вообще отделять код php от кода html? А почему бы тогда не отделить код SQL от кода PHP?

во-вторых, если примотреться, то ты поменял шило на мыло. вместо кода PHP у тебя с кодом html соединился код смарти. и никакой принципиальной разницы ты не получил =)

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

В этом ошибка.
в шаблоне(-ах) должно лежать ВООБЩЕ ВСЕ ОФОРМЛЕНИЕ, до последней буквы.
 
Сверху