Community

9dots.de Webdesign Board

 

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 

 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 


[Snippet] Templateklasse

 
Neues Thema eröffnen   Neue Antwort erstellen    9dots.de Webdesign Community Foren-Übersicht -> Coding-Tutorials
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Impi
Mitglied
Mitglied


Angemeldet: 06.05.2006
Beiträge: 530


BeitragVerfasst am: 26.08.2006, 12:07    Titel: [Snippet] Templateklasse Antworten mit Zitat
So, ich habe hier mal wieder ein super Klasse für euch in meiner Trickkiste gefunden Smilie.

Die Klasse filtert den Inhalt der angegebenen Datei auf Keywords die in einem Array bestimmt sind und ersetzt den Wert der Platzhalter entweder durch einen Text oder den Inhalt einer Datei.

So sieht die Klasse aus:

Code:

<?PHP
class template{
   #Klassenvariablen
   var $strFilename = "";
   var $arrayValues = array ();
   var $strTPL = "";   
   #Ende
   
   #Konstrunktor
   function template($path,$filename,$values){
   // Inhalt der zu parsenden Templatedatei wird in $tpl gespeichert und die HTML-Atribute
   // an den Pfad zum $filename angepasst.
   $tpl = implode ("",file($path.$filename));
   $tpl = preg_replace ("=background\=\"(?!http)(.*?)\"=si","background=\"".$path."\\1\"", $tpl);
   $tpl = preg_replace ("=src\=\"(?!http)(.*?)\"=si","src=\"".$path."\\1\"", $tpl);

   // &Uuml;bermittelte Werte werden den Klassenvariablen zugewiesen
   $this->strTPL = $tpl;
   $this->strFilename = $filename;
   $this->arrayValues = $values;   
   }   
   #Ende

   // Function die den neuen Text/HTML-Code als Return zur&uuml;ck gibt
   function startParsing(){
   // Jeder Eintrag der $arrayValues array(); wird durch die kommende Schleife gejagt
   foreach ($this->arrayValues as $value_1 => $value_2) {
   
      if(file_exists($value_2)){      // Wenn der 2te Spaltenwert von $arrayValues eine Datei ist und existiert ...
      ob_start();            // Wird ein Puffer f&uuml;r die Ausgabe initialisiert ...
      include ($value_2);         // Die Datei in den Puffer includiert ...
      $value_2 = ob_get_contents();   // $value_2 bekommt ihren den Wert der ehemaligen Datei die in $value_2 verzeichnet war
      ob_end_clean();         // Und der Puffer wird wieder geschlossen und aufger&auml;umt
      };
      // Der Inhalt von $value_2 wird auf runde Klammern durchsucht und durch das passende HTML-Tag ersetzt
      $value_2 = str_replace ('{', "{", $value_2);
      $value_2 = str_replace ('}', "}", $value_2);
      // Die Klassenvariable mit dem Inhalt der Templatedatei wird erneuert bzw. der Platzhalter { .$value_1. } mit dem passenden Wert der zu includierenden Datei $value_2 ersetzt
      $this->strTPL = str_replace ('{' . $value_1 . '}', $value_2, $this->strTPL);
      }
      // Neuer Text/HTML-Code wird ausgegeben
      return $this->strTPL;
   }

   function killTemplate(){
   unset($this->strFilename);
   unset($this->arrayValues);
   unset($this->strTPL);
   }
};
?>


Wie immer ist alles kommentiert. Bei Fragen zu Klassen: [url=http://forum.9dots.de/viewtopic.php?t=3000]Guckst du hier ...[/url

Und so findet die Klasse verwendung:
Code:

<?PHP
// Die Klasse wird includiert
include("class_template.php");
// Die zu ersetzenden Werte werden bestimmt
$values = array (
'title'   => 'Titel',
'text'      => 'text.txt',
'hello'   => 'Hello World'
);
// Das Object $tpl wird mit der Klasse Template initialisiert
$tpl = new template("templates/","index.tpl", $values);
// Das Dokument wird geparst und ausgegeben
echo $tpl->startParsing();
// Der Dekonstruktor wird gestartet und das Object aus dem Speicher gel&ouml;scht
$tpl->killTemplate();
unset($tpl);
?>


Die zu ersetzende Datei liegt im Ordner "templates" und heisst "index.tpl".
Folgender HTML-Code ist enthalten:
Code:

<html>
<head>
      <title>{title}</title>
</head>
<body>
{hello}<br>
{text}
</body>
</html>


Die Ausgabe sieht dann so aus:
Code:

<html>
<head>
      <title>Titel</title>
</head>
<body>
Hello World<br>
Hier steht dann der Text!
</body>
</html>


Alle Dateien sind nochmal hier zu sehen: http://sevenstudios.info/files/SNIPPETS/PHP/KLASSEN/TEMPLATE/

Impi

P.S.: Die Platzhalter müssen im HTML-Code immer in {} Klammern stehen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jeje222
Mitglied
Mitglied


Angemeldet: 19.09.2018
Beiträge: 111


BeitragVerfasst am: 19.09.2018, 05:04    Titel: Re: [&#35342;&#35542;]&#23470;&#24311;&# Antworten mit Zitat
ugg outlet
ugg boots
pandora charms
dsquared2
[url=http://www.basketballshoes.us.org ]basketballl shoes[/url]
salomon shoes
kate spade outlet
ralph lauren polo
christian louboutin
coach factory outlet
christian louboutin outlet
canada goose outlet
ray ban sunglasses
adidas yeezy
canada goose
clarks shoes
red bottom shoes
coach outlet
coach factory outlet
fitflops clearance
longchamp
[url=http://www.coachoutletonlinestore.eu.com ]coach outlet[/url]
kate spade outlet
ralph lauren polo
moncler jackets
tod's outlet
[url=http://www.eccoshoesoutlet.us ]ecco shoes[/url]
ugg boots clearance
moncler outlet
louboutin shoes
canada goose outlet
louboutin shoes
fitflops clearance
ray ban sunglasses
ugg boots
moncler outlet
coach outlet
air max 90
coach outlet
valentino shoes
michael kors outlet
coach outlet
coach factory outlet
ralph lauren uk
lacoste polo
canada goose outlet
north face
supreme clothing
jordan shoes
canada goose outlet
fitflops clearance
ray ban sunglasses
prada handbags
clarks outlet
ralph lauren polo
ray ban sunglasses
salomon shoes
superdry uk
mlb jerseys
jordan 4
hermes belt
[url=http://www.edhardyuk.me.uk ]ed hardy uk[/url]
ugg outlet
ugg outlet clearance
ugg outlet
soccer shoes
christian louboutin
[url=http://www.airjordanuk.org.uk ]jordan uk[/url]
champion clothing
hugo boss
true religion jeans
canada goose outlet
christian louboutin shoes
michael kors outlet
off white shoes
christian louboutin outlet
canada goose outlet
oakley sunglasses
off white outlet
coach outlet
kate spade
true religion jeans
kate spade outlet
coach outlet
nike tn
jordan 8
true religion
michael kors outlet
nike shoes
air max 90
canada goose jacket
golden goose
ferragamo shoes
tory burch outlet
jordans
north face
canada goose jackets
christian louboutin outlet
pandora outlet
supreme clothing
christian louboutin shoes
christian louboutin outlet
true religion
coach outlet
nike outlet
coach outlet
adidas nmd
[url=http://www.hugobosssale.name ]hugo boss[/url]
true religion jeans outlet
nike blazers
christian louboutin
ugg boots clearance
coach outlet factory
longchamp outlet
dsquared2
coach factory outlet
canadian goose
champion sportswear
christian louboutin outlet
red bottom shoes
golden goose
nike outlet factory
mbt shoes
ralph lauren polo
mbt shoes
michael kors outlet
issey miyake
adidas outlet
asics shoes
nhl jersey
nike air max
golden goose
ugg boots outlet
prada shoes
ralph lauren polo
giuseppe zanotti
coach outlet online
ugg boots
longchamp outlet
canada goose outlet
pandora charms
ralph lauren polo
coach handbags
off white jordan
coach outlet
true religion jeans
ecco shoes
ugg outlet boots
kate spade outlet
nike shoes outlet
jordan shoes
nike shoes
ralph lauren polo
clarks shoes
christian louboutin outlet
[url=http://www.reebokoutlets.in.net ]reebok outlet[/url]
canada goose
red bottom shoes
michael kors outlet
coach outlet
bottega veneta
pandora charms
louboutin shoes
supreme
nike shoes
[url=http://www.conversetrainer.org.uk ]converse trainer[/url]
moncler jackets
moncler outlet
clarks outlet
moncler outlet
skechers shoes
nike shoes
canada goose outlet
coach outlet online
vibram five fingers
manolo blahnik
kate spade handbags
moncler jacket
coach outlet
pandora charms
ralph lauren polo
pandora jewelry
[url=http://www.fitflopssale-clearance.us.com ]fitflops clearance[/url]
coach outlet
pandora jewelry
coach outlet
ralph lauren uk
off white clothing
true religion jeans outlet
pandora jewelry
golden goose
ultra boost 3.0
coach outlet online
[url=http://www.jordan-shoes.us.org ]jordan shoes[/url]
jordan shoes
canada goose
jordans
ralph lauren uk
pandora outlet
christian louboutin
kate spade outlet
hermes belt
ugg outlet
adidas shoes
coach outlet online
ferragamo belt
coach outlet
pandora outlet
nike huarache
adidas yeezy
pandora
adidas superstar
canada goose outlet
canada goose outlet
nike shoes
yeezy boots 350
ray ban sunglasses
ralph lauren
moncler outlet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    9dots.de Webdesign Community Foren-Übersicht -> Coding-Tutorials Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Board Software by phpBB © 2001, 2005 phpBB Group. Impressum
Dominik Wuttke - Moritz Münchmeyer - Joachim Nagel GbR.
AGB