url_rewrite.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. use \Magento\UrlRewrite\Model\OptionProvider;
  7. use \Magento\UrlRewrite\Model\UrlRewrite;
  8. use \Magento\TestFramework\Helper\Bootstrap;
  9. use \Magento\Store\Model\StoreManagerInterface;
  10. use \Magento\Store\Model\Store;
  11. use \Magento\UrlRewrite\Model\ResourceModel\UrlRewrite as UrlRewriteResource;
  12. use \Magento\Framework\ObjectManagerInterface;
  13. use \Magento\Cms\Model\ResourceModel\Page as PageResource;
  14. use \Magento\Cms\Model\Page;
  15. /** Create fixture store */
  16. require dirname(dirname(__DIR__)) . '/Store/_files/second_store.php';
  17. /** @var UrlRewrite $rewrite */
  18. /** @var ObjectManagerInterface $objectManager */
  19. $objectManager = Bootstrap::getObjectManager();
  20. /** @var UrlRewriteResource $rewriteResource */
  21. $rewriteResource = $objectManager->create(UrlRewriteResource::class);
  22. /** @var PageResource $pageResource */
  23. $pageResource = $objectManager->create(PageResource::class);
  24. /** @var StoreManagerInterface $storeManager */
  25. $storeManager = Bootstrap::getObjectManager()
  26. ->get(StoreManagerInterface::class);
  27. /** @var Store $secondStore */
  28. $secondStore = Bootstrap::getObjectManager()->create(Store::class);
  29. $secondStore->load('fixture_second_store');
  30. $secondStoreId = $secondStore->getId();
  31. $storeID = 1;
  32. /** @var $page Page */
  33. $page = $objectManager->create(Page::class);
  34. $page->setTitle('Cms Page A')
  35. ->setIdentifier('page-a')
  36. ->setIsActive(1)
  37. ->setContent('<h1>Cms Page A</h1>')
  38. ->setPageLayout('1column')
  39. ->setStores([$storeID, $secondStoreId]);
  40. $pageResource->save($page);
  41. $page = $objectManager->create(Page::class);
  42. $page->setTitle('Cms B')
  43. ->setIdentifier('page-b')
  44. ->setIsActive(1)
  45. ->setContent('<h1>Cms Page B</h1>')
  46. ->setPageLayout('1column')
  47. ->setCustomTheme('Magento/blank')
  48. ->setStores([$storeID, $secondStoreId]);
  49. $pageResource->save($page);
  50. $page = $objectManager->create(Page::class);
  51. $page->setTitle('Cms C')
  52. ->setIdentifier('page-c')
  53. ->setIsActive(1)
  54. ->setContent('<h1>Cms Page C</h1>')
  55. ->setPageLayout('1column')
  56. ->setCustomTheme('Magento/blank')
  57. ->setStores([$storeID, $secondStoreId]);
  58. $pageResource->save($page);
  59. $rewrite = $objectManager->create(UrlRewrite::class);
  60. $rewrite->setEntityType('custom')
  61. ->setRequestPath('page-one/')
  62. ->setTargetPath('page-a/')
  63. ->setRedirectType(OptionProvider::PERMANENT)
  64. ->setStoreId($storeID)
  65. ->setDescription('From page-one/ to page-a/');
  66. $rewriteResource->save($rewrite);
  67. $rewrite = $objectManager->create(UrlRewrite::class);
  68. $rewrite->setEntityType('custom')
  69. ->setRequestPath('page-two')
  70. ->setTargetPath('page-b')
  71. ->setRedirectType(OptionProvider::PERMANENT)
  72. ->setStoreId($storeID)
  73. ->setDescription('From page-two to page-b');
  74. $rewriteResource->save($rewrite);
  75. $rewrite = $objectManager->create(UrlRewrite::class);
  76. $rewrite->setEntityType('custom')
  77. ->setRequestPath('page-similar')
  78. ->setTargetPath('page-a')
  79. ->setRedirectType(OptionProvider::PERMANENT)
  80. ->setStoreId($storeID)
  81. ->setDescription('From age-similar without trailing slash to page-a');
  82. $rewriteResource->save($rewrite);
  83. $rewrite = $objectManager->create(UrlRewrite::class);
  84. $rewrite->setEntityType('custom')
  85. ->setRequestPath('page-similar/')
  86. ->setTargetPath('page-b')
  87. ->setRedirectType(OptionProvider::PERMANENT)
  88. ->setStoreId($storeID)
  89. ->setDescription('From age-similar with trailing slash to page-b');
  90. $rewriteResource->save($rewrite);
  91. //Emulating auto-generated aliases (like the ones used for categories).
  92. //Rewrite rule for the 1st store.
  93. $rewrite = $objectManager->create(UrlRewrite::class);
  94. $rewrite->setEntityType('custom')
  95. ->setRequestPath('page-c-on-1st-store')
  96. ->setTargetPath('page-c')
  97. ->setRedirectType(0)
  98. ->setStoreId($storeID);
  99. $rewriteResource->save($rewrite);
  100. //Rewrite rule for the 2nd store.
  101. $rewrite = $objectManager->create(UrlRewrite::class);
  102. $rewrite->setEntityType('custom')
  103. ->setRequestPath('page-c-on-2nd-store')
  104. ->setTargetPath('page-c')
  105. ->setRedirectType(0)
  106. ->setStoreId($secondStoreId);
  107. $rewriteResource->save($rewrite);