Gå til innhold

Et screen/template system som alle kan bruke


Anbefalte innlegg

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 av hotstian
Lenke til kommentar
Videoannonse
Annonse

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...