mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-08-26 04:26:01 +02:00
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@59969 467b73ca-7a2a-4603-9d3b-597d59a354a9
68 lines
1.5 KiB
PHP
Executable File
68 lines
1.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* This is a form decorator (a class that wraps around a form) providing us with some functions
|
|
* to display it in a Tabular style.
|
|
* @package forms
|
|
* @subpackage transformations
|
|
*/
|
|
class TabularStyle extends ViewableData {
|
|
protected $form;
|
|
|
|
/**
|
|
* Represent the given form in a tabular style
|
|
* @param form The form to decorate.
|
|
*/
|
|
function __construct($form) {
|
|
$this->form = $form;
|
|
$this->failover = $form;
|
|
parent::__construct();
|
|
}
|
|
|
|
/**
|
|
* Return a representation of this form as a table row
|
|
*/
|
|
function AsTableRow() {
|
|
return "<tr class=\"addrow\">{$this->CellFields()}<td class=\"actions\">{$this->CellActions()}</td></tr>";
|
|
}
|
|
|
|
function CellFields() {
|
|
$result = "";
|
|
$hiddenFields = '';
|
|
foreach($this->form->Fields() as $field) {
|
|
if(!$field->is_a('HiddenField')) {
|
|
$result .= "<td>" . $field->Field() . "</td>";
|
|
} else {
|
|
$hiddenFields .= $field->Field();
|
|
}
|
|
}
|
|
|
|
// Add hidden fields in the last cell
|
|
$result = substr($result,0,-5) . $hiddenFields . substr($result,-5);
|
|
|
|
return $result;
|
|
}
|
|
|
|
function CellActions() {
|
|
$actions = "";
|
|
foreach($this->form->Actions() as $action) {
|
|
$actions .= $action->Field();
|
|
}
|
|
return $actions;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* This is the 'wrapper' aspect of the code
|
|
*/
|
|
function __call($func, $args) {
|
|
return call_user_func_array(array(&$this->form, $func), $args);
|
|
}
|
|
function __get($field) {
|
|
return $this->form->$field;
|
|
}
|
|
function __set($field, $val) {
|
|
$this->form->$field = $val;
|
|
}
|
|
}
|
|
?>
|