• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Template-System

McKeen

Neues Mitglied
Hallo,

Ich habe eine Frage und zwar möchte ich ein Template-system basteln, jedoch habe ich keine ahnung, wie man das so hinkriegt, wie ich es mir vorstelle^^

So stelle ich es mir vor:

Man kann ein normales HTML-Design machen, dort wo eben der Content hinkommt, fügt man ein einfaches:

[CONTENT]

ein - so ähnlich halt wie beim Ilch-CMS.

wüsste jemand ein tutorial für so etwas?

mfg

McKeen
 
naja..funktioniert das so, wie ich es mir vorstelle? :D ich habe von klassen un OOP etc. nämlich keine ahnung^^
 
Wobei ich der Meinung bin, dass ist doppelt gemoppelt, PHP ist ja Quasi ein Template System. Da noch mal eins drauf zu packen halte ich nur für notwendig, wenn man absolut vermeiden will, dass jemand dort PHP Code einfügen kann. Aber in der Regel ist das eher erwünscht (die meisten Templatesysteme bieten sowas auch explizit an).
 
hmm..ich hab das smarty mal probiert und muss sagen..naja^^ gefällt mir nicht :( ich machs jetzt wirklich nur mit php, einfach header, content, footer etc. per include einbinden und fertig ;)
 
Wobei ich der Meinung bin, dass ist doppelt gemoppelt, PHP ist ja Quasi ein Template System. Da noch mal eins drauf zu packen halte ich nur für notwendig, wenn man absolut vermeiden will, dass jemand dort PHP Code einfügen kann. Aber in der Regel ist das eher erwünscht (die meisten Templatesysteme bieten sowas auch explizit an).

Volle Zustimmung.

Hier ein Ansatz für ein PHP-basiertes Template-System, das so ähnlich auch in bekannteren Frameworks eingesetzt wird:

index.php:

PHP:
<?php

class SimpleView
{
    protected $_vars;

    public function __construct()
    {
        $this->_vars = array();
    }

    public function __set($name, $value)
    {
        $this->_vars[$name] = $value;
    }

    public function __get($name)
    {
        return (isset($this->_vars[$name])) ? $this->_vars[$name] : null;
    }

    public function render($template)
    {
        include $template;
    }
}

$view = new SimpleView();

$view->heading = 'Hello World!';
$view->content = 'Hier folgt der Inhalt.';

$tmp = array();
for ($i = 0; $i < 10; $i++)
{
    $tmp[] = 'Test' . $i;
}
$view->someMoreData = $tmp;

$view->render('test.phtml');

test.phtml:

PHP:
<h1><?php echo $this->heading; ?></h1>
<p><?php echo $this->content; ?></p>

<ul>
<?php foreach ($this->someMoreData as $data) : ?>
<li><?php echo $data; ?></li>
<?php endforeach; ?>
</ul>

(Inzwischen mehrfach recycleter Post.)
 
danke mermshaus, aber wie gesagt kann ich php, aber bin noch nciht so fortgeschritten, dass ich klassen etc. kann...wo funktioniert denn was wie?
 
Ja, es ist etwas müßig, den Code haarklein erklären zu wollen. Da müsste man sehr weit ausholen, wenn die entsprechenden Grundlagen nicht da sind (deshalb dazu nur der Verweis auf die PHP-Dokumentation bzw. grundlegende Literatur). Es handelt sich zudem um wenig mehr als ein "Proof of Concept"-Beispiel, das verdeutlichen soll, wie elegant auch PHP-Templates eingesetzt werden können.

Das Konzept selbst ist in diesem Fall an das Zend Framework angelehnt, aber so oder so ähnlich auch anderswo anzutreffen.

Wäre prima, wenn jemand dazu ein Tutorial verlinken könnte. Ich habe ehrlichgesagt keine Lust eins zu suchen.
 
Zurück
Oben