|
Server IP : 10.2.73.233 / Your IP : 216.73.216.59 Web Server : Apache/2.4.59 (Debian) System : Linux polon 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : www-data ( 33) PHP Version : 5.6.40-64+0~20230107.71+debian10~1.gbp673146 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/leksykografia/application/models/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
class Application_Model_VoteMapper
{
protected $_dbTable;
public function setDbTable($dbTable)
{
if (is_string($dbTable)) {
$dbTable = new $dbTable();
}
if (!$dbTable instanceof Zend_Db_Table_Abstract) {
throw new Exception('Invalid table data gateway provided');
}
$this->_dbTable = $dbTable;
return $this;
}
public function getDbTable()
{
if (null === $this->_dbTable) {
$this->setDbTable('Application_Model_DbTable_Vote');
}
return $this->_dbTable;
}
public function save(Application_Model_Vote $vote)
{
$data = array(
'page' => $vote->getPage(),
'point1' => $vote->getPoint1(),
'point2' => $vote->getPoint2(),
'point3' => $vote->getPoint3(),
'point4' => $vote->getPoint4(),
'point5' => $vote->getPoint5(),
'active' => $vote->getActive(),
);
if (null === ($id = $vote->getId())) {
unset($data['id']);
return $this->getDbTable()->insert($data);
} else {
return $this->getDbTable()->update($data, array('id = ?' => $id));
}
}
public function delete($voteId)
{
return $this->getDbTable()->delete('id = '.$voteId);
}
public function find($id, Application_Model_Vote $vote)
{
$result = $this->getDbTable()->find($id);
if (0 == count($result)) {
return false;
}
$row = $result->current();
$vote->setId($row->id)
->setPage($row->page)
->setPoint1($row->point1)
->setPoint2($row->point2)
->setPoint3($row->point3)
->setPoint4($row->point4)
->setPoint5($row->point5)
->setActive($row->active);
}
public function fetchAll($place = false)
{
$select = $this->getDbTable()->select()->setIntegrityCheck(false);
if(!$place)
$select->order('id desc');
else
{
$points = new Zend_Db_Expr('(5*point5 + 4*point4 + 3*point3 + 2*point2 + point1) as points');
$select->from(array('v' => 'vote'), array('*',$points ))->order('points desc');
error_log($select);
}
$resultSet = $this->getDbTable()->fetchAll($select);
$entries = array();
foreach ($resultSet as $row) {
$entry = new Application_Model_Vote();
$entry->setId($row->id)
->setPage($row->page)
->setPoint1($row->point1)
->setPoint2($row->point2)
->setPoint3($row->point3)
->setPoint4($row->point4)
->setPoint5($row->point5)
->setActive($row->active);
$entries[] = $entry;
}
return $entries;
}
public function fetchAllActive()
{
$select = $this->getDbTable()->select()
->where("active = ?", 1)
->order('id desc');
$resultSet = $this->getDbTable()->fetchAll($select);
$entries = array();
foreach ($resultSet as $row) {
$entry = new Application_Model_Vote();
$entry->setId($row->id)
->setPage($row->page)
->setPoint1($row->point1)
->setPoint2($row->point2)
->setPoint3($row->point3)
->setPoint4($row->point4)
->setPoint5($row->point5)
->setActive($row->active);
$entries[] = $entry;
}
return $entries;
}
}