[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод <title> с помощью php
timotheus
Господа, здравствуйте!

Я новичок, прошу сильно не пинать.
Мой вопрос касается вот этих уроков, поскольку они тащат и вообще няшечки ^^`)

Вкратце как все работает: index.php инициализирует MVC, то есть, в частности инклюдит header.php и footer.php. В хидере ничего нового нет:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link
rel="stylesheet" href="/template/style.css" type="text/css" />


у меня проблема - я не могу придумать как вывести название товара в title.

Для карточки товара созданы 3 файла в трех папках (views, models и controllers)
Хорошо бы во вьюшку товара засунуть какой-то код, который использовал переменную с именем товара для <title>

или как это можно сделать я уже не знаю..
говорят, что можно проинклюдить в index.php какой-нибудь файл содержащий функции обращения к БД, то есть те же тайтлы, но как там будет определяться в какой момент что использовать, я не знаю.

советуют использовать функции кэширования ob_start. Но как вписать их в парадигму MVC я не представляю.

я придумал написать регулярное выражение в index.php, которое будет анализировать URL и в зависимости от того, что там будет, обращаться в БД за соответствующим title-ом (или за description, который мне тоже нужен) и выводить его в теге title заголовка.

Господа, уважаемые! Подскажите самый простой путь реализации, пожалуйста!
kaww
ИМХО самый простой и логичный путь - это определить помощник вида (классы-помощники, выполняющие такие операции как, например, формирование метатегов, хлебных крошек, менюшек и т.д.) назвать его как-нибудь типа headTitle(), работающий как placeholder. и Использовать его так:
В контроллере:
$view->headTitle()->push($item->title);

в скрипте вида:
<head>
<?=
$this->headTitle()?>
</head>

сам помощник имеет примерно такую реализацию:
class headTitle {

$delimiter = '::';
$data = array();

#some code

public function push($text) {

$this->data[] = $text;
}

public function __toString() {

return explode($this->delimiter, $this->data);
}
}
Guest
А решение-то было рядом..спасибо автору тех уроков..

в контроллер продукта вставить:
$this->title=$product['name'];



А в файле шаблона header.php в раздел <head> вставить :

<title><?php echo $title ?></title>


всем спасибо =) а то я уже отчаялся)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.