Failed Conditions
Push — master ( 27d83b...a2771e )
by Adrien
35:04
created

Meta   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Test Coverage

Coverage 97.37%

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 68
ccs 37
cts 38
cp 0.9737
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A write() 0 57 4
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheet\Writer\Ods;
4
5
use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
6
use PhpOffice\PhpSpreadsheet\Spreadsheet;
7
8
class Meta extends WriterPart
9
{
10
    /**
11
     * Write meta.xml to XML format.
12
     *
13
     * @param Spreadsheet $spreadsheet
14
     *
15
     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
16
     *
17
     * @return string XML Output
18
     */
19 2
    public function write(Spreadsheet $spreadsheet = null)
20
    {
21 2
        if (!$spreadsheet) {
22 2
            $spreadsheet = $this->getParentWriter()->getSpreadsheet();
23
        }
24
25 2
        $objWriter = null;
26 2
        if ($this->getParentWriter()->getUseDiskCaching()) {
27
            $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
28
        } else {
29 2
            $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
30
        }
31
32
        // XML header
33 2
        $objWriter->startDocument('1.0', 'UTF-8');
34
35
        // Meta
36 2
        $objWriter->startElement('office:document-meta');
37
38 2
        $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
39 2
        $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
40 2
        $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
41 2
        $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
42 2
        $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
43 2
        $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
44 2
        $objWriter->writeAttribute('office:version', '1.2');
45
46 2
        $objWriter->startElement('office:meta');
47
48 2
        $objWriter->writeElement('meta:initial-creator', $spreadsheet->getProperties()->getCreator());
49 2
        $objWriter->writeElement('dc:creator', $spreadsheet->getProperties()->getCreator());
50 2
        $objWriter->writeElement('meta:creation-date', date(DATE_W3C, $spreadsheet->getProperties()->getCreated()));
51 2
        $objWriter->writeElement('dc:date', date(DATE_W3C, $spreadsheet->getProperties()->getCreated()));
52 2
        $objWriter->writeElement('dc:title', $spreadsheet->getProperties()->getTitle());
53 2
        $objWriter->writeElement('dc:description', $spreadsheet->getProperties()->getDescription());
54 2
        $objWriter->writeElement('dc:subject', $spreadsheet->getProperties()->getSubject());
55 2
        $keywords = explode(' ', $spreadsheet->getProperties()->getKeywords());
56 2
        foreach ($keywords as $keyword) {
57 2
            $objWriter->writeElement('meta:keyword', $keyword);
58
        }
59
60
        //<meta:document-statistic meta:table-count="XXX" meta:cell-count="XXX" meta:object-count="XXX"/>
61 2
        $objWriter->startElement('meta:user-defined');
62 2
        $objWriter->writeAttribute('meta:name', 'Company');
63 2
        $objWriter->writeRaw($spreadsheet->getProperties()->getCompany());
64 2
        $objWriter->endElement();
65
66 2
        $objWriter->startElement('meta:user-defined');
67 2
        $objWriter->writeAttribute('meta:name', 'category');
68 2
        $objWriter->writeRaw($spreadsheet->getProperties()->getCategory());
69 2
        $objWriter->endElement();
70
71 2
        $objWriter->endElement();
72
73 2
        $objWriter->endElement();
74
75 2
        return $objWriter->getData();
76
    }
77
}
78