Господа, здравствуйте! Я новичок, прошу сильно не пинать. Мой вопрос касается вот этих уроков, поскольку они тащат и вообще няшечки ^^`) Вкратце как все работает: index.php инициализирует MVC, то есть, в частности инклюдит header.php и footer.php. В хидере ничего нового нет: Код (Text): <!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 заголовка. Господа! Подскажите самый простой путь реализации, пожалуйста!
значит это не mvc. используйте ob_start хотя бы. значит это даже близко не mvc в принципе и вы сделали очередную херню на лопате которую делают все новички. То что у вас что-то инклудится это вовсе не позволяет вам управлять отображением. Т.е. у вас связи модель-контроллер просто нет. То что вы написали, что у вас каждый товар имеет ажно три файла (views, models и controllers) говорит о том, что это не mvc, а классическое "статические хтмлшки" в извращённом виде. цитата из википедии поможет вам: т.е. у вас должно использоваться одно и то же отображение на все одинаковые товары. Начните заново без тех уроков полагаясь на функцию ob_start() и вы поймёте как всё просто и сделаете это заново за один вечер.
Если это у Вас весь "хидер", зачем ему расширение "php"? 1. Положите весь статический и неизменный HTML (хидер, футер, форму вызова девчонок и т.п.) в статические "html" файлы, можно за пределами папки htdocs, если хочется не дать к ним доступ извне. 2. В index.php или соответствующей "вьюшке", используя функции кэширования, выводите эти файлы (их содержимое), между ними выводите динамические части HTML из php-кода и вот тут-то при выводе очередного "<img ... >" подставляйте значение title, description и т.д., взятое из базы или еще откуда хочется. Как-то так. Вопрос слишком общий и вокруг сути вопроса слишком много букв (осилил с трудом), чтоб дать конкретные рекомендации.
не совсем так. товаров много, модель каталога обращается к БД за данными, которые выводятся вьюшкой каталога. Вообще можно было потратить 3 минуты времени и пройти по ссылке, посмотреть что за хня там написана, прежде чем начать так активно обсирать. Ладно, не суть. А решение-то было рядом..спасибо автору тех уроков.. в контроллер продукта вставить: Код (Text): $this->title=$product['name']; А в файле шаблона header.php в раздел <head> вставить : Код (Text): <title><?php echo $title ?></title> всем спасибо =) а то я уже отчаялся) ____________________________________________________ короче, днище я, знаю. но, блин, все когда-то учатся
Так и не уловил очевидной связи между двумя действиями Здесь устанавливаем свойство объекта. А здесь обращаемся к самостоятельной переменной. Или у Вас (извините, у глубокоуважаемого автора) "контроллер продукта" отвечает за формирование заголовков страницы и делает это в каком-то внутреннем методе? Но тогда тоже неверно... я удосужился и с первой страницы беглого просмотра подумал - действительно - та еще хня... Теперь утвердился в мысли окончательно.