PHP Classes

File: example_templates.php

Recommend this page to a friend!
  Classes of Thiemo Kreuz   TM::Apeform   example_templates.php   Download  
File: example_templates.php
Role: Example script
Content type: text/plain
Description: How to use different HTML and CSS templates
Class: TM::Apeform
A very abstract web form builder and processor
Author: By
Last change: Accessible without user login
Date: 14 years ago
Size: 3,823 bytes
 

Contents

Class file image Download
<?php

/**
 * Example for TM::Apeform. Shows use of different templates.
 *
 * @author Thiemo Mättig (http://maettig.com/)
 */

require_once("Apeform.class.php");

srand(time());

echo
"<h1>TM::Apeform Templates Example</h1>";

$form = new Apeform();
$form->header("A header");
$form->text("<u>L</u>abel", "A help text", "Default value");
if (!
rand(0, 2))
{
   
$form->error("Random error message No. 1");
}
$form->text("The <u>e</u>lement's label", "This element may get an error");
if (!
rand(0, 2))
{
   
$form->error("Random error message #2");
}
$form->checkbox("Another label", "Another help text", "<u>C</u>heck");
if (!
rand(0, 2))
{
   
$form->error("Random error message three");
}
$radio = $form->radio("Choose the form's templates", "", array(
   
'default' => "<u>D</u>efault (error message replaces label)<br />\n",
   
'defaultcss' => "Default with style sheets<br />\n",
   
'above' => "Error message above element, no help (but tooltips)<br />\n",
   
'kalsey' => "Style sheets, decent<br />\n",
   
'css' => "Style sheets, crazy"), "default");
if (!
rand(0, 2))
{
   
$form->error("Fourth random error message");
}
$form->submit("Redraw the form");

switch (
$radio)
{
    case
"default":
       
/* no templates, no style sheets */
       
break;

    case
"defaultcss":
       
/* no templates */

       
echo '<style type="text/css">';
        echo
'th{background-color:#009;color:#FFF}';
        echo
'td{background-color:#CCF}';
        echo
'.error{color:#F00}';
        echo
'</style>';
        break;

    case
"above":
       
$form->templates['input'] =
           
"<tr>\n<td align=\"right\" valign=\"top\">{label}</td>\n" .
           
"<td valign=\"top\">{error}{input}</td>\n</tr>\n";
       
$form->templates['error'] =
           
"<strong class=\"error\">{error}</strong><br />\n";

        echo
'<style type="text/css">';
        echo
'th{background-color:#009;color:#FFF}';
        echo
'td{background-color:#CCF}';
        echo
'.error{color:#F00}';
        echo
'</style>';
        break;

    case
"kalsey":
       
$form->templates = array(
           
'form' => "{input}",
           
'header' => "<h3>{header}</h3>\n",
           
'input' =>
               
"<div class=\"row\"><div{error}><div class=\"label\">{label}</div>\n" .
               
"<div class=\"input\">{input}</div></div></div>",
           
'label' => "{label}:",
           
'error' => " class=\"error\"><strong>{error}</strong");

        echo
'<style type="text/css">';
        echo
'body,input{font-family:sans-serif;}';
        echo
'label{cursor:pointer;cursor:hand;}';
        echo
'.error{background-color:#FCC;border: 1px solid red;padding:1ex 0;}';
        echo
'.error strong{padding-left:1ex;}';
        echo
'.row{margin:2ex 0;}';
        echo
'.label{float:left;text-align:right;width:30ex;}';
        echo
'.input{padding-left:31ex;}';
        echo
'</style>';
        break;

    case
"css":
       
$form->templates = array(
           
'form' => "{input}",
           
'header' => "<h3>{header}</h3>\n",
           
'input' =>
               
"{label}<div class=\"element\">{input}{error}</div>\n",
           
'label' => "<h4>{label}{help}</h4>",
           
'error' => "<br /><strong class=\"error\">{error}</strong>\n",
           
'help' => "<br /><small>(?) {help}</small>");

        echo
'<style type="text/css">';
        echo
'h3{background:#FD0}';
        echo
'h4{background:#EEA;margin:1ex 0 0 0}';
        echo
'.element{background:#DDC;border:2px inset white;' .
           
'margin:0 0 1ex 6ex;padding:.5ex}';
        echo
'small{color:#666;font-weight:normal}';
        echo
'.error{color:#F00}';
        echo
'</style>';
        break;
}

$form->display();

?>