php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.05.2008, 00:27  
Erfahrener Benutzer
 
Registriert seit: 02.03.2008
Beiträge: 351
robydog befindet sich auf einem aufstrebenden Ast
Standard Templates

Hallo

Kann mir jemand sagen welches Template System am einfachsten ist?

Ich möchte Code und Design trennen und wenn nötig mit einem Template System machen.

Wenn es auch anders geht natürlich auch so.

Ich hatte mal ein WBB Forum und dort fand ich nirgends ein Template System und trotzdem funktioniert das ganze mit Templates

Wäre froh wenn mir da jemand helfen kann
robydog ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.05.2008, 04:41  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hey, prinzipiell brauchst du keine eigene Template-"Engine", mit PHP kannst du dir alles selbst bauen:

Template.class.php
PHP-Code:
<?php
class Template {
  public function 
Render($strFile) {
    include 
$strFile;
  }
}
?>
index.php:
PHP-Code:
<?php
require "Template.class.php";
$objTemplate = new Template();
$objTemplate->Title "Europameister 2008";
$objTemplate->Text ".. sollte Deutschland werden!";
$objTemplate->Render("index.tpl.php");
?>
index.tpl.php:
PHP-Code:
<html>
<head><title><?= $this->Title ?></title></head>
<body>
<h1><?= $this->Title ?></h1>
<span><?= $this->Text ?></span>
</body>
</html>
Mehr steckt prinzipiell nicht dahinter, Caches, Konfigurationen etc. kannst du dir selbst bauen wenn du es benoetigst.
Chriz ist offline  
Alt 20.05.2008, 08:44  
Erfahrener Benutzer
 
Registriert seit: 29.02.2008
Beiträge: 102
Thomas befindet sich auf einem aufstrebenden Ast
Standard

Hi,

Ich sehe da schlechtes OOP Design, da du direkt auf Membervariablen von Objekten zugreifst, was man vermeiden sollte und auch nie braucht.

Gruß Thomas
Thomas ist offline  
Alt 20.05.2008, 08:48  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von Thomas Beitrag anzeigen
Hi,

Ich sehe da schlechtes OOP Design, da du direkt auf Membervariablen von Objekten zugreifst, was man vermeiden sollte und auch nie braucht.

Gruß Thomas
Hi Thomas,

ich denke register_globals wollte hier nur das Prinzip erklären und funktionieren wird es so auch. Das da einiges dran zu verbessern ist ist gar keine Frage, aber um das Prinzip zu erklären find ich das Beispiel ganz gut...
cycap ist offline  
Alt 20.05.2008, 09:10  
Erfahrener Benutzer
 
Registriert seit: 29.02.2008
Beiträge: 102
Thomas befindet sich auf einem aufstrebenden Ast
Standard

Hi,

Dann sollte man sowas dazu schreiben, denn sonst werden solche schlechten Praktiken schnell zum Standard bei Anfängern.

Gruß Thomas
Thomas ist offline  
Alt 20.05.2008, 11:17  
Erfahrener Benutzer
 
Registriert seit: 02.03.2008
Beiträge: 351
robydog befindet sich auf einem aufstrebenden Ast
Standard

Könnte dann jemand von euch vielleicht hinschreiben wie es besser gemacht werden sollte. das würde vorallem einem Anfänger wie mir weiter helfen. Den nun steht ein Code da den ihr für falsch empfindet und nun weiss ich wieder gleich viel wie am anfang
robydog ist offline  
Alt 20.05.2008, 11:41  
Erfahrener Benutzer
 
Registriert seit: 07.04.2008
Beiträge: 100
PHP-Kenntnisse:
Anfänger
reliC ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hi du könntest natürlich auch auf joomla zurückgreifen das ist ein relativ einfaches CMS system mit haufenweise kostenlosten templates die du benutzen kannst. Und je nach umfang kannst du damit auch ganz schicke komplizierte sachen bewerkstelligen ist open source alles Joomla!

greetz
reliC ist offline  
Alt 20.05.2008, 12:09  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von Thomas Beitrag anzeigen
Ich sehe da schlechtes OOP Design, da du direkt auf Membervariablen von Objekten zugreifst, was man vermeiden sollte und auch nie braucht.
In diesem Fall ist das doch kein Ding. Die Template-Klasse und ihre Member werden ja nur zum "durchschleusen" der Werte für das Template verwendet.

Vielleicht nicht schön, aber allemal ok für den Zweck.
__________________
Today you...Tomorrow me.

Geändert von agrajag (20.05.2008 um 12:11 Uhr).
agrajag ist offline  
Alt 20.05.2008, 12:39  
Erfahrener Benutzer
 
Registriert seit: 29.02.2008
Beiträge: 102
Thomas befindet sich auf einem aufstrebenden Ast
Standard

Hi,

Was heißt ein Ding. Das ist einfach ein super simples Beispiel und trotzdem verstößt es gegen ein Grundprinzip der OOP. Wenn er dann noch andere Klassen programmiert und sich dort an die Prinzipien hält, dann hat er auch noch einen Mischmasch im Programmierstil.

Gruß Thomas
Thomas ist offline  
Alt 20.05.2008, 12:48  
Neo
Benutzer
 
Registriert seit: 06.05.2008
Beiträge: 44
PHP-Kenntnisse:
Fortgeschritten
Neo befindet sich auf einem aufstrebenden Ast
Standard

Hey robydog.

also, ein einfacher weg templates zu erstellen wäre z.B. so. (bin natürlich auch für kritik offen, was die anderen daran noch verbessern würde, oder was ich da falsch gemacht habe).

Also fangen wir mal an.

Zu erst brauchen wir eine datei, in der wir die Klasse für das Template erstellen.

Nennen wir sie einfach einmal "template.class.php".

Diese bauen wir wie folgt auf:
PHP-Code:
<?php 
class Template{
protected 
$template = array(); //Hier werden mehrere Templates zusammengefügt, dadurch wird es ermöglicht das eine Seite sich auch aus mehreren Templates aufbauen lässt.
protected $templateDir "templates/"//Hier kannst du irgendein verzeichnis angeben in dem Anschließend die Templates gespeichert werden und wieder ausgelesen
protected $templateTyp ".tpl"// Hier die endung der Template dateien
 
// So, nun fangen wir mit der Template funktion an, welche die Templates abruft, zusammenfasst, und anschließend wiedergibt.
 
public function get($template)
{
$this->template[$template] = file_get_contents($this->templateDir.$template.$this->typ); //Hier wird mit hilfe von file_get_contens der Inhalt vom Template geholt,und in unserem Array $template gespeichert.
 
return $this->template[$template]; //zurückgeben des Templates
}
 
//Da sich eine Seite meist aus mehreren Templates zusammen stellt, brauchen wir jetzt noch eine Funktion die später, wenn wir fertig sind, alle Templates zusammenfasst und ausgibt.
 
public function out($template)
{
       print(
$template);
}
}
?>
So, das war nun der Inhalt für template.class.php !

Diese kann man natürlich noch weiter ergänzen, um z.B. verschiedene Sprachen mithilfe von Sprach Variablen zu laden.

Kommen wir jetzt zur index.php, welche auf diese Klasse zugreift, und für das zusammensetzen der Seite zuständig ist.

index.php:
PHP-Code:
<?php
       
//zuerst einmal includen wir unsere template datei.
       
include 'template.class.php';
 
      
// nun erstellen wir unser template objekt =)
      
$tpl = new template();
      
// sonst können wir unsere funktion gar nicht verwenden 
 
      //jetzt fangen wir an unsere Tpl datei einzufügen. (keine angst, die schreiben wir später noch), diese Template datei wird in der Variable $content hinterlegt.
 
     
eval("\$content=\"".$tpl->get("index")."\";");
 
 
     
//So wie man sieht, wird unsere get function welche wir in unsere Template.class.php Datei befindet aufgerufen und zwar mit dem Parameter "index", dadurch das wir vorhin einen Typ erstellt haben, wird automatisch index.tpl aufgerufen
 
      //So nun müssen wir nur noch unsere funktion zum ausgeben von unserem Template aufrufen, und schon haben wir es fast geschafft =)
 
     
eval("\$tpl->out(\"".$content."\");");
?>
So, nun kommen wir zu unserer Template datei, welche den html code beinhaltet. (nicht vergessen, diese muss wie man in unserer Template.class.php datei sehen kann im verzeichniss Templates liegen !!)

index.tpl:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="XHTML namespace">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index.tpl</title>
</head>
<body>
Das hier ist unsere Template Datei, welche ausgegeben wird !
</body>
</html>
So, das wars auch schon =), jetzt wird jedesmal wenn du die index.php aufrufst die index.tpl ausgegeben.

Falls ich dir noch irgendwas erklären soll, oder du noch weitere hilfe brauchst dann meld dich.



Mfg Neo
Neo ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
templates und Co Elta PHP Tipps 2008 6 14.07.2008 15:13
if abfragen in Templates rob1011 PHP Tipps 2006 13 03.08.2006 15:55
Vererbung bei Templates Pain-maker PHP-Fortgeschrittene 9 28.03.2006 10:05
Templates - Variablen $tpl['dies']['und']['das'] Alpha Centauri PHP Tipps 2006 12 08.03.2006 14:39
E-Mail Templates Mano PHP Tipps 2005-2 4 09.10.2005 14:52
Templates - DB oder File? PHP Tipps 2005-2 11 23.07.2005 05:30
Templates per ACP PHP Tipps 2005-2 0 26.06.2005 20:00
[Erledigt] Templates PHP Tipps 2005 4 06.04.2005 16:24
Templates GrU3nL!nG PHP Tipps 2005 6 26.03.2005 14:47
Mit Templates Navigation erstellen? (welches Templatesyste?) zwelch PHP Tipps 2004-2 5 18.11.2004 15:14
[Erledigt] Wieder mal Templates! PHP-Fortgeschrittene 1 10.09.2004 11:42
Problem bei HP basierend auf Templates PHP Tipps 2004 3 17.07.2004 12:37
Templates PHP Tipps 2004 5 29.06.2004 16:30
Problem mit Templates suter PHP Tipps 2004 3 23.06.2004 14:40
Wie benutze ich Templates? PHP Tipps 2004 5 11.06.2004 13:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
einfaches template system selber bauen, joomla templates, painmaker, php templates bauen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum