работа с шаблоном для сайта

Статус
В этой теме нельзя размещать новые ответы.

Alx

Новичок
работа с шаблоном для сайта

Приветствую!
вопрос вот в чём - предположим все страницы моего сайта имеют вот такую структуру:

<html>
<head>
<title>{own_title }</title>
</head>
<body>
<TABLE>
<TR><TD>{block_1}</TD></TR>
<TR><TD>{block_2}</TD></TR>
</TABLE>
</body>
</html>

Каким образом можно определить такой шаблон, чтоб во всех страницах сайта указывать только значения блоков (own_title, block_1 и block_2 )?

Понятно, что нужно описать эту структуру в отдельном файле (например, template.php), а потом пользоваться
PHP:
include("http://www.mysite.com/template.php");
, но как обозначить сами блоки?
 

tolst

Новичок
<?php

$own_title = "x1";
$block_1 = "x2";
$block_2 = "x3";

$fp = fopen("./template.tpl", "r");
$content = fread($fp, filesize("./template.tpl"));
fclose($fp);

$content = str_replace("own_title", $own_title, $content);
$content = str_replace("block_1", $block_1, $content);
$content = str_replace("block_2", $block_2, $content);

echo $content;

?>
 

Alx

Новичок
Понятно, что нужно описать эту структуру в отдельном файле (например, template.php), а потом пользоваться
include("http://www.mysite.com/template.php");
но как обозначить сами блоки?
 

tolst

Новичок
пускай будут так же обозначены как и сейчас, просто делай из шаблона str_replace
$conten = str_replace("ЧТО ЗАМЕНЯЕШ", "НА ЧТО", "ИЗ ЧЕГО");
 

Фанат

oncle terrible
Команда форума
Понятно, что нужно описать эту структуру в отдельном файле (например, template.php), а потом пользоваться
include("http://www.mysite.com/template.php");
но как обозначить сами блоки?
так бы сразу и сказал.

<html>
<head>
<title><? echo $own_title ?></title>
</head>
<body>
<TABLE>
<TR><TD> <? echo $block_1</TD></TR>
<TR><TD><? echo $block_2 ?></TD></TR>
</TABLE>
</body>
</html>
 

Alx

Новичок
если я делаю так и на пробной странице говорю:
include("http://www.mysite.com/template.php");
$own_title = "test page 1";
то это не проходит.
 

DimbIch

Новичок
Alx
smarty.php.net - хорошая вещь хотя некоторые думают иначе :)
стоит попробовать во всяком случае

а вообще надо бы наоборот :)

$own_title = "test page 1";
include(TEMPLATE_DIR."template.php");

-~{}~ 11.04.05 18:06:

Moris
ты хоть ошибки исправляй в коде когда показываешь как делать
 

SiMM

Новичок
> а так?
Всё так же через заднее кирильцо. Тебе нужны пути в файловой системе, а не на сайте.
 

Фанат

oncle terrible
Команда форума
Moris, тебе тоже надо читать ссылку, которую я дал.
и вообще, лучше молчать.
 

Alx

Новичок
не, народ, шаблон то у меня грузится нормально с путем "http://www.mysite.com/template.php" (попробовал забить абсолютный путь для проверки, файл сразу инклюдиться перестал). В общем проблема совсем в другом: на новых страницах переменная $own_title() не определяется, если я говорю $own_title = "test page 1".

И ещё вопрос: в качестве block_1 может быть не просто строка текста, а кусок хтмл-кода. Для этого тоже block_1 определять как переменную или же тут нужен какой-то другой подход?
 

Фанат

oncle terrible
Команда форума
не, народ, шаблон то у меня грузится нормально с путем
так, мальчик.
читаешь и выполняешь по пунктам.
1. ПЕРЕСТАЁШЬ тупить.
2. ЧИТАЕШЬ ЕЩЁ РАЗ, ВНИМАТЕЛЬНО, чем отличается то, как ты инклюдишь, от того, как ПРАВИЛЬНО инклюдить.
3. инклюдишь по человечески.
4. вопросы отпадают саим собой.

выполняй.
 

Alx

Новичок
прошу прощения, с абсолютным путём тоже работает, но проблема определения блоков всё же остаётся.
 

Фанат

oncle terrible
Команда форума
в качестве бонуса, чтобы ты ПОНЯЛ, почему не работает твой идиотский способ инклюда, читаешь PHP FAQ: Самые основы. Как работает PHP.

пока не прочтёшь - писать сюда ничего не надо.

-~{}~ 11.04.05 19:40:

проблема определения блоков всё же остаётся.
никакой проблемы ты не описал.
проблема может быть описана ТОЛЬКО так:
1. желаемый результат
2. предпринятые действия
3. полученный результат

а то, что ты написал - это не проблема, а разговор с самим собой
 

Alx

Новичок
я же говорю - мой идиотский способ инклюда РАБОТАЕТ!

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

p.s.
проблему я обозначил несколько постов выше, но повторюсь:
1. желаемый результат: иметь на каждой странице свой тайтл;
2. предпринятые действия: $own_title = "test page 1";
3. полученный результат: на новых страницах переменная $own_title() не определяется, если я говорю $own_title = "test page 1";
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Alx
пункт 3 мне непонятен, что за $own_title() ?

Если твой инклюд работает - это еще не факт что правильно.
 

Фанат

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

далее.
в одном и том же посте ты пишешь
мой идиотский способ инклюда РАБОТАЕТ
на новых страницах переменная $own_title() не определяется
НУ ЕСЛИ НЕ ОПРЕДЕЛЯЕТСЯ - ТО КАК ТЫ МОЖЕШЬ ГОВОРИТЬ, ЧТО РАБОТАЕТ?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху