Mage_Adminhtml_Catalog_Product_ReviewController Class Reference

Inheritance diagram for Mage_Adminhtml_Catalog_Product_ReviewController:

Mage_Adminhtml_Controller_Action Mage_Core_Controller_Varien_Action

List of all members.

Public Member Functions

 indexAction ()
 pendingAction ()
 editAction ()
 newAction ()
 saveAction ()
 deleteAction ()
 massDeleteAction ()
 massUpdateStatusAction ()
 massVisibleInAction ()
 productGridAction ()
 reviewGridAction ()
 jsonProductInfoAction ()
 postAction ()
 ratingItemsAction ()

Protected Member Functions

 _isAllowed ()


Detailed Description

Definition at line 35 of file ReviewController.php.


Member Function Documentation

_isAllowed (  )  [protected]

Reimplemented from Mage_Adminhtml_Controller_Action.

Definition at line 323 of file ReviewController.php.

00324     {
00325         switch ($this->getRequest()->getActionName()) {
00326             case 'pending':
00327                 return Mage::getSingleton('admin/session')->isAllowed('catalog/reviews_ratings/reviews/pending');
00328                 break;
00329             default:
00330                 return Mage::getSingleton('admin/session')->isAllowed('catalog/reviews_ratings/reviews/all');
00331                 break;
00332         }
00333     }

deleteAction (  ) 

Definition at line 136 of file ReviewController.php.

00137     {
00138         $reviewId = $this->getRequest()->getParam('id', false);
00139 
00140         try {
00141             Mage::getModel('review/review')->setId($reviewId)
00142                 ->aggregate()
00143                 ->delete();
00144 
00145             Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('catalog')->__('Review successfully deleted'));
00146             if( $this->getRequest()->getParam('ret') == 'pending' ) {
00147                 $this->getResponse()->setRedirect($this->getUrl('*/*/pending'));
00148             } else {
00149                 $this->getResponse()->setRedirect($this->getUrl('*/*/'));
00150             }
00151             return;
00152         } catch (Exception $e){
00153             Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
00154         }
00155 
00156         $this->_redirectReferer();
00157     }

editAction (  ) 

Definition at line 67 of file ReviewController.php.

00068     {
00069         $this->loadLayout();
00070         $this->_setActiveMenu('catalog/review');
00071 
00072         $this->_addContent($this->getLayout()->createBlock('adminhtml/review_edit'));
00073 
00074         $this->renderLayout();
00075     }

indexAction (  ) 

Definition at line 37 of file ReviewController.php.

00038     {
00039         if ($this->getRequest()->getParam('ajax')) {
00040             return $this->_forward('reviewGrid');
00041         }
00042 
00043         $this->loadLayout();
00044         $this->_setActiveMenu('catalog/review');
00045 
00046         $this->_addContent($this->getLayout()->createBlock('adminhtml/review_main'));
00047 
00048         $this->renderLayout();
00049     }

jsonProductInfoAction (  ) 

Definition at line 252 of file ReviewController.php.

00253     {
00254         $response = new Varien_Object();
00255         $id = $this->getRequest()->getParam('id');
00256         if( intval($id) > 0 ) {
00257             $product = Mage::getModel('catalog/product')
00258                 ->load($id);
00259 
00260             $response->setId($id);
00261             $response->addData($product->getData());
00262             $response->setError(0);
00263         } else {
00264             $response->setError(1);
00265             $response->setMessage(Mage::helper('catalog')->__('Unable to get product id.'));
00266         }
00267         $this->getResponse()->setBody($response->toJSON());
00268     }

massDeleteAction (  ) 

Definition at line 159 of file ReviewController.php.

00160     {
00161         $reviewsIds = $this->getRequest()->getParam('reviews');
00162         if(!is_array($reviewsIds)) {
00163              Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select review(s)'));
00164         } else {
00165             try {
00166                 foreach ($reviewsIds as $reviewId) {
00167                     $model = Mage::getModel('review/review')->load($reviewId);
00168                     $model->delete();
00169                 }
00170                 Mage::getSingleton('adminhtml/session')->addSuccess(
00171                     Mage::helper('adminhtml')->__('Total of %d record(s) were successfully deleted', count($reviewsIds))
00172                 );
00173             } catch (Exception $e) {
00174                 Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
00175             }
00176         }
00177 
00178         $this->_redirect('*/*/pending');
00179     }

massUpdateStatusAction (  ) 

Definition at line 181 of file ReviewController.php.

00182     {
00183         $reviewsIds = $this->getRequest()->getParam('reviews');
00184         if(!is_array($reviewsIds)) {
00185              Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select review(s)'));
00186         } else {
00187             $session = Mage::getSingleton('adminhtml/session');
00188             /* @var $session Mage_Adminhtml_Model_Session */
00189             try {
00190                 $status = $this->getRequest()->getParam('status');
00191                 foreach ($reviewsIds as $reviewId) {
00192                     $model = Mage::getModel('review/review')->load($reviewId);
00193                     $model->setStatusId($status)
00194                         ->save()
00195                         ->aggregate();
00196                 }
00197                 $session->addSuccess(
00198                     Mage::helper('adminhtml')->__('Total of %d record(s) were successfully updated', count($reviewsIds))
00199                 );
00200             }
00201             catch (Mage_Core_Exception $e) {
00202                 $session->addException($e->getMessage());
00203             }
00204             catch (Exception $e) {
00205                 $session->addError(Mage::helper('adminhtml')->__('Error while updating selected review(s). Please try again later.'));
00206             }
00207         }
00208 
00209         $this->_redirect('*/*/pending');
00210     }

massVisibleInAction (  ) 

Definition at line 212 of file ReviewController.php.

00213     {
00214         $reviewsIds = $this->getRequest()->getParam('reviews');
00215         if(!is_array($reviewsIds)) {
00216              Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select review(s)'));
00217         } else {
00218             $session = Mage::getSingleton('adminhtml/session');
00219             /* @var $session Mage_Adminhtml_Model_Session */
00220             try {
00221                 $stores = $this->getRequest()->getParam('stores');
00222                 foreach ($reviewsIds as $reviewId) {
00223                     $model = Mage::getModel('review/review')->load($reviewId);
00224                     $model->setSelectStores($stores);
00225                     $model->save();
00226                 }
00227                 $session->addSuccess(
00228                     Mage::helper('adminhtml')->__('Total of %d record(s) were successfully updated', count($reviewsIds))
00229                 );
00230             }
00231             catch (Mage_Core_Exception $e) {
00232                 $session->addException($e->getMessage());
00233             }
00234             catch (Exception $e) {
00235                 $session->addError(Mage::helper('adminhtml')->__('Error while updating selected review(s). Please try again later.'));
00236             }
00237         }
00238 
00239         $this->_redirect('*/*/pending');
00240     }

newAction (  ) 

Definition at line 77 of file ReviewController.php.

00078     {
00079         $this->loadLayout();
00080         $this->_setActiveMenu('catalog/review');
00081 
00082         $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
00083 
00084         $this->_addContent($this->getLayout()->createBlock('adminhtml/review_add'));
00085         $this->_addContent($this->getLayout()->createBlock('adminhtml/review_product_grid'));
00086 
00087         $this->renderLayout();
00088     }

pendingAction (  ) 

Definition at line 51 of file ReviewController.php.

00052     {
00053         if ($this->getRequest()->getParam('ajax')) {
00054             Mage::register('usePendingFilter', true);
00055             return $this->_forward('reviewGrid');
00056         }
00057 
00058         $this->loadLayout();
00059         $this->_setActiveMenu('catalog/review');
00060 
00061         Mage::register('usePendingFilter', true);
00062         $this->_addContent($this->getLayout()->createBlock('adminhtml/review_main'));
00063 
00064         $this->renderLayout();
00065     }

postAction (  ) 

Definition at line 270 of file ReviewController.php.

00271     {
00272         $productId = $this->getRequest()->getParam('product_id', false);
00273         if ($data = $this->getRequest()->getPost()) {
00274             if(isset($data['select_stores'])) {
00275                 $data['stores'] = $data['select_stores'];
00276             }
00277 
00278             $review = Mage::getModel('review/review')->setData($data);
00279 
00280             $product = Mage::getModel('catalog/product')
00281                 ->load($productId);
00282 
00283             try {
00284                 $review->setEntityId(1) // product
00285                     ->setEntityPkValue($productId)
00286                     ->setStoreId($product->getStoreId())
00287                     ->setStatusId($data['status_id'])
00288                     ->setCustomerId(0)//0 is for administrator only
00289                     ->save();
00290 
00291                 $arrRatingId = $this->getRequest()->getParam('ratings', array());
00292                 foreach ($arrRatingId as $ratingId=>$optionId) {
00293                     Mage::getModel('rating/rating')
00294                        ->setRatingId($ratingId)
00295                        ->setReviewId($review->getId())
00296                        ->addOptionVote($optionId, $productId);
00297                 }
00298 
00299                 $review->aggregate();
00300 
00301                 Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('catalog')->__('Review was successfully saved'));
00302                 if( $this->getRequest()->getParam('ret') == 'pending' ) {
00303                     $this->getResponse()->setRedirect($this->getUrl('*/*/pending'));
00304                 } else {
00305                     $this->getResponse()->setRedirect($this->getUrl('*/*/'));
00306                 }
00307 
00308                 return;
00309             } catch (Exception $e){
00310                 die($e->getMessage());
00311                 Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
00312             }
00313         }
00314         $this->getResponse()->setRedirect($this->getUrl('*/*/'));
00315         return;
00316     }

productGridAction (  ) 

Definition at line 242 of file ReviewController.php.

00243     {
00244         $this->getResponse()->setBody($this->getLayout()->createBlock('adminhtml/review_product_grid')->toHtml());
00245     }

ratingItemsAction (  ) 

Definition at line 318 of file ReviewController.php.

00319     {
00320         $this->getResponse()->setBody($this->getLayout()->createBlock('adminhtml/review_rating_detailed')->setIndependentMode()->toHtml());
00321     }

reviewGridAction (  ) 

Definition at line 247 of file ReviewController.php.

00248     {
00249         $this->getResponse()->setBody($this->getLayout()->createBlock('adminhtml/review_grid')->toHtml());
00250     }

saveAction (  ) 

Definition at line 90 of file ReviewController.php.

00091     {
00092         $reviewId = $this->getRequest()->getParam('id', false);
00093         if ($data = $this->getRequest()->getPost()) {
00094             $review = Mage::getModel('review/review')->load($reviewId)->addData($data);
00095             try {
00096                 $review->setId($reviewId)
00097                     ->save();
00098 
00099                 $arrRatingId = $this->getRequest()->getParam('ratings', array());
00100                 $votes =  Mage::getModel('rating/rating_option_vote')
00101                     ->getResourceCollection()
00102                     ->setReviewFilter($reviewId)
00103                     ->addOptionInfo()
00104                     ->load()
00105                     ->addRatingOptions();
00106                 foreach ($arrRatingId as $ratingId=>$optionId) {
00107                     if($vote = $votes->getItemByColumnValue('rating_id', $ratingId)) {
00108                         Mage::getModel('rating/rating')
00109                             ->setVoteId($vote->getId())
00110                             ->setReviewId($review->getId())
00111                             ->updateOptionVote($optionId);
00112                     } else {
00113                         Mage::getModel('rating/rating')
00114                             ->setRatingId($ratingId)
00115                             ->setReviewId($review->getId())
00116                             ->addOptionVote($optionId, $review->getEntityPkValue());
00117                     }
00118                 }
00119 
00120                 $review->aggregate();
00121 
00122                 Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('catalog')->__('Review was saved successfully'));
00123                 if( $this->getRequest()->getParam('ret') == 'pending' ) {
00124                     $this->getResponse()->setRedirect($this->getUrl('*/*/pending'));
00125                 } else {
00126                     $this->getResponse()->setRedirect($this->getUrl('*/*/'));
00127                 }
00128                 return;
00129             } catch (Exception $e){
00130                 Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
00131             }
00132         }
00133         $this->_redirectReferer();
00134     }


The documentation for this class was generated from the following file:

Generated on Sat Jul 4 17:23:10 2009 for Magento by  doxygen 1.5.8