23 November 2015 Scheiden van HTML en PHP emplatePower.

Post on 18-Jan-2018

218 views 0 download

description

Staat los van aanroepende php-script

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(); ?>