Mage_Adminhtml_PollController Class Reference

Inheritance diagram for Mage_Adminhtml_PollController:

Mage_Adminhtml_Controller_Action Mage_Core_Controller_Varien_Action

List of all members.

Public Member Functions

 indexAction ()
 editAction ()
 deleteAction ()
 saveAction ()
 newAction ()
 validateAction ()

Protected Member Functions

 _isAllowed ()


Detailed Description

Definition at line 34 of file PollController.php.


Member Function Documentation

_isAllowed (  )  [protected]

Reimplemented from Mage_Adminhtml_Controller_Action.

Definition at line 193 of file PollController.php.

00194     {
00195         return Mage::getSingleton('admin/session')->isAllowed('cms/poll');
00196     }

deleteAction (  ) 

Definition at line 72 of file PollController.php.

00073     {
00074         if ($id = $this->getRequest()->getParam('id')) {
00075             try {
00076                 $model = Mage::getModel('poll/poll');
00077                 $model->setId($id);
00078                 $model->delete();
00079                 Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Poll was successfully deleted'));
00080                 $this->_redirect('*/*/');
00081                 return;
00082             }
00083             catch (Exception $e) {
00084                 Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
00085                 $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
00086                 return;
00087             }
00088         }
00089         Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Unable to find a poll to delete'));
00090         $this->_redirect('*/*/');
00091     }

editAction (  ) 

Definition at line 47 of file PollController.php.

00048     {
00049         $pollId     = $this->getRequest()->getParam('id');
00050         $pollModel  = Mage::getModel('poll/poll')->load($pollId);
00051 
00052         if ($pollModel->getId() || $pollId == 0) {
00053 
00054             Mage::register('poll_data', $pollModel);
00055 
00056             $this->loadLayout();
00057             $this->_setActiveMenu('cms/poll');
00058             $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Poll Manager'), Mage::helper('adminhtml')->__('Poll Manager'), $this->getUrl('*/*/'));
00059             $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Edit Poll'), Mage::helper('adminhtml')->__('Edit Poll'));
00060 
00061             $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
00062             $this->_addContent($this->getLayout()->createBlock('adminhtml/poll_edit'))
00063                 ->_addLeft($this->getLayout()->createBlock('adminhtml/poll_edit_tabs'));
00064 
00065             $this->renderLayout();
00066         } else {
00067             Mage::getSingleton('adminhtml/session')->addError(Mage::helper('poll')->__('Poll not exists'));
00068             $this->_redirect('*/*/');
00069         }
00070     }

indexAction (  ) 

Definition at line 37 of file PollController.php.

00038     {
00039         $this->loadLayout();
00040         $this->_setActiveMenu('cms/poll');
00041         $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Poll Manager'), Mage::helper('adminhtml')->__('Poll Manager'));
00042 
00043         $this->_addContent($this->getLayout()->createBlock('adminhtml/poll_poll'));
00044         $this->renderLayout();
00045     }

newAction (  ) 

Definition at line 100 of file PollController.php.

00101     {
00102         $this->getRequest()->setParam('id', 0);
00103         $this->_forward('edit');
00104     }

saveAction (  ) 

Definition at line 93 of file PollController.php.

00094     {
00095         Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Poll was successfully saved'));
00096         Mage::getSingleton('adminhtml/session')->setPollData(false);
00097         $this->_redirect('*/*/');
00098     }

validateAction (  ) 

Definition at line 106 of file PollController.php.

00107     {
00108         $response = new Varien_Object();
00109         $response->setError(false);
00110 
00111         if ( $this->getRequest()->getPost() ) {
00112             try {
00113                 $pollModel = Mage::getModel('poll/poll');
00114 
00115                 if( !$this->getRequest()->getParam('id') ) {
00116                     $pollModel->setDatePosted(now());
00117                 }
00118 
00119                 if( $this->getRequest()->getParam('closed') && !$this->getRequest()->getParam('was_closed') ) {
00120                     $pollModel->setDateClosed(now());
00121                 }
00122 
00123                 if( !$this->getRequest()->getParam('closed') ) {
00124                     $pollModel->setDateClosed(new Zend_Db_Expr('null'));
00125                 }
00126 
00127                 $pollModel->setPollTitle($this->getRequest()->getParam('poll_title'))
00128                       ->setClosed($this->getRequest()->getParam('closed'));
00129 
00130                 if( $this->getRequest()->getParam('id') > 0 ) {
00131                     $pollModel->setId($this->getRequest()->getParam('id'));
00132                 }
00133 
00134                 $stores = $this->getRequest()->getParam('store_ids');
00135                 if (!is_array($stores) || count($stores) == 0) {
00136                     Mage::throwException(Mage::helper('adminhtml')->__('Please, select visible in stores to this poll first'));
00137                 }
00138 
00139                 if (is_array($stores)) {
00140                     $storeIds = array();
00141                     foreach ($stores as $storeId) {
00142                         $storeIds[] = $storeId;
00143                     }
00144                     $pollModel->setStoreIds($storeIds);
00145                 }
00146 
00147                 $answers = $this->getRequest()->getParam('answer');
00148 
00149                 if( !is_array($answers) || sizeof($answers) == 0 ) {
00150                     Mage::throwException(Mage::helper('adminhtml')->__('Please, add a few answers to this poll first'));
00151                 }
00152 
00153                 if( is_array($answers) ) {
00154                     $_titles = array();
00155                     foreach( $answers as $key => $answer ) {
00156                         if( in_array($answer['title'], $_titles) ) {
00157                             Mage::throwException(Mage::helper('adminhtml')->__('Your answers contain duplicates.'));
00158                         }
00159                         $_titles[] = $answer['title'];
00160 
00161                         $answerModel = Mage::getModel('poll/poll_answer');
00162                         if( intval($key) > 0 ) {
00163                             $answerModel->setId($key);
00164                         }
00165                         $answerModel->setAnswerTitle($answer['title'])
00166                             ->setVotesCount($answer['votes']);
00167 
00168                         $pollModel->addAnswer($answerModel);
00169                     }
00170                 }
00171 
00172                 $pollModel->save();
00173 
00174                 $answersDelete = $this->getRequest()->getParam('deleteAnswer');
00175                 if( is_array($answersDelete) ) {
00176                     foreach( $answersDelete as $answer ) {
00177                         $answerModel = Mage::getModel('poll/poll_answer');
00178                         $answerModel->setId($answer)
00179                             ->delete();
00180                     }
00181                 }
00182             }
00183             catch (Exception $e) {
00184                 Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
00185                 $this->_initLayoutMessages('adminhtml/session');
00186                 $response->setError(true);
00187                 $response->setMessage($this->getLayout()->getMessagesBlock()->getGroupedHtml());
00188             }
00189         }
00190         $this->getResponse()->setBody($response->toJson());
00191     }


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

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