getElement(); if (!$element instanceof \PhpOffice\PhpWord\Element\Field) { return; } $type = strtolower($element->getType()); switch ($type) { case 'date': case 'page': case 'numpages': case 'filename': $this->writeDefault($element, $type); break; } } private function writeDefault(\PhpOffice\PhpWord\Element\Field $element, $type): void { $xmlWriter = $this->getXmlWriter(); $xmlWriter->startElement('text:span'); if (method_exists($element, 'getFontStyle')) { $fstyle = $element->getFontStyle(); if (is_string($fstyle)) { $xmlWriter->writeAttribute('text:style-name', $fstyle); } } switch ($type) { case 'date': $xmlWriter->startElement('text:date'); $xmlWriter->writeAttribute('text:fixed', 'false'); $xmlWriter->endElement(); break; case 'page': $xmlWriter->startElement('text:page-number'); $xmlWriter->writeAttribute('text:fixed', 'false'); $xmlWriter->endElement(); break; case 'numpages': $xmlWriter->startElement('text:page-count'); $xmlWriter->endElement(); break; case 'filename': $xmlWriter->startElement('text:file-name'); $xmlWriter->writeAttribute('text:fixed', 'false'); $options = $element->getOptions(); if ($options != null && in_array('Path', $options)) { $xmlWriter->writeAttribute('text:display', 'full'); } else { $xmlWriter->writeAttribute('text:display', 'name'); } $xmlWriter->endElement(); break; } $xmlWriter->endElement(); // text:span } }