public function notifyNewArgument(Question $q, Argument $a)
 {
     global $sDB, $sTimer, $sTemplate;
     $sTimer->start("notifyNewArgument");
     $res = $sDB->exec("SELECT `notifications`.`userId`, `notifications`.`flags`, `users`.`email`, `users`.`userName` FROM `notifications`\n                           LEFT JOIN `users` ON `users`.`userId` = `notifications`.`userId`\n                           WHERE `questionId` = '" . i($q->questionId()) . "';");
     while ($row = mysql_fetch_object($res)) {
         // no notifications for our own arguments.
         /*if($a->userId() == $row->userId)
           {
               continue;
           }*/
         $uId = new BaseConvert($row->userId);
         $qId = new BaseConvert($q->questionId());
         $profileUrl = $sTemplate->getShortUrlBase() . "u" . $uId->val();
         $unfollowUrl = $sTemplate->getShortUrlBase() . "f" . $qId->val();
         $url = $a->shortUrl();
         if (!SHORTURL_BASE) {
             $profileUrl = $sTemplate->getRoot() . "user/" . $row->userId . "/";
             $unfollowUrl = $sTemplate->getRoot() . "unfollow.php?qId=" . $q->questionId();
             $url = $a->fullurl();
         }
         $subject = $sTemplate->getString("NOTIFICATION_NEW_ARGUMENT_SUBJECT");
         $message = $sTemplate->getString("NOTIFICATION_NEW_ARGUMENT_BODY", array("[USERNAME]", "[AUTHOR]", "[URL]", "[QUESTION]", "[ARGUMENT]", "[UNFOLLOW_URL]", "[PROFILE_URL]"), array($row->userName, $a->author(), $url, $q->title(), $a->headline(), $unfollowUrl, $profileUrl));
         $this->sendMail($row->email, "", $subject, $message);
     }
     $sTimer->stop("notifyNewArgument");
 }
Beispiel #2
0
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;
}