public function deletesAction()
 {
     // In smoothbox
     $this->_helper->layout->setLayout('admin-simple');
     if ($this->getRequest()->isPost()) {
         $ids = $this->_getParam('id');
         $bookTbl = new Book_Model_DbTable_Books();
         if (!empty($ids) && is_array($ids)) {
             $bookSelect = $bookTbl->getSelect();
             $bookSelect->where('book_id IN (?)', $ids);
             $books = $bookTbl->fetchAll($bookSelect);
             $db = Engine_Db_Table::getDefaultAdapter();
             $db->beginTransaction();
             try {
                 foreach ($books as $book) {
                     $book->delete();
                 }
                 $db->commit();
             } catch (Exception $e) {
                 $db->rollBack();
                 throw $e;
             }
             return $this->_forward('success', 'utility', 'core', array('layout' => 'default-simple', 'parentRefresh' => true, 'messages' => array(Zend_Registry::get('Zend_Translate')->_('The books are deleted successfully.'))));
         }
     }
 }
Esempio n. 2
0
 public function indexAction()
 {
     $request = Zend_Controller_Front::getInstance()->getRequest();
     if ($request->isPost()) {
         $this->getElement()->clearDecorators();
     }
     $numberOfBooks = $this->_getParam('itemCountPerPage', 12);
     $bookTable = new Book_Model_DbTable_Books();
     $bookSelect = $bookTable->getSelect();
     $bookSelect->limit($numberOfBooks);
     $bookSelect->order('RAND()');
     $this->view->paginator = $paginator = Zend_Paginator::factory($bookSelect);
     if ($paginator->getTotalItemCount() == 0) {
         return $this->setNoRender();
     }
     if ($paginator->getTotalItemCount() == 0) {
         return $this->setNoRender();
     }
     $itemCountPerPage = $this->_getParam('itemCountPerPage', 12);
     if (empty($itemCountPerPage)) {
         $itemCountPerPage = 12;
     }
     $paginator->setItemCountPerPage($itemCountPerPage);
     $paginator->setCurrentPageNumber($this->_getParam('page', 1));
 }
Esempio n. 3
0
 public function indexAction()
 {
     if (!Engine_Api::_()->core()->hasSubject()) {
         return $this->setNoRender();
     }
     $subject = Engine_Api::_()->core()->getSubject();
     if ($subject->getType() == 'user' && $subject->level_id == Book_Plugin_Constants::AUTHOR_LEVEL) {
         $bookTable = new Book_Model_DbTable_Books();
         $bookTableName = $bookTable->info('name');
         $bookSelect = $bookTable->getSelect();
         $bookAuthorTable = new Book_Model_DbTable_BookAuthor();
         $bookAuthorTableName = $bookAuthorTable->info('name');
         $bookSelect->join($bookAuthorTableName, "{$bookTableName}.book_id = {$bookAuthorTableName}.book_id");
         $bookSelect->where("{$bookAuthorTableName}.author_id = ?", $subject->getIdentity());
         $bookSelect->order('RAND()');
         $this->view->paginator = $paginator = Zend_Paginator::factory($bookSelect);
         $paginator->setItemCountPerPage($this->_getParam('itemCountPerPage', 5));
         $paginator->setCurrentPageNumber($this->_getParam('page', 1));
         $itemCount = $paginator->getTotalItemCount();
         if ($itemCount == 0) {
             return $this->setNoRender();
         } else {
             $this->_childCount = $paginator->getTotalItemCount();
             $paginator->setItemCountPerPage($this->_getParam('itemCountPerPage', 10));
             $paginator->setCurrentPageNumber($this->_getParam('page', 1));
         }
     } else {
         return $this->setNoRender();
     }
 }
Esempio n. 4
0
 public function indexAction()
 {
     $request = Zend_Controller_Front::getInstance()->getRequest();
     if ($request->isPost()) {
         $this->getElement()->clearDecorators();
     }
     $bookTable = new Book_Model_DbTable_Books();
     $bookTableName = $bookTable->info(Zend_Db_Table_Abstract::NAME);
     $bookSelect = $bookTable->getSelect();
     $popularityTbl = new Book_Model_DbTable_Popularities();
     $popularityTblName = $popularityTbl->info(Zend_Db_Table_Abstract::NAME);
     $bookSelect->joinLeft($popularityTblName, "{$popularityTblName}.resource_id = {$bookTableName}.book_id", array("{$popularityTblName}.point"));
     $bookSelect->where("{$popularityTblName}.resource_type = ?", 'book');
     $bookSelect->order("{$popularityTblName}.point DESC");
     $bookSelect->order("{$popularityTblName}.posted_date DESC");
     $this->view->paginator = $paginator = Zend_Paginator::factory($bookSelect);
     if ($paginator->getTotalItemCount() == 0) {
         return $this->setNoRender();
     }
     $itemCountPerPage = $this->_getParam('itemCountPerPage', 12);
     if (empty($itemCountPerPage)) {
         $itemCountPerPage = 12;
     }
     $paginator->setItemCountPerPage($itemCountPerPage);
     $paginator->setCurrentPageNumber($this->_getParam('page', 1));
     $this->view->viewInfo = $this->_getParam('viewInfo');
 }
Esempio n. 5
0
 public function indexAction()
 {
     $numberOfBooks = $this->_getParam('itemCountPerPage', 5);
     $bookTable = new Book_Model_DbTable_Books();
     $bookSelect = $bookTable->getSelect();
     $bookSelect->limit($numberOfBooks);
     $bookSelect->order('RAND()');
     $this->view->books = $books = $bookTable->fetchAll($bookSelect);
 }
Esempio n. 6
0
 public function getBooksSelect($params = array(), $order_by = true)
 {
     $table = new Book_Model_DbTable_Books();
     $select = $table->getSelect();
     if (!empty($params['orderby'])) {
         $select->order($params['orderby']);
     }
     if (!empty($params['text'])) {
         $select->where("book_name LIKE ?", "%{$params['text']}%");
     }
     return $select;
 }
Esempio n. 7
0
 public function getNewestBooks($limit, $params = NULL)
 {
     $table = new Book_Model_DbTable_Books();
     $tableName = $table->info(Zend_Db_Table_Abstract::NAME);
     $select = $table->getSelect();
     $select->where("{$tableName}.category_id = ?", $this->getIdentity());
     if ($params && isset($params['text']) && !empty($params['text'])) {
         $select->where("{$tableName}.book_name LIKE ?", "%{$params['text']}%");
     }
     $select->limit($limit);
     return $table->fetchAll($select);
 }
Esempio n. 8
0
 public function indexAction()
 {
     $bookTable = new Book_Model_DbTable_Books();
     $signatureTable = new Book_Model_DbTable_Signatures();
     $signatureTableName = $signatureTable->info('name');
     $bookSelect = $bookTable->getSelect()->order("{$signatureTableName}.rating_count DESC");
     $this->view->paginator = $paginator = Zend_Paginator::factory($bookSelect);
     if ($paginator->getTotalItemCount() == 0) {
         return $this->setNoRender();
     }
     $paginator->setItemCountPerPage($this->_getParam('itemCountPerPage', 12));
     $paginator->setCurrentPageNumber($this->_getParam('page', 1));
 }
Esempio n. 9
0
 public function getTaggedBooks()
 {
     $tagTbl = new Book_Model_DbTable_Tags();
     $tagSelect = $tagTbl->select()->where('object_type = ?', 'book')->where('post_id = ?', $this->getIdentity());
     $bookIds = array();
     foreach ($tagTbl->fetchAll($tagSelect) as $row) {
         array_push($bookIds, $row->object_id);
     }
     if (!empty($bookIds)) {
         $bookTbl = new Book_Model_DbTable_Books();
         $bookTblName = $bookTbl->info(Zend_Db_Table_Abstract::NAME);
         $bookSelect = $bookTbl->getSelect();
         $bookSelect->where("{$bookTblName}.book_id in (?)", $bookIds);
         return $bookTbl->fetchAll($bookSelect);
     }
     return array();
 }
Esempio n. 10
0
 public function indexAction()
 {
     // Get subject and check auth
     $subject = Engine_Api::_()->core()->getSubject();
     $bookTable = new Book_Model_DbTable_Books();
     $bookTableName = $bookTable->info(Zend_Db_Table_Abstract::NAME);
     $bookSelect = $bookTable->getSelect();
     $bookSelect->where("{$bookTableName}.user_id = ?", $subject->getIdentity());
     $this->view->paginator = $paginator = Zend_Paginator::factory($bookSelect);
     // Do not render if nothing to show
     if ($paginator->getTotalItemCount() <= 0) {
         return $this->setNoRender();
     } else {
         $this->_childCount = $paginator->getTotalItemCount();
         $paginator->setItemCountPerPage($this->_getParam('itemCountPerPage', 10));
         $paginator->setCurrentPageNumber($this->_getParam('page', 1));
     }
 }
Esempio n. 11
0
 public function indexAction()
 {
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $catId = $request->getParam('category_id', NULL);
     $bookTable = new Book_Model_DbTable_Books();
     $select = $bookTable->getSelect();
     $params = $request->getParams();
     $page = $request->getParam('page', 1);
     if (!($catId == NULL || $catId == '')) {
         if (isset($params['text']) && !empty($params['text'])) {
             $bookTableName = $bookTable->info('name');
             $select->where("{$bookTableName}.book_name LIKE ?", "%{$params['text']}%");
         }
         $select->where('category_id = ?', $catId);
         $this->view->category = $category = Engine_Api::_()->getItem('book_category', $catId);
         $bookPaginator = Zend_Paginator::factory($select);
         $bookPaginator->setCurrentPageNumber($page);
         $bookPaginator->setItemCountPerPage(20);
         $this->view->bookPaginator = $bookPaginator;
     } else {
         $bookCategoryTable = new Book_Model_DbTable_Categories();
         $bookCategoryTableName = $bookCategoryTable->info('name');
         $bookTable = new Book_Model_DbTable_Books();
         $bookTableName = $bookTable->info('name');
         $categorySelect = $bookCategoryTable->select();
         $bookSelectExist = $bookTable->getSelect();
         if (isset($params['text']) && !empty($params['text'])) {
             $bookSelectExist->where("{$bookTableName}.book_name LIKE ?", "%{$params['text']}%");
         }
         $bookSelectExist->where("{$bookTableName}.category_id = {$bookCategoryTableName}.category_id");
         $categorySelect->where(new Zend_Db_Expr('exists (' . $bookSelectExist . ')'));
         $this->view->categoryPaginator = $categoryPaginator = Zend_Paginator::factory($categorySelect);
         $categoryPaginator->setCurrentPageNumber($page);
         $booksByCategory = array();
         foreach ($categoryPaginator->getCurrentItems() as $cat) {
             $booksByCategory[$cat->category_id] = array();
             foreach ($cat->getNewestBooks(10, $params) as $book) {
                 array_push($booksByCategory[$cat->category_id], $book);
             }
         }
         $this->view->booksByCategory = $booksByCategory;
         $this->view->numberOfBooks = Engine_Api::_()->book()->getTotalBookCount($params);
     }
 }
Esempio n. 12
0
 public function indexAction()
 {
     $request = Zend_Controller_Front::getInstance()->getRequest();
     if ($request->isPost()) {
         $this->getElement()->clearDecorators();
     }
     $bookTable = new Book_Model_DbTable_Books();
     $bookTableName = $bookTable->info('name');
     $bookSelect = $bookTable->getSelect()->order("{$bookTableName}.creation_date DESC");
     $this->view->paginator = $paginator = Zend_Paginator::factory($bookSelect);
     if ($paginator->getTotalItemCount() == 0) {
         return $this->setNoRender();
     }
     $itemCountPerPage = $this->_getParam('itemCountPerPage', 12);
     if (empty($itemCountPerPage)) {
         $itemCountPerPage = 12;
     }
     $this->view->paginator->setItemCountPerPage($itemCountPerPage);
     $this->view->paginator->setCurrentPageNumber($this->_getParam('page', 1));
     $this->view->viewInfo = $this->_getParam('viewInfo');
 }
Esempio n. 13
0
 public function indexAction()
 {
     $post = Engine_Api::_()->core()->getSubject();
     if (!empty($post->parent_object_type) && !empty($post->parent_object_id)) {
         if ($post->parent_object_type == 'book') {
             $bookTbl = new Book_Model_DbTable_Books();
             $bookSelect = $bookTbl->getSelect()->where('book_id = ?', $post->parent_object_id);
             $this->view->book = $book = $bookTbl->fetchRow($bookSelect);
             $this->view->authors = $authors = $book->getAuthors(0);
             $categoryTable = new Book_Model_DbTable_Categories();
             $this->view->category = $categoryTable->findRow($book->category_id);
             $bookApi = Engine_Api::_()->book();
             $this->view->viewer = $viewer = Engine_Api::_()->user()->getViewer();
             $this->view->rated = $bookApi->checkRated($book->getIdentity(), $book->getType(), $viewer->getIdentity());
             if ($book->is_foreign) {
                 $this->view->translators = $translators = $book->getAuthors(1);
             }
         }
     } else {
         return $this->setNoRender();
     }
 }