23 November 2015 Scheiden van HTML en PHP emplatePower.
-
Upload
shannon-conley -
Category
Documents
-
view
218 -
download
0
description
Transcript of 23 November 2015 Scheiden van HTML en PHP emplatePower.
23 November 2015
Scheiden van HTML en PHPemplatePower
templatePower
Hoe halen we PHP en HTML uit elkaar
Templates hebben één heel mooi doel, namelijk om PHP en HTML te scheiden.
Zonder templates komt het vaak voor dat je een heel groot script hebt gemaakt, met HTML ertussen en dat je achteraf iets wil aanpassen aan het uiterlijk.
Staat los van aanroepende php-script
templatePower (wat is niet goed?)
templatePower (wat is niet goed?)
templatePower (FORMS)
form.tpl
<html> <head> <title></title> </head> <body>
<!-- START BLOCK : error --> The following errors occurred.<br> <!-- START BLOCK : message --> - {message}<br> <!-- END BLOCK : message --> <!-- END BLOCK : error -->
<form method="post" action="myscript.php"> Email: <input type="text" name="email"> <input type="submit" name="submit" value="Submit">
</form> </body> </html>
templatePower (FORMS)myscript.php
<?php include_once('./class.TemplatePower.inc.php'); $tpl = new TemplatePower('form.tpl'); $tpl->prepare(); $errorMessage = Array(); $errorFound = false;
if( isset( $_POST[‘submit’] ) ) { if ( !isset($_POST[‘email’]) ) { $errorMessage[] = 'No emailaddress entered'; $errorFound = true; }
if( $errorFound ) { $tpl->newBlock('error'); $size = sizeof($errorMessage); for( $i=0; $i < $size; $i++ ) {
$tpl->newBlock('message'); $tpl->assign('message', $errorMessage[$i]); }
} else { Header('Location: member.php'); } }
$tpl->printToScreen(); ?>
templatePower (ASSIGNGLOBAL)
assignGlobal ( string variablename, mixed value )assignGlobal ( array( variablename => value ) )
myscript.php
<?php include_once( "./class.TemplatePower.inc.php" ); $tpl = new TemplatePower( "./img.tpl" ); $tpl->prepare();
$tpl->assignGlobal( "imagedir", "images");
for ( $i=1; $i<=10; $i++ ) { $tpl->newBlock( "image" ); $tpl->assign( "id", $i ); }
$tpl->printToScreen();
?>
img.tpl
<html><head> <title>AssignGlobal Example</title></head><body> <img src="{imagedir}/logo.gif">
<!-- START BLOCK : image --> <img src="{imagedir}/img_{id}.gif"> <!-- END BLOCK : image --></body></html>
templatePower IMAGES
templatePower (ASSIGN)
Bestand Index.tpl
<html>
<head><title>index</title></head>
<body><h1>Welkom {persoon}!</h1></body>
</html>
<?php include("class.TemplatePower.inc.php"); $tpl = new TemplatePower("index.tpl");
$tpl->prepare();
$tpl->assign("persoon", "XenoX");
$tpl->printToScreen(); ?>
templatePower (ASSIGN(ARRAY))
<html>
<head><title>{titel}</title></head>
<body><h1>Welkom {persoon}!</h1></body>
</html>
<?php include("class.TemplatePower.inc.php"); $tpl = new TemplatePower("index.tpl"); $tpl->prepare();
$tpl->assign(array("titel" => "TemplatePower", “persoon" => "XenoX“ )
);
$tpl->printToScreen(); ?>
templatePower (ASSIGNINCLUDE)
myscript.php
<?php include_once( "./class.TemplatePower.inc.php" );
$tpl = new TemplatePower( "./include.tpl" );
$tpl->assignInclude( "header", "./header.tpl" );
$tpl->assignInclude( "content", "./about.php" ); $tpl->prepare(); $tpl->printToScreen();
?>
include.tpl <html><head> <title>AssignInclude Example</title></head><body> <!-- INCLUDE BLOCK : header -->
<!-- INCLUDESCRIPT BLOCK : content --></body></html>
templatePower (ASSIGNINCLUDE)
<?php
include( "./class.TemplatePower.inc.php");
//connect to database $link = mysql_connect("host", "user", "passwd") or die("Could not connect"); mysql_select_db("my_database") or die("Could not select database");
//get database templates $qry = "SELECT base, header FROM templates"; $result = mysql_query($qry);
if( mysql_num_rows($result) > 0) { list($base, $header) = mysql_fetch_row($result); }
//make a new TemplatePower object
$tpl = new TemplatePower( $base, T_BYVAR ); //assign include template by variable $tpl->assignInclude( "header", $header, T_BYVAR ); $tpl->prepare(); //print the result $tpl->printToScreen();
?>
templatePower (GETVARVALUE)
number.tpl
<html><head> <title>AssignInclude Example</title></head><body> <!-- START BLOCK : number --> {number} <!-- END BLOCK : number --> {total} </body></html>
myscript.php
<?php include_once( "./class.TemplatePower.inc.php" ); $tpl = new TemplatePower( "./number.tpl" ); $tpl->prepare(); for( $i=1; $i <= 10; $i++ ) {
$tpl->newBlock( "number" ); $tpl->assign( "number" , $i ); $tpl->assign( "_ROOT.total", ($tpl->getVarValue( "_ROOT.total" ) + $i) ); }
$tpl->printToScreen();
?>
templatePower (GOTOBLOCK)
newBlock.tpl
<html> <head> <title>NewBlock</title> </head> <body> <table> <tr><td>Names</td></tr> <!-- START BLOCK : name_row --> <tr> <td>{name}</td> </tr> <!-- END BLOCK : name_row --> </table> <br> {total_names}
</body> </html>
myscript.php
<?php include_once( "./class.TemplatePower.inc.php" ); $tpl = new TemplatePower( "./newBlock.tpl" ); $tpl->prepare(); $count = 0;
while( $count < 10 ) { $tpl->newBlock( "name_row" ); $tpl->assign( "name", "Ron" ); $count++; }
$tpl->gotoBlock( "_ROOT" ); $tpl->assign( "total_names", $count );
$tpl->printToScreen(); ?>
templatePower (BLOCK)
<html>
<head><title>{titel}</title></head>
<body><h1>Welkom {persoon}!</h1>
<!-- START BLOCK : rij -->{id} : {naam}<!-- END BLOCK : rij -->
</body>
</html>
templatePower (BLOCK)
<?php include("class.TemplatePower.inc.php"); $tpl = new TemplatePower("index.tpl"); $tpl->prepare(); $tpl->assign(array("titel" => "TemplatePower", "persoon" => "XenoX“ ));
$tpl->newBlock("rij");
$tpl->assign(array("id" => "1", "naam" => "Joël“ ));
$tpl->newBlock("rij");
$tpl->assign(array("id" => "11", "naam" => "FangorN“ ));
$tpl->printToScreen(); ?>
templatePower (BLOCK-NESTED)
<?php include("class.TemplatePower.inc.php"); $tpl = new TemplatePower("index.tpl"); $tpl->prepare();
$tpl->assign(array("titel" => "TemplatePower", "persoon" => "XenoX“ ));
$tpl->newBlock("rij");
$tpl->assign(array("id" => "25", "naam" => "XenoX“ ));
$tpl->newBlock("blockinblock");
$tpl->printToScreen(); ?>
templatePower (OUTPUT VAR)
<?php include("class.TemplatePower.inc.php");
$tpl = new TemplatePower("index.tpl");
$tpl->prepare();
$tpl->assign(array("titel" => "TemplatePower“, "persoon" => "XenoX“ ));
$template = $tpl->getOutputContent(); ?>
templatePower (FORMS)
form.tpl
<html> <head> <title></title> </head> <body>
<!-- START BLOCK : error --> The following errors occurred.<br> <!-- START BLOCK : message --> - {message}<br> <!-- END BLOCK : message --> <!-- END BLOCK : error -->
<form method="post" action="myscript.php"> Email: <input type="text" name="email"> <input type="submit" name="submit" value="Submit">
</form> </body> </html>
templatePower (FORMS)myscript.php
<?php include_once('./class.TemplatePower.inc.php'); $tpl = new TemplatePower('form.tpl'); $tpl->prepare(); $errorMessage = Array(); $errorFound = false;
if( isset( $submit ) ) { if($email == '') { $errorMessage[] = 'No emailadress entered'; $errorFound = true; }
if( $errorFound ) { $tpl->newBlock('error'); $size = sizeof($errorMessage); for( $i=0; $i < $size; $i++ ) {
$tpl->newBlock('message'); $tpl->assign('message', $errorMessage[$i]); }
} else { Header('Location: member.php'); } }
$tpl->printToScreen(); ?>