Lines
100.00%
28 / 28
Methods
100.00%
2 / 2
Classes
100.00%
1 / 1
| Name | Lines | Methods | CRAP | ||||
|---|---|---|---|---|---|---|---|
| categoryLink | 100.00% | 13 / 13 | 100.00% | 1 / 1 | 1 | ||
| faqLink | 100.00% | 15 / 15 | 100.00% | 1 / 1 | 1 | ||
| 31 | class CreateLinkTwigExtension extends AbstractExtension | |
| 32 | { | |
| 33 | #[AsTwigFilter(name: 'categoryLink')] | |
| 34 | #[AsTwigFunction(name: 'categoryLink')] | |
| 35 | public static function categoryLink(int $categoryId): string | |
| 36 | { | |
| 37 | $configuration = Configuration::getConfigurationInstance(); | |
| 38 | ||
| 39 | $category = new Category($configuration); | |
| 40 | $categoryEntity = $category->getCategoryData($categoryId); | |
| 41 | ||
| 42 | $urlString = '%scategory/%d/%s.html'; | |
| 43 | $url = sprintf( | |
| 44 | $urlString, | |
| 45 | $configuration->getDefaultUrl(), | |
| 46 | $categoryId, | |
| 47 | TitleSlugifier::slug($categoryEntity->getName()), | |
| 48 | ); | |
| 49 | ||
| 50 | $link = new Link($url, $configuration); | |
| 51 | $link->setTitle($categoryEntity->getName()); | |
| 52 | ||
| 53 | return $link->toString(); | |
| 54 | } | |
| 55 | ||
| 56 | #[AsTwigFilter(name: 'faqLink')] | |
| 57 | #[AsTwigFunction(name: 'faqLink')] | |
| 58 | public static function faqLink(int $categoryId, int $faqId, string $faqLanguage): string | |
| 59 | { | |
| 60 | $configuration = Configuration::getConfigurationInstance(); | |
| 61 | ||
| 62 | $faq = new Faq($configuration); | |
| 63 | $question = $faq->getQuestion($faqId); | |
| 64 | ||
| 65 | $urlString = '%scontent/%d/%d/%s/%s.html'; | |
| 66 | $url = sprintf( | |
| 67 | $urlString, | |
| 68 | $configuration->getDefaultUrl(), | |
| 69 | $categoryId, | |
| 70 | $faqId, | |
| 71 | $faqLanguage, | |
| 72 | TitleSlugifier::slug($question), | |
| 73 | ); | |
| 74 | ||
| 75 | $link = new Link($url, $configuration); | |
| 76 | $link->setTitle($question); | |
| 77 | ||
| 78 | return $link->toString(); | |
| 79 | } | |
| 80 | } |