/**
* The required files
*/
require_once(HTML_DTO_UTIL_PATH.'/Field.php');
require_once(HTML_DTO_UTIL_PATH.'/FieldName.php');
require_once(HTML_DTO_UTIL_PATH.'/FieldLen.php');
require_once(HTML_DTO_UTIL_PATH.'/FieldType.php');
require_once(HTML_DTO_UTIL_PATH.'/FieldFlags.php');
require_once(HTML_DTO_UTIL_PATH.'/FieldTable.php');
require_once(HTML_BASIC_UTIL_PATH.'/Message.php');
if (defined('HTML_LOG_UTIL_PATH')) {
require_once(HTML_LOG_UTIL_PATH.'/Log.php');
}
/**
* The Field Factory is used to return a complete populated
* Field object, from an array of rows and an array of header meta data information.
* The purpose of this clas is to simulate the meta information from a database
* <code>
* Usage:
* $default = array();
* $header = array(
* 'firstname'=>array('fieldName'=>'firstname', 'fieldLen'=>100, 'fieldType'=>'', 'fieldFlags'=>'', 'fieldTable'=>''),
* 'lastname'=>'array('fieldName'=>'lastname' , 'fieldLen'=>100, 'fieldType'=>'', 'fieldFlags'=>'', 'fieldTable'=>''),
* );
*
* $rows = array(
* array('firstname'=>'Finn', 'lastname'=>'Rasmussen'),
* array('firstname'=>'Zita', 'lastname'=>'Christensen'),
* );
*
* $factory = new FieldFactory();
* $field = $factory->newField($rows, $header,$default);
* print $field->getFieldName($rowname); // Use the object
* Or
* $field = FieldFactory::newField($rows, $header,$default);
* print $field->getFieldName($rowname); // Use the object
* </code>
* @package dto
*/
class FieldFactory {
/**
* Constructor
*/
function FieldFactory() {
}
/**
* Return a new Field object fully populated with meta data
* @param array $rows The array of rows
* @param array $header The array of header meta data
* @param array $default The default meta data array
* @return Fields The fields object
*/
function newField($rows, $header='', $default='') {
$field = new Field();
foreach($rows as $no=>$row) {
if (is_array($row)) {
foreach($row as $key=>$value) {
$field->addFieldName ($key,FieldName::get($key, $header, $default!='' && is_array($default)?$default[DATA_READER_FIELD_NAME]:SELECT_FIELD_NAME));
$field->addFieldLen ($key,FieldLen::get($key, $header, $default!='' && is_array($default)?$default[DATA_READER_FIELD_LEN]:SELECT_FIELD_LEN));
$field->addFieldType ($key,FieldType::get($key, $header, $default!='' && is_array($default)?$default[DATA_READER_FIELD_TYPE]:SELECT_FIELD_TYPE));
$field->addFieldFlags($key,FieldFlags::get($key, $header, $default!='' && is_array($default)?$default[DATA_READER_FIELD_FLAGS]:SELECT_FIELD_FLAGS));
$field->addFieldTable($key,FieldTable::get($key, $header, $default!='' && is_array($default)?$default[DATA_READER_FIELD_TABLE]:SELECT_FIELD_TABLE));
}
} else {
if ($row != '') {
$msg = "FieldFactory::newField(rows,header,default), Not an array, found row=".$row;
Log::debug(__FILE__,__LINE__,$msg);
Message::add($msg, __FILE__, __LINE__);
}
}
}
return $field;
}
/**
* Get the html code
* @return String The html code
*/
function getHtml() {
$rows = array();
$datareader = FieldFactory::newField($rows);
return $datareader->getHtml();
}
}
?>
HTML source code
Den fulde HTML kildekode for FieldFactory klassen
<?
0
?>
Class methods
Her er 'klasse metoderne' for FieldFactory klassen:
fieldfactory
newfield
gethtml
Object vars
Her er 'objekt variable' for FieldFactory klassen: