CmsPageUrlPathGenerator.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\CmsUrlRewrite\Model;
  7. use Magento\Cms\Api\Data\PageInterface;
  8. /**
  9. * @api
  10. * @since 100.0.2
  11. */
  12. class CmsPageUrlPathGenerator
  13. {
  14. /**
  15. * @var \Magento\Framework\Filter\FilterManager
  16. */
  17. protected $filterManager;
  18. /**
  19. */
  20. public function __construct(
  21. \Magento\Framework\Filter\FilterManager $filterManager
  22. ) {
  23. $this->filterManager = $filterManager;
  24. }
  25. /**
  26. * @param PageInterface $cmsPage
  27. *
  28. * @return string
  29. */
  30. public function getUrlPath(PageInterface $cmsPage)
  31. {
  32. return $cmsPage->getIdentifier();
  33. }
  34. /**
  35. * Get canonical product url path
  36. *
  37. * @param PageInterface $cmsPage
  38. * @return string
  39. */
  40. public function getCanonicalUrlPath(PageInterface $cmsPage)
  41. {
  42. return 'cms/page/view/page_id/' . $cmsPage->getId();
  43. }
  44. /**
  45. * Generate CMS page url key based on url_key entered by merchant or page title
  46. *
  47. * @param PageInterface $cmsPage
  48. * @return string
  49. */
  50. public function generateUrlKey(PageInterface $cmsPage)
  51. {
  52. $urlKey = $cmsPage->getIdentifier();
  53. return $this->filterManager->translitUrl($urlKey === '' || $urlKey === null ? $cmsPage->getTitle() : $urlKey);
  54. }
  55. }