Отложенный вызов функции

nZer0

Новичок
Отложенный вызов функции

Доброго времени суток всем :)

Сайт состоит из header.php и footer.php. Между которыми выводится контент и определяются разные параметры документа.

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

Как быть? Подскажите пожалуйста.
Заранее благодарен.
 

Coffin

Новичок
Сделать так, что бы стили, ключевые слова и название страницы определялось до создания контента, логично ?
 

Alexandre

PHPПенсионер
изменить структуру сайта.
А сами стили, ключевые слова и название страницы определяются уже после в процессе создания контента.
сделай общее ядро, которое будет подгружать контент, включая ключевые слова,
сделай шаблон твоего сайта - прочитай http://phpclub.ru/detail/article/2002-11-25
 

nZer0

Новичок
логично, но к сожалению не подходит. т.к. все определяется в теле страницы, которая идёт после header.php

-~{}~ 22.12.06 12:16:

Спасибо за советы. Наверное буду менять структуру сайта.
А других вариантов нету?
 

Фанат

oncle terrible
Команда форума
"к сожалению не подходит" ты скажи СЕБЕ. про свою кривую структуру сайта.
 

nZer0

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

Фанат

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

-~{}~ 22.12.06 12:42:

как раз сама идея использования шаблонов состоит в том, чтобы сначала получить все ДАННЫЕ, а только потом начинать вывод на экран.
 

SaNeK

Новичок
nZer0
я согласен с тем, что структура и логика кривая. Но ответом на вопрос может послужить:
1. http://php.net/ob_start
2. http://php.net/ob_get_clean
3. str_replace или REGEXP.

Схему, думаю, придумаешь: вставляешь в хидер вместо стилей и проч. ключевые слова, а потом делаешь поиск и замену в том, что вернет тебе ob_get_clean. Если сделаешь - будешь знать еще один "рецепт", но этот рецепт потом тебе всю голову сломает. Лучше делай сразу по-человечески.
 

Invizz

Новичок
хах, конечно, давайте использовать буфер и регекспы, при всякой тривиальной задаче.
 

SaNeK

Новичок
Invizz
ты бы лучше посоветовал что-нибудь. Или по крайней мере попытался.

-~{}~ 24.12.06 00:26:

и что, я не понял, если человек покопается в буферизации и регэкспах на этой тривиальной задаче - ему что, от этого хуже станет?!
 

Invizz

Новичок
SaNeK
Что буфер, что регеспы - хорошие инструменты, но у каждого инструмента есть своя область применения.

А так -- пожалуйста, можно дальше забивать гвозди топором.

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

Андрейка

Senior pomidor developer
Invizz
а какая область применения у буфера и регэкспов? почему они тут не подходят?
 

Invizz

Новичок
Андрейка
У буфера - буферизация, а не костыляние дебильной структуры

У регекспов - сложный парс строк.

Потому, что это оверхед
 

Invizz

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

Шаблоны это сначала вычислить, потом вывести
 

С.

Продвинутый новичок
Автор оригинала: Фанат
как раз сама идея использования шаблонов состоит в том, чтобы сначала получить все ДАННЫЕ, а только потом начинать вывод на экран.
Автор оригинала: Invizz
Шаблоны это сначала вычислить, потом вывести
Будьте добры, с этого места помедленнее. Я записываю. Кто кого у вас вызывает (шаблон модуль или наоборот), когда и кем шапка и подвал вставляются.
 

Андрейка

Senior pomidor developer
Invizz
у вас есть какие-то интересные мысли по поводу почему так нельзя делать шаблонизатор или просто нельзя и все?
 

Invizz

Новичок
Андрейка
Окей, сдаюсь, можно. А еще можно ставтиь куки из середины вывода, ведь буфер на все есть!

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

SaNeK

Новичок
У буфера - буферизация
Хорош ответ, ничего не скажешь...

Будьте добры, с этого места помедленнее. Я записываю. Кто кого у вас вызывает (шаблон модуль или наоборот), когда и кем шапка и подвал вставляются.
Вообще говоря, модуль должен компоновать и формировать данные, а затем отдавать их шаблону, загружая его и выводя на страницу. Вернее не так: модуль только создает данные для шаблона, а вот уже выбор шаблона, его компоновка - это все дело не модуля.
 

С.

Продвинутый новичок
Ребята, не надо мне теоретическим мылом по мозгам водить. Я же просил по-подробнее и на детали указал, которые нужны. Человек задал вопрос, как в шапке выдать данные, которые будут известны позже. Буферизация вам не круто, парсинг - бяка. Ну так договаривайте до конца, как надо по-пацански.
 
Сверху