php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.03.2005, 12:32  
Gast
 
Beiträge: n/a
Standard Vorschläge für eigenes template system!

Hallo!

Ich hab emir mal ein eigenes template System geschrieben!
Dazu hätte ich aber noch ein par fragen.

Hier erstmal der Source:

tpl.class.php
PHP-Code:
<?
  
class tpl
  
{
      var 
$tpl;
    var 
$fields = Array();

        
// initiate template
        
function tpl($filename$tpldir 'default/'$tplext '.tpl')
        {
               
// check if template file exists
               
if($tpldir != 'templates/') {
                       
$tpldir "templates/$tpldir";
               }
               if (!
file_exists($tpldir $filename $tplext)) {
                       
$this->tpl "Fehler: Template '".$filename.$tplext."' existiert leider nicht!\n";
               }
               
// if template file exists , put line breaks on every line in the html source
               
else {
                       
$this->tpl implode(''file($tpldir $filename $tplext));
               }
         }

     function 
Add($name$value) {
            
$this->fields["$name"] = $value;
      }

         function 
Out() {
          foreach(
$this->fields as $name => $value) {
               
$this->tpl str_replace("{".$name."}"$value$this->tpl);
               }
           echo 
$this->tpl;
          }
  }
?>
So rufe ich das Template auf:
Code:
$tpl = new tpl('index_body');
$tpl->add('TEXT', 'Index.php');
$tpl->out();
Meine Fragen:
  • Was kann man daran besser machen, bzw. was würdet ihr anders machen?

    Wie kann ich die replacements in arrays packen, also dass ich das so schreiben kann:
Code:
$tpl->add('TEXT', 'Index.php',
	'HALLO', 'halo');
  • Wenn es nicht so kompliziert ist, möchte ich gerne die switch funktion aus dem phpbb board bei mir einfügen, also in den template dateien Inhalt wenn zutrifft

ich bedanke mich im vorraus!
?>[/php]
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.03.2005, 13:39  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ich habe mich zwar kaum mit Templates befasst, und wahrscheinlich gäbe es genügend fertige Klassen. Aber der Teil mit dem Array sollte eigentlich einfach zu lösen sein:
PHP-Code:
<?php
function addAll($array){
    for(
$i 0;$i count($array);$i += 2){
        
$this->add($array[$i], $array[$i 1]);
    }
}
?>
Besser wäre natürlich ein zweidimensionales Array mit entsprechenden Paaren, oder ein assotiatives Array, das würde dann etwa so aussehen:
PHP-Code:
<?php
function addAll($array){
    foreach(
$array as $key => $value){
        
$this->add($key$value);
    }
}
?>
Das würde dann so aufgerufen:
PHP-Code:
<?php
$tpl
->addAll('TEXT' => 'Index.php''HALLO' => 'halo');
?>
__________________
Gruss
L
lazydog ist offline  
Alt 14.03.2005, 13:44  
Erfahrener Benutzer
 
Registriert seit: 02.08.2004
Beiträge: 209
PHP-Kenntnisse:
Fortgeschritten
Chance
Chance eine Nachricht über ICQ schicken
Standard

Mein Templatesystem sieht so aus:

PHP-Code:
<?php
function template ($Template='',$Parse=FALSE,$ModulLoad='_core') {
  unset(
$GLOBALS['Parse']);
  if (isset(
$Parse) != FALSE$GLOBALS['Parse'] = $Parse;
  
TimeCount('TemplateTime');

  if (
$ModulLoad != '_var') {

    
$TemplateLoad './module/'.$ModulLoad.'/templates/'.$Template.'.htm';
    if (isset(
$GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad]) == FALSE)  $GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad] = array();

    if (
strpos($Template,'_bit') != 0) {
        if (isset(
$GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template]) == FALSE) {
          
$GLOBALS['Status']['TemplateCounter']++;
          
$GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template] = implode('',file($TemplateLoad));
          
$Template $GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template];
        } else 
$Template $GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template];
      } else {
        
$Template implode('',file($TemplateLoad));
        
$GLOBALS['Status']['TemplateCounter']++;
      }
  }

  
$GLOBALS['Status']['TemplateParse']++;
  
$Template = @preg_replace('/{([^}]+):([^}]+)}/e','$GLOBALS[\'\\1\'][\'\\2\']',$Template);
  
TimeCount('TemplateTime');
  
  if (empty(
$TemplateLoad) == TRUE$TemplateLoad='_var';
  if (
defined('DEBUG_STATS') == TRUE and DEBUG_STATS == TRUE$GLOBALS['Debug']['Templates'] .= '<hr>Template: '.$TemplateLoad.', '.$GLOBALS['Status']['TimeCountLast'].' sec'
  
  return 
$Template;
};
?>
Damit kann ich die Werte direkt vom System abgreifen ich brauche sie nicht extra nochmal zuordnen.
__________________
Web-Entwickler/-in bei der IAK GmbH
Chance 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
Ausgabe im Template System nicht an vorgsehener Stelle Kein Genie PHP-Fortgeschrittene 7 21.04.2008 23:06
template system cycap PHP Tipps 2007 7 27.02.2007 08:59
template system jens76 PHP Tipps 2007 2 17.12.2005 21:58
template in template einfuegen tonne PHP Tipps 2005-2 8 10.11.2005 22:24
Eigenes Template System PHP Tipps 2005-2 31 07.08.2005 01:24
Template System oder Lösung gesucht PHP Tipps 2005 14 21.05.2005 22:07
Template System mit IF PHP Tipps 2005 10 06.05.2005 23:58
Template System tutorial PHP Tipps 2005 3 09.02.2005 19:49
Php Code als Variable definieren und in Template darstellen PHP Tipps 2004-2 4 31.12.2004 16:22
Welches Template System? zwelch PHP Tipps 2004-2 1 18.11.2004 09:04
suche ein bestimmtes template system PHP Tipps 2004-2 2 07.11.2004 19:49
[Erledigt] Template Parser PHP-Fortgeschrittene 9 06.10.2004 23:04
Smarty als Template System?! PHP Tipps 2004 16 22.07.2004 11:22
Smarty Template System: If Anweisung? PHP Tipps 2004 2 18.07.2004 19:31
[Erledigt] Template Scripting PHP-Fortgeschrittene 2 04.06.2004 18:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
file exists impolde, eigenes templatesystem mit array, eigenes template system mit if anweisungen, http://www.php.de/php-tipps-2005/19559-vorschlaege-fuer-eigenes-template-system.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:13 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.