Пример #1
0
 public function createAction()
 {
     // only members can upload music
     if (!$this->_helper->requireUser()->isValid()) {
         return;
     }
     if (!$this->_helper->requireAuth()->setAuthParams('music_playlist', null, 'create')->isValid()) {
         return;
     }
     // catch uploads from FLASH fancy-uploader and redirect to uploadSongAction()
     if ($this->getRequest()->getQuery('ul', false)) {
         return $this->_forward('upload-song', null, null, array('format' => 'json'));
     }
     $this->view->form = $form = new Music_Form_Create();
     $this->view->playlist_id = $this->_getParam('playlist_id', '0');
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     // Process
     $db = Engine_Api::_()->getDbTable('playlists', 'music')->getAdapter();
     $db->beginTransaction();
     try {
         $playlist = $this->view->form->saveValues();
         $db->commit();
     } catch (Exception $e) {
         $db->rollback();
         throw $e;
     }
     return $this->_helper->redirector->gotoUrl($playlist->getHref(), array('prependBase' => false));
 }
Пример #2
0
 public function saveValues()
 {
     $playlist = parent::saveValues();
     $values = $this->getValues();
     if ($playlist && $playlist->isEditable()) {
         $playlist->title = $values['title'];
         $playlist->description = $values['description'];
         $playlist->search = $values['search'];
         $playlist->save();
         // Rebuild privacy
         $actionTable = Engine_Api::_()->getDbtable('actions', 'activity');
         foreach ($actionTable->getActionsByObject($playlist) as $action) {
             $actionTable->resetActivityBindings($action);
         }
         return $playlist;
     } else {
         return false;
     }
 }