105 lines
3.1 KiB
PHP
105 lines
3.1 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;
|
|
}
|
|
|
|
|
|
} |