/**
  * Log the data for the given observer model.
  *
  * @param Varien_Event_Observer $observer Observer Instance
  */
 public function log(Varien_Event_Observer $observer)
 {
     /* @var $history FireGento_AdminMonitoring_Model_History */
     $history = Mage::getModel('firegento_adminmonitoring/history');
     $history->setData(array('object_id' => $observer->getObjectId(), 'object_type' => $observer->getObjectType(), 'content' => $observer->getContent(), 'content_diff' => $observer->getContentDiff(), 'user_agent' => $this->getUserAgent(), 'ip' => $this->getRemoteAddr(), 'user_id' => $this->getUserId(), 'user_name' => $this->getUserName(), 'action' => $observer->getAction(), 'created_at' => now()));
     $history->save();
 }
示例#2
0
 /**
  * Check is load only options on catalog_product_view page
  *
  * @param Varien_Event_Observer $event
  * @return void
  */
 public function preDispatchCatalogProductView(Varien_Event_Observer $event)
 {
     /* @var $action Mage_Core_Controller_Varien_Action */
     $action = $event->getAction();
     if ($action->getFullActionName() != 'catalog_product_view') {
         return;
     }
     /* @var $request Mage_Core_Controller_Request_Http */
     $request = $action->getRequest();
     if (!($ajaxRequest = $action->getRequest()->getHeader('X-Requested-With')) || !$request->getParams('ajaxquickcartoption')) {
         return;
     }
     if (!($productId = intval($request->getParam('id')))) {
         return;
     }
     /* @var $product Mage_Catalog_Model_Product */
     $product = Mage::getModel('catalog/product')->load($productId);
     if ($product->getId() != $productId) {
         return;
     }
     $productType = $product->getTypeId();
     /* @var $update Mage_Core_Model_Layout_Update */
     $update = $action->getLayout()->getUpdate();
     /*$update->addUpdate('<reference name="product.info">
     			<action method="setTemplate"><template>ajaxquickcart/quickcart/product.phtml</template></action>
     		</reference>');*/
     $update->addHandle('ajaxquickcart_product_view');
     $update->addHandle('PRODUCT_TYPE_ajaxquickcart_' . $productType);
     //todo: add addtocart ajax on layer
 }
 /**
  * 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');
 }
 /**
  * Add error message if tax estimation has problems when user estimates post
  *
  * @param Varien_Event_Observer $observer
  * @return $this
  */
 public function execute(Varien_Event_Observer $observer)
 {
     $action = $observer->getAction();
     if ($action instanceof Mage_Checkout_CartController && $action->getFullActionName() == 'checkout_cart_index') {
         /* @var Mage_Sales_Model_Quote $quote */
         $quote = Mage::getSingleton('checkout/session')->getQuote();
         $this->_addErrorMessage($quote);
     }
     return $this;
 }
示例#5
0
 public function addLayoutHandleObserver(Varien_Event_Observer $observer)
 {
     $landingpage = Mage::registry('current_landingpage');
     if (is_null($landingpage)) {
         return $this;
     }
     // no landingpage
     $landingpage_id = $landingpage->getId();
     $layout = $observer->getAction()->getLayout();
     $layout->getUpdate()->addHandle('layeredlanding_page');
     $layout->getUpdate()->addHandle('layeredlanding_' . $landingpage_id);
     $layout->generateXml();
     return $this;
 }
 /**
  * @event controller_action_layout_load_before
  * @param Varien_Event_Observer $observer
  */
 public function addAdminhtmlSalesOrderCreateHandles(Varien_Event_Observer $observer)
 {
     /** @noinspection PhpUndefinedMethodInspection */
     if (!$observer->getAction() instanceof Mage_Adminhtml_Sales_Order_CreateController) {
         return;
     }
     $subscriptionId = Mage::app()->getRequest()->getParam('subscription');
     $subscription = Mage::getModel('adyen_subscription/subscription')->load($subscriptionId);
     if (!$subscription->getId()) {
         return;
     }
     Mage::register('current_subscription', $subscription);
     Mage::app()->getLayout()->getUpdate()->addHandle('adyen_subscription_active_quote_edit');
 }
示例#7
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;
    }
 /**
  * Recalculates taxes during order creation in admin panel.
  * quote item is null during first collect totals,
  * that is why rate request does not send to avalara.
  *
  * @param Varien_Event_Observer $observer
  *
  * @return $this
  */
 public function execute(Varien_Event_Observer $observer)
 {
     $action = $observer->getAction();
     if ($action instanceof Mage_Adminhtml_Sales_Order_CreateController && $action->getRequest()->getActionName() == 'loadBlock') {
         $requestBlocks = $action->getRequest()->getParam('block');
         if (isset($requestBlocks) && strstr($requestBlocks, 'totals')) {
             /* @var Mage_Adminhtml_Model_Session_Quote $adminQuote */
             $adminQuote = Mage::getSingleton('adminhtml/session_quote');
             /* @var Mage_Sales_Model_Quote $quote */
             $quote = isset($adminQuote) ? $adminQuote->getQuote() : null;
             if (isset($quote)) {
                 $quote->setTotalsCollectedFlag(false);
                 $quote->collectTotals();
                 $quote->save();
             }
         }
     }
     return $this;
 }
示例#9
0
 public function setCurrentCategory(Varien_Event_Observer $observer)
 {
     $action = $observer->getAction();
     if ($action->getFullActionName() != 'catalog_product_view') {
         return;
     }
     if (Mage::app()->getRequest()->getParam('c', 0)) {
         return;
     }
     $currentProduct = Mage::registry('current_product');
     if (!$currentProduct) {
         return;
     }
     $catIds = $currentProduct->getCategoryIds();
     if (!is_array($catIds) || !count($catIds)) {
         return;
     }
     $category = $this->_getHighestLevelCategory($catIds);
     if ($category && $category->getId()) {
         Mage::unregister('current_category');
         Mage::register('current_category', $category);
     }
 }
示例#10
0
 /**
  * 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;
 }
示例#11
0
 /**
  * Define integration mode and add handle
  *
  * @param Varien_Event_Observer $observer
  */
 public function intModeCheck(Varien_Event_Observer $observer)
 {
     if (Mage::helper('conversionpro')->isConversionproEnabled()) {
         $actions = array_keys((array) Mage::getConfig()->getNode('conversionpro/search_actions'));
         $nav2search_actions = array_keys((array) Mage::getConfig()->getNode('conversionpro/nav2search_actions'));
         $current_action = (string) $observer->getAction()->getFullActionName();
         $update = $observer->getEvent()->getLayout()->getUpdate();
         if (count($actions) && in_array($current_action, $actions) || count($nav2search_actions) && in_array($current_action, $nav2search_actions) && Mage::getStoreConfig('conversionpro/nav_to_search_settings/nav_to_search')) {
             if (Mage::getStoreConfig('conversionpro/nav_to_search_settings/nav_to_search') && Mage::getStoreConfig('conversionpro/nav_to_search_settings/nav_to_search_enable_blacklist')) {
                 $current_category = Mage::registry('current_category');
                 if ($current_category) {
                     $blacklist = Mage::getStoreConfig('conversionpro/nav_to_search_settings/nav_to_search_blacklist');
                     if (in_array($current_category->getEntityId(), explode(',', $blacklist))) {
                         return;
                     }
                 }
             }
             $this->addSearchHandle($update);
             if (Mage::helper('conversionpro')->isHideContent()) {
                 $this->hideContent($update);
             }
         }
     }
     /*Zend_Debug::dump(Mage::app()->getLayout()->getUpdate()->getHandles()); exit;*/
 }
示例#12
0
 /**
  * Clear all submission retries for an order that have the same action.
  * This event observer is only called after a successful submission.
  *
  * @param Varien_Event_Observer $observer
  */
 public function clearRetriesForOrder(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     // Sanity check
     if (!$order || !$order->getId()) {
         return;
     }
     $retries = Mage::getModel('full/retry')->getCollection()->addfieldtofilter('order_id', $order->getId())->addFieldToFilter('action', $observer->getAction());
     foreach ($retries as $retry) {
         $retry->delete();
     }
 }
示例#13
0
 /**
  * Lock category attributes
  * @param Varien_Event_Observer $observer
  */
 public function catalogCategoryEditAction(Varien_Event_Observer $observer)
 {
     /** @var Mage_Core_Controller_Request_Http $request */
     $request = $observer->getAction()->getRequest();
     if ($request->getControllerName() !== 'catalog_category' || $request->getModuleName() !== 'admin') {
         return;
     }
     $category = Mage::registry('current_category');
     $this->_lockAttributes($category);
 }