コード例 #1
0
ファイル: WhoRatedPageModule.php プロジェクト: jbzdak/wikidot
 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);
 }
コード例 #2
0
ファイル: RateAction.php プロジェクト: jbzdak/wikidot
 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);
 }