source

This is the config array for clonefish which generates the form you've just seen. How can you use such an array?

<?php

$config 
= Array(

  
'login' => Array(
    
'type'           => 'inputText',
    
'displayname'    => 'Login name, min. 5, max. 15 chars',
    
'help'           => 'The login name has to be at least 5 characters long, and must not be longer than 15 characters',
    
'validation'     => Array(
      Array( 
        
'type'    => 'string',
        
'minimum' => 5,
        
'maximum' => 15,
      ),
    ),
  ),

  
'password' => Array(
    
'type'           => 'inputPassword',
    
'displayname'    => 'Password, min. 5, max. 15 chars',
    
'help'           => 'The password has to be at least 5 characters long, and must not be longer than 15 characters',
    
'validation'     => Array(
      Array( 
        
'type'    => 'string',
        
'minimum' => 5,
        
'maximum' => 15,
      ),
    ),
  ),

  
'passwordverify' => Array(
    
'type'           => 'inputPassword',
    
'displayname'    => 'Password again',
    
'help'           => 'The two passwords has to be the same',
    
'validation'     => Array(
      Array( 
        
'type'    => 'string',
        
'equals'  => 'password',
      ),
    ),
  ),
  
  
'email' => Array(
    
'type'           => 'inputText',
    
'displayname'    => 'Your e-mail address',
    
'help'           => 'A valid e-mail address is required',
    
'validation'     => Array(
      Array(
        
'type'    => 'string',
        
// an e-mail address format verification 
        // regular expression
        
'regexp' => '/^[\._0-9a-z-]+@[0-9a-z][-0-9a-z\.]*\.[a-z]{2,4}$/' 
      
),
    ),
  ),

  
'categoryid' => Array(
    
'type'           => 'selectDynamic',
    
'displayname'    => 'This is a dynamic select created from a<br>typical tree-structured database table',
    
'sql'            => 'SELECT id, name FROM portfolio_categories',
    
'values'         =>
      Array(             
        
=> '--- choose something from this list! ---'
      ),
    
'treeid'         => 'id',
    
'treestart'      => '0',
    
'treeparent'     => 'parentid',
    
'help'           => 'Please choose a category!',
    
'validation'     => Array(
      Array( 
'type' => 'required' ),
      Array( 
'type' => 'number''minimum' => )
    ),
  ),

  
'inputRadio' => Array(
    
'type'        => 'inputRadio',
    
'displayname' => 'radiobutton group',
    
'values'      => Array( => 'no'=> 'yes'=> 'maybe' ),
    
'validation'     => Array(
      Array( 
'type'    => 'required' ),
    ),
  ),

  
'fulldateiso' => Array(
    
'type'           => 'inputText',
    
'displayname'    => 'Date YYYY-MM-DD (ISO)',
    
'value'          => '2010-13-32',
    
'validation'     => Array(
      Array( 
        
'type'    => 'date',
        
'format'  => 'YYYY-MM-DD',
      ),
    ),
  ),

  
'intmin5' => Array(
    
'type'           => 'inputText',
    
'displayname'    => 'Some number &gt;= 5 ',
    
'help' => 'The value of the number field must be >= 5!',
    
'validation'     => Array(
      Array( 
        
'type'    => 'number',
        
'minimum' => 5,
      ),
    ),
  ),

  
'inputfile' => Array(
    
'type'           => 'inputFile',
    
'displayname'    => 'inputFile<br>with a <code>thumbnail</code>,<br> a <code>href</code> and a <code>delete</code> button',
    
'href'           => BASE_URI 'files/inputfile.png',
    
'thumbnail'      => BASE_URI 'files/inputfile_thumb.png',
    
'delete'         => 'somescript.php?target=delete&filename=inputfile_thumb.png',
    
'validation'     => Array(
      Array( 
        
'type' => 'file'
        
'types' => Array( 'jpgrgb' 
      )
    ),
  ),

  
'selectfile[]' => Array(
    
'type'           => 'selectFile',
    
'displayname'    => 'selectFile - only one directory, full path, multiple',
    
'directory'      => BASE_PATH 'files/selectfile/',
    
'html'           => 'multiple="multiple"',
    
'tree'           => 0,
    
'includedirs'    => 1,
  ),

);

?>

usage example

To create a form using this array you'll only need a few lines of code:

<?php

// create the form object
$clonefish = new clonefish'loginform''test.php''POST' );

// setup codepage so your data will be handled
// perfectly by the appropriate string functions
$clonefish->codepage         'utf-8';
$clonefish->multibytesupport 'multibyteutf8';

// add the form elements (fields) pre-filled with
// values from $_POST
$clonefish->addElements$config$_POSTget_magic_quotes_gpc() );

// validate the form if the form has been submitted
if ( count$_POST ) && $clonefish->validate() ) {
  
// form is valid, go and store values in database, etc.
  // $clonefish->getElementValues() provides a 
  // normalized value array.
}
else
  
// if the form wasn't submitted yet or the validation
  // had failed, show the form (automatically
  // including error messages)
  
echo 
    
"<html><body>" 
    
$clonefish->getHTML() .
    
"</body></html>";

?>

But there's so much more than just displaying the form - be sure to read the
reference pages and the introduction!