Сайт на шаблонах

allmoney

Новичок
Нет, я спрашиваю, если я эту переменную вынесу в отдельный файл - как подключать ко всем файлам.
 

Фанат

oncle terrible
Команда форума
а у тебя до сих пор такого отдельного файла нет?

подключать - обычно.
либо делать инклюд во всех файлах, либо настроить auto_prepend_file в .htaccess и там определить все настройки.
 

allmoney

Новичок
Супер! Спасибо!!!
<?
include_once $_SERVER['DOCUMENT_ROOT'].'/settings.inc.php';
include $path."/head.inc";
include $path."/top_menu.inc";
?>

И ещё вопросик,
Страницы page1.php и page2.php имеют шаблон 1.tpl
Страница page3.php имеет шаблон 2.tpl

Оба шаблона имеют одинаковую часть кода <banner>. Как можно вынести эту часть кода в отдельный шаблон? Как я понимаю, тут будет двойная обработка кода... Как сделать, чтобы работало?
 

allmoney

Новичок
Сделал, но переменные описанные в page.php не передаются в head.inc :(

page.php:

<?
include_once $_SERVER['DOCUMENT_ROOT'].'/settings.inc.php';
include_once $path.'/page.tpl';
$title = "Заголовок";
?>

page.tpl:
<head><? include $path."/top.inc" ?></head>

top.inc:
<title><? $title ?></title>

Вместо залоговка на странице - пусто (<title></title>). Где ошибка? :(
 

Фанат

oncle terrible
Команда форума
<title><? $title ?></title>
это что такое?

-~{}~ 15.09.06 13:19:

файлам шаблонов лучше давать расширение php
и, если уж ты думаешь, что у тебя может поменяться путь, то может поменяться и имя файла.
зачем писать $path.'/page.tpl';
если можно написать всего одну переменную?
 

allmoney

Новичок
Автор оригинала: Фанат
<title><? $title ?></title>
это что такое?
Заголовок страницы page.php, который указан в page.php как $title. Что-то не так? Почему переменная не заменилась? Это единственный вопрос, который у меня сейчас остался :(

Автор оригинала: Фанат
файлам шаблонов лучше давать расширение php
Почему? Просто с такими расширениями (tpl, inc) лучше понять, где каркас страницы (tpl), а где блок кода (inc).

Автор оригинала: Фанат
и, если уж ты думаешь, что у тебя может поменяться путь, то может поменяться и имя файла.
зачем писать $path.'/page.tpl';
page.tpl - каркас страницы, дя некотрых страниц каркас будет другой.
 

Фанат

oncle terrible
Команда форума
Заголовок страницы page.php, который указан в page.php как $title. Что-то не так?
какая догадливость.
а с чего ты взял, что тут должно что-то на что-то замениться?
Почему? Просто с такими расширениями (tpl, inc) лучше понять, где каркас страницы (tpl), а где блок кода (inc).
чтобы что-то понять, нужно использовать имя файла.
а расширение должно однозначно идентифицировать его тип.
причём, что странно, иногда ты делаешь по-человечески: settings.inc.php
но при этом всё равно упираешься.
 

Igorek

Новичок
include_once $path.'/page.tpl';
$title = "Заголовок";
Местами поменяй и будет счастье
 

allmoney

Новичок
Igorek
Не помогло, проблема так и осталась :(

Фанат
Понял, был неправ, расширения для всех добавил:
page.php
page.tpl.php
head.inc.php

Но как же сделать, чтобы $title, значение которого указано в page.php обработалось и вставилось в head.inc.php? :(
 

allmoney

Новичок
Фанат

Я дурак :)
Писал:
<title><? $title ?></title>
А надо было:
<title><? echo $title ?></title>

Спасибо за подсказку! Только что заказал книгу "Разработка Web-приложений на PHP 5", будем совершенствоваться :)
 

allmoney

Новичок
Супер, не знал!

Пробую так настроить включение настроек, но внутреннюю ошибку сервера выдаёт :(

<Directory /var/www/html/domain.ru>
php_value auto_prepend_file /var/www/html/domain.ru/settings.inc.php
</Directory>
 

Фанат

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

-~{}~ 15.09.06 20:51:

allmoney
Надо писать КАКУЮ ОШИБКУ!
Я уже сто раз говорил - ошибка - это не бессмысленный мат. Там Слова написаны. Которые читать надо. Если не можешь прочитать сам - надо скопировать на форум.
Текст ошибки пишется в error_log. оттуда его и надо читать.
 

Wicked

Новичок
во-первых, у него и так был шорт
согласен, но это не повод не сделать лучше :)

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

кстати, в php.ini-recommended написано стоит short_open_tag = Off
 

Фанат

oncle terrible
Команда форума
бред, которым обясняется то, что в php.ini-recommended написано стоит short_open_tag = Off
 

Franzusow

Новичок
Автор оригинала: allmoney
Я бы попробовал, но не знаю как :)

Сейчас в каждом файле я прописываю:

<? include $_SERVER['DOCUMENT_ROOT']."/head.inc" ?>
<? include $_SERVER['DOCUMENT_ROOT']."/top_menu.inc" ?>

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