public function build($runData) { $pl = $runData->getParameterList(); $pageId = $pl->getParameterValue("pageId"); $page = DB_PagePeer::instance()->selectByPrimaryKey($pageId); $c = new Criteria(); $c->add("page_id", $page->getPageId()); $c->addJoin("user_id", "ozone_user.user_id"); $c->addOrderAscending("ozone_user.nick_name"); $rates = DB_PageRateVotePeer::instance()->select($c); $runData->contextAdd("rates", $rates); }
public function cancelVoteEvent($runData) { $pl = $runData->getParameterList(); $site = $runData->getTemp("site"); $pageId = $pl->getParameterValue("pageId"); $user = $runData->getUser(); $page = DB_PagePeer::instance()->selectByPrimaryKey($pageId); if (!$pageId || $page == null || $page->getSiteId() != $runData->getTemp("site")->getSiteId()) { throw new ProcessException(_("Error getting page information."), "no_page"); } // check if allowed if (!$this->canRatePage($user, $page)) { // prepare the message throw new ProcessException($this->message); } $db = Database::connection(); $db->begin(); $c = new Criteria(); $c->add("page_id", $page->getPageId()); $c->add("user_id", $user->getUserId()); $v = DB_PageRateVotePeer::instance()->selectOne($c); if (!$v) { $runData->ajaxResponseAdd("points", 0); return; } DB_PageRateVotePeer::instance()->delete($c); $rpoints = 0 - $v->getRate(); // update page points $q = "UPDATE page SET rate=COALESCE((" . "SELECT sum(rate) FROM page_rate_vote WHERE page_id = '" . $page->getPageId() . "'),0) " . "WHERE page_id='" . $page->getPageId() . "'"; $db->query($q); $outdater = new Outdater(); $outdater->pageEvent("page_vote", $page); $db->commit(); $runData->ajaxResponseAdd("points", $rpoints); }