You may have noted that the html form contained in the admin/views/helloworld/tmpl/edit.php file now has the form-validate css class. And that we added a JHTML::_('behavior.formvalidation'); call to tell Joomla!1.6 to use its javascript form validation.

Modify the admin/models/forms/helloworld.xml file to indicate that the greeting field has to be verified:

Note for the moment that the css class is now "inputbox validate-greeting" and that the attribute required is set to true. It means that this field is required and has to be verified by a handler of the form validator framework of Joomla

It adds a handler to the form validator of Joomla for fields having the "validate-greeting" css class. Each time the greeting field is modified, the handler will be executed to verify its validity (no digits).

The final step is to implement a getScript function in the HelloWorldModelHelloWorld model:

admin/models/helloworld.php

<?php// No direct access to this filedefined('_JEXEC') or die('Restricted access');// import Joomla modelform library
jimport('joomla.application.component.modeladmin');/**
* HelloWorld Model
*/class HelloWorldModelHelloWorld extends JModelAdmin
{/**
* Returns a reference to the a Table object, always creating it.
*
* @param type The table type to instantiate
* @param string A prefix for the table class name. Optional.
* @param array Configuration array for model. Optional.
* @return JTable A database object
* @since 1.6
*/publicfunction getTable($type='HelloWorld',$prefix='HelloWorldTable',$config=array()){return JTable::getInstance($type,$prefix,$config);}/**
* Method to get the record form.
*
* @param array $data Data for the form.
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
* @return mixed A JForm object on success, false on failure
* @since 1.6
*/publicfunction getForm($data=array(),$loadData=true){// Get the form.$form=$this->loadForm('com_helloworld.helloworld','helloworld',array('control'=>'jform','load_data'=>$loadData));if(empty($form)){returnfalse;}return$form;}/**
* Method to get the script that have to be included on the form
*
* @return string Script files
*/publicfunction getScript(){return'administrator/components/com_helloworld/models/forms/helloworld.js';}/**
* Method to get the data that should be injected in the form.
*
* @return mixed The data for the form.
* @since 1.6
*/
protected function loadFormData(){// Check the session for previously entered form data.$data= JFactory::getApplication()->getUserState('com_helloworld.edit.helloworld.data',array());if(empty($data)){$data=$this->getItem();}return$data;}}

Verifying the form (server side)

Verifying the form on the server side is done by inheritance of JControllerForm class. We have specified in the admin/models/forms/helloworld.xml file that the validate server function will used a greeting.php file.

Create a compressed file of this directory or directly download the archive and install it using the extension manager of Joomla!1.6. You can add a menu item of this component using the menu manager in the backend.