src/Infrastructure/CommonBundle/Subscriber/SitemapWebpagesSubscriber.php line 40

Open in your IDE?
  1. <?php
  2. namespace Whater\Infrastructure\CommonBundle\Subscriber;
  3. use Whater\Infrastructure\CommonBundle\Subscriber\AbstractBusSitemapSubscriber;
  4. use Presta\SitemapBundle\Event\SitemapPopulateEvent;
  5. use Presta\SitemapBundle\Sitemap\Url\GoogleMultilangUrlDecorator;
  6. use Presta\SitemapBundle\Sitemap\Url\UrlConcrete;
  7. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  8. class SitemapWebpagesSubscriber extends AbstractBusSitemapSubscriber
  9. {
  10. /**
  11. * @var UrlGeneratorInterface
  12. */
  13. private $urlGenerator;
  14. /**
  15. * @param UrlGeneratorInterface $urlGenerator
  16. */
  17. public function __construct(
  18. UrlGeneratorInterface $urlGenerator
  19. ) {
  20. $this->urlGenerator = $urlGenerator;
  21. }
  22. /**
  23. * @inheritdoc
  24. */
  25. public static function getSubscribedEvents()
  26. {
  27. return [
  28. SitemapPopulateEvent::class => 'registerWebpagesPages',
  29. ];
  30. }
  31. /**
  32. * @param SitemapPopulateEvent $event
  33. */
  34. public function registerWebpagesPages(SitemapPopulateEvent $event)
  35. {
  36. // home page
  37. $homepageUrl = new GoogleMultilangUrlDecorator(
  38. new UrlConcrete(
  39. $this->urlGenerator->generate(
  40. 'web_homepage',
  41. [
  42. '_locale' => 'es'
  43. ],
  44. UrlGeneratorInterface::ABSOLUTE_URL
  45. ),
  46. null,
  47. UrlConcrete::CHANGEFREQ_WEEKLY
  48. ),
  49. 'es'
  50. );
  51. // Homepage Page
  52. $event->getUrlContainer()->addUrl(
  53. $homepageUrl,
  54. 'website'
  55. );
  56. // web_public_whater_map page
  57. $haterMapUrl = new GoogleMultilangUrlDecorator(
  58. new UrlConcrete(
  59. $this->urlGenerator->generate(
  60. 'web_public_whater_map',
  61. [
  62. '_locale' => 'es'
  63. ],
  64. UrlGeneratorInterface::ABSOLUTE_URL
  65. ),
  66. null,
  67. UrlConcrete::CHANGEFREQ_MONTHLY
  68. ),
  69. 'es'
  70. );
  71. // web_public_whater_map Page
  72. $event->getUrlContainer()->addUrl(
  73. $haterMapUrl,
  74. 'website'
  75. );
  76. // web_whater_for_users page
  77. $wfuUrl = new GoogleMultilangUrlDecorator(
  78. new UrlConcrete(
  79. $this->urlGenerator->generate(
  80. 'web_whater_for_users',
  81. [
  82. '_locale' => 'es'
  83. ],
  84. UrlGeneratorInterface::ABSOLUTE_URL
  85. ),
  86. null,
  87. UrlConcrete::CHANGEFREQ_MONTHLY
  88. ),
  89. 'es'
  90. );
  91. // web_whater_for_users Page
  92. $event->getUrlContainer()->addUrl(
  93. $wfuUrl,
  94. 'website'
  95. );
  96. // web_whater_for_professionals page
  97. $wfpUrl = new GoogleMultilangUrlDecorator(
  98. new UrlConcrete(
  99. $this->urlGenerator->generate(
  100. 'web_whater_for_professionals',
  101. [
  102. '_locale' => 'es'
  103. ],
  104. UrlGeneratorInterface::ABSOLUTE_URL
  105. ),
  106. null,
  107. UrlConcrete::CHANGEFREQ_MONTHLY
  108. ),
  109. 'es'
  110. );
  111. // web_whater_for_professionals Page
  112. $event->getUrlContainer()->addUrl(
  113. $wfpUrl,
  114. 'website'
  115. );
  116. // web_whater_for_managers page
  117. $wfmUrl = new GoogleMultilangUrlDecorator(
  118. new UrlConcrete(
  119. $this->urlGenerator->generate(
  120. 'web_whater_for_managers',
  121. [
  122. '_locale' => 'es'
  123. ],
  124. UrlGeneratorInterface::ABSOLUTE_URL
  125. ),
  126. null,
  127. UrlConcrete::CHANGEFREQ_MONTHLY
  128. ),
  129. 'es'
  130. );
  131. // web_whater_for_managers Page
  132. $event->getUrlContainer()->addUrl(
  133. $wfmUrl,
  134. 'website'
  135. );
  136. // web_whatiswhater page
  137. $wiwUrl = new GoogleMultilangUrlDecorator(
  138. new UrlConcrete(
  139. $this->urlGenerator->generate(
  140. 'web_whatiswhater',
  141. [
  142. '_locale' => 'es'
  143. ],
  144. UrlGeneratorInterface::ABSOLUTE_URL
  145. ),
  146. null,
  147. UrlConcrete::CHANGEFREQ_MONTHLY
  148. ),
  149. 'es'
  150. );
  151. // web_whatiswhater Page
  152. $event->getUrlContainer()->addUrl(
  153. $wiwUrl,
  154. 'website'
  155. );
  156. // web_contact page
  157. $wcUrl = new GoogleMultilangUrlDecorator(
  158. new UrlConcrete(
  159. $this->urlGenerator->generate(
  160. 'web_contact',
  161. [
  162. '_locale' => 'es'
  163. ],
  164. UrlGeneratorInterface::ABSOLUTE_URL
  165. ),
  166. null,
  167. UrlConcrete::CHANGEFREQ_MONTHLY
  168. ),
  169. 'es'
  170. );
  171. // web_contact Page
  172. $event->getUrlContainer()->addUrl(
  173. $wcUrl,
  174. 'website'
  175. );
  176. // web_login page
  177. $wlUrl = new GoogleMultilangUrlDecorator(
  178. new UrlConcrete(
  179. $this->urlGenerator->generate(
  180. 'web_login',
  181. [
  182. '_locale' => 'es'
  183. ],
  184. UrlGeneratorInterface::ABSOLUTE_URL
  185. ),
  186. null,
  187. UrlConcrete::CHANGEFREQ_MONTHLY
  188. ),
  189. 'es'
  190. );
  191. // web_login Page
  192. $event->getUrlContainer()->addUrl(
  193. $wlUrl,
  194. 'website'
  195. );
  196. // web_signup page
  197. $wspUrl = new GoogleMultilangUrlDecorator(
  198. new UrlConcrete(
  199. $this->urlGenerator->generate(
  200. 'web_signup',
  201. [
  202. '_locale' => 'es'
  203. ],
  204. UrlGeneratorInterface::ABSOLUTE_URL
  205. ),
  206. null,
  207. UrlConcrete::CHANGEFREQ_MONTHLY
  208. ),
  209. 'es'
  210. );
  211. // web_login Page
  212. $event->getUrlContainer()->addUrl(
  213. $wspUrl,
  214. 'website'
  215. );
  216. }
  217. }