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 BSPrinterRootForm extends BSPrinterRootAbstract { /** * The form's action * @var string */ private $action; /** * "Do" parameter * @var string */ private $do; /** * The form's name * @var string */ private $name; /** * This form is upload-ready * @var bool */ private $upload; // ################################################################### /** * Constructor */ public function __construct($action, $do, $name = 'issoform') { $this->action = $action; $this->do = $do; $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 BSPrinterAbstract Table element * * @return fluent interface */ public function addChild(BSPrinterAbstract $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 BSPrinterElement('hidden', 'do', $this->do)); return "\nname . "\" action=\"" . $this->action . "\" method=\"post\"" . ($this->upload ? ' enctype="mime/multi-part"' : '') . ">\n" . $this->_paintChildren() . "\n"; } } ?>