1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
/**
*
* SM CartQuickPro - Version 1.1.0
* Copyright (c) 2017 YouTech Company. All Rights Reserved.
* @license - Copyrighted Commercial Software
* Author: YouTech Company
* Websites: http://www.magentech.com
*/
namespace Sm\CartQuickPro\Plugin;
class ResultPage
{
/**
* @var \Magento\Framework\App\Request\Http
*/
protected $request;
/**
* @var \Magento\Framework\View\Layout
*/
protected $layout;
/**
* ResultPage constructor.
* @param \Magento\Framework\App\Request\Http $request
* @param \Magento\Framework\View\Layout $layout
*/
public function __construct(
\Magento\Framework\App\Request\Http $request,
\Magento\Framework\View\Layout $layout)
{
$this->request = $request;
$this->layout = $layout;
}
/**
* Adding the default catalog_product_view_type_ handles as well
*
* @param \Magento\Framework\View\Result\Page $subject
* @param array $parameters
* @param type $defaultHandle
* @return type
*/
public function beforeAddPageLayoutHandles(
\Magento\Framework\View\Result\Page $subject,
array $parameters = [],
$defaultHandle = null)
{
$_action_name = ['cartquickpro_wishlist_index_configure', 'cartquickpro_catalog_product_view', 'cartquickpro_catalog_product_options' ,'cartquickpro_cart_configure'];
if (in_array($this->request->getFullActionName(), $_action_name )) {
if(!isset($parameters['type']) && isset($parameters['id']) && !empty($parameters['id'])){
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$_product = $objectManager->get('Magento\Catalog\Model\Product')->load($parameters['id']);
$parameters['type'] = $_product->getTypeId();
}
$arrayKeys = array_keys($parameters);
if ((count($arrayKeys) == 3) &&
in_array('id', $arrayKeys) &&
in_array('sku', $arrayKeys) &&
in_array('type', $arrayKeys)) {
return [$parameters, 'catalog_product_view'];
}
} else {
return [$parameters, $defaultHandle];
}
}
}