104 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
use Magento\Catalog\Api\ProductRepositoryInterface;
 | 
						|
use Magento\Catalog\Block\Product\Widget\Link as ProductLink;
 | 
						|
use Magento\Catalog\Block\Widget\RecentlyCompared;
 | 
						|
use Magento\Cms\Api\GetPageByIdentifierInterface;
 | 
						|
use Magento\Cms\Block\Widget\Page\Link as PageLink;
 | 
						|
use Magento\Store\Model\StoreManagerInterface;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use Magento\Theme\Model\ResourceModel\Theme as ThemeResource;
 | 
						|
use Magento\Theme\Model\ThemeFactory;
 | 
						|
use Magento\Widget\Model\ResourceModel\Widget\Instance as InstanceResource;
 | 
						|
use Magento\Widget\Model\Widget\InstanceFactory;
 | 
						|
use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
 | 
						|
 | 
						|
Resolver::getInstance()->requireDataFixture('Magento/Catalog/_files/second_product_simple.php');
 | 
						|
 | 
						|
$objectManager = Bootstrap::getObjectManager();
 | 
						|
/** @var ThemeFactory $themeFactory */
 | 
						|
$themeFactory = $objectManager->get(ThemeFactory::class);
 | 
						|
/** @var ThemeResource $themeResource */
 | 
						|
$themeResource = $objectManager->get(ThemeResource::class);
 | 
						|
$lumaTheme = $themeFactory->create();
 | 
						|
$themeResource->load($lumaTheme, 'Magento/luma', 'code');
 | 
						|
$blankTheme = $themeFactory->create();
 | 
						|
$themeResource->load($blankTheme, 'Magento/blank', 'code');
 | 
						|
/** @var StoreManagerInterface $storeManager */
 | 
						|
$storeManager = $objectManager->get(StoreManagerInterface::class);
 | 
						|
$defaultStoreId = (int)$storeManager->getStore('default')->getId();
 | 
						|
/** @var GetPageByIdentifierInterface $getPageByIdentifier */
 | 
						|
$getPageByIdentifier = $objectManager->get(GetPageByIdentifierInterface::class);
 | 
						|
$homePage = $getPageByIdentifier->execute('home', $defaultStoreId);
 | 
						|
/** @var ProductRepositoryInterface $productRepository */
 | 
						|
$productRepository = $objectManager->get(ProductRepositoryInterface::class);
 | 
						|
$productRepository->cleanCache();
 | 
						|
$productId = (int)$productRepository->get('simple2')->getId();
 | 
						|
/** @var InstanceFactory $widgetFactory */
 | 
						|
$widgetFactory = $objectManager->get(InstanceFactory::class);
 | 
						|
/** @var InstanceResource $widgetResource */
 | 
						|
$widgetResource = $objectManager->get(InstanceResource::class);
 | 
						|
$cmsPageWidget = $widgetFactory->create();
 | 
						|
$cmsPageWidgetData = [
 | 
						|
    'instance_type' => PageLink::class,
 | 
						|
    'instance_code' => 'cms_page_link',
 | 
						|
    'theme_id' => $lumaTheme->getId(),
 | 
						|
    'title' => 'cms page widget title',
 | 
						|
    'sort_order' => 3,
 | 
						|
    'store_ids' => [$defaultStoreId],
 | 
						|
    'widget_parameters' => [
 | 
						|
        'page_id' => $homePage->getId(),
 | 
						|
    ],
 | 
						|
];
 | 
						|
$cmsPageWidget->setData($cmsPageWidgetData);
 | 
						|
$widgetResource->save($cmsPageWidget);
 | 
						|
 | 
						|
$productLinkWidget = $widgetFactory->create();
 | 
						|
$productLinkWidgetData = [
 | 
						|
    'instance_type' => ProductLink::class,
 | 
						|
    'instance_code' => 'catalog_product_link',
 | 
						|
    'theme_id' => $lumaTheme->getId(),
 | 
						|
    'title' => 'product link widget title',
 | 
						|
    'sort_order' => 2,
 | 
						|
    'store_ids' => [$defaultStoreId],
 | 
						|
    'pages_groups' => [
 | 
						|
        'page_group' => 'all_pages',
 | 
						|
        'all_pages' => [
 | 
						|
            'page_id' => 0,
 | 
						|
            'layout_handle' => 'default',
 | 
						|
            'for' => 'all',
 | 
						|
            'block' => 'content',
 | 
						|
            'template' => 'product/widget/link/link_block.phtml',
 | 
						|
        ],
 | 
						|
    ],
 | 
						|
    'widget_parameters' => [
 | 
						|
        'product/' . $productId,
 | 
						|
    ],
 | 
						|
];
 | 
						|
 | 
						|
$productLinkWidget->setData($productLinkWidgetData);
 | 
						|
$widgetResource->save($productLinkWidget);
 | 
						|
 | 
						|
$recentlyComparedProductWidget = $widgetFactory->create();
 | 
						|
$recentlyComparedProductWidgetData = [
 | 
						|
    'instance_type' => RecentlyCompared::class,
 | 
						|
    'instance_code' => 'catalog_recently_compared',
 | 
						|
    'theme_id' => $blankTheme->getId(),
 | 
						|
    'title' => 'recently compared products',
 | 
						|
    'store_ids' => [$defaultStoreId],
 | 
						|
    'sort_order' => 1,
 | 
						|
    'widget_parameters' => [
 | 
						|
        'uiComponent' => 'widget_recently_compared',
 | 
						|
        'page_size' => 5,
 | 
						|
        'show_attributes' => ['name'],
 | 
						|
        'show_buttons' => ['add_to_cart'],
 | 
						|
    ],
 | 
						|
];
 | 
						|
$recentlyComparedProductWidget->setData($recentlyComparedProductWidgetData);
 | 
						|
$widgetResource->save($recentlyComparedProductWidget);
 |