Autor Zpráva
Jamie
Profil *
Ahoj, snažím se naučit MVC, procházím na netu spoustu tutoriálů a narazil jsem na menší problém.
Pro vytvoření pohledu se používá všude něco jako include "pohled.phtml";
to ale znamená, že každý view musí vypadat nějak takto:
<html>
<head>
</head>
<body>
   <div class="header"></div>
   <div class="menu"></div>
   <div class="content">SEM SE VKLÁDÁ OBSAH</div>
   <div class="footer"></div>
</body>
</html>
jak řešit to, aby každý view nemusel mít tuhle strukturu ale jenom by obsahoval data do divu content? napadá mě mít jenom jedno view které by vypadalo takto a v contentu by bylo
<div class="content">
<?php include $content.".php"; ?>
</div>
Je i nějaké elegantnější řešení? Jakou strukturu MVC používáte vy? Rád se přiučím. děkuji
Bertram
Profil
Jamie:
Controler vlastní view a ten má zase metodu render, té předejte v parametru $content a uvnitř metody render si to poskládejte.
Tori
Profil
Jamie:
Na to se využívá dědičnost šablon, většina šablon ji podporuje. Pak to vypadá např. takhle:
// layout.phtml - kostra stránky
<html>
<head>
<title>{$title}</title>
</head>
<body>
   <div class="header"></div>
   <div class="menu"></div>
   <div class="content">{block content}Výchozí obsah. Jiná šablona si může tento blok přepsat vlastním obsahem.{/block}</div>
   <div class="footer"></div>
</body>
</html>

// uvod.phtml
{layout 'layout.phtml'}
{block content}
<h2>Úvod</h2>
... text pro úvodní stránku
{/block}

// uzivatel.phtml
{layout 'layout.phtml'}
{block content}
<h2>Uživatel {$username}</h2> 
 ... a nějaký další obsah na profil
{/block}
Jamie
Profil *
[#3] Tori
Díky za radu. a jak se to dá naprogramovat? je o tom někde nějaký článek? díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: