ilch Forum » Allgemein » HTML, PHP, SQL,... » template Problem

Geschlossen
  1. #1
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    Hi an alle,

    vorab: das ganze hat nichts mit ilch zu tun!

    wie einige vielleicht wissen bin ich grad dabei mein eigenes cms zu schreiben. ich hab eben mein eigenes template system fertig geschrieben für die einzelnen content teile wie news, kontakt etc.

    gleichzeitig struktirier ich grad die funktionen ein bisschen um.

    jetzt mein problem:
    ich hab jetzt die funktion monate($num) , die die zahl des monates ausgeschrieben in deutsch umwandelt. wenn ich das ganze bei meinen news einfüge sieht das so aus:

    <?php
    $datum = $row["Datum"];
    $day = date('d', $datum);
    $mon = date('n', $datum);
    $yea = date('Y', $datum);
    
    $date = $day.'. '.monate($mon).' '.$yea;
    ?>


    hier mal die funktion:

    <?php
    function monate($num) {
    	$monate = array(1=>"Januar",
    				    2=>"Februar",
    					3=>"M&auml;rz",
    					4=>"April",
    					5=>"Mai",
    					6=>"Juni",
    					7=>"Juli",
    					8=>"August",
    					9=>"September",
    					10=>"Oktober",
    					11=>"November",
    					12=>"Dezember");
    	echo $monate[$num];
    }
    ?>


    hier mal mein template sytem

    <?php
    class template {
    	
    	var $tmp_file; 	// Pfad zur Template Datei
    	var $error; 	// Fehlermeldung
    	var $content; 	// Inhalt des Templates
    	
    	function template($file, $error = "Template Datei nicht gefunden!") {
    		
    		$this->tmp_file = $file;
    		$this->error = $error;
    		$this->content = "";
    	}
    	
    	function readtemplate() {
    		
    		$file = @fopen($this->tmp_file, "r");
    		
    		if(!$file) { 
    			echo $this->error; 
    		} else {
    			while(!feof($file)) {
    			$temp = fgets($file, 4096);
    			$this->content .= $temp;
    			}
    		}
    	}
    	
    	function replace($title, $value) {
    		$this->content = str_replace("{" . $title . "}", $value, $this->content);
    	}
    	
    	function parse() {
    		echo $this->content;
    	}
    	
    } 
    ?>


    und so sieht das ganze z.b in der news.php aus:
    <?php
    $tpl = new template("content/tpl/news_comments.htm");
    $tpl->readtemplate();
    $tpl->replace("ID", $id);
    $tpl->replace("TITEL", $titel);
    $tpl->replace("DATUM", $date);
    $tpl->replace("AUTOR", $autor);
    $tpl->replace("TEXT", $text);
    $tpl->parse();
    ?>


    das ganze funktioniert soweit perfekt. allerdings wird der monat nicht an der richtigen stelle ausgegeben (also zwischen tag und jahr) - sondern ganz oben vom content ... wieso?!

    danke erstmal fürs durchlesen ^^

    gruß sonic
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    OloX Hall Of Fame
    Registriert seit
    25.02.2006
    Beiträge
    990
    Beitragswertungen
    23 Beitragspunkte
    <?php
    function monate($num) {
        $monate = array(1=>"Januar",
                        2=>"Februar",
                        3=>"M&auml;rz",
                        4=>"April",
                        5=>"Mai",
                        6=>"Juni",
                        7=>"Juli",
                        8=>"August",
                        9=>"September",
                        10=>"Oktober",
                        11=>"November",
                        12=>"Dezember");
    return ($monate[$num]):
    }
    ?>


    zwinker
    PHP, JavaScript, CSS
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Son!c Hall Of Fame
    Registriert seit
    14.09.2006
    Beiträge
    3.766
    Beitragswertungen
    5 Beitragspunkte
    ...
    danke ^^
    Nimm das Leben nicht zu ernst, du kommst sowieso nicht lebend raus.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten