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_Catalog
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: /**
29: * Catalog product related items block
30: *
31: * @category Mage
32: * @package Mage_Catalog
33: * @author Magento Core Team <core@magentocommerce.com>
34: */
35:
36: class Mage_Catalog_Block_Product_List_Crosssell extends Mage_Catalog_Block_Product_Abstract
37: {
38: /**
39: * Default MAP renderer type
40: *
41: * @var string
42: */
43: protected $_mapRenderer = 'msrp_item';
44:
45: /**
46: * Crosssell item collection
47: *
48: * @var Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
49: */
50: protected $_itemCollection;
51:
52: /**
53: * Prepare crosssell items data
54: *
55: * @return Mage_Catalog_Block_Product_List_Crosssell
56: */
57: protected function _prepareData()
58: {
59: $product = Mage::registry('product');
60: /* @var $product Mage_Catalog_Model_Product */
61:
62: $this->_itemCollection = $product->getCrossSellProductCollection()
63: ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
64: ->setPositionOrder()
65: ->addStoreFilter();
66:
67: // Mage::getSingleton('catalog/product_status')->addSaleableFilterToCollection($this->_itemCollection);
68: Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($this->_itemCollection);
69:
70: $this->_itemCollection->load();
71:
72: foreach ($this->_itemCollection as $product) {
73: $product->setDoNotUseCategoryId(true);
74: }
75:
76: return $this;
77: }
78:
79: /**
80: * Before rendering html process
81: * Prepare items collection
82: *
83: * @return Mage_Catalog_Block_Product_List_Crosssell
84: */
85: protected function _beforeToHtml()
86: {
87: $this->_prepareData();
88: return parent::_beforeToHtml();
89: }
90:
91: /**
92: * Retrieve crosssell items collection
93: *
94: * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
95: */
96: public function getItems()
97: {
98: return $this->_itemCollection;
99: }
100:
101: }
102: