object. This can have a parent or not: if it does, * then it will be painted as a child, otherwise it will act as a root. * * @author Blue Static * @copyright Copyright (c)2005 - 2008, Blue Static * @package ISSO * */ class BSPrinterRootElementForm extends BSPrinterRootElement { /** * The form's action (or the controller to respond to) * @var string */ private $controller; /** * Method to use * @var string */ private $action; /** * The form's name * @var string */ private $name; /** * This form is upload-ready * @var bool */ private $upload; // ################################################################### /** * Constructor */ public function __construct($controller, $action, $name = 'issoform') { $this->controller = $controller; $this->action = $action; $this->name = $name; } /** * Makes a new instance of the object in a static fashion * * @return object */ public static function make() { $obj = new ReflectionClass(__CLASS__); $args = func_get_args(); return $obj->newInstanceArgs($args); } // ################################################################### /** * Should this form be used for upload? * * @param bool Upload? * * @return fluent interface */ public function setUpload($upload) { $this->upload = $upload; return $this; } // ################################################################### /** * Adds a table row into the child list * * @param BSPrinterElement Table element * * @return fluent interface */ public function addChild(BSPrinterElement $tr) { $this->children[] = $tr; return $this; } // ################################################################### /** * Returns the HTML for all printed children elements * * @return string Printed HTML */ protected function _paintChildren() { $builder = ''; foreach ($this->children as $child) { $builder .= "\n" . $child->paint(); } return $builder; } // ################################################################### /** * Paints the * * @return string Table HTML code */ public function paint() { array_push($this->children, new BSPrinterBaseElement('hidden', 'action', $this->action)); return "\nname . "\" action=\"" . $this->controller . "\" method=\"post\"" . ($this->upload ? ' enctype="mime/multi-part"' : '') . ">\n" . $this->_paintChildren() . "\n"; } } ?>