Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
28 / 28
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Nav
100.00% covered (success)
100.00%
28 / 28
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 getXmlWriter
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 write
100.00% covered (success)
100.00%
25 / 25
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace PhpOffice\PhpWord\Writer\EPub3\Part;
4
5use XMLWriter;
6
7class Nav extends AbstractPart
8{
9    protected function getXmlWriter(): XMLWriter
10    {
11        $xmlWriter = new XMLWriter();
12        $xmlWriter->openMemory();
13
14        return $xmlWriter;
15    }
16
17    public function write(): string
18    {
19        $xmlWriter = $this->getXmlWriter();
20
21        $xmlWriter->startDocument('1.0', 'UTF-8');
22        $xmlWriter->startElement('html');
23        $xmlWriter->writeAttribute('xmlns', 'http://www.w3.org/1999/xhtml');
24        $xmlWriter->writeAttribute('xmlns:epub', 'http://www.idpf.org/2007/ops');
25
26        $xmlWriter->startElement('head');
27        $xmlWriter->writeElement('title', 'Navigation');
28        $xmlWriter->endElement(); // head
29
30        $xmlWriter->startElement('body');
31        $xmlWriter->startElement('nav');
32        $xmlWriter->writeAttribute('epub:type', 'toc');
33        $xmlWriter->writeAttribute('id', 'toc');
34
35        // Add navigation items here if needed
36        $xmlWriter->writeElement('h1', 'Table of Contents');
37        $xmlWriter->startElement('ol');
38        // Add at least one list item to satisfy EPUB 3.3 requirements
39        $xmlWriter->startElement('li');
40        $xmlWriter->startElement('a');
41        $xmlWriter->writeAttribute('href', 'content.xhtml');
42        $xmlWriter->text('Content');
43        $xmlWriter->endElement(); // a
44        $xmlWriter->endElement(); // li
45        $xmlWriter->endElement(); // ol
46
47        $xmlWriter->endElement(); // nav
48        $xmlWriter->endElement(); // body
49        $xmlWriter->endElement(); // html
50
51        return $xmlWriter->outputMemory();
52    }
53}