1
|
|
|
<?php |
2
|
|
|
declare(strict_types=1); |
3
|
|
|
|
4
|
|
|
namespace Nexendrie\Rss\Extensions; |
5
|
|
|
|
6
|
|
|
use Nexendrie\Rss\Generator; |
7
|
|
|
use Nexendrie\Utils\Constants; |
8
|
|
|
use Symfony\Component\OptionsResolver\OptionsResolver; |
9
|
|
|
|
10
|
1 |
|
final class Syndication extends BaseExtension { |
11
|
|
|
public const ELEMENT_UPDATE_PERIOD = "updatePeriod"; |
12
|
|
|
public const ELEMENT_UPDATE_FREQUENCY = "updateFrequency"; |
13
|
|
|
public const ELEMENT_UPDATE_BASE = "updateBase"; |
14
|
|
|
|
15
|
|
|
public const UPDATE_PERIOD_HOURLY = "hourly"; |
16
|
|
|
public const UPDATE_PERIOD_DAILY = "daily"; |
17
|
|
|
public const UPDATE_PERIOD_WEAKLY = "weakly"; |
18
|
|
|
public const UPDATE_PERIOD_MONTHLY = "monthly"; |
19
|
|
|
public const UPDATE_PERIOD_YEARLY = "yearly"; |
20
|
|
|
|
21
|
|
|
public function getName(): string { |
22
|
1 |
|
return "sy"; |
23
|
|
|
} |
24
|
|
|
|
25
|
|
|
public function getNamespace(): string { |
26
|
1 |
|
return "http://purl.org/rss/1.0/modules/syndication/"; |
27
|
|
|
} |
28
|
|
|
|
29
|
|
|
public function configureChannelOptions(OptionsResolver $resolver, Generator $generator): void { |
|
|
|
|
30
|
1 |
|
$this->registerElements($resolver); |
31
|
1 |
|
$resolver->setAllowedTypes($this->getElementName(self::ELEMENT_UPDATE_PERIOD), "string"); |
32
|
1 |
|
$resolver->setAllowedValues($this->getElementName(self::ELEMENT_UPDATE_PERIOD), function(string $value) { |
33
|
1 |
|
return (in_array($value, Constants::getConstantsValues(self::class, "UPDATE_PERIOD_"), true)); |
34
|
1 |
|
}); |
35
|
1 |
|
$resolver->setAllowedTypes($this->getElementName(self::ELEMENT_UPDATE_FREQUENCY), "int"); |
36
|
1 |
|
$resolver->setAllowedValues($this->getElementName(self::ELEMENT_UPDATE_FREQUENCY), function(int $value) { |
37
|
1 |
|
return ($value >= 1); |
38
|
1 |
|
}); |
39
|
1 |
|
$resolver->setAllowedTypes($this->getElementName(self::ELEMENT_UPDATE_BASE), "string"); |
40
|
1 |
|
} |
41
|
|
|
|
42
|
|
|
public function configureItemOptions(OptionsResolver $resolver, Generator $generator): void { |
43
|
1 |
|
} |
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
?> |