1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
26:
27: 28: 29: 30: 31: 32: 33:
34:
35: class Mage_Review_Block_Customer_View extends Mage_Catalog_Block_Product_Abstract
36: {
37: public function __construct()
38: {
39: parent::__construct();
40: $this->setTemplate('review/customer/view.phtml');
41:
42: $this->setReviewId($this->getRequest()->getParam('id', false));
43: }
44:
45: public function getProductData()
46: {
47: if( $this->getReviewId() && !$this->getProductCacheData() ) {
48: $product = Mage::getModel('catalog/product')
49: ->setStoreId(Mage::app()->getStore()->getId())
50: ->load($this->getReviewData()->getEntityPkValue());
51: $this->setProductCacheData($product);
52: }
53: return $this->getProductCacheData();
54: }
55:
56: public function getReviewData()
57: {
58: if( $this->getReviewId() && !$this->getReviewCachedData() ) {
59: $this->setReviewCachedData(Mage::getModel('review/review')->load($this->getReviewId()));
60: }
61: return $this->getReviewCachedData();
62: }
63:
64: public function getBackUrl()
65: {
66: return Mage::getUrl('review/customer');
67: }
68:
69: public function getRating()
70: {
71: if( !$this->getRatingCollection() ) {
72: $ratingCollection = Mage::getModel('rating/rating_option_vote')
73: ->getResourceCollection()
74: ->setReviewFilter($this->getReviewId())
75: ->addRatingInfo(Mage::app()->getStore()->getId())
76: ->setStoreFilter(Mage::app()->getStore()->getId())
77: ->load();
78:
79: $this->setRatingCollection( ( $ratingCollection->getSize() ) ? $ratingCollection : false );
80: }
81:
82: return $this->getRatingCollection();
83: }
84:
85: public function getRatingSummary()
86: {
87: if( !$this->getRatingSummaryCache() ) {
88: $this->setRatingSummaryCache(Mage::getModel('rating/rating')->getEntitySummary($this->getProductData()->getId()));
89: }
90: return $this->getRatingSummaryCache();
91: }
92:
93: public function getTotalReviews()
94: {
95: if( !$this->getTotalReviewsCache() ) {
96: $this->setTotalReviewsCache(Mage::getModel('review/review')->getTotalReviews($this->getProductData()->getId()), false, Mage::app()->getStore()->getId());
97: }
98: return $this->getTotalReviewsCache();
99: }
100:
101: public function dateFormat($date)
102: {
103: return $this->formatDate($date, Mage_Core_Model_Locale::FORMAT_TYPE_LONG);
104: }
105:
106: 107: 108: 109: 110:
111: public function isReviewOwner()
112: {
113: return ($this->getReviewData()->getCustomerId() == Mage::getSingleton('customer/session')->getCustomerId());
114: }
115: }
116: