protected function _postInsert() { parent::_postInsert(); $signatureTbl = new Book_Model_DbTable_Signatures(); $signature = $signatureTbl->createRow(array('parent_object_id' => $this->getIdentity(), 'parent_object_type' => $this->getType(), 'favorite_count' => 0, 'view_count' => 0)); $signature->save(); }
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)); }
private function _getSignature() { $subject = $this->_getSubject(); if ($subject) { $signatureTable = new Book_Model_DbTable_Signatures(); $select = $signatureTable->select()->where('parent_object_id = ?', $subject->getIdentity())->where('parent_object_type = ?', $subject->getType()); $signature = $signatureTable->fetchRow($select); if ($signature == null) { $signature = $signatureTable->createRow(array('parent_object_id' => $subject->getIdentity(), 'parent_object_type' => $subject->getType(), 'favorite_count' => 0, 'view_count' => 0)); } return $signature; } }
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; }
public function getObject($type, $id) { $object = Engine_Api::_()->getItem($type, $id); if ($object) { $signatureTbl = new Book_Model_DbTable_Signatures(); $signatureSel = $signatureTbl->select(); $signatureSel->where('parent_object_type = ?', $type)->where('parent_object_id = ?', $id); $signature = $signatureTbl->fetchRow($signatureSel); if ($signature == NULL) { $signature = $signatureTbl->createRow(array('parent_object_id' => $id, 'parent_object_type' => $type, 'favorite_count' => 0, 'view_count' => 0)); $signature->save(); } $itemTbl = Engine_Api::_()->getItemTable($type); $itemTblName = $itemTbl->info(Zend_Db_Table_Abstract::NAME); $select = $itemTbl->getSelect('*'); $tablePrimaryKey = current($itemTbl->info(Zend_Db_Table_Abstract::PRIMARY)); $select->where("{$itemTblName}.{$tablePrimaryKey} = ?", $id); return $itemTbl->fetchRow($select); } }
public function setRating($user_id, $rating) { $ratingTable = new Book_Model_DbTable_Ratings(); $select = $ratingTable->select()->where('parent_object_type = ?', $this->getType())->where('parent_object_id = ?', $this->getIdentity())->where('user_id = ?', $user_id); $row = $ratingTable->fetchRow($select); if (empty($row)) { $row = $ratingTable->createRow(array('parent_object_type' => $this->getType(), 'parent_object_id' => $this->getIdentity(), 'user_id' => $user_id, 'rating' => $rating)); $row->save(); $signatureTable = new Book_Model_DbTable_Signatures(); $select = $signatureTable->select()->where('parent_object_id = ?', $this->getIdentity())->where('parent_object_type = ?', $this->getType()); $signatureRow = $signatureTable->fetchRow($select); if ($signatureRow == NULL) { $signatureRow = $signatureTable->createRow(array('parent_object_id' => $this->getIdentity(), 'parent_object_type' => $this->getType())); } $signatureRow->rating_count = $signatureRow->rating_count + 1; $ratingSum = $this->getRatingSum(); if ($ratingSum != 0) { $signatureRow->rating = $ratingSum / $signatureRow->rating_count; } else { $signatureRow->rating = $rating; } $signatureRow->save(); } }
protected function _postInsert() { parent::_postInsert(); $signatureTbl = new Book_Model_DbTable_Signatures(); $signature = $signatureTbl->createRow(array('parent_object_id' => $this->getIdentity(), 'parent_object_type' => $this->getType(), 'favorite_count' => 0, 'view_count' => 0)); $signature->save(); $popularityTbl = new Book_Model_DbTable_Popularities(); $popularity = $popularityTbl->createRow(array('resource_id' => $this->getIdentity(), 'resource_type' => $this->getType(), 'posted_date' => date('Y-m-d H:i:s'))); $popularity->save(); }