Example #1
0
 public function controllerActionPredispatch($observer)
 {
     $controller = $observer['controller_action'];
     $request = $controller->getRequest();
     /* Add event before run dispatch of affiliate system - added by David (01/11) */
     Mage::dispatchEvent('affiliateplus_controller_action_predispatch', array('request' => $request));
     /* magic add call funtion saveClickAction 23/10/2012 */
     $this->saveClickAction($observer);
     /* end */
     $accountCode = $request->getParam('acc');
     if (!$accountCode && $request->getParam('df08b0441bac900')) {
         $resource = Mage::getSingleton('core/resource');
         $read = $resource->getConnection('core_read');
         $write = $resource->getConnection('core_write');
         try {
             $select = $read->select()->from($resource->getTableName('affiliate_referral'), array('customer_id'))->where("identify_code=?", trim($request->getParam('df08b0441bac900')));
             $result = $read->fetchRow($select);
             $oldCustomerId = $result['customer_id'];
             if ($oldCustomerId) {
                 $accountCode = Mage::getModel('affiliateplus/account')->loadByCustomerId($oldCustomerId)->getIdentifyCode();
             }
         } catch (Exception $e) {
         }
     }
     if (!$accountCode) {
         return $this;
     }
     if ($account = Mage::getSingleton('affiliateplus/session')->getAccount()) {
         if ($account->getIdentifyCode() == $accountCode) {
             return $this;
         }
     }
     /* Magic 19/10/2012 */
     $account = Mage::getModel('affiliateplus/account')->loadByIdentifyCode($accountCode);
     if (!$account->getId()) {
         return $this;
     }
     $storeId = Mage::app()->getStore()->getId();
     if (!$storeId) {
         return $this;
     }
     /* David - remove storage tracking to referer table
             $ipAddress = $request->getClientIp();
             $refererModel = Mage::getModel('affiliateplus/referer');
     
             $refererCollection = $refererModel->getCollection()
                     ->addFieldToFilter('account_id', $account->getId());
             if (!in_array($ipAddress, $refererCollection->getIpListArray())) {
                 $account->setUniqueClicks($account->getUniqueClicks() + 1);
                 try {
                     $account->save();
                 } catch (Exception $e) {
                     
                 }
             }
     
             $account->setStoreId($storeId)->load($account->getId());
             $refererCollection->addFieldToFilter('store_id', $storeId);
             if (!in_array($ipAddress, $refererCollection->getIpListArray()))
                 if ($account->getUniqueClicksInStore())
                     $account->setUniqueClicks($account->getUniqueClicks() + 1);
                 else
                     $account->setUniqueClicks(1);
             $account->setTotalClicks($account->getTotalClicks() + 1);
             try {
                 $account->save();
             } catch (Exception $e) {
                 
             }
     
             $httpReferrerInfo = parse_url($request->getServer('HTTP_REFERER'));
             $referer = isset($httpReferrerInfo['host']) ? $httpReferrerInfo['host'] : '';
             $refererModel->loadExistReferer($account->getId(), $referer, $storeId, $request->getOriginalRequest()->getPathInfo());
             //Zend_Debug::dump($refererModel->getData());die('1');
             Mage::dispatchEvent('affiliateplus_referrer_load_existed', array(
                 'referrer_model' => $refererModel,
                 'controller_action' => $controller,
             ));
     
             try {
                 $refererModel->setIpAddress($ipAddress)->save();
             } catch (Exception $e) {
                 
             }
             */
     /*
      * end
      */
     $expiredTime = $this->_getConfigHelper()->getGeneralConfig('expired_time');
     $cookie = Mage::getSingleton('core/cookie');
     if ($expiredTime) {
         $cookie->setLifeTime(intval($expiredTime) * 86400);
     }
     $current_index = $cookie->get('affiliateplus_map_index');
     $addCookie = new Varien_Object(array('existed' => false));
     for ($i = intval($current_index); $i > 0; $i--) {
         if ($cookie->get("affiliateplus_account_code_{$i}") == $accountCode) {
             $addCookie->setExisted(true);
             $addCookie->setIndex($i);
             Mage::dispatchEvent('affiliateplus_controller_action_predispatch_add_cookie', array('request' => $request, 'add_cookie' => $addCookie, 'cookie' => $cookie));
             if ($addCookie->getExisted()) {
                 // change latest account
                 $curI = intval($current_index);
                 for ($j = $i; $j < $curI; $j++) {
                     $cookie->set("affiliateplus_account_code_{$j}", $cookie->get("affiliateplus_account_code_" . intval($j + 1)));
                 }
                 $cookie->set("affiliateplus_account_code_{$curI}", $accountCode);
                 return $this;
             }
         }
     }
     $current_index = $current_index ? intval($current_index) + 1 : 1;
     $cookie->set('affiliateplus_map_index', $current_index);
     $cookie->set("affiliateplus_account_code_{$current_index}", $accountCode);
     $cookieParams = new Varien_Object(array('params' => array()));
     Mage::dispatchEvent('affiliateplus_controller_action_predispatch_observer', array('controller_action' => $controller, 'cookie_params' => $cookieParams, 'cookie' => $cookie));
     foreach ($cookieParams->getParams() as $key => $value) {
         $cookie->set("affiliateplus_{$key}" . "_{$current_index}", $value);
     }
     /* Magic comment 19/10/2012 and put upward  */
     /*
      $account = Mage::getModel('affiliateplus/account')->loadByIdentifyCode($accountCode);
      if (!$account->getId())
      return $this;
      $storeId = Mage::app()->getStore()->getId();
      if (!$storeId)
      return $this;
      $ipAddress = $request->getClientIp();
      $refererModel = Mage::getModel('affiliateplus/referer');
     
      $refererCollection = $refererModel->getCollection()
      ->addFieldToFilter('account_id', $account->getId());
      if (!in_array($ipAddress, $refererCollection->getIpListArray())) {
      $account->setUniqueClicks($account->getUniqueClicks() + 1);
      try {
      $account->save();
      } catch (Exception $e) {
     
      }
      }
     
      $account->setStoreId($storeId)->load($account->getId());
      $refererCollection->addFieldToFilter('store_id', $storeId);
      if (!in_array($ipAddress, $refererCollection->getIpListArray()))
      if ($account->getUniqueClicksInStore())
      $account->setUniqueClicks($account->getUniqueClicks() + 1);
      else
      $account->setUniqueClicks(1);
      $account->setTotalClicks($account->getTotalClicks() + 1);
      try {
      $account->save();
      } catch (Exception $e) {
     
      }
     
      $httpReferrerInfo = parse_url($request->getServer('HTTP_REFERER'));
      $referer = isset($httpReferrerInfo['host']) ? $httpReferrerInfo['host'] : '';
      $refererModel->loadExistReferer($account->getId(), $referer, $storeId, $request->getOriginalRequest()->getPathInfo());
      //Zend_Debug::dump($refererModel->getData());die('1');
      Mage::dispatchEvent('affiliateplus_referrer_load_existed', array(
      'referrer_model' => $refererModel,
      'controller_action' => $controller,
      ));
     
      try {
      $refererModel->setIpAddress($ipAddress)->save();
      } catch (Exception $e) {
     
      }
     */
     return $this;
 }
Example #2
0
 public function saveCookie($accountCode, $expiredTime, $toTop = false, $controller = null)
 {
     $cookie = Mage::getSingleton('core/cookie');
     $request = Mage::app()->getRequest();
     if ($expiredTime) {
         $cookie->setLifeTime(intval($expiredTime) * 86400);
     }
     $current_index = $cookie->get('affiliateplus_map_index');
     $addCookie = new Varien_Object(array('existed' => false));
     for ($i = intval($current_index); $i > 0; $i--) {
         if ($cookie->get("affiliateplus_account_code_{$i}") == $accountCode) {
             $addCookie->setExisted(true);
             $addCookie->setIndex($i);
             Mage::dispatchEvent('affiliateplus_controller_action_predispatch_add_cookie', array('request' => $request, 'add_cookie' => $addCookie, 'cookie' => $cookie));
             if ($addCookie->getExisted()) {
                 // change latest account
                 $curI = intval($current_index);
                 for ($j = $i; $j < $curI; $j++) {
                     $cookie->set("affiliateplus_account_code_{$j}", $cookie->get("affiliateplus_account_code_" . intval($j + 1)));
                 }
                 $cookie->set("affiliateplus_account_code_{$curI}", $accountCode);
                 return $this;
             }
         }
     }
     $current_index = $current_index ? intval($current_index) + 1 : 1;
     $cookie->set('affiliateplus_map_index', $current_index);
     $cookie->set("affiliateplus_account_code_{$current_index}", $accountCode);
     $cookieParams = new Varien_Object(array('params' => array()));
     Mage::dispatchEvent('affiliateplus_controller_action_predispatch_observer', array('controller_action' => $controller, 'cookie_params' => $cookieParams, 'cookie' => $cookie));
     if ($toTop) {
         $datenow = date('Y-m-d');
         $cookie->set($accountCode, $datenow);
     }
 }
 public function controllerActionPredispatch($observer)
 {
     $controller = $observer['controller_action'];
     $request = $controller->getRequest();
     $accountCode = $request->getParam('acc');
     if (!$accountCode && $request->getParam('df08b0441bac900')) {
         $resource = Mage::getSingleton('core/resource');
         $read = $resource->getConnection('core_read');
         $write = $resource->getConnection('core_write');
         try {
             $select = $read->select()->from($resource->getTableName('affiliate_referral'), array('customer_id'))->where("identify_code=?", trim($request->getParam('df08b0441bac900')));
             $result = $read->fetchRow($select);
             $oldCustomerId = $result['customer_id'];
             if ($oldCustomerId) {
                 $accountCode = Mage::getModel('affiliateplus/account')->loadByCustomerId($oldCustomerId)->getIdentifyCode();
             }
         } catch (Exception $e) {
         }
     }
     if (!$accountCode) {
         return $this;
     }
     if ($account = Mage::getSingleton('affiliateplus/session')->getAccount()) {
         if ($account->getIdentifyCode() == $accountCode) {
             return $this;
         }
     }
     $expiredTime = $this->_getConfigHelper()->getGeneralConfig('expired_time');
     $cookie = Mage::getSingleton('core/cookie');
     if ($expiredTime) {
         $cookie->setLifeTime(intval($expiredTime) * 86400);
     }
     $current_index = $cookie->get('affiliateplus_map_index');
     $addCookie = new Varien_Object(array('existed' => false));
     for ($i = intval($current_index); $i > 0; $i--) {
         if ($cookie->get("affiliateplus_account_code_{$i}") == $accountCode) {
             $addCookie->setExisted(true);
             $addCookie->setIndex($i);
             Mage::dispatchEvent('affiliateplus_controller_action_predispatch_add_cookie', array('request' => $request, 'add_cookie' => $addCookie, 'cookie' => $cookie));
             if ($addCookie->getExisted()) {
                 return $this;
             }
         }
     }
     $current_index = $current_index ? intval($current_index) + 1 : 1;
     $cookie->set('affiliateplus_map_index', $current_index);
     $cookie->set("affiliateplus_account_code_{$current_index}", $accountCode);
     $cookieParams = new Varien_Object(array('params' => array()));
     Mage::dispatchEvent('affiliateplus_controller_action_predispatch_observer', array('controller_action' => $controller, 'cookie_params' => $cookieParams, 'cookie' => $cookie));
     foreach ($cookieParams->getParams() as $key => $value) {
         $cookie->set("affiliateplus_{$key}" . "_{$current_index}", $value);
     }
     $account = Mage::getModel('affiliateplus/account')->loadByIdentifyCode($accountCode);
     if (!$account->getId()) {
         return $this;
     }
     $storeId = Mage::app()->getStore()->getId();
     if (!$storeId) {
         return $this;
     }
     $ipAddress = $request->getClientIp();
     $refererModel = Mage::getModel('affiliateplus/referer');
     $refererCollection = $refererModel->getCollection()->addFieldToFilter('account_id', $account->getId());
     if (!in_array($ipAddress, $refererCollection->getIpListArray())) {
         $account->setUniqueClicks($account->getUniqueClicks() + 1);
         try {
             $account->save();
         } catch (Exception $e) {
         }
     }
     $account->setStoreId($storeId)->load($account->getId());
     $refererCollection->addFieldToFilter('store_id', $storeId);
     if (!in_array($ipAddress, $refererCollection->getIpListArray())) {
         if ($account->getUniqueClicksInStore()) {
             $account->setUniqueClicks($account->getUniqueClicks() + 1);
         } else {
             $account->setUniqueClicks(1);
         }
     }
     $account->setTotalClicks($account->getTotalClicks() + 1);
     try {
         $account->save();
     } catch (Exception $e) {
     }
     $httpReferrerInfo = parse_url($request->getServer('HTTP_REFERER'));
     $referer = $httpReferrerInfo['host'];
     $refererModel->loadExistReferer($account->getId(), $referer, $storeId, $request->getOriginalRequest()->getPathInfo());
     Mage::dispatchEvent('affiliateplus_referrer_load_existed', array('referrer_model' => $refererModel, 'controller_action' => $controller));
     try {
         $refererModel->setIpAddress($ipAddress)->save();
     } catch (Exception $e) {
     }
     return $this;
 }