/** * Retrieve review data as xml object * * @param Mage_Review_Model_Review $review * @param string $itemNodeName * @return Mage_XmlConnect_Model_Simplexml_Element */ public function reviewToXmlObject(Mage_Review_Model_Review $review, $itemNodeName = 'item') { $rating = 0; /** @var $item Mage_XmlConnect_Model_Simplexml_Element */ $item = Mage::getModel('xmlconnect/simplexml_element', '<' . $itemNodeName . '></' . $itemNodeName . '>'); if ($review->getId()) { $item->addChild('review_id', $review->getId()); $item->addChild('created_at', $this->formatDate($review->getCreatedAt())); $item->addChild('title', $item->escapeXml($review->getTitle())); $item->addChild('nickname', $item->escapeXml($review->getNickname())); $detail = $item->escapeXml($review->getDetail()); if ($itemNodeName == 'item') { $remainder = ''; $deviceType = Mage::helper('xmlconnect')->getDeviceType(); if ($deviceType != Mage_XmlConnect_Helper_Data::DEVICE_TYPE_IPAD) { $detail = Mage::helper('core/string')->truncate($detail, self::REVIEW_DETAIL_TRUNCATE_LEN, '', $remainder, false); } } $item->addChild('detail', $detail); $summary = Mage::getModel('rating/rating')->getReviewSummary($review->getId()); if ($summary->getCount() > 0) { $rating = round($summary->getSum() / $summary->getCount() / 10); } if ($rating) { $item->addChild('rating_votes', $rating); } } return $item; }
/** * @param Mage_Review_Model_Review $review * @return string */ public function getTitle($review) { return $review->getTitle(); }
/** * set title for the review */ public function setTitle() { parent::setTitle($this->item->getTitle()); }
public function _prepareUpdateData(Mage_Review_Model_Review $review) { $data = array('detail' => array('title' => strip_tags($review->getTitle()), 'detail' => strip_tags($review->getDetail()), 'nickname' => strip_tags($review->getNickname())), 'base' => array('status_id' => $review->getStatusId())); if ($review->hasData('stores') && is_array($review->getStores())) { $stores = $review->getStores(); $stores[] = 0; $data['stores'] = $stores; } elseif ($review->hasData('stores')) { $data['stores'] = array(); } return $data; }