Jump to content
php.lv forumi

Template skripts


Recommended Posts

Posted

Sheit,izdariju mazu skriptinu...bet man vinsh ir palidzigs :)

negribu kaut kadu Smarty vai t.c. izmantot...

es esmu slinks-tapec loti maz un vienkarshi :D

bet kaut ko vel uzrakstishu...

PS ka varu-ta rakstu...kadi kommentari?

ceru kaut kadam noderes,varbut citi ari palidzes kaut ko vel uzrakstit xD

 

class Template{

var $template;
var $fp;
var $tags;
var $datas;

function Load($filename="./templates/index.html"){

	$this->fp=fopen($filename,"r");
	if ( !$this->fp ) echo "Cannot open Template:".$filename;
	$this->template=fread($this->fp,filesize($filename));

	}

function AddTag($tag,$data){

	$this->tags[]=$tag;
	$this->datas[]=$data;

	}

function Process(){

	$this->template=str_replace($this->tags,$this->datas,$this->template);

	}

function Render(){

	return $this->template;

	}

}

Posted
php4 jau 2008-08-08 nomira.

Nu ganjauka vēl ilgi figurēs..

 

 

 

Kas attiecās uz templeitiem.. a nu kamdēļ vispār vaig fopen() / str_replace() utt??? PHP pats jau par sevi ir template..

 

index.php

<?
$data = getSomeData();

include('template.php');
?>

 

un template.php:

<div><?=$data?></div>

 

 

 

 

Jo visjautrāk paliek, tad kad templates un to veidotāji sāk mēģināt redefinēt kaut kādus ciklus / loopus u.c. php funkcionalitāti :)

Posted (edited)

Lūk vienkārša funkcija templeta satura returnošanai:

 

 function load($XYZ__file,$XYZ__data){
  extract($XYZ__data);   
  ob_start(); 
  require $XYZ__file; 
  $XYZ__output = ob_get_contents(); 
  ob_end_clean(); 
  return $XYZ__output;	 
}

 

Izmantojam:

echo load('templeits.tpl',array('a'=>5,'b'=>'cool','c'=>array(1,7,2,8)));

 

templeits.tpl:

<div>
 <div><?php echo $a; ?></div>
 <div><?php echo $b; ?></div>
<?php foreach ($c as $v){?>
 <div><?php echo $v; ?></div>
<?php } ?>
</div>

 

returnošanas fīča ir vajdzīga piemēram tāpēc,ja gribam vairākus templeitus salādēt vienā:

echo load('viss.tpl',array('menu'=>load('menu.tpl',$meudata),
					 'content'=>load('content.tpl',$contentdata),
					 'header'=>load('header.tpl',$headerdata)));

Edited by codez
Posted

Lūdzu netaisīt muļķīgas QUOTEs

 

ar includu man nepatik,bet shitais el deres...bet vienalga mans ir universalak )

un kada jega pec ta "var" ? xD

Posted (edited)
bet vienalga mans ir universalak

Kā jau Roze aizrādīja, kā tu ar savu sistēmu taisies teimpleitā realizēt, piemēram, ciklu, kur jāizvada 20 vienādi elementi no masīva?

Edited by codez
Posted

Lūdzu netaisīt muļķīgas QUOTEs

 

lietotaajam rakstiit php kodu templeitos arii nav praatiigi.

Posted
Jo visjautrāk paliek, tad kad templates un to veidotāji sāk mēģināt redefinēt kaut kādus ciklus / loopus u.c. php funkcionalitāti :)

Laikam katram jāuzraksta sava PHP template engine, lai saprastu, ka ātrāk/ērtāk to tomēr darīt ar pliku PHP :D

×
×
  • Create New...