Darkshade Skrevet 22. september 2005 Del Skrevet 22. september 2005 (endret) Jeg fant en tutorial om å lage et template system, jeg modifiserte den litt så jeg kunne lage en function og sette eks. {server_status} på html filen og der ville denne vise. Problemet er nå at {server_status} kommer helt øverst på siden ikke der jeg vil ha den dette skjedde ikke før jeg modifiserte. Jeg endret "REDTEXT" => server_status()) i information.php før var det "REDTEXT" => '<font color="red">Red text!</font>' ) class_template.php <?php /* Begin the class */ class tplSys { var $loci = array(); /* Holds the html template */ var $tpl_htmlcode = array(); /* Holds variable references */ var $tpl_dirtycode = array(); /* Holds compiled and clean code */ var $tpl_cleancode = array(); function tplSys($root) { /* Constructor, sets tpl and cache directories */ if( empty( $root ) ) { die("tplSys(): No root directory set."); } if( !is_dir( $root ) ) { die("tplSys(): $root Directory doesn't exist."); } $this->loci['root'] = $root; $this->loci['cache'] = $root . 'cache/'; } /* Grabs file from directory and loads all the code into _dirtycode array */ function getFile($file_array) { if( !is_array($file_array) ) { die("getFile(): $file_array not an array."); } foreach( $file_array as $ref=>$filename ) { $fileref = $this->loci['root'] . $filename; $this->tpl_htmlcode[$ref] = implode( "", @file($fileref) ); } } /* Define references inside the HTML file */ function varRef( $handle, $refArray ) { if( !is_array($refArray) ) { die("varRef(): $refArray is not an array."); } if( empty($handle) ) { die("varRef(): $handle was empty."); } if( !empty( $this->tpl_htmlcode[$handle] ) ) { /* Code exists, create references */ foreach( $refArray as $ref=>$replace ) { $this->tpl_dirtycode['{' . $ref . '}'] = $replace; } } else { die("varRef(): Template data for $handle didn't exist."); } } /* Parses dynamic code and prints it to the browser */ function parseDynamic( $handle ) { if( empty( $handle ) ) { die("parseDynamic(): $handle was empty."); } if( !empty( $this->tpl_htmlcode[$handle] ) ) { $this->tpl_cleancode[$handle] = $this->compile( $handle ); eval( $this->tpl_cleancode[$handle] ); } } function compile( $handle ) { if( empty( $this->tpl_htmlcode[$handle] ) ) { die("compile(): No code existed for $handle."); } if( empty( $handle ) ) { die("compile(): $handle was empty."); } $code = $this->tpl_htmlcode[$handle]; /* Count and clean up the code for parsing */ $code = str_replace('\\', '\\\\', $code); $code = str_replace('\'', '\\\'', $code); $d_code = explode( "\n", $code ); $line_count = sizeof( $d_code ); /* Loop through and add 'echo' and '\\n' to each line */ for( $x = 0; $x < $line_count; $x++ ) { foreach( $this->tpl_dirtycode as $varref=>$replace ) { if( preg_match( "/^(.*)" . $varref . "(.*)$/", $d_code[$x] ) ) { $d_code[$x] = preg_replace( "/^(.*)" . $varref . "(.*)$/", "\\1" . $replace . "\\2", $d_code[$x] ); } } /* This is where the loop data and logic will be taken care of */ $d_code[$x] = 'echo \'' . $d_code[$x] . '\' . "\\n";'; } $code = implode("\n", $d_code); return $code; } } /* EOF */ ?> information.php <?php include ("includes/config.php"); include("functions.php"); /* testing */ require("class_template.php"); $tplObj = new tplSys("./includes/theme"); $tplObj->getFile( array( 'test' => '/information.html' ) ); $tplObj->varRef( "test", array( "REDTEXT" => server_status()) ); $tplObj->parseDynamic("test"); ?> functions.php <?php function server_status() { $STATUS = fsockopen($REALMLIST, 3724, $errno, $errstr, 2); if (!$STATUS) { echo "<img src='gfx/off.png' alt=''>"; } else { echo "<img src='gfx/on.png' alt=''>"; fclose(!$STATUS); } } ?> Endret 22. september 2005 av kylefj Lenke til kommentar https://www.diskusjon.no/topic/473791-l%C3%B8sttrenger-hjelp-med-et-template-system/
stiber Skrevet 22. september 2005 Del Skrevet 22. september 2005 Tror ikke det er meningen du skal bruke "echo" i serverstatus funksjonen din. Hvis dette skal inn i template systemet, må du bruke "return". Lenke til kommentar https://www.diskusjon.no/topic/473791-l%C3%B8sttrenger-hjelp-med-et-template-system/#findComment-4889583
Darkshade Skrevet 22. september 2005 Forfatter Del Skrevet 22. september 2005 fikk det til med return takker Lenke til kommentar https://www.diskusjon.no/topic/473791-l%C3%B8sttrenger-hjelp-med-et-template-system/#findComment-4889892
grimjoey Skrevet 19. april 2007 Del Skrevet 19. april 2007 (endret) fclose(!$STATUS); ? for meg ser ikke det utropstegnet til å passe så bra inn. edit: glem det GAMMEL TRÅD sorry Endret 19. april 2007 av grimjoey Lenke til kommentar https://www.diskusjon.no/topic/473791-l%C3%B8sttrenger-hjelp-med-et-template-system/#findComment-8425732
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå