ThemeSetEmailHandler::getName()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
eloc 1
nc 1
nop 0
1
<?php
2
/**
3
 * XOOPS Utilities
4
 *
5
 * You may not change or alter any portion of this comment or credits
6
 * of supporting developers from this source code or any supporting source code
7
 * which is considered copyrighted (c) material of the original comment or credit authors.
8
 * This program is distributed in the hope that it will be useful,
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
 *
12
 * @copyright       (c) 2000-2025 XOOPS Project (https://xoops.org)
13
 * @license             GNU GPL 2 (https://www.gnu.org/licenses/gpl-2.0.html)
14
 * @package             class
15
 * @subpackage          utility
16
 * @since               1.0.0
17
 * @author              Author: Kazumi Ono (AKA onokazu)
18
 */
19
defined('XOOPS_ROOT_PATH') || exit('Restricted access');
20
21
include_once XOOPS_ROOT_PATH . '/class/xml/saxparser.php';
22
include_once XOOPS_ROOT_PATH . '/class/xml/xmltaghandler.php';
23
24
/**
25
 * Class XoopsThemeSetParser
26
 */
27
class XoopsThemeSetParser extends SaxParser
28
{
29
    public $tempArr       = [];
30
    public $themeSetData  = [];
31
    public $imagesData    = [];
32
    public $templatesData = [];
33
34
    /**
35
     * @param $input
36
     */
37
    public function __construct($input)
38
    {
39
        parent::__construct($input);
40
        $this->addTagHandler(new ThemeSetThemeNameHandler());
0 ignored issues
show
Bug introduced by
The type ThemeSetThemeNameHandler was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
41
        $this->addTagHandler(new ThemeSetDateCreatedHandler());
42
        $this->addTagHandler(new ThemeSetAuthorHandler());
43
        $this->addTagHandler(new ThemeSetDescriptionHandler());
44
        $this->addTagHandler(new ThemeSetGeneratorHandler());
45
        $this->addTagHandler(new ThemeSetNameHandler());
46
        $this->addTagHandler(new ThemeSetEmailHandler());
47
        $this->addTagHandler(new ThemeSetLinkHandler());
48
        $this->addTagHandler(new ThemeSetTemplateHandler());
49
        $this->addTagHandler(new ThemeSetImageHandler());
50
        $this->addTagHandler(new ThemeSetModuleHandler());
51
        $this->addTagHandler(new ThemeSetFileTypeHandler());
52
        $this->addTagHandler(new ThemeSetTagHandler());
53
    }
54
55
    /**
56
     * @param $name
57
     * @param $value
58
     */
59
    public function setThemeSetData($name, &$value)
60
    {
61
        $this->themeSetData[$name] = &$value;
62
    }
63
64
    /**
65
     * @param null $name
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $name is correct as it would always require null to be passed?
Loading history...
66
     *
67
     * @return array|bool
68
     */
69
    public function getThemeSetData($name = null)
70
    {
71
        if (isset($name)) {
72
            return $this->themeSetData[$name] ?? false;
73
        }
74
75
        return $this->themeSetData;
76
    }
77
78
    /**
79
     * @param $imagearr
80
     */
81
    public function setImagesData(&$imagearr)
82
    {
83
        $this->imagesData[] = &$imagearr;
84
    }
85
86
    /**
87
     * @return array
88
     */
89
    public function &getImagesData()
90
    {
91
        return $this->imagesData;
92
    }
93
94
    /**
95
     * @param $tplarr
96
     */
97
    public function setTemplatesData(&$tplarr)
98
    {
99
        $this->templatesData[] = &$tplarr;
100
    }
101
102
    /**
103
     * @return array
104
     */
105
    public function &getTemplatesData()
106
    {
107
        return $this->templatesData;
108
    }
109
110
    /**
111
     * @param        $name
112
     * @param        $value
113
     * @param string $delim
114
     */
115
    public function setTempArr($name, &$value, $delim = '')
116
    {
117
        if (!isset($this->tempArr[$name])) {
118
            $this->tempArr[$name] = &$value;
119
        } else {
120
            $this->tempArr[$name] .= $delim . $value;
121
        }
122
    }
123
124
    /**
125
     * @return array
126
     */
127
    public function getTempArr()
128
    {
129
        return $this->tempArr;
130
    }
131
132
    public function resetTempArr()
133
    {
134
        unset($this->tempArr);
135
        $this->tempArr = [];
136
    }
137
}
138
139
/**
140
 * Class ThemeSetDateCreatedHandler
141
 */
142
class ThemeSetDateCreatedHandler extends XmlTagHandler
143
{
144
    /**
145
     * ThemeSetDateCreatedHandler constructor.
146
     */
147
    public function __construct() {}
148
149
    /**
150
     * @return string
151
     */
152
    public function getName()
153
    {
154
        return 'dateCreated';
155
    }
156
157
    /**
158
     * @param $parser
159
     * @param $data
160
     */
161
    public function handleCharacterData($parser, &$data)
162
    {
163
        switch ($parser->getParentTag()) {
164
            case 'themeset':
165
                $parser->setThemeSetData('date', $data);
166
                break;
167
            default:
168
                break;
169
        }
170
    }
171
}
172
173
/**
174
 * Class ThemeSetAuthorHandler
175
 */
176
class ThemeSetAuthorHandler extends XmlTagHandler
177
{
178
    /**
179
     * ThemeSetAuthorHandler constructor.
180
     */
181
    public function __construct() {}
182
183
    /**
184
     * @return string
185
     */
186
    public function getName()
187
    {
188
        return 'author';
189
    }
190
191
    /**
192
     * @param $parser
193
     * @param $attributes
194
     */
195
    public function handleBeginElement($parser, &$attributes)
196
    {
197
        $parser->resetTempArr();
198
    }
199
200
    /**
201
     * @param $parser
202
     */
203
    public function handleEndElement($parser)
204
    {
205
        $parser->setCreditsData($parser->getTempArr());
206
    }
207
}
208
209
/**
210
 * Class ThemeSetDescriptionHandler
211
 */
212
class ThemeSetDescriptionHandler extends XmlTagHandler
213
{
214
    /**
215
     * ThemeSetDescriptionHandler constructor.
216
     */
217
    public function __construct() {}
218
219
    /**
220
     * @return string
221
     */
222
    public function getName()
223
    {
224
        return 'description';
225
    }
226
227
    /**
228
     * @param $parser
229
     * @param $data
230
     */
231
    public function handleCharacterData($parser, &$data)
232
    {
233
        switch ($parser->getParentTag()) {
234
            case 'template':
235
                $parser->setTempArr('description', $data);
236
                break;
237
            case 'image':
238
                $parser->setTempArr('description', $data);
239
                break;
240
            default:
241
                break;
242
        }
243
    }
244
}
245
246
/**
247
 * Class ThemeSetGeneratorHandler
248
 */
249
class ThemeSetGeneratorHandler extends XmlTagHandler
250
{
251
    /**
252
     * ThemeSetGeneratorHandler constructor.
253
     */
254
    public function __construct() {}
255
256
    /**
257
     * @return string
258
     */
259
    public function getName()
260
    {
261
        return 'generator';
262
    }
263
264
    /**
265
     * @param $parser
266
     * @param $data
267
     */
268
    public function handleCharacterData($parser, &$data)
269
    {
270
        switch ($parser->getParentTag()) {
271
            case 'themeset':
272
                $parser->setThemeSetData('generator', $data);
273
                break;
274
            default:
275
                break;
276
        }
277
    }
278
}
279
280
/**
281
 * Class ThemeSetNameHandler
282
 */
283
class ThemeSetNameHandler extends XmlTagHandler
284
{
285
    /**
286
     * ThemeSetNameHandler constructor.
287
     */
288
    public function __construct() {}
289
290
    /**
291
     * @return string
292
     */
293
    public function getName()
294
    {
295
        return 'name';
296
    }
297
298
    /**
299
     * @param $parser
300
     * @param $data
301
     */
302
    public function handleCharacterData($parser, &$data)
303
    {
304
        switch ($parser->getParentTag()) {
305
            case 'themeset':
306
                $parser->setThemeSetData('name', $data);
307
                break;
308
            case 'author':
309
                $parser->setTempArr('name', $data);
310
                break;
311
            default:
312
                break;
313
        }
314
    }
315
}
316
317
/**
318
 * Class ThemeSetEmailHandler
319
 */
320
class ThemeSetEmailHandler extends XmlTagHandler
321
{
322
    /**
323
     * ThemeSetEmailHandler constructor.
324
     */
325
    public function __construct() {}
326
327
    /**
328
     * @return string
329
     */
330
    public function getName()
331
    {
332
        return 'email';
333
    }
334
335
    /**
336
     * @param $parser
337
     * @param $data
338
     */
339
    public function handleCharacterData($parser, &$data)
340
    {
341
        switch ($parser->getParentTag()) {
342
            case 'author':
343
                $parser->setTempArr('email', $data);
344
                break;
345
            default:
346
                break;
347
        }
348
    }
349
}
350
351
/**
352
 * Class ThemeSetLinkHandler
353
 */
354
class ThemeSetLinkHandler extends XmlTagHandler
355
{
356
    /**
357
     * ThemeSetLinkHandler constructor.
358
     */
359
    public function __construct() {}
360
361
    /**
362
     * @return string
363
     */
364
    public function getName()
365
    {
366
        return 'link';
367
    }
368
369
    /**
370
     * @param $parser
371
     * @param $data
372
     */
373
    public function handleCharacterData($parser, &$data)
374
    {
375
        switch ($parser->getParentTag()) {
376
            case 'author':
377
                $parser->setTempArr('link', $data);
378
                break;
379
            default:
380
                break;
381
        }
382
    }
383
}
384
385
/**
386
 * Class ThemeSetTemplateHandler
387
 */
388
class ThemeSetTemplateHandler extends XmlTagHandler
389
{
390
    /**
391
     * ThemeSetTemplateHandler constructor.
392
     */
393
    public function __construct() {}
394
395
    /**
396
     * @return string
397
     */
398
    public function getName()
399
    {
400
        return 'template';
401
    }
402
403
    /**
404
     * @param $parser
405
     * @param $attributes
406
     */
407
    public function handleBeginElement($parser, &$attributes)
408
    {
409
        $parser->resetTempArr();
410
        $parser->setTempArr('name', $attributes['name']);
411
    }
412
413
    /**
414
     * @param $parser
415
     */
416
    public function handleEndElement($parser)
417
    {
418
        $parser->setTemplatesData($parser->getTempArr());
419
    }
420
}
421
422
/**
423
 * Class ThemeSetImageHandler
424
 */
425
class ThemeSetImageHandler extends XmlTagHandler
426
{
427
    /**
428
     * ThemeSetImageHandler constructor.
429
     */
430
    public function __construct() {}
431
432
    /**
433
     * @return string
434
     */
435
    public function getName()
436
    {
437
        return 'image';
438
    }
439
440
    /**
441
     * @param $parser
442
     * @param $attributes
443
     */
444
    public function handleBeginElement($parser, &$attributes)
445
    {
446
        $parser->resetTempArr();
447
        $parser->setTempArr('name', $attributes[0]);
448
    }
449
450
    /**
451
     * @param $parser
452
     */
453
    public function handleEndElement($parser)
454
    {
455
        $parser->setImagesData($parser->getTempArr());
456
    }
457
}
458
459
/**
460
 * Class ThemeSetModuleHandler
461
 */
462
class ThemeSetModuleHandler extends XmlTagHandler
463
{
464
    /**
465
     * ThemeSetModuleHandler constructor.
466
     */
467
    public function __construct() {}
468
469
    /**
470
     * @return string
471
     */
472
    public function getName()
473
    {
474
        return 'module';
475
    }
476
477
    /**
478
     * @param $parser
479
     * @param $data
480
     */
481
    public function handleCharacterData($parser, &$data)
482
    {
483
        switch ($parser->getParentTag()) {
484
            case 'template':
485
            case 'image':
486
                $parser->setTempArr('module', $data);
487
                break;
488
            default:
489
                break;
490
        }
491
    }
492
}
493
494
/**
495
 * Class ThemeSetFileTypeHandler
496
 */
497
class ThemeSetFileTypeHandler extends XmlTagHandler
498
{
499
    /**
500
     * ThemeSetFileTypeHandler constructor.
501
     */
502
    public function __construct() {}
503
504
    /**
505
     * @return string
506
     */
507
    public function getName()
508
    {
509
        return 'fileType';
510
    }
511
512
    /**
513
     * @param $parser
514
     * @param $data
515
     */
516
    public function handleCharacterData($parser, &$data)
517
    {
518
        switch ($parser->getParentTag()) {
519
            case 'template':
520
                $parser->setTempArr('type', $data);
521
                break;
522
            default:
523
                break;
524
        }
525
    }
526
}
527
528
/**
529
 * Class ThemeSetTagHandler
530
 */
531
class ThemeSetTagHandler extends XmlTagHandler
532
{
533
    /**
534
     * ThemeSetTagHandler constructor.
535
     */
536
    public function __construct() {}
537
538
    /**
539
     * @return string
540
     */
541
    public function getName()
542
    {
543
        return 'tag';
544
    }
545
546
    /**
547
     * @param $parser
548
     * @param $data
549
     */
550
    public function handleCharacterData($parser, &$data)
551
    {
552
        switch ($parser->getParentTag()) {
553
            case 'image':
554
                $parser->setTempArr('tag', $data);
555
                break;
556
            default:
557
                break;
558
        }
559
    }
560
}
561