Beispiel #1
0
 public function beforeGenerateBlocks(Varien_Event_Observer $observer)
 {
     if (Mage::getSingleton('core/design_package')->getPackageName() == 'default' && Mage::getDesign()->getTheme('frontend') == 'galayomarket') {
         # Disable default magento navigation
         if (Mage::helper('yomarketsettings')->getGeneral_DisableDefaultNav() && Mage::getConfig()->getModuleConfig('EM_Megamenupro')->is('active', 'true')) {
             $blocks = $observer->getLayout()->getXpath('//block[@name="galayomarket.catalog.topnav"]');
             if (!empty($blocks)) {
                 $blocks[0]->addAttribute('ignore', true);
             }
         }
         if (Mage::helper('yomarketsettings')->getGeneral_DisableDefaultNav() && Mage::getConfig()->getModuleConfig('EM_Megamenupro')->is('active', 'true')) {
             $blocks = $observer->getLayout()->getXpath('//block[@name="galayomarket.catalog.topnav.left"]');
             if (!empty($blocks)) {
                 $blocks[0]->addAttribute('ignore', true);
             }
         }
         # Disable Gala variation module on frontend
         if (Mage::helper('yomarketsettings')->getGeneral_DisableFrontendVariation()) {
             $blocks = $observer->getLayout()->getXpath('//block[@name="em_variation_tpl" or @name="mobile_view"]');
             foreach ($blocks as $block) {
                 $block->addAttribute('ignore', true);
             }
         }
         # Disable default Magento footer links
         if (Mage::helper('yomarketsettings')->getGeneral_DisableFooterLinks()) {
             $blocks = $observer->getLayout()->getXpath('//block[@name="footer_links"]');
             if (!empty($blocks)) {
                 $blocks[0]->addAttribute('ignore', true);
             }
         }
     }
 }
 /**
  * Call algoliasearch.xml To load js / css / phtml
  */
 public function useAlgoliaSearchPopup(Varien_Event_Observer $observer)
 {
     if ($this->config->isEnabledFrontEnd()) {
         if ($this->config->getApplicationID() && $this->config->getAPIKey()) {
             if ($this->config->isPopupEnabled() || $this->config->isInstantEnabled()) {
                 $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle');
                 if ($this->config->isDefaultSelector()) {
                     $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle_with_topsearch');
                 } else {
                     $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle_no_topsearch');
                 }
             }
         }
     }
     return $this;
 }
 /**
  * Call algoliasearch.xml To load js / css / phtml
  */
 public function useAlgoliaSearchPopup(Varien_Event_Observer $observer)
 {
     if ($this->config->isPopupEnabled() || $this->config->isInstantEnabled()) {
         $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle');
     }
     return $this;
 }
 /**
  * Check whether algolia search popup is allowed
  *
  * @param Varien_Event_Observer $observer
  * @return Algolia_Algoliasearch_Model_Observer
  */
 public function useAlgoliaSearchPopup(Varien_Event_Observer $observer)
 {
     if (Mage::helper('algoliasearch')->isPopupEnabled()) {
         $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle');
     }
     return $this;
 }
Beispiel #5
0
 public function setTag(Varien_Event_Observer $evt)
 {
     $handles = $evt->getLayout()->getUpdate()->getHandles();
     $tags = array_intersect($handles, self::$tags);
     $tag = array_pop($tags);
     $evt->getEvent()->getLayout()->getUpdate()->addHandle('konduto_js');
     $evt->getEvent()->getLayout()->getUpdate()->addHandle('konduto_' . $tag);
 }
 /**
  * Performs order_creage_loadBlock response update
  * adds totals block to each response
  * This function is depricated, the totals block update is implemented
  * in phoenix/cashondelivery/sales.js (SalesOrder class extension)
  * 
  * @param Varien_Event_Observer $observer
  */
 public function controller_action_layout_load_before(Varien_Event_Observer $observer)
 {
     $action = $observer->getAction();
     if ($action->getFullActionName() != 'adminhtml_sales_order_create_loadBlock' || !$action->getRequest()->getParam('json')) {
         return;
     }
     $layout = $observer->getLayout();
     $layout->getUpdate()->addHandle('adminhtml_sales_order_create_load_block_totals');
 }
Beispiel #7
0
 /**
  * Add / remove layout handles etc. before the layout loads.
  *
  * @param Varien_Event_Observer $observer
  */
 public function modifyLayout(Varien_Event_Observer $observer)
 {
     if ($this->_getControllerName() == 'system_config') {
         $section = Mage::app()->getRequest()->getParam('section');
         if ($section == 'ddq') {
             $observer->getLayout()->getUpdate()->addHandle('adminhtml_system_config_edit_section_ddq');
         }
     }
 }
 public function onLayoutInitialize(Varien_Event_Observer $observer)
 {
     /** @var EcomDev_LayoutCompiler_Contract_FactoryInterface $factory */
     $factory = $observer->getFactory();
     $itemActionClass = Mage::getConfig()->getModelClassName('ecomdev_layoutcompiler/layout_item_action');
     $factory->setDefaultConstructorArguments('compiler_parser_handle', ['EcomDev_LayoutCompiler_Layout_Item_Include'])->setDefaultConstructorArguments('compiler_parser_remove', ['EcomDev_LayoutCompiler_Layout_Item_Remove'])->setDefaultConstructorArguments('compiler_parser_block', ['EcomDev_LayoutCompiler_Layout_Item_Block'])->setDefaultConstructorArguments('compiler_parser_action', [$itemActionClass]);
     Mage::dispatchEvent('ecomdev_layoutcompiler_observer_parsers_init_before', ['factory' => $factory]);
     $data = new stdClass();
     $data->metadata_factory = $factory->createInstance('compiler_metadata_factory');
     $data->parsers = ['update' => $factory->createInstance('compiler_parser_handle'), 'reference' => $factory->createInstance('compiler_parser_reference'), 'remove' => $factory->createInstance('compiler_parser_remove'), 'block' => $factory->createInstance('compiler_parser_block'), 'action' => $factory->createInstance('compiler_parser_action')];
     Mage::dispatchEvent('ecomdev_layoutcompiler_observer_parsers_init_after', ['factory' => $factory, 'data' => $data]);
     $factory->setDefaultConstructorArguments('compiler', [(array) $data])->setDependencyInjectionInstruction('EcomDev_LayoutCompiler_Contract_LayoutAwareInterface', 'setLayout', $observer->getLayout())->setDependencyInjectionInstruction('EcomDev_LayoutCompiler_Contract_CacheAwareInterface', 'setCache', Mage::getModel('ecomdev_layoutcompiler/cache'));
 }
 /**
  * Change product or category page titles
  *
  * @pram Varien_Event_Observer $observer
  * @return ReeCreate_PageTitle_Model_Observer
  */
 public function controller_action_layout_generate_blocks_after(Varien_Event_Observer $observer)
 {
     $head = $observer->getLayout()->getBlock('head');
     if (Mage::registry('current_product')) {
         $title = Mage::registry('current_product')->getName();
     }
     if (Mage::registry('current_category') && empty($title)) {
         $title = Mage::registry('current_category')->getName();
     }
     if (!empty($title)) {
         $head->setTitle($title);
     }
 }
Beispiel #10
0
 public function beforeGenerateBlocks(Varien_Event_Observer $observer)
 {
     if (Mage::getSingleton('core/design_package')->getPackageName() == 'em0122' && Mage::getDesign()->getTheme('frontend') == 'default') {
         # Disable default magento navigation
         if (Mage::helper('themeframework/settings')->getGeneral_DisableDefaultNav() != 1 && Mage::getConfig()->getModuleConfig('EM_Megamenupro')->is('active', 'true')) {
             $blocks = $observer->getLayout()->getXpath('//block[@name="em0122.catalog.topnav"]');
             if (!empty($blocks)) {
                 $blocks[0]->addAttribute('ignore', true);
             }
             $blocks = $observer->getLayout()->getXpath('//block[@name="em0122.catalog.topnav.mobile"]');
             if (!empty($blocks)) {
                 $blocks[0]->addAttribute('ignore', true);
             }
         }
         # Disable EM variation module on frontend
         if (Mage::helper('themeframework/settings')->getGeneral_DisableFrontendVariation() != 1 || Mage::helper('themeframework/settings')->checkMobile() == 'true') {
             $blocks = $observer->getLayout()->getXpath('//block[@name="em_variation_tpl" or @name="color_variation"]');
             foreach ($blocks as $block) {
                 $block->addAttribute('ignore', true);
             }
         }
         # Disable default Magento footer links
         if (Mage::helper('themeframework/settings')->getGeneral_DisableFooterLinks() != 1) {
             $blocks = $observer->getLayout()->getXpath('//block[@name="cms_footer_links" or @name="footer_links"]');
             foreach ($blocks as $block) {
                 $block->addAttribute('ignore', true);
             }
         }
         # Disable Admin Toolbar
         if (Mage::helper('themeframework/settings')->getGeneral_AdminToolbar() != 1) {
             $blocks = $observer->getLayout()->getXpath('//block[@name="em_admin_toolbar"]');
             foreach ($blocks as $block) {
                 $block->addAttribute('ignore', true);
             }
         }
     }
 }
Beispiel #11
0
 public function beforeGenerateBlocks(Varien_Event_Observer $observer)
 {
     # Disable default magento navigation
     if (Mage::helper('em0072settings')->getGeneral_DisableDefaultNav()) {
         $blocks = $observer->getLayout()->getXpath('//block[@name="tensite.catalog.topnav"]');
         if (!empty($blocks)) {
             $blocks[0]->addAttribute('ignore', true);
         }
     }
     # Disable EM variation module on frontend
     if (Mage::helper('em0072settings')->getGeneral_DisableFrontendVariation()) {
         $blocks = $observer->getLayout()->getXpath('//block[@name="em_variation_tpl" or @name="mobile_view"]');
         foreach ($blocks as $block) {
             $block->addAttribute('ignore', true);
         }
     }
     # Disable default Magento footer links
     if (Mage::helper('em0072settings')->getGeneral_DisableFooterLinks()) {
         $blocks = $observer->getLayout()->getXpath('//block[@name="footer_links"]');
         if (!empty($blocks)) {
             $blocks[0]->addAttribute('ignore', true);
         }
     }
 }
 /**
  * Adds layout handles based on configuration.
  *
  * @param Varien_Event_Observer $observer
  */
 public function addActivationLayoutHandles($observer)
 {
     $request = Mage::app()->getRequest();
     if (Mage::helper('hackathon_productdnd')->isActivated() && $request->getModuleName() == 'catalog' && $request->getControllerName() == 'category' && $request->getActionName() == 'view' && Mage::getBlockSingleton('catalog/product_list_toolbar')->getCurrentOrder() == 'position') {
         $category = Mage::getSingleton('catalog/layer')->getCurrentCategory();
         $layout = $observer->getLayout();
         $update = $layout->getUpdate();
         // sorting is not available if category is anchor and include child categories
         if ($category->getIsAnchor() && count($category->getChildrenCategories()) > 0) {
             $update->addHandle('hackathon_productdnd_inactive');
             return;
         }
         $update->addHandle('hackathon_productdnd_enabled');
     }
 }
Beispiel #13
0
    /**
     * Empty shopping cart
     * 
     * @param   Varien_Event_Observer $observer
     * @return  H5mag_ShopApi_Model_Order_Observer
     */
    public function emptyCart($observer)
    {
        $controller = $observer->getAction();
        if ($controller instanceof Mage_Checkout_OnepageController) {
            $action = $controller->getFullActionName();
            if ($action == 'checkout_onepage_success') {
                $layout = $observer->getLayout();
                $layout->getUpdate()->addUpdate('
					<reference name="content">
						<block name="shopapi.cart" type="core/template" template="h5mag/shopapi/emptycart.phtml">
						</block>
					</reference>
				');
            }
        }
        return $this;
    }
Beispiel #14
0
 /**
  * Add ho_ajax handles
  * @event controller_action_layout_load_before
  * @param Varien_Event_Observer $event
  */
 public function addHandles(Varien_Event_Observer $event)
 {
     if (!($core = $this->_getCore()->isHoAjax())) {
         return;
     }
     /** @var Mage_Core_Model_Layout_Update $update */
     $update = $event->getLayout()->getUpdate();
     $request = Mage::app()->getRequest();
     $handles = $update->getHandles();
     $update->resetHandles();
     // load action handle
     $fullActionName = strtolower($request->getRequestedRouteName() . '_' . $request->getRequestedControllerName() . '_' . $request->getRequestedActionName());
     foreach ($handles as $handle) {
         $update->addHandle($handle);
         if ($handle == 'default') {
             $update->addHandle('ho_ajax');
         }
         if ($handle == $fullActionName) {
             $update->addHandle('ho_ajax_' . $fullActionName);
         }
     }
 }
 /**
  * Detect which checkout is in use and add a new layout handle
  *
  * @param Varien_Event_Observer $observer
  *
  * @return $this
  */
 public function addLayoutHandle(Varien_Event_Observer $observer)
 {
     /* @var $action Mage_Core_Controller_Varien_Action */
     $action = $observer->getAction();
     /* @var $layout Mage_Core_Model_Layout */
     $layout = $observer->getLayout();
     // We only want to run this action on the checkout
     if ($action->getFullActionName() == 'checkout_onepage_index') {
         // Attempt to detect Amasty_Scheckout
         if (Mage::helper('core')->isModuleEnabled('Amasty_Scheckout')) {
             $layout->getUpdate()->addHandle('amasty_onestep_checkout');
         }
         // Attempt to detect Unicode OP Checkout
         if (Mage::helper('core')->isModuleEnabled('Uni_Opcheckout') && Mage::helper('opcheckout')->isActive()) {
             $layout->getUpdate()->addHandle('unicode_onestep_checkout');
         }
         // Detect the Oye one step checkout
         if (Mage::helper('core')->isModuleEnabled('Oye_Checkout') && Mage::helper('oyecheckout')->isOneStepLayout()) {
             $layout->getUpdate()->addHandle('oye_onestep_checkout');
         }
     }
     // As some 3rd party checkouts use the same handles, and URL we have to dynamically add new handles
     if ($action->getFullActionName() == 'onestepcheckout_index_index') {
         // Attempt to detect Magestore_Onestepcheckout
         if (Mage::helper('core')->isModuleEnabled('Magestore_Onestepcheckout')) {
             if (Mage::helper('onestepcheckout')->enabledOnestepcheckout()) {
                 $layout->getUpdate()->addHandle('magestore_onestepcheckout_index');
             }
         }
         // Attempt to detect Idev_OneStepCheckout
         if (Mage::helper('core')->isModuleEnabled('Idev_OneStepCheckout')) {
             $layout->getUpdate()->addHandle('idev_onestepcheckout_index');
         }
     }
     return $this;
 }
Beispiel #16
0
 /**
  * Adds ESI to the layout cache
  * 
  */
 public function controllerActionLayoutLoadBefore(Varien_Event_Observer $observer)
 {
     if (!$this->_getHelper()->isActive()) {
         return;
     }
     $updateModel = $observer->getLayout()->getUpdate();
     $handles = $updateModel->getHandles();
     $allowedEsi = $this->_getHelper()->getIsEsiAllowed();
     foreach ($handles as $handle) {
         if ($handle == 'customer_logged_in' && !$this->_getHelper()->getIsInternal()) {
             $updateModel->removeHandle($handle);
             // Emulate always guest session
             $updateModel->addHandle('customer_logged_out');
         }
         if ($handle == 'default' && !$this->_getHelper()->getIsInternal()) {
             $updateModel->addHandle('default_varnish');
         }
         if ($allowedEsi && strtolower($handle) === $handle) {
             // Add handle only if handle is not starting from UPPERCASE code
             $updateModel->addHandle($handle . '_esi');
         }
     }
 }
 /**
  * @event catalog_controller_product_view
  * @param Varien_Event_Observer $observer
  * @return $this
  */
 public function addProductTypeSubscriptionHandle(Varien_Event_Observer $observer)
 {
     /** @var Mage_Catalog_Model_Product $product */
     /** @noinspection PhpUndefinedMethodInspection */
     $product = Mage::registry('current_product');
     if (!$product) {
         return $this;
     }
     $this->_loadProductSubscriptionData($product);
     if (!$product->getData('adyen_subscription_data')) {
         return $this;
     }
     $subscriptionCollection = $product->getData('adyen_subscription_data');
     if ($subscriptionCollection->count() < 0) {
         return $this;
     }
     /** @var Mage_Core_Model_Layout $layout */
     /** @noinspection PhpUndefinedMethodInspection */
     $layout = $observer->getLayout();
     $layout->getUpdate()->addHandle('PRODUCT_TYPE_adyen_subscription');
     return $this;
 }
Beispiel #18
0
 /**
  * @param Varien_Event_Observer $observer
  * @return $this
  */
 public function setPageTitle($observer)
 {
     $moduleName = Mage::app()->getFrontController()->getRequest()->getModuleName();
     $controllerName = Mage::app()->getFrontController()->getRequest()->getControllerName();
     $store = Mage::app()->getStore();
     /** @var $helper EcommerceTeam_Sln_Helper_Data */
     $helper = Mage::helper('ecommerceteam_sln');
     if (!Mage::registry('layer_loaded') || $moduleName == 'catalogsearch' && $controllerName == 'advanced') {
         return;
     }
     if ($headBlock = $observer->getLayout()->getBlock('head')) {
         $headBlock->setRobots($helper->getConfigData('robots'));
         $url = Mage::app()->getRequest()->getRequestString();
         $metaData = '';
         if ($url) {
             if (substr($url, -1) == '/') {
                 $url = substr($url, 0, strlen($url) - 1);
             }
             $metaData = Mage::getModel('ecommerceteam_sln/meta')->load($url, 'url');
         }
         if ($metaData && $metaData->getId()) {
             if ($metaData->getMetaTitle()) {
                 $headBlock->setTitle($metaData->getMetaTitle());
             }
             if ($metaData->getMetaKeywords()) {
                 $headBlock->setKeywords($metaData->getMetaKeywords());
             }
             if ($metaData->getMetaDescription()) {
                 $headBlock->setDescription($metaData->getMetaDescription());
             }
             if ($metaData->getPageTitle()) {
                 Mage::getSingleton('ecommerceteam_sln/layer')->setPageTitle($metaData->getPageTitle());
             }
             if ($metaData->getCmsBlock()) {
                 Mage::getSingleton('ecommerceteam_sln/layer')->setCmsBlock($metaData->getCmsBlock());
             }
             if ($metaData->getRobots()) {
                 $headBlock->setRobots($metaData->getRobots());
             }
         } else {
             $_request = Mage::getSingleton('ecommerceteam_sln/request');
             $activeFilters = $_request->getValue();
             if (!empty($activeFilters)) {
                 $attributes = $_request->getFilterableAttributes();
                 if (!empty($attributes) && ($title = $headBlock->getTitle())) {
                     $title = str_replace(Mage::getStoreConfig('design/head/title_suffix'), "", $title);
                     $filtersTitle = array();
                     foreach ($activeFilters as $code => $value) {
                         $_labelValues = array();
                         if ($model = $attributes->getItemByColumnValue('attribute_code', $code)) {
                             $_labelValues = array();
                             if ($model->getFrontendInput() == 'select' || $model->getFrontendInput() == 'multiselect') {
                                 foreach ((array) $value as $_value) {
                                     $_labelValues[] = $model->getSource()->getOptionText($_value);
                                 }
                             } elseif ($model->getFrontendInput() == 'price') {
                                 if (isset($value['start']) && isset($value['end'])) {
                                     $_labelValues[] = Mage::helper('core')->currency($value['start'], true, false) . ' - ' . Mage::helper('core')->currency($value['end'], true, false);
                                 }
                                 foreach ((array) $value as $_value) {
                                     if (isset($_value['start']) && isset($_value['end'])) {
                                         $_labelValues[] = $store->formatPrice(($_value['start'] - 1) * $_value['end'], false) . ' - ' . $store->formatPrice($_value['start'] * $_value['end'], false);
                                     }
                                 }
                             }
                             $filtersTitle[] = $model->getStoreLabel() . ': ' . implode(', ', $_labelValues);
                         } elseif ($code == 'cat') {
                             $categories = $this->getCategories();
                             $_labelValues = array();
                             if ($categories && !empty($categories)) {
                                 foreach ((array) $value as $id) {
                                     if ($cat = $categories->getItemById($id)) {
                                         $_labelValues[] = $cat->getName();
                                     }
                                 }
                                 $title = trim(implode(', ', $_labelValues)) . ' - ' . $title;
                             }
                         }
                     }
                     if ($filtersTitle) {
                         $headBlock->setTitle($title . ' with ' . implode(' and ', $filtersTitle));
                     } else {
                         $headBlock->setTitle($title);
                     }
                 }
                 if (($category = Mage::registry('current_category')) && !$helper->getConfigData('use_category_canonical')) {
                     $headBlock->removeItem('link_rel', $category->getUrl());
                 }
             }
         }
     }
     return $this;
 }