107 lines
3.9 KiB
PHP
107 lines
3.9 KiB
PHP
<?php
|
|
|
|
class renderFormClass extends renderClass_abstract
|
|
{
|
|
private $_formData = array ( );
|
|
|
|
public function createForm ( $formData )
|
|
{
|
|
$arrFields = explode ( ';' , $formData[ 'content' ] );
|
|
$fieldCounter = 0;
|
|
|
|
$new_node = $this -> _tpl -> createDocumentFragment ( );
|
|
$node = $this -> _tpl -> createElement ( 'form' );
|
|
$node -> setAttributeNode ( new DOMAttr ( 'action' , $formData[ 'action' ] ) );
|
|
$node -> setAttributeNode ( new DOMAttr ( 'method' , $formData[ 'method' ] ) );
|
|
$node -> setAttributeNode ( new DOMAttr ( 'class' , $formData[ 'class' ] ) );
|
|
|
|
if ( ! is_null ( $this -> _errors ) )
|
|
{
|
|
foreach ( $this -> _errors as $error )
|
|
{
|
|
$errorNode = $this -> _tpl -> createElement ( 'p' );
|
|
$errorNode -> setAttributeNode ( new DOMAttr ( 'class' , 'error' ) );
|
|
$errorNode -> appendChild ( new DOMText ( $this -> _langArray[ 'error' ][ $error ] ) );
|
|
$node -> appendChild ( $errorNode );
|
|
}
|
|
|
|
}
|
|
|
|
foreach ( $arrFields as $singleField )
|
|
{
|
|
$arrData = explode ( ':' , $singleField );
|
|
$arrDefinition = explode ( '_' , $arrData[ 0 ] );
|
|
$arrValue = explode ( '_' , $arrData[ 1 ] );
|
|
|
|
/* Inputs */
|
|
if ( $arrDefinition[ 0 ] === 'input' && ( $arrDefinition[ 1 ] !== 'hidden' && $arrDefinition[ 1 ] !== 'submit' ) )
|
|
{
|
|
$tmp_div = $this -> _tpl -> createElement ( 'div' );
|
|
++$fieldCounter;
|
|
if ( $fieldCounter % 2 === 1 )
|
|
{
|
|
$tmp_div -> setAttributeNode ( new DOMAttr ( 'class' , 'left' ) );
|
|
}
|
|
}
|
|
|
|
$tmp_node = $this -> _tpl -> createElement ( $arrDefinition[ 0 ] );
|
|
|
|
if ( $arrDefinition[ 0 ] === 'input' )
|
|
{
|
|
$tmp_node -> setAttributeNode ( new DOMAttr ( 'type' , $arrDefinition[ 1 ] ) );
|
|
$tmp_node -> setAttributeNode ( new DOMAttr ( 'id' , $arrValue[ 0 ] ) );
|
|
$tmp_node -> setAttributeNode ( new DomAttr ( 'name' , $arrValue[ 0 ] ) );
|
|
$tmp_node -> setAttributeNode ( new DomAttr ( 'autocomplete' , 'off' ) );
|
|
|
|
if ( $arrDefinition[ 1 ] !== 'hidden' && $arrDefinition[ 1 ] !== 'submit' && isset ( $this -> _postData[ $arrValue[ 0 ] ] ) )
|
|
{
|
|
$tmp_node -> setAttributeNode ( new DomAttr ( 'value' , $this -> _postData[ $arrValue[ 0 ] ] ) );
|
|
}
|
|
}
|
|
|
|
if ( $arrDefinition[ 1 ] === 'submit' && isset ( $this -> _langArray[ 'form' ][ $arrValue[ 0 ] ] ) )
|
|
{
|
|
$tmp_node -> setAttributeNode ( new DOMAttr ( 'value' , $this -> _langArray[ 'form' ][ $arrValue[ 0 ] ] ) );
|
|
}
|
|
elseif ( isset ( $arrValue[ 1 ] ) )
|
|
{
|
|
$tmp_node -> setAttributeNode ( new DOMAttr ( 'value' , $arrValue[ 1 ] ) );
|
|
}
|
|
elseif ( isset ( $this -> _langArray[ 'formText' ][ $arrValue[ 0 ] ] ) )
|
|
{
|
|
$tmp_node -> appendChild ( new DOMText ( $this -> _langArray[ 'formText' ][ $arrValue[ 0 ] ] ) );
|
|
}
|
|
|
|
if ( $arrDefinition[ 0 ] === 'input'&& ( $arrDefinition[ 1 ] !== 'hidden' && $arrDefinition[ 1 ] !== 'submit' ) )
|
|
{
|
|
$tmp_div -> appendChild ( $tmp_node );
|
|
|
|
$tmp_node = $this -> _tpl -> createElement ( 'label' );
|
|
$tmp_node -> setAttributeNode ( new DOMAttr ( 'for' , $arrValue[ 0 ] ) );
|
|
$tmp_node -> appendChild ( new DOMText ( $this -> _langArray[ 'form' ][ $arrValue[ 0 ] ] ) );
|
|
$tmp_div -> appendChild ( $tmp_node );
|
|
|
|
$node -> appendChild ( $tmp_div );
|
|
if ( $fieldCounter % 2 === 0 )
|
|
{
|
|
$tmp_br = $this -> _tpl -> createElement ( 'br' );
|
|
$tmp_br -> setAttributeNode ( new DOMAttr ( 'class' , 'fix' ) );
|
|
$node -> appendChild ( $tmp_br );
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
$node -> appendChild ( $tmp_node );
|
|
}
|
|
|
|
}
|
|
$new_node -> appendChild ( $node );
|
|
|
|
return $new_node;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
?>
|