function drawArgumentBoxFull(Question $q, Argument $a, $basePath) { global $sTemplate, $sUser; $ret = ""; $argumentId = $a->argumentId(); $numPoints = $a->score(); $ret .= ' <div class = "argument_full"> <div class = "stats question_stats"> <div class = "points question_points">' . $numPoints . '</div> <div class = "points_text question_points_text">' . $sTemplate->getStringNumber("QUESTION_POINTS", array(), array(), $numPoints) . '</div> ' . voteUp('question_vote_up', $q->questionId(), $argumentId, $a->type(), $q->type(), $q->flags()) . ' ' . voteDn('question_vote_dn', $q->questionId(), $argumentId, $a->type(), $q->type(), $q->flags()) . ' </div> <div class = "argument_title"><a href = "' . $a->url($basePath) . '">' . $a->headline() . '</a></div>'; $ret .= '<div class = "argument_abstract_extended argument_abstract_cursive">' . $a->abstractText() . '</div>'; $ret .= '<div class = "argument_details_extended">' . $a->details() . '</div>'; if ($a->canEdit($sUser)) { $ret .= '<div class = "author question_author"><a href = "' . $a->url($basePath) . 'edit/">' . $sTemplate->getString("ARGUMENT_EDIT", array("[TIMELEFT]"), array($a->timeLeftEdit())) . '</a></div>'; } else { $ret .= '<div class = "author question_author">' . $sTemplate->getString("QUESTION_AUTHOR", array("[TIMESINCE]", "[USERNAME]"), array($a->timeSince(), $a->authorLink())) . '</div>'; } $ret .= ' <div class = "argument_' . ($a->type() == ARGUMENT_PRO ? "pro" : "con") . '_bar"></div> </div>'; if (!$a->parentId()) { $numArguments = $a->numArguments(); $ret .= ' <div class = "counter_argument_box_full_line"></div> <a href = "' . $a->urlCounterArguments($basePath) . '"> <div class = "counter_argument_box_full ' . ($a->type() == ARGUMENT_PRO ? "counter_argument_box_full_pro" : "counter_argument_box_full_con") . '"> <div class = "count">' . $numArguments . '</div> <div class = "count_text">' . $sTemplate->getStringNumber("NUM_COUNTER_ARGUMENTS", array(), array(), $numArguments) . '</div> <div class = "plus_sign"></div> </div> </a>'; } return $ret; }
public function handlePacket() { global $sUser, $sDB, $sTemplate, $sLog, $sStatistics; $requestObj = $this->_requestObj; $response = $this->_response; $qId = $requestObj->getInt(array("data", "qId")); $aId = $requestObj->getInt(array("data", "aId")); $vote = $requestObj->getInt(array("data", "vote")); $question = new Question($qId); $argument = false; if ($aId) { $argument = new Argument($aId); } $response->opcode = SMSG_VOTE_RESPONSE; $response->data->result = 0; $response->data->qId = $qId; $response->data->aId = $aId; $response->data->vote = $vote; // check for valid question / argument if ($question->questionId() == 0 || $argument && $argument->argumentId() == -1) { $response->data->error = $sTemplate->getString("NOTICE_VOTE_NOT_LOGGED_IN"); return false; } // user login state if (!$sUser->isLoggedIn() && ($question->type() != QUESTION_TYPE_UNLISTED || !($question->flags() & QUESTION_FLAG_PART_ALL))) { $response->data->error = $sTemplate->getString("NOTICE_VOTE_NOT_LOGGED_IN"); return false; } // group validation if ($question->group() && $question->group()->getPermission($sUser, ACTION_VOTE) == PERMISSION_DISALLOWED) { $response->data->error = $sTemplate->getString("NOTICE_VOTE_NOT_LOGGED_IN"); return false; } // faction checkin if ($argument) { $faction = $sUser->getFactionByQuestionId($qId); if ($faction != $argument->type()) { $response->data->error = $sTemplate->getString("NOTICE_VOTE_NOT_CHECKED_IN"); } } $sStatistics->vote($question, $aId, $vote); $response->data->result = 1; // get new question score if ($aId == 0) { $question = new Question($qId); $response->data->score = $question->score(); } else { $argument = new Argument($aId); $response->data->score = $argument->score(); } }