sectionId = $sectionCount; $this->setDocPart($this->container, $this->sectionId); $this->style = new SectionStyle(); $this->setStyle($style); } /** * Set section style. * * @param array $style * @return void */ public function setStyle($style = null) { if (!is_null($style) && is_array($style)) { $this->style->setStyleByArray($style); } } /** * Get section style * * @return \PhpOffice\PhpWord\Style\Section */ public function getStyle() { return $this->style; } /** * Add header * * @param string $type * @return Header * @since 0.10.0 */ public function addHeader($type = Header::AUTO) { return $this->addHeaderFooter($type, true); } /** * Add footer * * @param string $type * @return Footer * @since 0.10.0 */ public function addFooter($type = Header::AUTO) { return $this->addHeaderFooter($type, false); } /** * Get header elements * * @return Header[] */ public function getHeaders() { return $this->headers; } /** * Get footer elements * * @return Footer[] */ public function getFooters() { return $this->footers; } /** * Is there a header for this section that is for the first page only? * * If any of the Header instances have a type of Header::FIRST then this method returns true. * False otherwise. * * @return boolean */ public function hasDifferentFirstPage() { foreach ($this->headers as $header) { if ($header->getType() == Header::FIRST) { return true; } } return false; } /** * Add header/footer * * @param string $type * @param boolean $header * @return Header|Footer * @throws \PhpOffice\PhpWord\Exception\Exception * @since 0.10.0 */ private function addHeaderFooter($type = Header::AUTO, $header = true) { $containerClass = substr(get_class($this), 0, strrpos(get_class($this), '\\')) . '\\' . ($header ? 'Header' : 'Footer'); $collectionArray = $header ? 'headers' : 'footers'; $collection = &$this->$collectionArray; if (in_array($type, array(Header::AUTO, Header::FIRST, Header::EVEN))) { $index = count($collection); /** @var \PhpOffice\PhpWord\Element\AbstractContainer $container Type hint */ $container = new $containerClass($this->sectionId, ++$index, $type); $container->setPhpWord($this->phpWord); $collection[$index] = $container; return $container; } else { throw new Exception('Invalid header/footer type.'); } } /** * Set section style * * @param array $settings * @deprecated 0.12.0 * @codeCoverageIgnore */ public function setSettings($settings = null) { $this->setStyle($settings); } /** * Get section style * * @return \PhpOffice\PhpWord\Style\Section * @deprecated 0.12.0 * @codeCoverageIgnore */ public function getSettings() { return $this->getStyle(); } /** * Create header * * @return Header * @deprecated 0.10.0 * @codeCoverageIgnore */ public function createHeader() { return $this->addHeader(); } /** * Create footer * * @return Footer * @deprecated 0.10.0 * @codeCoverageIgnore */ public function createFooter() { return $this->addFooter(); } /** * Get footer * * @return Footer * @deprecated 0.10.0 * @codeCoverageIgnore */ public function getFooter() { if (empty($this->footers)) { return null; } else { return $this->footers[1]; } } }