Пример #1
0
 public function indexAction()
 {
     $numberOfWorks = $this->_getParam('numberOfWorks', 5);
     $request = Zend_Controller_Front::getInstance()->getRequest();
     if ($request->isPost()) {
         $this->getElement()->clearDecorators();
     }
     $workTable = new Book_Model_DbTable_Works();
     $workTableName = $workTable->info('name');
     $workSelect = $workTable->getSelect()->order("{$workTableName}.creation_date DESC");
     $workSelect->limit($numberOfWorks);
     $this->view->works = $works = $workTable->fetchAll($workSelect);
     $this->view->thumbnailOnly = $this->_getParam('thumbnailOnly', 0);
 }
Пример #2
0
 public function indexAction()
 {
     $request = Zend_Controller_Front::getInstance()->getRequest();
     if ($request->isPost()) {
         $this->getElement()->removeDecorator('title');
     }
     $numberOfWorks = $this->_getParam('itemCountPerPage');
     $workTable = new Book_Model_DbTable_Works();
     $workTableName = $workTable->info('name');
     $workSelect = $workTable->getSelect();
     $workSelect->limit($numberOfWorks);
     $workSelect->order('RAND()');
     $this->view->works = $workTable->fetchAll($workSelect);
 }
Пример #3
0
 public function indexAction()
 {
     // Get subject and check auth
     $subject = Engine_Api::_()->core()->getSubject();
     $workTable = new Book_Model_DbTable_Works();
     $workTableName = $workTable->info(Zend_Db_Table_Abstract::NAME);
     $workSelect = $workTable->getSelect();
     $workSelect->where("{$workTableName}.user_id = ?", $subject->getIdentity());
     $workSelect->order("{$workTableName}.creation_date DESC");
     $this->view->works = $works = $workTable->fetchAll($workSelect);
     // Do not render if nothing to show
     if (count($works) == 0) {
         return $this->setNoRender();
     }
 }
Пример #4
0
 public function createAction()
 {
     if (!$this->_helper->requireUser()->isValid()) {
         return;
     }
     $viewer = Engine_Api::_()->user()->getViewer();
     $this->view->form = $form = new Book_Form_Work(array('workTitle' => 'Post your work'));
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     $values = $form->getValues();
     $db = Engine_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     try {
         $workTable = new Book_Model_DbTable_Works();
         $work = $workTable->createRow($values);
         $work->creation_date = date('Y-m-d H:i:s');
         $work->modified_date = $work->creation_date;
         $work->user_id = $viewer->getIdentity();
         $work->save();
         if (!empty($values['photo'])) {
             $work = $work->setPhoto($form->photo);
         }
         // CREATE AUTH STUFF HERE
         $auth = Engine_Api::_()->authorization()->context;
         $roles = array('owner', 'parent_member', 'registered', 'everyone');
         foreach ($roles as $i => $role) {
             $auth->setAllowed($work, $role, 'view', true);
         }
         if (!$work->is_long) {
             $chapterTbl = new Book_Model_DbTable_Chapters();
             $chapter = $chapterTbl->createRow(array('title' => null, 'content' => trim($values['content']), 'work_id' => $work->getIdentity(), 'published' => $values['published']));
             $chapter->save();
         }
         $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
         throw $e;
     }
     if ($work->published) {
         $actionTbl = Engine_Api::_()->getDbTable('actions', 'activity');
         $action = $actionTbl->addActivity($viewer, $work, 'work_new');
     }
     $this->_redirectCustom($work->getHref());
 }