Показать полную графическую версию : Можно ли сделать динамический title
Я - неопытный в вопросах вебпрограммирования, поэтому мой вопрос для некоторых может показаться странным:
У меня заголовок страницы берется из тега <title> в файле page.tmpl, а содержимое страницы может меняться в зависимости от действий посетителя по коду PHP из файла ruler.php
Можно ли как-то сделать, чтоб содержимое тега <title> менялось в зависимости от значения переменных в ruler.php ?
Где об этом почитать, если можно?
Vlad Drakula
17-05-2006, 23:47
SergOst
можно... нужно просто вставить в нутрь заголовка значение переменной с нужным значением...
можно... нужно просто вставить в нутрь заголовка значение переменной с нужным значением...
Это как? Юмор что-ли?
Я понимаю "значение переменной с нужным значением" это константа, или нет?
Например могу ли я
<title> текст1 текст2 $varC текст3 </title> написать в page.tmpl
а значение переменной $varC будет меняться в другом файле ruler.php и непонятно почему передаваться в файл page.tmpl ?
page.tmpl - это что-то похоже на шаблон. ;)) Тогда в нем дожно быть что-то такое (не обязательно) :
<title>${title}</title>
Почитать можно здесь (http://phpdoc.hut.ru/fasttemplate.php)
У меня заголовок страницы берется из тега <title> в файле page.tmpl
И в каком виде он там записан? То есть явно или через переменную?
И в каком виде он там записан? То есть явно или через переменную?
Сейчас он записан явно, русским текстом, потому и постоянен.
page.tmpl - это что-то похоже на шаблон. ) Тогда в нем дожно быть что-то такое (не обязательно) :
<title>${title}</title>
Почитать можно здесь
Если я вставляю ${title}, то этот текст и высвечивается в заголовке, т.е. значение переменной $title из другого файла (ruler.php), где я его задал, не передается.
В документации написано про шаблоны с расширением *.tpl и про FastTemplate, которого у меня нет.
(Я понял что FastTemplate это нестнадартное дополнение к php3, написанное Jason Moore, а у моего провайдера только стандарт стоит)
У меня страница собирается в файле index.php следующим образом:
<?PHP
require("page.tmpl");
require("ruler.php");
require("footer.tmpl");
?>
Писал сайт не я, мне дали задание, как админу, изменить.
Если я буду изменять часть шаблонов с tmpl на tpl, то будет ли все это работать?
Хорошо бы разобраться именно с tmpl. Сервер - Linux, Apache, page.tmpl имеет в реальности имя header.tmpl (если это важно),
а ruler.php - center.php.
Тяжело Вам будет это сделать, полагаю ;) Ссылку я дал для наглядности, просто что бы Вы посмотрели пример работы шаблонизатора. Так как Вы не предоставили хоть кусочек этих Ваших tmpl - точно кроме Вас самих что в вашем коде никто не скажет.
Какая разница между *.tmpl и *.tpl? Никакой! Это расширение файла и оно ничего не означает. Возможно кусок html с певдопеременными или без. В вашем случае скорее всего не используется никакого шаблонизатора (могу ошибаться).
page.tmpl - шапочка страницы.
footer.tmpl - подвал страницы.
Если Вы генеируете title из ruler.php, а ruler.php отрабатывает позже чем выводится на печать page.tmpl как вы можете там что-то заменить? (если я правильно понял)
P.S. Заменить можно регулярными выражениями. Поместить в переменную содержимое page.tmpl, найти совпадение <title></title> и заменить на нужное значение. Вуаля!
P.S. Заменить можно регулярными выражениями. Поместить в переменную содержимое page.tmpl, найти совпадение <title></title> и заменить на нужное значение. Вуаля!
что-то мне подсказывает, что не "Вуаля"....)
А можно hidden-поле в ruler.php? А потом GET'ом его в page.php и там уже на месте писать? Минусы - страница не .tmpl, а .php. Сойдет?
Файл header.php (надо переименновать)
<?php
ob_start();
?>
<html>
<head>
<title>$title</title>
</head>
<body>
<?php
$header = ob_get_contents();
ob_end_clean();
?>
В файл ruler.php добавить эти строки, перед остальными.
$new_title = '****';
$header = preg_replace("/<title>(.*?)<\/title>/", "<title>$new_title</title>", $header);
echo $header;
http://php.rinet.ru/manual/ru/function.ob-start.php
см. сообщение от Алексея
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.