1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Adminhtml
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Adminhtml sales order create sidebar recently view block
29: *
30: * @category Mage
31: * @package Mage_Adminhtml
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34:
35: class Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Pviewed extends Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Abstract
36: {
37: protected function _construct()
38: {
39: parent::_construct();
40: $this->setId('sales_order_create_sidebar_pviewed');
41: $this->setDataId('pviewed');
42: }
43:
44: public function getHeaderText()
45: {
46: return Mage::helper('sales')->__('Recently Viewed Products');
47: }
48:
49: /**
50: * Retrieve item collection
51: *
52: * @return mixed
53: */
54: public function getItemCollection()
55: {
56: $productCollection = $this->getData('item_collection');
57: if (is_null($productCollection)) {
58: $stores = array();
59: $website = Mage::app()->getStore($this->getStoreId())->getWebsite();
60: foreach ($website->getStores() as $store) {
61: $stores[] = $store->getId();
62: }
63:
64: $collection = Mage::getModel('reports/event')
65: ->getCollection()
66: ->addStoreFilter($stores)
67: ->addRecentlyFiler(Mage_Reports_Model_Event::EVENT_PRODUCT_VIEW, $this->getCustomerId(), 0);
68: $productIds = array();
69: foreach ($collection as $event) {
70: $productIds[] = $event->getObjectId();
71: }
72:
73: $productCollection = null;
74: if ($productIds) {
75: $productCollection = Mage::getModel('catalog/product')
76: ->getCollection()
77: ->setStoreId($this->getQuote()->getStoreId())
78: ->addStoreFilter($this->getQuote()->getStoreId())
79: ->addAttributeToSelect('name')
80: ->addAttributeToSelect('price')
81: ->addAttributeToSelect('small_image')
82: ->addIdFilter($productIds)
83: ->load();
84: }
85: $this->setData('item_collection', $productCollection);
86: }
87: return $productCollection;
88: }
89:
90: /**
91: * Retrieve availability removing items in block
92: *
93: * @return bool
94: */
95: public function canRemoveItems()
96: {
97: return false;
98: }
99:
100: /**
101: * Retrieve identifier of block item
102: *
103: * @param Varien_Object $item
104: * @return int
105: */
106: public function getIdentifierId($item)
107: {
108: return $item->getId();
109: }
110: }
111: