genstian Skrevet 11. februar 2006 Del Skrevet 11. februar 2006 (endret) Tok meg tiden til og lage et screen/template system til siden min. Jeg ønsker og dele det med alle. <?php class screen { private $template = 'Default'; private $compiled; private $template_data = array(); // Uncompiled code and a temp variable for compile() private $uncompiled; public function screen() { ob_start('ob_gzhandler'); } public function set_template($template_name) { $this->template = $template_name; } private function get_html_data($template) { global $SYS; if(!isset($this->template_data[$template])) { $file = fopen($SYS['Path'] . "/templates/{$this->template}/$template.tpl", 'r'); $data = fread($file, filesize( $SYS['Path'] ."/templates/{$this->template}/$template.tpl")); fclose($file); } else { $data = $this->template_data[$template]; } return $data; } public function return_html($template, $tags) { //Get the data $this->uncompiled = $this->get_html_data($template); // Compile the data $data = $this->compile($tags); return $data; } public function add_html($template, $tags) { $this->uncompiled = $this->get_html_data($template); $this->compiled .= $this->compile($tags); } private function compile($tags) { foreach ($tags as $tag => $data) { $this->uncompiled = str_replace("{" . $tag . "}", $data, $this->uncompiled); } $data = $this->uncompiled; $this->uncompiled = ''; return $data; } public function print_screen() { echo $this->compiled; } } ?> EKS: <?php $screen = new screen(); $screen->set_template('Min_Template'); $tilhtml = array('title' => 'min side', 'text' => 'blablabla'); $screen->add_html('forside', $tilhtml); $screen->print_screen(); ?> Du må ha PHP5 og du må redigere "private function get_html_data($template)" til og passe ditt behov. Tilbakemelding ønskes. EDIT: Fikset arrayen i eksemplet. Endret 11. februar 2006 av hotstian Lenke til kommentar
Gilbert Skrevet 11. februar 2006 Del Skrevet 11. februar 2006 https://www.diskusjon.no/index.php?showtopic=324727 Hater den tråden, men den eksisterer... Lenke til kommentar
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å