PluginProbe
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin / 6.5.1.7
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin v6.5.1.7
6.5.1.7 6.5.1.6 6.5.1.5 6.5.1.4 6.5.1.3 6.5.1.2 6.5.1.1 6.5.0.9 6.5.0.8 6.5.0.7 6.5.0.6 trunk 3.4.2.40 3.4.2.41 3.4.2.42 3.4.2.43 3.4.2.44 3.4.2.45 3.4.2.46 3.4.2.47 3.4.2.48 3.4.2.49 3.4.2.50 6.3.2 6.3.3.1 All 47 releases
wpdatatables / lib / phpoffice / phpspreadsheet / src / PhpSpreadsheet / Writer / Xlsx / DocProps.php

DocProps.php in wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin 6.5.1.7, at lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/DocProps.php

251 lines 8.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
4
5 use PhpOffice\PhpSpreadsheet\Document\Properties;
6 use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces;
7 use PhpOffice\PhpSpreadsheet\Shared\Date;
8 use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
9 use PhpOffice\PhpSpreadsheet\Spreadsheet;
10
11 class DocProps extends WriterPart
12 {
13 /**
14 * Write docProps/app.xml to XML format.
15 *
16 * @return string XML Output
17 */
18 public function writeDocPropsApp(Spreadsheet $spreadsheet)
19 {
20 // Create XML writer
21 $objWriter = null;
22 if ($this->getParentWriter()->getUseDiskCaching()) {
23 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
24 } else {
25 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
26 }
27
28 // XML header
29 $objWriter->startDocument('1.0', 'UTF-8', 'yes');
30
31 // Properties
32 $objWriter->startElement('Properties');
33 $objWriter->writeAttribute('xmlns', Namespaces::EXTENDED_PROPERTIES);
34 $objWriter->writeAttribute('xmlns:vt', Namespaces::PROPERTIES_VTYPES);
35
36 // Application
37 $objWriter->writeElement('Application', 'Microsoft Excel');
38
39 // DocSecurity
40 $objWriter->writeElement('DocSecurity', '0');
41
42 // ScaleCrop
43 $objWriter->writeElement('ScaleCrop', 'false');
44
45 // HeadingPairs
46 $objWriter->startElement('HeadingPairs');
47
48 // Vector
49 $objWriter->startElement('vt:vector');
50 $objWriter->writeAttribute('size', '2');
51 $objWriter->writeAttribute('baseType', 'variant');
52
53 // Variant
54 $objWriter->startElement('vt:variant');
55 $objWriter->writeElement('vt:lpstr', 'Worksheets');
56 $objWriter->endElement();
57
58 // Variant
59 $objWriter->startElement('vt:variant');
60 $objWriter->writeElement('vt:i4', (string) $spreadsheet->getSheetCount());
61 $objWriter->endElement();
62
63 $objWriter->endElement();
64
65 $objWriter->endElement();
66
67 // TitlesOfParts
68 $objWriter->startElement('TitlesOfParts');
69
70 // Vector
71 $objWriter->startElement('vt:vector');
72 $objWriter->writeAttribute('size', (string) $spreadsheet->getSheetCount());
73 $objWriter->writeAttribute('baseType', 'lpstr');
74
75 $sheetCount = $spreadsheet->getSheetCount();
76 for ($i = 0; $i < $sheetCount; ++$i) {
77 $objWriter->writeElement('vt:lpstr', $spreadsheet->getSheet($i)->getTitle());
78 }
79
80 $objWriter->endElement();
81
82 $objWriter->endElement();
83
84 // Company
85 $objWriter->writeElement('Company', $spreadsheet->getProperties()->getCompany());
86
87 // Company
88 $objWriter->writeElement('Manager', $spreadsheet->getProperties()->getManager());
89
90 // LinksUpToDate
91 $objWriter->writeElement('LinksUpToDate', 'false');
92
93 // SharedDoc
94 $objWriter->writeElement('SharedDoc', 'false');
95
96 // HyperlinkBase
97 $objWriter->writeElement('HyperlinkBase', $spreadsheet->getProperties()->getHyperlinkBase());
98
99 // HyperlinksChanged
100 $objWriter->writeElement('HyperlinksChanged', 'false');
101
102 // AppVersion
103 $objWriter->writeElement('AppVersion', '12.0000');
104
105 $objWriter->endElement();
106
107 // Return
108 return $objWriter->getData();
109 }
110
111 /**
112 * Write docProps/core.xml to XML format.
113 *
114 * @return string XML Output
115 */
116 public function writeDocPropsCore(Spreadsheet $spreadsheet)
117 {
118 // Create XML writer
119 $objWriter = null;
120 if ($this->getParentWriter()->getUseDiskCaching()) {
121 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
122 } else {
123 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
124 }
125
126 // XML header
127 $objWriter->startDocument('1.0', 'UTF-8', 'yes');
128
129 // cp:coreProperties
130 $objWriter->startElement('cp:coreProperties');
131 $objWriter->writeAttribute('xmlns:cp', Namespaces::CORE_PROPERTIES2);
132 $objWriter->writeAttribute('xmlns:dc', Namespaces::DC_ELEMENTS);
133 $objWriter->writeAttribute('xmlns:dcterms', Namespaces::DC_TERMS);
134 $objWriter->writeAttribute('xmlns:dcmitype', Namespaces::DC_DCMITYPE);
135 $objWriter->writeAttribute('xmlns:xsi', Namespaces::SCHEMA_INSTANCE);
136
137 // dc:creator
138 $objWriter->writeElement('dc:creator', $spreadsheet->getProperties()->getCreator());
139
140 // cp:lastModifiedBy
141 $objWriter->writeElement('cp:lastModifiedBy', $spreadsheet->getProperties()->getLastModifiedBy());
142
143 // dcterms:created
144 $objWriter->startElement('dcterms:created');
145 $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
146 $created = $spreadsheet->getProperties()->getCreated();
147 $date = Date::dateTimeFromTimestamp("$created");
148 $objWriter->writeRawData($date->format(DATE_W3C));
149 $objWriter->endElement();
150
151 // dcterms:modified
152 $objWriter->startElement('dcterms:modified');
153 $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
154 $created = $spreadsheet->getProperties()->getModified();
155 $date = Date::dateTimeFromTimestamp("$created");
156 $objWriter->writeRawData($date->format(DATE_W3C));
157 $objWriter->endElement();
158
159 // dc:title
160 $objWriter->writeElement('dc:title', $spreadsheet->getProperties()->getTitle());
161
162 // dc:description
163 $objWriter->writeElement('dc:description', $spreadsheet->getProperties()->getDescription());
164
165 // dc:subject
166 $objWriter->writeElement('dc:subject', $spreadsheet->getProperties()->getSubject());
167
168 // cp:keywords
169 $objWriter->writeElement('cp:keywords', $spreadsheet->getProperties()->getKeywords());
170
171 // cp:category
172 $objWriter->writeElement('cp:category', $spreadsheet->getProperties()->getCategory());
173
174 $objWriter->endElement();
175
176 // Return
177 return $objWriter->getData();
178 }
179
180 /**
181 * Write docProps/custom.xml to XML format.
182 *
183 * @return null|string XML Output
184 */
185 public function writeDocPropsCustom(Spreadsheet $spreadsheet)
186 {
187 $customPropertyList = $spreadsheet->getProperties()->getCustomProperties();
188 if (empty($customPropertyList)) {
189 return null;
190 }
191
192 // Create XML writer
193 $objWriter = null;
194 if ($this->getParentWriter()->getUseDiskCaching()) {
195 $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
196 } else {
197 $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
198 }
199
200 // XML header
201 $objWriter->startDocument('1.0', 'UTF-8', 'yes');
202
203 // cp:coreProperties
204 $objWriter->startElement('Properties');
205 $objWriter->writeAttribute('xmlns', Namespaces::CUSTOM_PROPERTIES);
206 $objWriter->writeAttribute('xmlns:vt', Namespaces::PROPERTIES_VTYPES);
207
208 foreach ($customPropertyList as $key => $customProperty) {
209 $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty);
210 $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customProperty);
211
212 $objWriter->startElement('property');
213 $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}');
214 $objWriter->writeAttribute('pid', (string) ($key + 2));
215 $objWriter->writeAttribute('name', $customProperty);
216
217 switch ($propertyType) {
218 case Properties::PROPERTY_TYPE_INTEGER:
219 $objWriter->writeElement('vt:i4', $propertyValue);
220
221 break;
222 case Properties::PROPERTY_TYPE_FLOAT:
223 $objWriter->writeElement('vt:r8', sprintf('%F', $propertyValue));
224
225 break;
226 case Properties::PROPERTY_TYPE_BOOLEAN:
227 $objWriter->writeElement('vt:bool', ($propertyValue) ? 'true' : 'false');
228
229 break;
230 case Properties::PROPERTY_TYPE_DATE:
231 $objWriter->startElement('vt:filetime');
232 $date = Date::dateTimeFromTimestamp("$propertyValue");
233 $objWriter->writeRawData($date->format(DATE_W3C));
234 $objWriter->endElement();
235
236 break;
237 default:
238 $objWriter->writeElement('vt:lpwstr', $propertyValue);
239
240 break;
241 }
242
243 $objWriter->endElement();
244 }
245
246 $objWriter->endElement();
247
248 return $objWriter->getData();
249 }
250 }
251