$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') );