示例#1
0
 public function vote($p_value = 1)
 {
     if (!settype($p_value, 'float')) {
         return false;
     }
     $debate = $this->getDebate();
     $voted = $debate->getAlreadyVoted($this->getProperty('nr_answer'));
     $debate->userVote($this->getProperty('nr_answer'));
     if (!is_null($voted) && $voted != $this->getProperty('nr_answer')) {
         $otherAnswer = new DebateAnswer($this->getProperty('fk_language_id'), $this->getProperty('fk_debate_nr'), $voted);
         $otherAnswer->setProperty('nr_of_votes', $otherAnswer->getProperty('nr_of_votes') - 1);
         $otherValueVotes = $otherAnswer->getProperty('value') - $p_value;
         $otherAnswer->setProperty('value', $otherValueVotes < 0 ? 0 : $otherValueVotes);
         $otherNrVotes = $otherAnswer->getProperty('nr_of_votes');
         $otherAnswer->setProperty('average_value', $otherNrVotes != 0 ? $otherAnswer->getProperty('value') / $otherNrVotes : 0);
         $this->setProperty('nr_of_votes', $this->getProperty('nr_of_votes') + 1);
         $this->setProperty('value', $this->getProperty('value') + $p_value);
         $this->setProperty('average_value', $this->getProperty('value') / $this->getProperty('nr_of_votes'));
     } elseif (is_null($voted)) {
         $this->setProperty('nr_of_votes', $this->getProperty('nr_of_votes') + 1);
         $this->setProperty('value', $this->getProperty('value') + $p_value);
         $this->setProperty('average_value', $this->getProperty('value') / $this->getProperty('nr_of_votes'));
     }
     $debate->increaseUserVoteCount();
     Debate::triggerStatistics($this->m_data['fk_debate_nr']);
 }
示例#2
0
if ($debate->exists()) {
    // update existing debate
    $debate = new Debate($f_fk_language_id, $f_debate_nr);
    $debate->setProperty('title', $f_title);
    $debate->setProperty('question', $f_question);
    $debate->setProperty('date_begin', strftime("%F %H:%M:%S", strtotime($f_date_begin . " " . $f_time_begin)));
    $debate->setProperty('date_end', strftime("%F %H:%M:%S", strtotime($f_date_end . " " . $f_time_end)));
    $debate->setProperty('votes_per_user', $f_votes_per_user);
    $debate->setProperty('nr_of_answers', $f_nr_of_answers);
    $debate->setProperty('is_extended', $f_is_extended);
    $debate->setProperty('allow_not_logged_in', $f_allow_not_logged_in);
    foreach ($f_answers as $nr_answer => $text) {
        if (trim($text) != '') {
            $answer = new DebateAnswer($f_fk_language_id, $f_debate_nr, $nr_answer);
            if ($answer->exists()) {
                $answer->setProperty('answer', $text);
            } else {
                $answer->create($text);
            }
        }
    }
    DebateAnswer::SyncNrOfAnswers($f_fk_language_id, $f_debate_nr);
} else {
    // create new debate
    $debate = new Debate($f_fk_language_id);
    $f_date_begin = strftime("%F %H:%M:%S", strtotime($f_date_begin . " " . $f_time_begin));
    $f_date_end = strftime("%F %H:%M:%S", strtotime($f_date_end . " " . $f_time_end));
    $success = $debate->create($f_title, $f_question, $f_date_begin, $f_date_end, $f_nr_of_answers, $f_votes_per_user);
    if ($success) {
        $debate->setProperty('is_extended', $f_is_extended);
        foreach ($f_answers as $nr_answer => $text) {