Magento 2: CMS страницы (CMS pages)
Задать CMS странице сторвью
Проблема:
Отсутствует ссылка "Shipping & Return". Выяснили причину.
Есть cms page с идентификатором shipping-returns, в которой и помещён контент страницы, на которую должна вести ссылка, однако у этой страницы не заданы сторы. После ассайна (привязки) этой странице стора mytest, ссылка и доступ к странице появились. Что делать в такой ситуации - удалять ссылку или ассайнить стор странице shipping-returns?
declare(strict_types=1); use Magento\Framework\App\ResourceConnection; use Magento\Framework\DB\Adapter\AdapterInterface; use Magento\Framework\Setup\Patch\DataPatchInterface; class AssignMyTestStoreToShippingReturnsCMSPage implements DataPatchInterface { private const SHIPPING_RETURNS_CMS_PAGE_IDENTIFIER = 'shipping-returns'; private const MY_TEST_STORE_VIEW_CODE = 'default'; private const CMS_PAGE_STORE_TABLE = 'cms_page_store'; private const CMS_PAGE_TABLE = 'cms_page'; private const STORE_VIEW_TABLE = 'store'; /** * @var AdapterInterface */ private $connection; /** * @param ResourceConnection $resourceConnection */ public function __construct(ResourceConnection $resourceConnection) { $this->connection = $resourceConnection->getConnection(); } /** * Assign to cms page with identifier 'shipping-returns' the MyTest's store with code 'default' * * @inheritDoc */ public function apply(): void { $this->connection->fetchAll("INSERT INTO " . self::CMS_PAGE_STORE_TABLE . " (page_id, store_id)" . " SELECT " . self::CMS_PAGE_TABLE . ".page_id, " . self::STORE_VIEW_TABLE . ".store_id" . " FROM " . self::CMS_PAGE_TABLE . ", " . self::STORE_VIEW_TABLE . " WHERE " . self::CMS_PAGE_TABLE . ".identifier = '" . self::SHIPPING_RETURNS_CMS_PAGE_IDENTIFIER . "'" . " AND " . self::STORE_VIEW_TABLE . ".code = '" . self::MY_TEST_STORE_VIEW_CODE . "';"); } /** * @inheritDoc */ public static function getDependencies(): array { return []; } /** * @inheritDoc */ public function getAliases(): array { return []; } }