Exemplo n.º 1
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));
 }
Exemplo n.º 2
0
 public function getSelect($selectedColumns = null)
 {
     $signatureTable = new Book_Model_DbTable_Signatures();
     $signatureTableName = $signatureTable->info(Zend_Db_Table_Abstract::NAME);
     $tableName = $this->info(Zend_Db_Table_Abstract::NAME);
     // TODO [DangTH] : check again
     $tablePrimaryKey = current($this->info(Zend_Db_Table_Abstract::PRIMARY));
     if ($selectedColumns == null) {
         $select = $this->select()->from($tableName, $this->_selectedColumns);
     } else {
         $select = $this->select()->from($tableName, $selectedColumns);
     }
     $select->setIntegrityCheck(false);
     $select->joinLeft($signatureTableName, "{$signatureTableName}.parent_object_id = {$tableName}.{$tablePrimaryKey}");
     $select->where("{$signatureTableName}.parent_object_type = ?", $this->_getType());
     $select->group("{$tableName}.{$tablePrimaryKey}");
     return $select;
 }
Exemplo n.º 3
0
 public function getParentObject()
 {
     if (!empty($this->parent_id) && !empty($this->parent_type)) {
         if (Engine_Api::_()->hasItemType($this->parent_type)) {
             $table = Engine_Api::_()->getItemTable($this->parent_type);
             $tableName = $table->info(Zend_Db_Table_Abstract::NAME);
             $tablePrimaryKey = current($table->info(Zend_Db_Table_Abstract::PRIMARY));
             $signatureTable = new Book_Model_DbTable_Signatures();
             $signatureTableName = $signatureTable->info(Zend_Db_Table_Abstract::NAME);
             $select = $table->select()->setIntegrityCheck(false)->from($tableName);
             $select->join($signatureTableName, "{$tableName}.{$tablePrimaryKey} = {$signatureTableName}.parent_object_id", array("{$signatureTableName}.view_count", "{$signatureTableName}.favorite_count", "{$signatureTableName}.rating_count", "{$signatureTableName}.rating"));
             $select->where("{$signatureTableName}.parent_object_type = ?", $this->parent_type);
             $select->where("{$tableName}.{$tablePrimaryKey} = ?", $this->parent_id);
             return $table->fetchRow($select);
         }
     }
     return NULL;
 }