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_Review
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: * Review helper
29: *
30: * @category Mage
31: * @package Mage_Review
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Review_Block_Helper extends Mage_Core_Block_Template
35: {
36: protected $_availableTemplates = array(
37: 'default' => 'review/helper/summary.phtml',
38: 'short' => 'review/helper/summary_short.phtml'
39: );
40:
41: public function getSummaryHtml($product, $templateType, $displayIfNoReviews)
42: {
43: // pick template among available
44: if (empty($this->_availableTemplates[$templateType])) {
45: $templateType = 'default';
46: }
47: $this->setTemplate($this->_availableTemplates[$templateType]);
48:
49: $this->setDisplayIfEmpty($displayIfNoReviews);
50:
51: if (!$product->getRatingSummary()) {
52: Mage::getModel('review/review')
53: ->getEntitySummary($product, Mage::app()->getStore()->getId());
54: }
55: $this->setProduct($product);
56:
57: return $this->toHtml();
58: }
59:
60: public function getRatingSummary()
61: {
62: return $this->getProduct()->getRatingSummary()->getRatingSummary();
63: }
64:
65: public function getReviewsCount()
66: {
67: return $this->getProduct()->getRatingSummary()->getReviewsCount();
68: }
69:
70: public function getReviewsUrl()
71: {
72: return Mage::getUrl('review/product/list', array(
73: 'id' => $this->getProduct()->getId(),
74: 'category' => $this->getProduct()->getCategoryId()
75: ));
76: }
77:
78: /**
79: * Add an available template by type
80: *
81: * It should be called before getSummaryHtml()
82: *
83: * @param string $type
84: * @param string $template
85: */
86: public function addTemplate($type, $template)
87: {
88: $this->_availableTemplates[$type] = $template;
89: }
90: }
91: