00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 class Mage_Reports_Model_Event_Observer
00036 {
00037 protected function _event($eventTypeId, $objectId, $subjectId = null, $subtype = 0)
00038 {
00039 if (is_null($subjectId)) {
00040 if (Mage::getSingleton('customer/session')->isLoggedIn()) {
00041 $customer = Mage::getSingleton('customer/session')->getCustomer();
00042 $subjectId = $customer->getId();
00043 }
00044 else {
00045 $subjectId = Mage::getSingleton('log/visitor')->getId();
00046 $subtype = 1;
00047 }
00048 }
00049
00050 $eventModel = Mage::getModel('reports/event');
00051 $storeId = Mage::app()->getStore()->getId();
00052 $eventModel
00053 ->setEventTypeId($eventTypeId)
00054 ->setObjectId($objectId)
00055 ->setSubjectId($subjectId)
00056 ->setSubtype($subtype)
00057 ->setStoreId($storeId);
00058 $eventModel->save();
00059
00060 return $this;
00061 }
00062
00063 public function customerLogin(Varien_Event_Observer $observer) {
00064 if (!Mage::getSingleton('customer/session')->isLoggedIn()) {
00065 return $this;
00066 }
00067 $customer = Mage::getSingleton('customer/session')->getCustomer();
00068 $visitorId = Mage::getSingleton('log/visitor')->getId();
00069 $customerId = $customer->getId();
00070 $eventModel = Mage::getModel('reports/event');
00071 $eventModel->updateCustomerType($visitorId, $customerId);
00072 }
00073
00074 public function catalogProductView(Varien_Event_Observer $observer)
00075 {
00076 Mage::getSingleton('reports/session')->setData('viewed_products', true);
00077 return $this->_event(
00078 Mage_Reports_Model_Event::EVENT_PRODUCT_VIEW,
00079 $observer->getEvent()->getProduct()->getId()
00080 );
00081 }
00082
00083 public function sendfriendProduct(Varien_Event_Observer $observer)
00084 {
00085 return $this->_event(
00086 Mage_Reports_Model_Event::EVENT_PRODUCT_SEND,
00087 $observer->getEvent()->getProduct()->getId()
00088 );
00089 }
00090
00091 public function catalogProductCompareRemoveProduct(Varien_Event_Observer $observer)
00092 {
00093 Mage::getSingleton('reports/session')->setData('compared_products', null);
00094 }
00095
00096 public function catalogProductCompareAddProduct(Varien_Event_Observer $observer)
00097 {
00098 Mage::getSingleton('reports/session')->setData('compared_products', true);
00099 return $this->_event(
00100 Mage_Reports_Model_Event::EVENT_PRODUCT_COMPARE,
00101 $observer->getEvent()->getProduct()->getId()
00102 );
00103 }
00104
00105 public function checkoutCartAddProduct(Varien_Event_Observer $observer)
00106 {
00107 $quoteItem = $observer->getEvent()->getItem();
00108 if (!$quoteItem->getId() && !$quoteItem->getParentItem()) {
00109 $productId = $quoteItem->getProductId();
00110 $this->_event(Mage_Reports_Model_Event::EVENT_PRODUCT_TO_CART, $productId);
00111 }
00112 return $this;
00113 }
00114
00115 public function wishlistAddProduct(Varien_Event_Observer $observer)
00116 {
00117 return $this->_event(
00118 Mage_Reports_Model_Event::EVENT_PRODUCT_TO_WISHLIST,
00119 $observer->getEvent()->getProduct()->getId()
00120 );
00121 }
00122
00123 public function wishlistShare(Varien_Event_Observer $observer)
00124 {
00125 return $this->_event(
00126 Mage_Reports_Model_Event::EVENT_WISHLIST_SHARE,
00127 $observer->getEvent()->getWishlist()->getId()
00128 );
00129 }
00130
00131
00132
00133
00134
00135
00136
00137 public function eventClean(Varien_Event_Observer $observer)
00138 {
00139 $event = Mage::getModel('reports/event');
00140
00141 $event->clean();
00142
00143 return $this;
00144 }
00145 }