Completed
Push — master ( 6dd24f...103ed1 )
by Jonas
16s queued 11s
created

Connect::checkPluginVersion()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
1
<?php
2
/**
3
 * (c) shopware AG <[email protected]>
4
 * For the full copyright and license information, please view the LICENSE
5
 * file that was distributed with this source code.
6
 */
7
8
namespace ShopwarePlugins\Connect\Subscribers;
9
10
use Enlight\Event\SubscriberInterface;
11
use Shopware\Connect\SDK;
12
use Shopware;
13
use ShopwarePlugins\Connect\Components\Config;
14
15
/**
16
 * Class Connect
17
 * @package ShopwarePlugins\Connect\Subscribers
18
 */
19
class Connect implements SubscriberInterface
20
{
21
    const MARKETPLACE_NAME = 'Shopware Connect';
22
    // todo@sb: change it to production shopware connect domain
23
    const MARKETPLACE_SOCIAL_NETWORK_URL = 'http://sn.connect.shopware.com';
24
    const MARKETPLACE_ICON = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QQDDRkwQ/hhTgAAAqZJREFUOMtdkktIVFEYx3/n3Htn7sxYc9WK7OEj7UEQtLLAcGNTLdJo0cNiLKOooKIEW0brWrQpEWqhiBHuEnppGb0zWqSRQhmUIYr2mJsyjd7HaaEzTp3Vd875/3/n+77ziWi8hf9WOXAUiAHLAQGMAI+A68DrbLHMihcC7UAvcAwoBgxAB4qAI8AzoA3ISZv0LHM3UI5moAIRhB6ciUbMe6WLw/dj6/P6azcVTBQvijhPB0adS7f73eeDY/MAKUSzD+XKzAUjRFCXHw9uXnbyyv5174EkMA140VPdyr4aE5XrC7DqWgEQ0XhLOUL0qvAi0AJoUkxc3FW29UxV0WD0eKcj3D/gOaA8UHMdgdkY0A1NHp8JWKAFAFiZZ147U1X0wTrc7gnfTZe6E9gLWChGgDvAXcDXfanHMEKZTuZHtC7rUJuH8tNHJUBn1tsAJ4B3QJ30jHBB9reMT/y0s8yULV04IwzTUaFcVDgfFbJANwE2Am8kWvCfIfhhT63J3r+9tHuscuPq+oCZM4xughGZBUWWIHTDEHmnu7+5PivSBuPPeJfrONszBCFJtMZDiaSzeF9zX2xgdGrPZMqtUgpdl4yIwsbH7YmkeyCjT/4AN9UAXMlA9CDKtLCbdoSBnGs9w4VXe77GHc8PidjlV9t6v0w9yIjd1CwEWoBG4Ps8yEQFwtjN1drc8AmhlAoWnX/SkUg6NZksUjbMTAFMzs1/E/A5uywCEZSQSKv+5vSF6tJzIUP2pe+VGUWFckHIBUADMAQ8BGoAgfJhehKRstHMDTV0nK20V+abPc8+JQpTjr8WAM2AQA5IifBdUGoVUDtX0ptMMtF4CwhBorVOAvnxG/0VL4Z+7bOT7hZPqaVKIXUpxhYY3suKkvCt9lNbuq261t9pwF+Aq+yGcIEN2wAAAABJRU5ErkJggg==';
25
    const MARKETPLACE_GREEN_ICON = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3wkeDSo6M9XATgAAAblJREFUOMtt0z1oVEEUBeBv11URiSIIViKRRQi2EUUQ3CpPxMI02oqFDyy0VIRRHioELCxHBEuDhX9YZAolipAqVmpECYpgk2qNiUiMZm3eyvO5t5mZe+ecmXvmTAOyvJBiUM43YzeycvyFN3iKLymGlbG80MRUDBo18Bgu4ZDB8QA3Uwwv+4lWBXwe17GpApjDM7zHV2zEUJWxUYKP4n65AZZxDo+wnGL4WQUdyQtT5cGNLC+GylP2lfUVnEoxTPYBWV5Aq1z+TjH0+vkW9lbAMJNimOxrk+XFBozjAJqYy/JiBq9TDL0WjtWEuldbZ5is5RZwJ8uLiRbateJ3/H0ZfBvwGjtwEW+b6NWK+2u9v8BZLGGttnd9I8uLy7hSSXYxkmJY+KePvNiG0ziOPdiOThNPaqzbcDfLi53Vm6QYuimGG6XJTuAaPqxrj3YWcRDDFZJhjLdHOz/mZ6dfzc9OV4l687PTn9qjnedY6hvpMB5jywDBupjAbXRTDL2q/RuVa57B1bK3QbGGiAsphqV+slkqLcVwCyfxsHRjPRaxtdTov7/QJ1FaexdGynEVH/EOn1MMq9UW/gDS6KGkt/RrSwAAAABJRU5ErkJggg==';
26
    const MARKETPLACE_LOGO = 'data:image/png;base64,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';
27
28
    /**
29
     * @var Config
30
     */
31
    private $config;
32
33
    /**
34
     * @var SDK
35
     */
36
    private $sdk;
37
38
    /**
39
     * @var \Shopware_Components_Snippet_Manager
40
     */
41
    private $snippetManager;
42
43
    /**
44
     * @param Config $config
45
     * @param SDK $sdk
46
     * @param \Shopware_Components_Snippet_Manager $snippetManager
47
     */
48
    public function __construct(Config $config, SDK $sdk, \Shopware_Components_Snippet_Manager $snippetManager)
49
    {
50
        $this->config = $config;
51
        $this->sdk = $sdk;
52
        $this->snippetManager = $snippetManager;
53
    }
54
55
    /**
56
     * {@inheritdoc}
57
     */
58
    public static function getSubscribedEvents()
59
    {
60
        return [
61
            'Enlight_Controller_Action_PostDispatch_Backend_Index' => 'backendIndexEvent',
62
63
        ];
64
    }
65
66
    /**
67
     * @param \Enlight_Event_EventArgs $args
68
     */
69
    public function backendIndexEvent(\Enlight_Event_EventArgs $args)
70
    {
71
        if ($args->getRequest()->getActionName() === 'load') {
72
            $this->checkPluginVersion($args);
73
        }
74
75
        $this->injectBackendConnectMenuEntry($args);
76
    }
77
78
    /**
79
     * @param \Enlight_Event_EventArgs $args
80
     */
81
    private function checkPluginVersion(\Enlight_Event_EventArgs $args)
82
    {
83
        /** @var $action \Enlight_Controller_Action */
84
        $action = $args->getSubject();
85
        $snippets = $this->snippetManager->getNamespace('backend/connect/view/main');
86
        $view = $action->View();
87
88
        $view->falseVersionTitle = $snippets->get('info/new_version_header');
89
        $view->falseVersionMessage = $snippets->get('info/new_version_text');
90
        $view->extendsTemplate('backend/index/view/connect_menu.js');
91
    }
92
93
    /**
94
     * Callback method for the Backend/Index postDispatch event.
95
     * Will add the connect sprite to the menu
96
     *
97
     * @event Enlight_Controller_Action_PostDispatch_Backend_Index
98
     * @param \Enlight_Event_EventArgs $args
99
     * @returns boolean|void
100
     */
101
    private function injectBackendConnectMenuEntry(\Enlight_Event_EventArgs $args)
102
    {
103
        /** @var $action \Enlight_Controller_Action */
104
        $action = $args->getSubject();
105
        $request = $action->Request();
106
        $response = $action->Response();
107
        $view = $action->View();
108
109
        if (!$request->isDispatched() || $response->isException() || !$view->hasTemplate()) {
110
            return;
111
        }
112
113
        $marketplaceIcon = $this->config->getConfig('marketplaceIcon', self::MARKETPLACE_ICON);
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $marketplaceIcon is correct as $this->config->getConfig...self::MARKETPLACE_ICON) (which targets ShopwarePlugins\Connect\...nts\Config::getConfig()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
114
        $marketplaceName = $this->config->getConfig('marketplaceName', self::MARKETPLACE_NAME);
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $marketplaceName is correct as $this->config->getConfig...self::MARKETPLACE_NAME) (which targets ShopwarePlugins\Connect\...nts\Config::getConfig()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
115
116
        $view->marketplaceName = $marketplaceName;
117
        $view->marketplaceNetworkUrl = $this->config->getConfig('marketplaceNetworkUrl', self::MARKETPLACE_SOCIAL_NETWORK_URL);
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $view->marketplaceNetworkUrl is correct as $this->config->getConfig...ACE_SOCIAL_NETWORK_URL) (which targets ShopwarePlugins\Connect\...nts\Config::getConfig()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
118
        $view->marketplaceIcon = $marketplaceIcon;
119
        $view->defaultMarketplace = $this->config->getConfig('isDefault', true);
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $view->defaultMarketplace is correct as $this->config->getConfig('isDefault', true) (which targets ShopwarePlugins\Connect\...nts\Config::getConfig()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
120
        $isFixedPriceAllowed = 0;
121
        $priceType = $this->sdk->getPriceType();
122
        if ($priceType === SDK::PRICE_TYPE_BOTH ||
123
            $priceType === SDK::PRICE_TYPE_RETAIL) {
124
            $isFixedPriceAllowed = 1;
125
        }
126
        $view->isFixedPriceAllowed = $isFixedPriceAllowed;
127
128
        // if the marketplace is connect we have green icon
129
        // if not marketplace icon should be used in both places
130
        $view->marketplaceIncomingIcon = ($marketplaceName == self::MARKETPLACE_NAME ? self::MARKETPLACE_GREEN_ICON : $marketplaceIcon);
131
        $view->marketplaceLogo = $this->config->getConfig('marketplaceLogo', self::MARKETPLACE_LOGO);
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $view->marketplaceLogo is correct as $this->config->getConfig...self::MARKETPLACE_LOGO) (which targets ShopwarePlugins\Connect\...nts\Config::getConfig()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
132
        $view->purchasePriceInDetail = method_exists('Shopware\Models\Article\Detail', 'setPurchasePrice') ? 1 : 0;
133
134
        $view->extendsTemplate('backend/connect/menu_entry.tpl');
135
    }
136
}
137