*/ class Badges { public static $badgelist = array(1 => array("title" => "Autobiograph", "medal" => 3, "desc" => "Hat sein Benutzerprofil vervollständigt", "key" => "b%b_u%u"), 2 => array("title" => "Bürgerpolizist", "medal" => 3, "desc" => "Hat einen Beitrag gemeldet", "key" => "b%b_u%u"), 3 => array("title" => "Schreiberling", "medal" => 3, "desc" => "Hat die erste Frage gestellt", "key" => "b%b_u%u"), 4 => array("title" => "Helfer", "medal" => 3, "desc" => "Hat die erste Antwort geschrieben", "key" => "b%b_u%u"), 5 => array("title" => "Blabberer", "medal" => 3, "desc" => "Hat die erste Kommentar geschrieben", "key" => "b%b_u%u"), 6 => array("title" => "Callboy", "medal" => 3, "desc" => "Hilft Usern auch über Skype", "key" => "b%b_u%u"), 9 => array("title" => "Kritiker", "medal" => 3, "desc" => "Bewertete einen Beitrag negativ / downvote", "key" => "b%b_u%u"), 10 => array("title" => "Redakteur", "medal" => 3, "desc" => "Editiere einen Beitrag", "key" => "b%b_u%u"), 21 => array("title" => "Elementare Frage", "medal" => 1, "desc" => "Stellte eine Frage mit mindestens 500 Views", "key" => "b%b_u%u_q%q"), 24 => array("title" => "Gute Frage", "medal" => 2, "desc" => "Frage wurde mindestens 3mal positiv bewertet / upvoted", "key" => "b%b_u%u_q%q"), 31 => array("title" => "Wichtige Frage", "medal" => 2, "desc" => "Stellte eine Frage mit mindestens 250 Views", "key" => "b%b_u%u_q%q"), 41 => array("title" => "Populäre Frage", "medal" => 3, "desc" => "Stellte eine Frage mit mindestens 150 Views", "key" => "b%b_u%u_q%q"), 51 => array("title" => "Tolle Antwort", "medal" => 3, "desc" => "Antwort wurde 3mal positiv bewertet / upvoted", "key" => "b%b_u%u_a%a"), 52 => array("title" => "Gute Antwort", "medal" => 2, "desc" => "Antwort wurde 10mal positiv bewertet / upvoted", "key" => "b%b_u%u_a%a"), 53 => array("title" => "Großartige Antwort", "medal" => 1, "desc" => "Antwort wurde 25mal positiv bewertet / upvoted", "key" => "b%b_u%u_a%a")); public static function add($badge, $user = null, $data = array()) { if ($user == null) { $user = MyUser::id(); } if (!isset(self::$badgelist[$badge + 0])) { throw new Exception("Badge existiert nicht! (" . ($badge + 0) . ")"); } $binfo = self::$badgelist[$badge + 0]; $db = new SQL(0); $w = array(); $w["keyID"] = $binfo["key"]; $w["keyID"] = str_replace(array("%b", "%u", "%q", "%a"), array($badge + 0, $user + 0, isset($data["question"]) ? $data["question"] : 0, isset($data["answer"]) ? $data["answer"] : 0), $w["keyID"]); $w["user"] = $user + 0; $w["badge"] = $badge + 0; $w["medal"] = $binfo["medal"]; $w["dt_received"] = time(); if (isset($data["question"])) { $w["question"] = $data["question"] + 0; } $db->CreateUpdate(0, 'user_badges', $w); switch ($w["medal"]) { case 1: $db->cmd(0, 'UPDATE LOW_PRIORITY IGNORE user_list as T1 SET award_gold = (SELECT count(*) FROM user_badges WHERE user= T1.id AND medal=1) WHERE id={0} LIMIT 1', true, array($w["user"])); break; case 2: $db->cmd(0, 'UPDATE LOW_PRIORITY IGNORE user_list as T1 SET award_silver = (SELECT count(*) FROM user_badges WHERE user= T1.id AND medal=2) WHERE id={0} LIMIT 1', true, array($w["user"])); break; case 3: $db->cmd(0, 'UPDATE LOW_PRIORITY IGNORE user_list as T1 SET award_bronce = (SELECT count(*) FROM user_badges WHERE user= T1.id AND medal=3) WHERE id={0} LIMIT 1', true, array($w["user"]));
public static function allread($data) { if (!MyUser::isloggedin()) { throw new APIException("Nicht angemeldet...", 100); } $db = new SQL(0); $db->cmd(0, 'DELETE * FROM user_notification WHERE user = {0}', true, array(MyUser::id())); return true; }
$id = $openid->data["openid_identity"]; $email = $openid->data["openid_ax_value_email"]; $nickname = $openid->data["openid_ax_value_nickname"]; $language = $openid->data["openid_ax_value_language"]; $gender = $openid->data["openid_ax_value_gender"]; //print_r($openid); exit(1); if (MyUser::isloggedin()) { OpenIDAddLogin($id, array("email" => $email, "nickname" => $nickname, "language" => $language, "gender" => $gender)); } else { OpenIDRegisterLogin($id, array("email" => $email, "nickname" => $nickname, "language" => $language, "gender" => $gender)); exit(1);
<ul class="navibar"> <li><a href="<?php echo UserProfile::ProfilePermaLink($params["id"], $params["name"]); ?> ">Übersicht</a></li> <?php if (MyUser::id() == $params["id"]) { ?> <li><a href="<?php echo UserProfile::ProfilePermaLink($params["id"], $params["name"], "inbox"); ?> ">Postfach</a></li> <?php } ?> <li><a href="<?php echo UserProfile::ProfilePermaLink($params["id"], $params["name"], "karma"); ?> ">Karma</a></li> <li><a href="<?php echo UserProfile::ProfilePermaLink($params["id"], $params["name"], "badges"); ?> ">Abzeichen</a></li> <?php if (MyUser::hasAdminRight()) { echo '<li><a href="' . UserProfile::ProfilePermaLink($params["id"], $params["name"], "rights") . '">Rechte</a></li>'; } ?> </ul> <div class="clearfix"></div> <style>
if (!isset($_GET["tag"])) { $_GET["tag"] = ""; } $g = explode(",", $_GET["tag"] . "," . $_POST["tags"]); foreach (tags2array($_POST["tags"]) as $a) { if (trim($a) == "") { continue; } $w3 = array(); $w3["question"] = $frageid; $w3["tag"] = $a; $db->CreateUpdate(0, "question_tags", $w3); } $_SESSION["myuser"]["lastwritten"]["question"][$frageid] = true; Karma::RuleAction("CREATE_QUESTION", array("user" => MyUser::id(), "question" => $frageid)); Badges::add(3, MyUser::id(), array("question" => $frageid)); //Erste Frage geschrieben @file_get_contents("www.google.com/webmasters/tools/ping?sitemap=" . urlencode(SiteConfig::val("baseurl") . "sitemap.xml")); $m = SiteConfig::get(0); if ($m["twitter"]["consumer"]["secret"] . "" != "" && $m["twitter"]["access"]["secret"] . "" != "") { try { $twitter = new Twitter($m["twitter"]["consumer"]["key"], $m["twitter"]["consumer"]["secret"]); $twitter->setOAuthToken($m["twitter"]["access"]["key"]); $twitter->setOAuthTokenSecret($m["twitter"]["access"]["secret"]); $url = API_urlshortener::add(Question::PermalinkByData($w3["question"], $w["title"])); if (strlen($w["title"]) > 100) { $tweet = substr($w["title"], 0, 100) . "... " . $url . " #wikihelp"; } else { $tweet = substr($w["title"], 0, 100) . " " . $url . " #wikihelp"; } $twitter->statusesUpdate($tweet);
public static function changePassword($pwd) { $db = new SQL(0); $w = array(); $w["username"] = "******" . self::id() . "]"; $w["pwd"] = md5($pwd); $w["provider"] = "local"; $w["user"] = MyUser::id(); $db->CreateUpdate(0, "user_login", $w); return true; }
public static function setbounty($data) { if (!MyUser::isloggedin()) { throw new APIException("User ist nicht angemeldet.", 100); } $data["karma"] = floor(string2::vall($data["karma"] + 0)); $data["bitcoin"] = string2::vall($data["bitcoin"] + 0); $data["EUR"] = string2::vall($data["EUR"] + 0); $db = new SQL(0); if ($data["karma"] > 0) { if (MyUser::getKarmaPoints() < 75) { throw new APIException("Du benötigst 75 Karma-Punkte um eine Karma Bounty zu geben.", 200); } if (MyUser::getKarmaPoints() < $data["karma"] + 0) { throw new APIException("Du hast nur " . MyUser::getKarmaPoints() . " Karma Punkte zu verschenken!", 200); } $w = array(); $w["question"] = $data["question"] + 0; $w["user"] = MyUser::id(); $w["amount"] = $data["karma"]; $w["currency"] = "kar"; $w["dt_created"] = time(); $db->Create(0, 'question_bounty', $w); Karma::add(MyUser::id(), 5, 0 - $w["amount"], $w["question"]); } if ($data["bitcoin"] > 0) { throw new APIException("Sie haben nicht genügend Bitcoin Guthaben.", 610); } if ($data["EUR"] > 0) { throw new APIException("Sie haben nicht genügend Euro Guthaben.", 710); } }
<?php $db = new SQL(0); $rows = $db->cmdrows(0, 'SELECT * FROM user_notification WHERE user = {0}', array(MyUser::id() + 0)); if (count($rows) > 0) { echo '<div class="notify"><a class="BtnCloseNotify" TITLE="' . _e("close") . '"></a>'; foreach ($rows as $row) { echo '<p class="notification">' . html(Notification::write($row["msgid"], array("question" => $row["ref_question"], "answer" => $row["ref_answer"], "user" => $row["ref_user"]))) . '</p>'; } echo '</div>'; } ?> <header> <div class="content-wrapper"> <a class="logo" href="<?php echo $_ENV["baseurl"]; ?> " TITLE="<?php echo _e("back to home"); ?> "><img src="<?php echo $_ENV["baseurl"]; ?> skins/default/images/logo.png"/></a> <div class="userToolsNav"> <?php if (MyUser::isloggedin()) { ?> <a class="user" href="<?php echo MyUser::getProfileURL();
public static function CountNew() { $db = new SQL(0); $v = $db->cmdvalue(0, 'SELECT count(*) as Anzahl FROM mails WHERE to_user={0} AND is_read="0" LIMIT 0,1', array(MyUser::id())); return $v + 0; }
} else { $w["isSPAM"] = -2; } } catch (Exception $ex) { } } $db->CreateUpdate(0, 'answers', $w); $answerID = $db->LastInsertKey(); $db->cmd(0, 'UPDATE questions SET date_action={1},user_action="{2}", count_answers = (SELECT count(*) FROM answers WHERE question=questions.id) WHERE id={0} LIMIT 1', true, array($w["question"], time(), MyUser::id() + 0)); $_SESSION["myuser"]["lastwritten"]["answers"][$answerID] = true; Karma::RuleAction("CREATE_ANSWER", array("user" => MyUser::id(), "question" => $w["question"], "answer" => $answerID)); Badges::add(4, MyUser::id(), array("question" => $w["question"])); //Erste Antwort geschrieben } } if (isset($_POST["act"]) and $_POST["act"] == "addComment") { if (strlen($_POST["comment"]) >= 10 and MyUser::isloggedin()) { $w = array(); $db = new SQL(0); $w["question"] = $_POST["question"] + 0; $w["answer"] = $_POST["answer"] + 0; $w["text"] = $_POST["comment"]; $w["created"] = time(); $w["user"] = MyUser::id(); $db->CreateUpdate(0, 'comments', $w); $a = $db->LastInsertKey(); Badges::add(5, MyUser::id(), array("question" => $w["question"])); //Erster Kommentar geschrieben @header("Location: #comment-" . $a); } }
$w2 = array(); $w2["id"] = $info["id"]; $w2["title"] = $_POST["title"]; $w2["question"] = $_POST["text"]; $w2["author"] = MyUser::id(); $w2["tags"] = implode(",", tags2array($_POST["tags"])); $w2["date_edited"] = time(); $w2["date_action"] = time(); $w2["user_action"] = MyUser::id() + 0; $db->CreateUpdate(0, 'questions', $w2); $db->cmd(0, 'DELETE FROM `question_tags` WHERE question={0}', true, array($info["id"])); foreach (tags2array($_POST["tags"]) as $a) { $w3 = array(); $w3["question"] = $info["id"]; $w3["tag"] = $a; $db->CreateUpdate(0, "question_tags", $w3); } Badges::add(10, MyUser::id()); //Erfolg Redakteur: Editiere einen Beitrag header("Location: " . Question::PermalinkByData($info["id"], $info["title"])); exit(1); } function tags2array($text) { $g = explode(",", $text); $out = array(); for ($i = 0; $i < min(5, count($g)); $i++) { $out[] = trim(strtolower($g[$i])); } return $out; }
exit(1); } } if (preg_match("@^/questions/(.*)\$@", $_SERVER["REQUEST_URIpure"], $treffer)) { PageEngine::html("page_questions"); exit(1); } if (preg_match("@^/users/([0-9]+)/[^\\/]+(/[a-z]+)?\$@", $_SERVER["REQUEST_URIpure"], $treffer)) { switch (isset($treffer[2]) ? $treffer[2] : "") { case "/inbox": if (MyUser::id() != $treffer["1"] + 0) { PageEngine::html("page_403"); } PageEngine::html("page_userinbox", array("user_id" => $treffer["1"] + 0)); case "/edit": if (MyUser::id() != $treffer["1"] + 0) { PageEngine::html("page_403"); } PageEngine::runController("userprofile_edit", array("user_id" => $treffer[1] + 0)); PageEngine::html("page_userprofileedit", array("user_id" => $treffer["1"] + 0)); case "/karma": PageEngine::html("page_userkarma", array("user_id" => $treffer["1"] + 0)); case "/badges": PageEngine::html("page_userbadges", array("user_id" => $treffer["1"] + 0)); case "/rights": if (!MyUser::hasAdminRight()) { PageEngine::html("page_403"); } PageEngine::runController("userprofile_rights", array("user_id" => $treffer[1] + 0)); PageEngine::html("page_userprofilerights", array("user_id" => $treffer["1"] + 0)); default:
<?php $db = new SQL(0); $rows = $db->cmdrows(0, 'SELECT T1.badge, count(*) as Anzahl, T2.user FROM user_badges as T1 LEFT JOIN user_badges as T2 ON T1.badge = T2.badge AND T2.user="******" GROUP BY T1.badge', array(MyUser::id() + 0)); $badges = array(); foreach ($rows as $row) { $badges[$row["badge"]] = $row; } PageEngine::html("html_head"); PageEngine::html("header"); ?> <div id="Content" class="content-wrapper"> <article class="ContentLeft"> <h1>Auszeichnungen</h1> <p>Rege Teilnahme mit qualitativ hochwertigen Fragen und Antworten führt zum Erhalt von Auszeichnungen in Form von Abzeichen.</p> <p>Hier unten findest Du eine Liste der möglichen Auszeichnungen und die Häufigkeit, mit der das Abzeichen bisher verliehen wurde. Hast Du noch mehr Ideen für tolle Abzeichen? Dann gib uns bitte ein <a href="<?php echo get_path("/feedback"); ?> " rel="nofollow" target="_blank">Feedback</a></p> <table class="MedalTable"> <?php foreach (Badges::$badgelist as $key => $value) { echo '<tr><td>'; if (isset($badges[$key]["user"])) { echo '<img src="' . get_path("/skins/default/images/layout/yes.png") . '" height="32" TITLE="Sie haben bereits diese Auszeichnung"/>'; } echo '</td><td><a href="' . get_path("/badges/" . $key . "/" . html($value["title"])) . '" class="awardmedal"><span class="award' . $value["medal"] . '">' . html($value["title"]) . '</span></a> x ' . (isset($badges[$key]["Anzahl"]) ? $badges[$key]["Anzahl"] + 0 : 0) . '</td>'; echo '<td class="desc">' . html($value["desc"]) . '</td>'; echo '</tr>'; }
?> <div id="Content" class="content-wrapper PageUserprofile"> <article class="vcard contact hcard"> <h1 class="search-result-summary"><?php echo _e("{0}'s Profil-Übersicht", array(0 => $info["username"])); ?> </h1> <?php PageEngine::html("box_userprofile_navi", array("id" => $info["id"], "name" => $info["username"])); ?> <table class="wrapper"><tr style="vertical-align: top;"> <td style="text-align: center;"> <div class="box_gravatar" style="width:140px; height:140px margin-bottom: 10px; position: relative;"> <img class="profile photo" src="http://www.gravatar.com/avatar/<?php echo md5($info["email_standard"]); ?> ?s=140&d=identicon" style="border: #EEE 1px solid; padding: 5px; border-radius: 3px; "> <?php if (isset($info["right"]) and $info["right"] == "expert") { echo '<img src="' . get_path("/skins/default/images/icons/expert.png") . '" TITLE="Experte für dieses Thema" style="position: absolute; width: 70px; height: 70px; bottom: -35px; right: -35px;"/>'; } ?> </div> <a class="gravatar link" href="https://de.gravatar.com/emails/" target="_blank" rel="nofollow">Bild ändern</a> <p class="karma"><span class="points"><?php echo $info["karma"]; ?> </span><span class="txt">Karma</span></p> </td>
public static function accept($data) { $out = array(); if (!MyUser::isloggedin()) { throw new APIException("User ist nicht angemeldet.", 100); } if (!isset($data["answer"])) { throw new APIException("Benötigter Parameter fehlt (answer).", 50); } $db = new SQL(0); $info = $db->cmdrow(0, 'SELECT * FROM answers WHERE id={0} LIMIT 0,1', array($data["answer"] + 0)); if (!isset($info["id"])) { throw new APIException("Diese Antwort existiert nicht (mehr)", 300); } if ($info["right_answer"] == "1") { throw new APIException("Dies ist bereits die beste Antwort", 330); } $qinfo = $db->cmdrow(0, 'SELECT * FROM questions WHERE id={0} LIMIT 0,1', array($info["question"] + 0)); if (!isset($qinfo["id"])) { throw new APIException("Diese Frage existiert nicht (mehr)", 300); } if ($qinfo["is_closed"] == "1") { throw new APIException("Diese Frage ist bereits geschlossen", 310); } if ($qinfo["author"] != MyUser::id()) { throw new APIException("Dies ist nicht ihre Frage", 320); } if ($info["author"] == MyUser::id() and MyUser::getKarmaPoints() < 50) { throw new APIException("Deine eigene Antwort darf erst ab 50 Karma Punkten die beste Antwort sein", 210); } $db->cmd(0, 'UPDATE answers SET right_answer = "1" WHERE id={0} LIMIT 1', true, array($info["id"])); $db->cmd(0, 'UPDATE questions SET is_answered = "1" WHERE id={0} LIMIT 1', true, array($info["question"])); if (MyUser::id() != $info["author"]) { Karma::RuleAction("ACCEPT_ANSWER", array("user" => $info["author"], "question" => $info["question"], "answer" => $info["id"])); } if (MyUser::id() != $info["author"] && $info["is_bounty"] == "1") { Bounty::Release($info["question"], $info["author"]); } //Gib dem Autor die Bounty return true; }
<?php if (isset($_POST["act"]) and $_POST["act"] == "save") { $w["id"] = $params["user_id"]; if (!preg_match("`^[A-Za-z0-9\\_\\.]{2,}\$`", $_POST["username"])) { PageEngine::AddErrorMessage("save", "Ungültiges Format für den Usernamen"); } elseif (UsernameAlreadyInUse($_POST["username"], MyUser::id())) { PageEngine::AddErrorMessage("save", "Username bereits vergeben"); } else { $w["username"] = $_POST["username"]; } $w["prename"] = $_POST["prename"]; $w["familyname"] = $_POST["familyname"]; $w["website"] = $_POST["website"]; $w["location"] = $_POST["location"]; $w["country"] = $_POST["country"]; $w["language"] = $_POST["language"]; $w["FlattrUID"] = trim($_POST["FlattrUID"]); $w["SkypeID"] = trim($_POST["SkypeID"]); $w["GooglePlus"] = trim($_POST["GooglePlus"]); $w["PayPal_email"] = $_POST["PayPal_email"]; $w["show_country"] = (isset($_POST["show_country"]) and $_POST["show_country"] == "1" ? 1 : 0); $d = $_POST["birthday_year"] . "-" . $_POST["birthday_month"] . "-" . $_POST["birthday_day"]; if (!preg_match("`^[0-9\\?]{4}-[0-9\\?]{2}-[0-9\\?]{2}\$`", $d)) { PageEngine::AddErrorMessage("save", "Ungültiges Geburtsdatum"); } else { $w["birthday"] = $d; } $w["biography"] = $_POST["text"]; $db = new SQL(0); $db->CreateUpdate(0, "user_list", $w);
<?php $db = new SQL(0); if (MyUser::isloggedin()) { $db->cmd(0, 'INSERT LOW_PRIORITY IGNORE INTO user_action SET user={0}, last_action = {0} ON DUPLICATE KEY UPDATE last_action ={1}', true, array(MyUser::id(), time())); }
<div class="answer answer-<?php echo $row["id"]; ?> <?php echo $row["author"] == MyUser::id() ? "myanswer" : ""; ?> <?php echo $row["isSPAM"] > 0 ? "SPAManswer" : ""; ?> " rel="<?php echo $row["id"]; ?> " style="margin-bottom:10px;"> <div class="vote-buttons"> <div id="answer-img-upvote-<?php echo $row["id"]; ?> " class="answer img-upvote post-vote <?php echo $row["MyVote"] == "1" ? "active" : ""; ?> "></div> <div id="aswer-vote-number-<?php echo $row["id"]; ?> " class="answer vote-number <?php echo $row["count_votes"] > 0 ? "positive" : ""; ?> <?php echo $row["count_votes"] < 0 ? "negative" : ""; ?> " title="Aktuelle Anzahl Bewertungen"><?php