167 lines
7.0 KiB
PHP
Executable File
167 lines
7.0 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Olegnax\Athlete2\Observer;
|
|
|
|
use Magento\Framework\App\Config\ScopeConfigInterface;
|
|
use Magento\Framework\Event\Observer;
|
|
use Magento\Framework\Event\ObserverInterface;
|
|
use Magento\Framework\App\ObjectManager;
|
|
use Magento\Store\Model\ScopeInterface;
|
|
use Olegnax\Athlete2\Helper\Helper;
|
|
|
|
class Move implements ObserverInterface
|
|
{
|
|
protected $scopeConfig;
|
|
/**
|
|
*
|
|
* @var ObjectManager
|
|
*/
|
|
public $objectManager;
|
|
/**
|
|
* @var Helper
|
|
*/
|
|
private $helper;
|
|
public function __construct(
|
|
Helper $helper,
|
|
ScopeConfigInterface $scopeConfig
|
|
)
|
|
{
|
|
$this->objectManager = ObjectManager::getInstance();
|
|
$this->scopeConfig = $scopeConfig;
|
|
$this->helper = $helper;
|
|
}
|
|
|
|
public function execute(Observer $observer)
|
|
{
|
|
if (!$this->getConfig(Helper::XML_ENABLED)) {
|
|
return;
|
|
}
|
|
$layout = $observer->getData('layout');
|
|
/* move minicart in header 1*/
|
|
$headerLayout = $this->getConfig('athlete2_settings/header/header_layout');
|
|
if($headerLayout == 'header_1'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_header_move_minicart');
|
|
}
|
|
$fullActionName = $observer->getData('full_action_name');
|
|
|
|
$account_action_drop = $this->getConfig('athlete2_settings/header/account_action');
|
|
if($account_action_drop == 'login' && $fullActionName !='customer_account_login' && $fullActionName !='multishipping_checkout_login'){
|
|
if( version_compare($this->helper->getVersion(), '2.4.0', '>' ) ){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_login_recaptcha');
|
|
} elseif (version_compare($this->helper->getVersion(), '2.3.1', '=')) {
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_login_recaptcha_msp_231');
|
|
} else {
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_login_recaptcha_msp');
|
|
}
|
|
}
|
|
if( version_compare($this->helper->getVersion(), '2.3.6', '>' ) && version_compare($this->helper->getVersion(), '2.4.0', '!=' ) ){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_header_search_args');
|
|
}
|
|
|
|
if ($fullActionName == 'catalog_category_view' || $fullActionName == 'catalogsearch_result_index' ) {
|
|
if($this->getConfig('athlete2_settings/products_listing/move_cat_title')){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_category_move_title');
|
|
}
|
|
if($this->getConfig('athlete2_settings/products_listing/move_cat_cms_block')){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_category_move_cms_block');
|
|
}
|
|
/*
|
|
if($this->getConfig('athlete2_settings/products_listing/move_breadrumbs')){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_category_move_breadcrumbs');
|
|
}
|
|
if($this->getConfig('athlete2_settings/products_listing/move_image')){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_category_move_image');
|
|
}
|
|
if($this->getConfig('athlete2_settings/products_listing/move_desc')){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_category_move_desc');
|
|
}*/
|
|
}
|
|
if ($fullActionName == 'sales_order_print' ) {
|
|
$layout->getUpdate()->addHandle('olegnax_remove_newsletter');
|
|
}
|
|
if (!in_array($fullActionName, ['catalog_product_view', 'ox_quickview_catalog_product_view'])) {
|
|
return $this;
|
|
}
|
|
/* move reviews */
|
|
$reviewsInTab = $this->getConfig('athlete2_settings/product/reviews_position');
|
|
if ($reviewsInTab) {
|
|
if($reviewsInTab == 'oxbottom'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_view_review_oxbottom');
|
|
} elseif($reviewsInTab == 'bottom'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_view_review_bottom');
|
|
} elseif($reviewsInTab == 'gallery'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_view_review_gallery');
|
|
}
|
|
} else{
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_view_move_review');
|
|
}
|
|
|
|
$tabsInInfo = $this->getConfig('athlete2_settings/product/product_tabs_position');
|
|
/*if($fullActionName == 'ox_quickview_catalog_product_view' && $tabsInInfo == 'info'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_tabs_remove');
|
|
}*/
|
|
|
|
|
|
if ($tabsInInfo == 'info') {
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_tabs_right');
|
|
}
|
|
if($tabsInInfo == 'oxbottom'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_tabs_oxbottom');
|
|
}
|
|
if($tabsInInfo == 'bottom'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_tabs_bottom');
|
|
}
|
|
if($tabsInInfo == 'gallery'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_tabs_gallery');
|
|
}
|
|
/* move related */
|
|
$moveRelated = $this->getConfig('athlete2_settings/product/related_positon');
|
|
$moveUpsell = $this->getConfig('athlete2_settings/product/upsell_positon');
|
|
if ($moveRelated == 'oxbottom') {
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_related_oxbottom');
|
|
} elseif($moveRelated == 'bottom'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_related_bottom');
|
|
} elseif($moveRelated == 'gallery'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_related_gallery');
|
|
}
|
|
if ($moveUpsell == 'oxbottom') {
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_upsell_oxbottom');
|
|
} elseif($moveUpsell == 'bottom'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_upsell_bottom');
|
|
} elseif($moveUpsell == 'gallery'){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_upsell_gallery');
|
|
}
|
|
/* sticky product, move elements in sticky wrapper */
|
|
$galleryLayout = $this->getConfig('athlete2_settings/product/gallery_layout');
|
|
$stickyDesc = $this->getConfig('athlete2_settings/product/gallery_sticky');
|
|
$infoWrapper = $this->getConfig('athlete2_settings/product/gallery_wrapper');
|
|
if(($stickyDesc && ($galleryLayout == '1col' || $galleryLayout == '2cols')) || $infoWrapper){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_catalog_product_info_wrapper');
|
|
}
|
|
/* replace fotorama with css only gallery for mobile theme */
|
|
if( $this->getConfig('athlete2_settings/product/css_only_gallery')){
|
|
if($this->objectManager->get( 'Olegnax\Core\Helper\Helper' )->isMobileTheme()){
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_css_only_gallery');
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_remove_fotorama_video');
|
|
}
|
|
}
|
|
|
|
if($fullActionName == 'catalog_product_view' && ( $galleryLayout == '1col' || $galleryLayout == '2cols')){
|
|
/* remove fotorama video if fotorama disabled */
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_remove_fotorama_video');
|
|
/* set product gallery layout */
|
|
$layout->getUpdate()->addHandle('olegnax_athlete2_product_gallery_layout');
|
|
}
|
|
return $this;
|
|
}
|
|
|
|
public function getConfig($path, $storeCode = null)
|
|
{
|
|
$value = $this->scopeConfig->getValue($path, ScopeInterface::SCOPE_STORE, $storeCode);
|
|
if (is_null($value)) {
|
|
$value = '';
|
|
}
|
|
return $value;
|
|
}
|
|
}
|