00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Reports 00023 * @copyright Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 /** 00028 * Events model 00029 * 00030 * @category Mage 00031 * @package Mage_Reports 00032 * @author Magento Core Team <core@magentocommerce.com> 00033 */ 00034 class Mage_Reports_Model_Event extends Mage_Core_Model_Abstract 00035 { 00036 const EVENT_PRODUCT_VIEW = 1; 00037 const EVENT_PRODUCT_SEND = 2; 00038 const EVENT_PRODUCT_COMPARE = 3; 00039 const EVENT_PRODUCT_TO_CART = 4; 00040 const EVENT_PRODUCT_TO_WISHLIST = 5; 00041 const EVENT_WISHLIST_SHARE = 6; 00042 00043 /** 00044 * Initialize resource 00045 * 00046 */ 00047 protected function _construct() 00048 { 00049 $this->_init('reports/event'); 00050 } 00051 00052 /** 00053 * Before Event save process 00054 * 00055 * @return Mage_Reports_Model_Event 00056 */ 00057 protected function _beforeSave() 00058 { 00059 $this->setLoggedAt(Mage::getModel('core/date')->gmtDate()); 00060 return parent::_beforeSave(); 00061 } 00062 00063 /** 00064 * Update customer type after customer login 00065 * 00066 * @param int $visitorId 00067 * @param int $customerId 00068 * @param array $types 00069 * @return Mage_Reports_Model_Event 00070 */ 00071 public function updateCustomerType($visitorId, $customerId, $types = null) 00072 { 00073 if (is_null($types)) { 00074 $types = array(); 00075 foreach (Mage::getModel('reports/event_type')->getCollection() as $eventType) { 00076 if ($eventType->getCustomerLogin()) { 00077 $types[$eventType->getId()] = $eventType->getId(); 00078 } 00079 } 00080 } 00081 $this->getResource()->updateCustomerType($this, $visitorId, $customerId, $types); 00082 return $this; 00083 } 00084 00085 /** 00086 * Clean events (visitors) 00087 * 00088 * @return Mage_Reports_Model_Event 00089 */ 00090 public function clean() 00091 { 00092 $this->getResource()->clean($this); 00093 return $this; 00094 } 00095 }