Completed
Pull Request — develop (#565)
by
unknown
07:15
created

PptTheme   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 850
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 6
dl 0
loc 850
ccs 391
cts 391
cp 1
rs 9.75
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A render() 0 8 2
B writeTheme() 0 827 6
1
<?php
2
3
namespace PhpOffice\PhpPresentation\Writer\PowerPoint2007;
4
5
use PhpOffice\Common\XMLWriter;
6
use PhpOffice\PhpPresentation\Slide;
7
8
class PptTheme extends AbstractDecoratorWriter
9
{
10
    /**
11
     * @return \PhpOffice\Common\Adapter\Zip\ZipInterface
12
     * @throws \Exception
13
     */
14 112
    public function render()
15
    {
16 112
        foreach ($this->oPresentation->getAllMasterSlides() as $oMasterSlide) {
17 112
            $this->getZip()->addFromString('ppt/theme/theme' . $oMasterSlide->getRelsIndex() . '.xml', $this->writeTheme($oMasterSlide));
18
        }
19
20 112
        return $this->getZip();
21
    }
22
23
24
    /**
25
     * Write theme to XML format
26
     *
27
     * @param  Slide\SlideMaster $oMasterSlide
28
     * @return string XML Output
29
     */
30 112
    protected function writeTheme(Slide\SlideMaster $oMasterSlide)
31
    {
32
        $arrayFont = array(
33 112
            'Jpan' => 'MS Pゴシック',
34
            'Hang' => '맑은 고딕',
35
            'Hans' => '宋体',
36
            'Hant' => '新細明體',
37
            'Arab' => 'Times New Roman',
38
            'Hebr' => 'Times New Roman',
39
            'Thai' => 'Angsana New',
40
            'Ethi' => 'Nyala',
41
            'Beng' => 'Vrinda',
42
            'Gujr' => 'Shruti',
43
            'Khmr' => 'MoolBoran',
44
            'Knda' => 'Tunga',
45
            'Guru' => 'Raavi',
46
            'Cans' => 'Euphemia',
47
            'Cher' => 'Plantagenet Cherokee',
48
            'Yiii' => 'Microsoft Yi Baiti',
49
            'Tibt' => 'Microsoft Himalaya',
50
            'Thaa' => 'MV Boli',
51
            'Deva' => 'Mangal',
52
            'Telu' => 'Gautami',
53
            'Taml' => 'Latha',
54
            'Syrc' => 'Estrangelo Edessa',
55
            'Orya' => 'Kalinga',
56
            'Mlym' => 'Kartika',
57
            'Laoo' => 'DokChampa',
58
            'Sinh' => 'Iskoola Pota',
59
            'Mong' => 'Mongolian Baiti',
60
            'Viet' => 'Times New Roman',
61
            'Uigh' => 'Microsoft Uighur',
62
        );
63
64
        // Create XML writer
65 112
        $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
66
67 112
        $name = 'Theme'.rand(1, 100);
68
69
        // XML header
70 112
        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
71
72
        // a:theme
73 112
        $objWriter->startElement('a:theme');
74 112
        $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
75 112
        $objWriter->writeAttribute('name', $name);
76
77
        // a:theme/a:themeElements
78 112
        $objWriter->startElement('a:themeElements');
79
80
        // a:theme/a:themeElements/a:clrScheme
81 112
        $objWriter->startElement('a:clrScheme');
82 112
        $objWriter->writeAttribute('name', $name);
83
84 112
        foreach ($oMasterSlide->getAllSchemeColors() as $oSchemeColor) {
85
            // a:theme/a:themeElements/a:clrScheme/a:*
86 112
            $objWriter->startElement('a:'.$oSchemeColor->getValue());
87
88 112
            if (in_array($oSchemeColor->getValue(), array(
89 112
                'dk1', 'lt1'
90
            ))) {
91 112
                $objWriter->startElement('a:sysClr');
92 112
                $objWriter->writeAttribute('val', ($oSchemeColor->getValue() == 'dk1' ? 'windowText' : 'window'));
93 112
                $objWriter->writeAttribute('lastClr', $oSchemeColor->getRGB());
94 112
                $objWriter->endElement();
95
            } else {
96 112
                $objWriter->startElement('a:srgbClr');
97 112
                $objWriter->writeAttribute('val', $oSchemeColor->getRGB());
98 112
                $objWriter->endElement();
99
            }
100
101
            // a:theme/a:themeElements/a:clrScheme/a:*/
102 112
            $objWriter->endElement();
103
        }
104
105
        // a:theme/a:themeElements/a:clrScheme/
106 112
        $objWriter->endElement();
107
108
        // a:theme/a:themeElements/a:fontScheme
109 112
        $objWriter->startElement('a:fontScheme');
110 112
        $objWriter->writeAttribute('name', $name);
111
112
        // a:theme/a:themeElements/a:fontScheme/a:majorFont
113 112
        $objWriter->startElement('a:majorFont');
114
115
        // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:latin
116 112
        $objWriter->startElement('a:latin');
117 112
        $objWriter->writeAttribute('typeface', 'Calibri');
118 112
        $objWriter->endElement();
119
120
        // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:ea
121 112
        $objWriter->startElement('a:ea');
122 112
        $objWriter->writeAttribute('typeface', '');
123 112
        $objWriter->endElement();
124
125
        // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:cs
126 112
        $objWriter->startElement('a:cs');
127 112
        $objWriter->writeAttribute('typeface', '');
128 112
        $objWriter->endElement();
129
130 112
        foreach ($arrayFont as $script => $typeface) {
131
            // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:font
132 112
            $objWriter->startElement('a:font');
133 112
            $objWriter->writeAttribute('script', $script);
134 112
            $objWriter->writeAttribute('typeface', $typeface);
135 112
            $objWriter->endElement();
136
        }
137
138
        // a:theme/a:themeElements/a:fontScheme/a:majorFont/
139 112
        $objWriter->endElement();
140
141
        // a:theme/a:themeElements/a:fontScheme/a:minorFont
142 112
        $objWriter->startElement('a:minorFont');
143
144
        // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:latin
145 112
        $objWriter->startElement('a:latin');
146 112
        $objWriter->writeAttribute('typeface', 'Calibri');
147 112
        $objWriter->endElement();
148
149
        // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:ea
150 112
        $objWriter->startElement('a:ea');
151 112
        $objWriter->writeAttribute('typeface', '');
152 112
        $objWriter->endElement();
153
154
        // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:cs
155 112
        $objWriter->startElement('a:cs');
156 112
        $objWriter->writeAttribute('typeface', '');
157 112
        $objWriter->endElement();
158
159 112
        foreach ($arrayFont as $script => $typeface) {
160
            // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:font
161 112
            $objWriter->startElement('a:font');
162 112
            $objWriter->writeAttribute('script', $script);
163 112
            $objWriter->writeAttribute('typeface', $typeface);
164 112
            $objWriter->endElement();
165
        }
166
167
        // a:theme/a:themeElements/a:fontScheme/a:minorFont/
168 112
        $objWriter->endElement();
169
170
        // a:theme/a:themeElements/a:fontScheme/
171 112
        $objWriter->endElement();
172
173
        // a:theme/a:themeElements/a:fmtScheme
174 112
        $objWriter->startElement('a:fmtScheme');
175 112
        $objWriter->writeAttribute('name', $name);
176
177
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst
178 112
        $objWriter->startElement('a:fillStyleLst');
179
180
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill
181 112
        $objWriter->startElement('a:solidFill');
182
183
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill/a:schemeClr
184 112
        $objWriter->startElement('a:schemeClr');
185 112
        $objWriter->writeAttribute('val', 'phClr');
186
187
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill/a:schemeClr/
188 112
        $objWriter->endElement();
189
190
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill/
191 112
        $objWriter->endElement();
192
193
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill
194 112
        $objWriter->startElement('a:gradFill');
195 112
        $objWriter->writeAttribute('rotWithShape', 1);
196
197
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst
198 112
        $objWriter->startElement('a:gsLst');
199
200
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs
201 112
        $objWriter->startElement('a:gs');
202 112
        $objWriter->writeAttribute('pos', '0');
203
204
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
205 112
        $objWriter->startElement('a:schemeClr');
206 112
        $objWriter->writeAttribute('val', 'phClr');
207
208
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint
209 112
        $objWriter->startElement('a:tint');
210 112
        $objWriter->writeAttribute('val', '50000');
211 112
        $objWriter->endElement();
212
213
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
214 112
        $objWriter->startElement('a:satMod');
215 112
        $objWriter->writeAttribute('val', '300000');
216 112
        $objWriter->endElement();
217
218
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
219 112
        $objWriter->endElement();
220
221
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/
222 112
        $objWriter->endElement();
223
224
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs
225 112
        $objWriter->startElement('a:gs');
226 112
        $objWriter->writeAttribute('pos', '35000');
227
228
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
229 112
        $objWriter->startElement('a:schemeClr');
230 112
        $objWriter->writeAttribute('val', 'phClr');
231
232
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint
233 112
        $objWriter->startElement('a:tint');
234 112
        $objWriter->writeAttribute('val', '37000');
235 112
        $objWriter->endElement();
236
237
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
238 112
        $objWriter->startElement('a:satMod');
239 112
        $objWriter->writeAttribute('val', '300000');
240 112
        $objWriter->endElement();
241
242
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
243 112
        $objWriter->endElement();
244
245
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/
246 112
        $objWriter->endElement();
247
248
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs
249 112
        $objWriter->startElement('a:gs');
250 112
        $objWriter->writeAttribute('pos', '100000');
251
252
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
253 112
        $objWriter->startElement('a:schemeClr');
254 112
        $objWriter->writeAttribute('val', 'phClr');
255
256
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint
257 112
        $objWriter->startElement('a:tint');
258 112
        $objWriter->writeAttribute('val', '15000');
259 112
        $objWriter->endElement();
260
261
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
262 112
        $objWriter->startElement('a:satMod');
263 112
        $objWriter->writeAttribute('val', '350000');
264 112
        $objWriter->endElement();
265
266
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
267 112
        $objWriter->endElement();
268
269
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/
270 112
        $objWriter->endElement();
271
272
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/
273 112
        $objWriter->endElement();
274
275
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:lin
276 112
        $objWriter->startElement('a:lin');
277 112
        $objWriter->writeAttribute('ang', 16200000);
278 112
        $objWriter->writeAttribute('scaled', 1);
279 112
        $objWriter->endElement();
280
281
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/
282 112
        $objWriter->endElement();
283
284
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill
285 112
        $objWriter->startElement('a:gradFill');
286 112
        $objWriter->writeAttribute('rotWithShape', 1);
287
288
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst
289 112
        $objWriter->startElement('a:gsLst');
290
291
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs
292 112
        $objWriter->startElement('a:gs');
293 112
        $objWriter->writeAttribute('pos', '0');
294
295
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
296 112
        $objWriter->startElement('a:schemeClr');
297 112
        $objWriter->writeAttribute('val', 'phClr');
298
299
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
300 112
        $objWriter->startElement('a:shade');
301 112
        $objWriter->writeAttribute('val', '51000');
302 112
        $objWriter->endElement();
303
304
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
305 112
        $objWriter->startElement('a:satMod');
306 112
        $objWriter->writeAttribute('val', '130000');
307 112
        $objWriter->endElement();
308
309
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
310 112
        $objWriter->endElement();
311
312
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/
313 112
        $objWriter->endElement();
314
315
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs
316 112
        $objWriter->startElement('a:gs');
317 112
        $objWriter->writeAttribute('pos', '80000');
318
319
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
320 112
        $objWriter->startElement('a:schemeClr');
321 112
        $objWriter->writeAttribute('val', 'phClr');
322
323
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
324 112
        $objWriter->startElement('a:shade');
325 112
        $objWriter->writeAttribute('val', '93000');
326 112
        $objWriter->endElement();
327
328
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
329 112
        $objWriter->startElement('a:satMod');
330 112
        $objWriter->writeAttribute('val', '130000');
331 112
        $objWriter->endElement();
332
333
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
334 112
        $objWriter->endElement();
335
336
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/
337 112
        $objWriter->endElement();
338
339
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs
340 112
        $objWriter->startElement('a:gs');
341 112
        $objWriter->writeAttribute('pos', '100000');
342
343
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
344 112
        $objWriter->startElement('a:schemeClr');
345 112
        $objWriter->writeAttribute('val', 'phClr');
346
347
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
348 112
        $objWriter->startElement('a:shade');
349 112
        $objWriter->writeAttribute('val', '94000');
350 112
        $objWriter->endElement();
351
352
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
353 112
        $objWriter->startElement('a:satMod');
354 112
        $objWriter->writeAttribute('val', '135000');
355 112
        $objWriter->endElement();
356
357
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
358 112
        $objWriter->endElement();
359
360
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/
361 112
        $objWriter->endElement();
362
363
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/
364 112
        $objWriter->endElement();
365
366
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:lin
367 112
        $objWriter->startElement('a:lin');
368 112
        $objWriter->writeAttribute('ang', 16200000);
369 112
        $objWriter->writeAttribute('scaled', 0);
370 112
        $objWriter->endElement();
371
372
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/
373 112
        $objWriter->endElement();
374
375
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/
376 112
        $objWriter->endElement();
377
378
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst
379 112
        $objWriter->startElement('a:lnStyleLst');
380
381
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln
382 112
        $objWriter->startElement('a:ln');
383 112
        $objWriter->writeAttribute('w', 9525);
384 112
        $objWriter->writeAttribute('cap', 'flat');
385 112
        $objWriter->writeAttribute('cmpd', 'sng');
386 112
        $objWriter->writeAttribute('algn', 'ctr');
387
388
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill
389 112
        $objWriter->startElement('a:solidFill');
390
391
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr
392 112
        $objWriter->startElement('a:schemeClr');
393 112
        $objWriter->writeAttribute('val', 'phClr');
394
395
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
396 112
        $objWriter->startElement('a:shade');
397 112
        $objWriter->writeAttribute('val', '95000');
398 112
        $objWriter->endElement();
399
400
        // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
401 112
        $objWriter->startElement('a:satMod');
402 112
        $objWriter->writeAttribute('val', '105000');
403 112
        $objWriter->endElement();
404
405
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr/
406 112
        $objWriter->endElement();
407
408
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/
409 112
        $objWriter->endElement();
410
411
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:prstDash
412 112
        $objWriter->startElement('a:prstDash');
413 112
        $objWriter->writeAttribute('val', 'solid');
414 112
        $objWriter->endElement();
415
416
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/
417 112
        $objWriter->endElement();
418
419
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln
420 112
        $objWriter->startElement('a:ln');
421 112
        $objWriter->writeAttribute('w', 25400);
422 112
        $objWriter->writeAttribute('cap', 'flat');
423 112
        $objWriter->writeAttribute('cmpd', 'sng');
424 112
        $objWriter->writeAttribute('algn', 'ctr');
425
426
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill
427 112
        $objWriter->startElement('a:solidFill');
428
429
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr
430 112
        $objWriter->startElement('a:schemeClr');
431 112
        $objWriter->writeAttribute('val', 'phClr');
432
433
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr/
434 112
        $objWriter->endElement();
435
436
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/
437 112
        $objWriter->endElement();
438
439
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:prstDash
440 112
        $objWriter->startElement('a:prstDash');
441 112
        $objWriter->writeAttribute('val', 'solid');
442 112
        $objWriter->endElement();
443
444
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/
445 112
        $objWriter->endElement();
446
447
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln
448 112
        $objWriter->startElement('a:ln');
449 112
        $objWriter->writeAttribute('w', 38100);
450 112
        $objWriter->writeAttribute('cap', 'flat');
451 112
        $objWriter->writeAttribute('cmpd', 'sng');
452 112
        $objWriter->writeAttribute('algn', 'ctr');
453
454
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill
455 112
        $objWriter->startElement('a:solidFill');
456
457
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr
458 112
        $objWriter->startElement('a:schemeClr');
459 112
        $objWriter->writeAttribute('val', 'phClr');
460
461
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr/
462 112
        $objWriter->endElement();
463
464
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/
465 112
        $objWriter->endElement();
466
467
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:prstDash
468 112
        $objWriter->startElement('a:prstDash');
469 112
        $objWriter->writeAttribute('val', 'solid');
470 112
        $objWriter->endElement();
471
472
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/
473 112
        $objWriter->endElement();
474
475
        // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/
476 112
        $objWriter->endElement();
477
478
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst
479 112
        $objWriter->startElement('a:effectStyleLst');
480
481
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle
482 112
        $objWriter->startElement('a:effectStyle');
483
484
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst
485 112
        $objWriter->startElement('a:effectLst');
486
487
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw
488 112
        $objWriter->startElement('a:outerShdw');
489 112
        $objWriter->writeAttribute('blurRad', 40000);
490 112
        $objWriter->writeAttribute('dir', 5400000);
491 112
        $objWriter->writeAttribute('dist', 20000);
492 112
        $objWriter->writeAttribute('rotWithShape', 0);
493
494
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr
495 112
        $objWriter->startElement('a:srgbClr');
496 112
        $objWriter->writeAttribute('val', '000000');
497
498
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha
499 112
        $objWriter->startElement('a:alpha');
500 112
        $objWriter->writeAttribute('val', '38000');
501
502
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/
503 112
        $objWriter->endElement();
504
505
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/
506 112
        $objWriter->endElement();
507
508
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/
509 112
        $objWriter->endElement();
510
511
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/
512 112
        $objWriter->endElement();
513
514
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/
515 112
        $objWriter->endElement();
516
517
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle
518 112
        $objWriter->startElement('a:effectStyle');
519
520
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst
521 112
        $objWriter->startElement('a:effectLst');
522
523
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw
524 112
        $objWriter->startElement('a:outerShdw');
525 112
        $objWriter->writeAttribute('blurRad', 40000);
526 112
        $objWriter->writeAttribute('dir', 5400000);
527 112
        $objWriter->writeAttribute('dist', 23000);
528 112
        $objWriter->writeAttribute('rotWithShape', 0);
529
530
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr
531 112
        $objWriter->startElement('a:srgbClr');
532 112
        $objWriter->writeAttribute('val', '000000');
533
534
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha
535 112
        $objWriter->startElement('a:alpha');
536 112
        $objWriter->writeAttribute('val', '35');
537
538
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/
539 112
        $objWriter->endElement();
540
541
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/
542 112
        $objWriter->endElement();
543
544
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/
545 112
        $objWriter->endElement();
546
547
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/
548 112
        $objWriter->endElement();
549
550
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/
551 112
        $objWriter->endElement();
552
553
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle
554 112
        $objWriter->startElement('a:effectStyle');
555
556
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst
557 112
        $objWriter->startElement('a:effectLst');
558
559
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw
560 112
        $objWriter->startElement('a:outerShdw');
561 112
        $objWriter->writeAttribute('blurRad', 40000);
562 112
        $objWriter->writeAttribute('dir', 5400000);
563 112
        $objWriter->writeAttribute('dist', 23000);
564 112
        $objWriter->writeAttribute('rotWithShape', 0);
565
566
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr
567 112
        $objWriter->startElement('a:srgbClr');
568 112
        $objWriter->writeAttribute('val', '000000');
569
570
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha
571 112
        $objWriter->startElement('a:alpha');
572 112
        $objWriter->writeAttribute('val', '35000');
573
574
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/
575 112
        $objWriter->endElement();
576
577
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/
578 112
        $objWriter->endElement();
579
580
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/
581 112
        $objWriter->endElement();
582
583
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/
584 112
        $objWriter->endElement();
585
586
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d
587 112
        $objWriter->startElement('a:scene3d');
588
589
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:camera
590 112
        $objWriter->startElement('a:camera');
591 112
        $objWriter->writeAttribute('prst', 'orthographicFront');
592
593
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:camera/a:rot
594 112
        $objWriter->startElement('a:rot');
595 112
        $objWriter->writeAttribute('lat', 0);
596 112
        $objWriter->writeAttribute('lon', 0);
597 112
        $objWriter->writeAttribute('rev', 0);
598 112
        $objWriter->endElement();
599
600
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:camera/
601 112
        $objWriter->endElement();
602
603
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:lightRig
604 112
        $objWriter->startElement('a:lightRig');
605 112
        $objWriter->writeAttribute('dir', 't');
606 112
        $objWriter->writeAttribute('rig', 'threePt');
607
608
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:lightRig/a:rot
609 112
        $objWriter->startElement('a:rot');
610 112
        $objWriter->writeAttribute('lat', 0);
611 112
        $objWriter->writeAttribute('lon', 0);
612 112
        $objWriter->writeAttribute('rev', 1200000);
613 112
        $objWriter->endElement();
614
615
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:lightRig/
616 112
        $objWriter->endElement();
617
618
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/
619 112
        $objWriter->endElement();
620
621
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:sp3d
622 112
        $objWriter->startElement('a:sp3d');
623
624
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:sp3d/a:bevelT
625 112
        $objWriter->startElement('a:bevelT');
626 112
        $objWriter->writeAttribute('h', 25400);
627 112
        $objWriter->writeAttribute('w', 63500);
628 112
        $objWriter->endElement();
629
630
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:sp3d/
631 112
        $objWriter->endElement();
632
633
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/
634 112
        $objWriter->endElement();
635
636
        // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/
637 112
        $objWriter->endElement();
638
639
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst
640 112
        $objWriter->startElement('a:bgFillStyleLst');
641
642
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill
643 112
        $objWriter->startElement('a:solidFill');
644
645
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill/a:schemeClr
646 112
        $objWriter->startElement('a:schemeClr');
647 112
        $objWriter->writeAttribute('val', 'phClr');
648
649
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill/a:schemeClr/
650 112
        $objWriter->endElement();
651
652
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill/
653 112
        $objWriter->endElement();
654
655
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill
656 112
        $objWriter->startElement('a:gradFill');
657 112
        $objWriter->writeAttribute('rotWithShape', 1);
658
659
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst
660 112
        $objWriter->startElement('a:gsLst');
661
662
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs
663 112
        $objWriter->startElement('a:gs');
664 112
        $objWriter->writeAttribute('pos', '0');
665
666
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
667 112
        $objWriter->startElement('a:schemeClr');
668 112
        $objWriter->writeAttribute('val', 'phClr');
669
670
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint
671 112
        $objWriter->startElement('a:tint');
672 112
        $objWriter->writeAttribute('val', '40000');
673 112
        $objWriter->endElement();
674
675
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
676 112
        $objWriter->startElement('a:satMod');
677 112
        $objWriter->writeAttribute('val', '350000');
678 112
        $objWriter->endElement();
679
680
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
681 112
        $objWriter->endElement();
682
683
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/
684 112
        $objWriter->endElement();
685
686
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs
687 112
        $objWriter->startElement('a:gs');
688 112
        $objWriter->writeAttribute('pos', '40000');
689
690
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
691 112
        $objWriter->startElement('a:schemeClr');
692 112
        $objWriter->writeAttribute('val', 'phClr');
693
694
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
695 112
        $objWriter->startElement('a:tint');
696 112
        $objWriter->writeAttribute('val', '45000');
697 112
        $objWriter->endElement();
698
699
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
700 112
        $objWriter->startElement('a:shade');
701 112
        $objWriter->writeAttribute('val', '99000');
702 112
        $objWriter->endElement();
703
704
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
705 112
        $objWriter->startElement('a:satMod');
706 112
        $objWriter->writeAttribute('val', '350000');
707 112
        $objWriter->endElement();
708
709
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
710 112
        $objWriter->endElement();
711
712
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/
713 112
        $objWriter->endElement();
714
715
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs
716 112
        $objWriter->startElement('a:gs');
717 112
        $objWriter->writeAttribute('pos', '100000');
718
719
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
720 112
        $objWriter->startElement('a:schemeClr');
721 112
        $objWriter->writeAttribute('val', 'phClr');
722
723
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
724 112
        $objWriter->startElement('a:shade');
725 112
        $objWriter->writeAttribute('val', '20000');
726 112
        $objWriter->endElement();
727
728
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
729 112
        $objWriter->startElement('a:satMod');
730 112
        $objWriter->writeAttribute('val', '255000');
731 112
        $objWriter->endElement();
732
733
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
734 112
        $objWriter->endElement();
735
736
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/
737 112
        $objWriter->endElement();
738
739
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/
740 112
        $objWriter->endElement();
741
742
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path
743 112
        $objWriter->startElement('a:path');
744 112
        $objWriter->writeAttribute('path', 'circle');
745
746
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/a:fillToRect
747 112
        $objWriter->startElement('a:fillToRect');
748 112
        $objWriter->writeAttribute('b', '180000');
749 112
        $objWriter->writeAttribute('l', '50000');
750 112
        $objWriter->writeAttribute('r', '50000');
751 112
        $objWriter->writeAttribute('t', '-80000');
752 112
        $objWriter->endElement();
753
754
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/
755 112
        $objWriter->endElement();
756
757
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/
758 112
        $objWriter->endElement();
759
760
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill
761 112
        $objWriter->startElement('a:gradFill');
762 112
        $objWriter->writeAttribute('rotWithShape', 1);
763
764
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst
765 112
        $objWriter->startElement('a:gsLst');
766
767
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs
768 112
        $objWriter->startElement('a:gs');
769 112
        $objWriter->writeAttribute('pos', '0');
770
771
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
772 112
        $objWriter->startElement('a:schemeClr');
773 112
        $objWriter->writeAttribute('val', 'phClr');
774
775
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint
776 112
        $objWriter->startElement('a:tint');
777 112
        $objWriter->writeAttribute('val', '80000');
778 112
        $objWriter->endElement();
779
780
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
781 112
        $objWriter->startElement('a:satMod');
782 112
        $objWriter->writeAttribute('val', '300000');
783 112
        $objWriter->endElement();
784
785
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
786 112
        $objWriter->endElement();
787
788
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/
789 112
        $objWriter->endElement();
790
791
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs
792 112
        $objWriter->startElement('a:gs');
793 112
        $objWriter->writeAttribute('pos', '100000');
794
795
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr
796 112
        $objWriter->startElement('a:schemeClr');
797 112
        $objWriter->writeAttribute('val', 'phClr');
798
799
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade
800 112
        $objWriter->startElement('a:shade');
801 112
        $objWriter->writeAttribute('val', '30000');
802 112
        $objWriter->endElement();
803
804
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod
805 112
        $objWriter->startElement('a:satMod');
806 112
        $objWriter->writeAttribute('val', '200000');
807 112
        $objWriter->endElement();
808
809
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/
810 112
        $objWriter->endElement();
811
812
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/
813 112
        $objWriter->endElement();
814
815
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/
816 112
        $objWriter->endElement();
817
818
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path
819 112
        $objWriter->startElement('a:path');
820 112
        $objWriter->writeAttribute('path', 'circle');
821
822
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/a:fillToRect
823 112
        $objWriter->startElement('a:fillToRect');
824 112
        $objWriter->writeAttribute('b', '50000');
825 112
        $objWriter->writeAttribute('l', '50000');
826 112
        $objWriter->writeAttribute('r', '50000');
827 112
        $objWriter->writeAttribute('t', '50000');
828 112
        $objWriter->endElement();
829
830
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/
831 112
        $objWriter->endElement();
832
833
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/
834 112
        $objWriter->endElement();
835
836
        // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/
837 112
        $objWriter->endElement();
838
839
        // a:theme/a:themeElements/a:fmtScheme/
840 112
        $objWriter->endElement();
841
842
        // a:theme/a:themeElements/
843 112
        $objWriter->endElement();
844
845
        // a:theme/a:themeElements
846 112
        $objWriter->writeElement('a:objectDefaults');
847
848
        // a:theme/a:extraClrSchemeLst
849 112
        $objWriter->writeElement('a:extraClrSchemeLst');
850
851
        // a:theme/
852 112
        $objWriter->endElement();
853
854
        // Return
855 112
        return $objWriter->getData();
856
    }
857
}
858