Completed
Pull Request — develop (#565)
by
unknown
06:14
created

PptTheme::writeTheme()   B

Complexity

Conditions 6
Paths 12

Size

Total Lines 827

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 42

Importance

Changes 0
Metric Value
dl 0
loc 827
ccs 0
cts 387
cp 0
rs 7.3777
c 0
b 0
f 0
cc 6
nc 12
nop 1
crap 42

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

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