Login   Register  
PHP Classes
elePHPant
Icontem

File: example_templates.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Thiemo Mättig  >  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: 5 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(02))
{
    
$form->error("Random error message No. 1");
}
$form->text("The <u>e</u>lement's label""This element may get an error");
if (! 
rand(02))
{
    
$form->error("Random error message #2");
}
$form->checkbox("Another label""Another help text""<u>C</u>heck");
if (! 
rand(02))
{
    
$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(02))
{
    
$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();

?>