23 November 2015 Scheiden van HTML en PHP emplatePower.

21
23 November 2015 Scheiden van HTML en PHP emplatePower

description

Staat los van aanroepende php-script

Transcript of 23 November 2015 Scheiden van HTML en PHP emplatePower.

Page 1: 23 November 2015 Scheiden van HTML en PHP emplatePower.

23 November 2015

Scheiden van HTML en PHPemplatePower

Page 2: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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.

Page 3: 23 November 2015 Scheiden van HTML en PHP emplatePower.

Staat los van aanroepende php-script

Page 4: 23 November 2015 Scheiden van HTML en PHP emplatePower.

templatePower (wat is niet goed?)

Page 5: 23 November 2015 Scheiden van HTML en PHP emplatePower.

templatePower (wat is niet goed?)

Page 6: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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>

Page 7: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

Page 8: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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>

Page 9: 23 November 2015 Scheiden van HTML en PHP emplatePower.

templatePower IMAGES

Page 10: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

Page 11: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

Page 12: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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>

Page 13: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

?>

Page 14: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

?>

Page 15: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

Page 16: 23 November 2015 Scheiden van HTML en PHP emplatePower.

templatePower (BLOCK)

<html>

<head><title>{titel}</title></head>

<body><h1>Welkom {persoon}!</h1>

<!-- START BLOCK : rij -->{id} : {naam}<!-- END BLOCK : rij -->

</body>

</html>

Page 17: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

Page 18: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

Page 19: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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

Page 20: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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>

Page 21: 23 November 2015 Scheiden van HTML en PHP emplatePower.

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