Exemplo n.º 1
0
 */
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"]));
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 $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>
Exemplo n.º 5
0
 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);
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
 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);
     }
 }
Exemplo n.º 8
0
<?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();
Exemplo n.º 9
0
 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;
 }
Exemplo n.º 10
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);
    }
}
Exemplo n.º 11
0
    $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;
}
Exemplo n.º 12
0
            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:
Exemplo n.º 13
0
<?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>';
}
Exemplo n.º 14
0
?>
	<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>
Exemplo n.º 15
0
 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;
 }
Exemplo n.º 16
0
<?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);
Exemplo n.º 17
0
<?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()));
}
Exemplo n.º 18
0
	<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