Files
pmgr/site/views/elements/form_table.ctp
abijah a1bab966ed Added descriptive text to the customer entry page, as well as work to associate labels with the inputs and set their class dynamically, to flag missing required fields.
git-svn-id: file:///svn-source/pmgr/branches/pre_0.1_work_20090819@753 97e9348a-65ac-dc4b-aefc-98561f571b83
2009-08-23 23:12:04 +00:00

136 lines
3.5 KiB
PHP

<?php /* -*- mode:PHP -*- */
/* form_table.ctp */
/*
*
* @filesource
* @copyright Copyright 2009, Abijah Perkins
* @package pmgr
*/
$include_before = false;
if (isset($before) && $before)
$include_before = true;
foreach ($fields AS $field => $config) {
if (isset($config['before']))
$include_before = true;
}
$include_between = false;
if (isset($between) && $between)
$include_between = true;
foreach ($fields AS $field => $config) {
if (isset($config['between']))
$include_between = true;
}
$include_after = false;
if (isset($after) && $after)
$include_after = true;
foreach ($fields AS $field => $config) {
if (isset($config['after']))
$include_after = true;
}
if (empty($column_class))
$column_class = array();
if ($include_before)
$column_class[] = 'before';
$column_class[] = 'field';
if ($include_between)
$column_class[] = 'between';
$column_class[] = 'value';
if ($include_after)
$column_class[] = 'after';
$rows = array();
foreach ($fields AS $field => $config) {
if (!isset($config))
continue;
if (is_bool($config) && !$config)
continue;
if (is_bool($config) && $config)
$config = array();
if (!isset($config['name']))
$config['name'] = implode(' ', array_map('ucfirst', explode('_', $field)));
if (!isset($config['opts']))
$config['opts'] = null;
if (isset($config['prefix']) && !isset($config['no_prefix']))
$field = $config['prefix'] . '.' . $field;
elseif (isset($field_prefix) && !isset($config['no_prefix']))
$field = $field_prefix . '.' . $field;
if (!isset($config['opts']['label']))
$config['opts']['label'] = false;
if (!isset($config['opts']['div']))
$config['opts']['div'] = false;
$cells = array();
if ($include_before) {
if (isset($config['before']))
$cells[] = $config['before'];
elseif (isset($before) && $before)
$cells[] = $before;
else
$cells[] = null;
}
if (empty($config['opts']['label']))
$name = $form->label($field, $config['name'],
empty($config['label_attributes'])
? null : $config['label_attributes']);
else
$name = $config['name'];
if (isset($config['with_name_before']))
$name = $config['with_name_before'] . $name;
elseif (isset($with_name_before))
$name = $with_name_before . $name;
if (isset($config['with_name_after']))
$name = $name . $config['with_name_after'];
elseif (isset($with_name_after))
$name = $name . $with_name_after;
$cells[] = $name;
if ($include_between) {
if (isset($config['between']))
$cells[] = $config['between'];
elseif (isset($between) && $between)
$cells[] = $between;
else
$cells[] = null;
}
$value = $form->input($field, $config['opts']);
if (isset($config['with_value_before']))
$value = $config['with_value_before'] . $value;
elseif (isset($with_value_before))
$value = $with_value_before . $value;
if (isset($config['with_value_after']))
$value = $value . $config['with_value_after'];
elseif (isset($with_value_after))
$value = $valeu . $with_value_after;
$cells[] = $value;
if ($include_after) {
if (isset($config['after']))
$cells[] = $config['after'];
elseif (isset($after) && $after)
$cells[] = $after;
else
$cells[] = null;
}
$rows[] = $cells;
}
echo $this->element('table',
compact('id', 'class', 'caption', 'headers',
'rows', 'row_class', 'suppress_alternate_rows',
'column_class')
);