/** * @param $header_object HTMLTableHeader object * @param $allow_super_header (false by default **/ function appendHeader(HTMLTableHeader $header_object, $allow_super_header = false) { if (!$header_object instanceof HTMLTableHeader) { throw new Exception('Implementation error: appendHeader requires HTMLTableHeader as parameter'); } $header_name = ''; $subHeader_name = ''; $header_object->getHeaderAndSubHeaderName($header_name, $subHeader_name); if ($header_object->isSuperHeader() && !$this->super && !$allow_super_header) { throw new Exception(sprintf('Implementation error: invalid super header name "%s"', $header_name)); } if (!$header_object->isSuperHeader() && $this->super) { throw new Exception(sprintf('Implementation error: invalid super header name "%s"', $header_name)); } if (!isset($this->headers[$header_name])) { $this->headers[$header_name] = array(); $this->headers_order[] = $header_name; $this->headers_sub_order[$header_name] = array(); } if (!isset($this->headers[$header_name][$subHeader_name])) { $this->headers_sub_order[$header_name][] = $subHeader_name; } $this->headers[$header_name][$subHeader_name] = $header_object; return $header_object; }
/** * @param $header HTMLTableHeader object **/ function haveHeader(HTMLTableHeader $header) { //TODO $header_name AND $subHeader_name not initialized $header->getHeaderAndSubHeaderName($header_name, $subheader_name); try { $subheaders = $this->getHeaders($header_name); } catch (HTMLTableUnknownHeaders $e) { try { $subheaders = $this->table->getHeaders($header_name); } catch (HTMLTableUnknownHeaders $e) { return false; } } return isset($subheaders[$subheader_name]); }
/** * @param $header HTMLTableHeader object **/ function haveHeader(HTMLTableHeader $header) { $header_name = ''; $subHeader_name = ''; $header->getHeaderAndSubHeaderName($header_name, $subheader_name); try { $subheaders = $this->getHeaders($header_name); } catch (HTMLTableUnknownHeaders $e) { try { $subheaders = $this->table->getHeaders($header_name); } catch (HTMLTableUnknownHeaders $e) { return false; } } return isset($subheaders[$subheader_name]); }
/** * @param $table HTMLTableMain object: table owning the current header * @param $name string the name of the header * @param $content see inc/HTMLTableEntity#__construct() * @param $father HTMLTableSuperHeader objet (default NULL) **/ function __construct(HTMLTableMain $table, $name, $content, HTMLTableSuperHeader $father = NULL) { $this->table = $table; parent::__construct($name, $content, $father); }
/** * @param $son HTMLTableCell object * @param $sons_header HTMLTableHeader object **/ function addSon(HTMLTableCell $son, HTMLTableHeader $sons_header) { if (!isset($this->sons[$sons_header->getName()])) { $this->sons[$sons_header->getName()] = array(); } $this->sons[$sons_header->getName()][] = $son; }
function getHeaderAndSubHeaderName(&$header_name, &$subheader_name) { $header_name = $this->header->getName(); $subheader_name = parent::getName(); }