コード例 #1
0
ファイル: MyUser.php プロジェクト: andreaskasper/askbot_php
 public static function loginload($id)
 {
     $db = new SQL(0);
     $row = $db->cmdrow(0, 'SELECT * FROM user_list WHERE id="{0}" LIMIT 0,1', array($id));
     $_SESSION["myuser"]["id"] = $row["id"];
     $_SESSION["myuser"]["username"] = $row["username"];
     $rows = $db->cmdrows(0, 'SELECT * FROM user_rights WHERE `user` = {0}', array($row["id"]));
     $w = array();
     $w["user"] = MyUser::id();
     $w["last_action"] = time();
     $db->CreateUpdate(0, 'user_action', $w);
     foreach ($rows as $a) {
         $_SESSION["myuser"]["rights"][$a["right"]] = true;
     }
 }
コード例 #2
0
ファイル: search.php プロジェクト: andreaskasper/askbot_php
 public static function tnquestion($data)
 {
     $db = new SQL(0);
     $out = array();
     $rows = $db->cmdrows(0, 'SELECT *,MATCH (title,question,tags) AGAINST ("{0}") as Score FROM questions WHERE MATCH (title,question,tags) AGAINST ("{0}") ORDER BY Score DESC LIMIT 0,10', array($data["term"]));
     foreach ($rows as $row) {
         $b = array();
         $b["label"] = $row["title"];
         $b["value"] = $row["title"];
         $b["type"] = "question";
         $b["score"] = $row["Score"] + 0;
         $out[] = $b;
     }
     return $out;
 }
コード例 #3
0
ファイル: Bounty.php プロジェクト: andreaskasper/askbot_php
 public static function Release($question = 0, $Receiver_User = 0)
 {
     $db = new SQL(0);
     $rows = $db->cmdrows(0, 'SELECT * FROM question_bounty WHERE question={0} GROUP BY currency', array($question + 0));
     foreach ($rows as $row) {
         switch ($row["currency"]) {
             case "kar":
                 Karma::add($Receiver_User, 6, $row["amount"], $row["question"]);
                 break;
             case "BTC":
                 break;
             case "EUR":
                 break;
             default:
         }
     }
     $db->cmd(0, 'UPDATE questions SET is_bounty =0 WHERE question={0} LIMIT 1', true, array($question + 0));
     $db->cmd(0, 'DELETE FROM question_bounty WHERE question={0}', true, array($question + 0));
 }
コード例 #4
0
ファイル: ask.php プロジェクト: andreaskasper/askbot_php
<?php

if (isset($_GET["antispam"]) and $_GET["antispam"] == "img") {
    PageEngine::runController("ask_antispam");
}
if (isset($_POST["action"]) and $_POST["action"] == "preview") {
    $wiky = new wiky();
    $out = array();
    $out["html"] = $wiky->parse($_POST["text"]);
    echo json_encode($out);
    exit(1);
}
if (isset($_POST["action"]) and $_POST["action"] == "possiblequestions") {
    $db = new SQL(0);
    $rows = $db->cmdrows(0, 'SELECT *,MATCH (title,question,tags) AGAINST ("{0}") as Score FROM questions WHERE MATCH (title,question,tags) AGAINST ("{0}") ORDER BY Score DESC LIMIT 0,10', array($_POST["q"]));
    echo '<div><b>Schon gestellte ähnliche Fragen...</b><ul style="list-style:none;">';
    foreach ($rows as $row) {
        echo '<li><a href="' . Question::PermalinkByData($row["id"], $row["title"]) . '">' . html($row["title"]) . '</a></li>';
    }
    echo '</ul></div>';
    exit(1);
}
if (isset($_POST["action"]) and $_POST["action"] == "save") {
    $db = new SQL(0);
    $j = true;
    $tags = array();
    if (!MyUser::isloggedin()) {
        if (!isset($_POST["antispam"]) or $_POST["antispam"] . "" == "") {
            PageEngine::AddErrorMessage("AnswerNew", "Bitte lesen Sie die Buchstaben unten im Antispam!");
            $j = false;
        }
コード例 #5
0
ファイル: header.php プロジェクト: andreaskasper/askbot_php
<?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();
コード例 #6
0
<?php

$db = new SQL(0);
$info = $db->cmdrow(0, 'SELECT * FROM questions WHERE id={0} LIMIT 0,1', array($params["id"]));
$versions = $db->cmdrows(0, 'SELECT * FROM qatext_versions WHERE type="q" AND keyid="{0}" ORDER BY dt_created ASC', array($info["id"] + 0));
PageEngine::html("html_head");
PageEngine::html("header");
?>
	<div id="Content" class="content-wrapper PageQuestionEdit">
		<article class="ContentLeft">
			<h1>Frage bearbeiten [<a href="<?php 
echo Question::PermalinkByData($info["id"], $info["title"]);
?>
">zurück</a>]</h1>
			<SELECT name="revision">
<?php 
foreach ($versions as $row) {
    echo '<OPTION value="V' . $row["id"] . '">Sicherung vom ' . date("d.m.Y H:i:s", $row["dt_created"]) . ' Uhr</OPTION>';
}
?>
			<OPTION value="current">Aktuelle Version</OPTION>
			</SELECT><button id="BtnLoadRevision" type="button" DISABLED="DISABLED">laden</button>
			<form method="POST"><INPUT type="hidden" name="action" value="save"/>
			
			<b>Titel:</b>
			<INPUT class="gblue" type="text" name="title" value="<?php 
echo html($info["title"]);
?>
"/>
			
			<p><?php 
コード例 #7
0
<?php

$db = new SQL(0);
$info = $db->cmdrow(0, 'SELECT T1.*,T2.*,T3.right FROM user_list as T1 LEFT JOIN user_action as T2 ON T1.id=T2.user LEFT JOIN user_rights as T3 ON T1.id=T3.user AND T3.right="expert" WHERE T1.id={0} LIMIT 0,1', array($params["user_id"]));
$badges = $db->cmdrows(0, 'SELECT *, count(*) as Anzahl FROM user_badges WHERE user="******" GROUP BY badge ORDER BY dt_received DESC ', array($info["id"] + 0));
PageEngine::html("html_head", array("title" => $info["username"] . "'s Auszeichnungen"));
PageEngine::html("header");
?>
	<div id="Content" class="content-wrapper PageUserBadges">
		<article class="ContentLeft">
		<h1 class="search-result-summary"><?php 
echo _e("{0}'s Auszeichnungen", array(0 => html($info["username"])));
?>
</h1>
<?php 
PageEngine::html("box_userprofile_navi", array("id" => $info["id"], "name" => $info["username"]));
?>
		
<table class="MedalTable">
<?php 
foreach ($badges as $row) {
    $b = Badges::$badgelist[$row["badge"]];
    echo '<tr><td>';
    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/" . $row["badge"] . "/" . html($b["title"])) . '" class="awardmedal"><span class="award' . $b["medal"] . '">' . html($b["title"]) . '</span></a></td>';
    echo '<td>' . date("d.m.Y", $row["dt_received"]) . '</td>';
    echo '<td class="desc">' . html($b["desc"]) . '</td>';
    echo '</tr>';
}
?>
</table>
コード例 #8
0
<?php

$rss = new RSS("Letzte Antworten - " . SiteConfig::val("page/title", "Q/A Forum"), "Die neusten Antworten aus dem Forum", get_path("/questions/rss"));
$db = new SQL(0);
$rows = $db->cmdrows(0, 'SELECT T1.*,T3.title,T2.username as authorname FROM answers as T1 LEFT JOIN user_list as T2 ON T1.author=T2.id LEFT JOIN questions as T3 ON T1.question=T3.id WHERE 1 ORDER BY date_created DESC LIMIT 0,30');
foreach ($rows as $row) {
    $item = new RSSItem("Antwort auf: " . $row["title"], $row["txt"] . '<br/><br/><div style="color:#8080ff;">SPAMcheck: ' . SpamText($row["isSPAM"]) . '<br/><i>' . html($row["authorname"]) . '</i></div>', Question::PermalinkByData($row["question"], $row["title"]) . "#answer-" . $row["id"]);
    $rss->addItem($item);
}
//die($rss->fetch());
$rss->display();
exit(1);
function SpamText($v)
{
    switch ($v) {
        case -2:
            return "Akismet gute Antwort";
        case -1:
            return "Ham";
        case 1:
            return "<b>Spam</b>";
        case 2:
            return "<b>Akismet SPAM</b>";
    }
}
コード例 #9
0
ファイル: page_ask.php プロジェクト: andreaskasper/askbot_php
<?php

if (isset($_GET["act"]) && $_GET["act"] == "autocompleteTags") {
    $out = array();
    $db = new SQL(0);
    $rows = $db->cmdrows(0, 'SELECT tag, count(*) as Anzahl FROM question_tags WHERE tag LIKE "%{0}%" GROUP BY tag ORDER BY Anzahl DESC LIMIT 0,10', array($_REQUEST["term"]));
    foreach ($rows as $row) {
        $out[] = array("id" => $row["tag"], "label" => $row["tag"], "value" => $row["tag"]);
    }
    die(json_encode($out));
}
PageEngine::html("html_head", array("subtitle" => _h("ask your question"), "nocache" => true));
PageEngine::html("header");
?>
<style>
nav .searchBar { display: none;}
</style>
	<div id="Content" class="content-wrapper askForm">
		<article class="ContentLeft">
			<?php 
PageEngine::html("messagebox", array("name" => "save"));
?>
			<form method="POST"><INPUT type="hidden" name="action" value="save"/>
			<INPUT type="text" class="fld_title big" name="title" autocomplete="off" value="<?php 
echo isset($_POST["title"]) ? html($_POST["title"]) : "";
?>
" placeholder="<?php 
echo _e("Wie lautet Deine Frage?");
?>
"/>
			<p><?php 
コード例 #10
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>';
}
コード例 #11
0
			<div id="contrib-users" class="widget"> 
				<h2 class="contributorback"><?php 
echo _e("Contributors");
?>
</h2>
<?php 
$db = new SQL(0);
$rows = $db->cmdrows(0, 'SELECT T1.id, T1.username ,T1.email_standard as email ,T2.last_writeaction
FROM user_list as T1 
LEFT JOIN user_action as T2 ON T1.id=T2.user
WHERE 1 GROUP BY T1.id ORDER BY T2.last_writeaction DESC LIMIT 0,16');
foreach ($rows as $row) {
    echo '<a style="text-decoration:none" href="' . UserProfile::ProfilePermaLink($row["id"], $row["username"]) . '"><img class="gravatar" width="48" height="48" src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($row["email"]))) . '?s=48&d=mm" title="' . html($row["username"]) . '" alt="' . _e("{0}'s Gravatar Image", array($row["username"])) . '"></a>';
}
?>
			</div>
コード例 #12
0
</td></tr>
				<tr><th>Zuletzt gesehen:</th><td><?php 
echo date("d.m.Y H:i:s", $info["last_action"]);
?>
 Uhr</td></tr>
				<tr><th>Website:</th><td><a href="<?php 
echo html($info["website"]);
?>
" target="_blank" rel="nofollow"><?php 
echo html($info["website"]);
?>
</a></td></tr>
				<tr><th>Wohnort:</th><td><?php 
echo html($info["location"]);
?>
</td></tr>
				<tr><th>Alter:</th><td><?php 
function alter($datum)
{
    list($y, $m, $d) = explode('-', $datum);
    $alter = date("Y") - $y;
    $monat = date("m");
    if ($monat < $m or $monat == $m and $d > date("d")) {
        $alter--;
    }
    return $alter;
}
if (strtotime($info["birthday"]) != 0) {
    echo _e("{0} Alter", array(alter($info["birthday"])));
}
?>
コード例 #13
0
<?php

$db = new SQL(0);
$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM user_badges as T1 LEFT JOIN user_list as T2 ON T1.user=T2.id';
$sql .= ' WHERE badge = {0} ';
switch (isset($_GET["sort"]) ? $_GET["sort"] : "karma") {
    case "name":
        $sql .= ' ORDER BY username ASC';
        break;
    case "karma":
        $sql .= ' ORDER BY Karma DESC';
        break;
}
$sql .= ' LIMIT ' . (isset($_GET["page"]) ? $_GET["page"] * 60 : "0") . ',60';
$rows = $db->cmdrows(0, $sql, array($params["badge_id"] + 0));
$AnzahlUsers = $db->countallrows();
PageEngine::html("html_head", array("title" => _h("{n} Benutzer haben dieses Abzeichen", array("n" => $AnzahlUsers))));
PageEngine::html("header");
?>
	<div id="Content" class="content-wrapper PageUsers">
		<article class="ContentLeft">
			<h1>Abzeichen "<?php 
echo html(Badges::$badgelist[$params["badge_id"] + 0]["title"]);
?>
"</h1>
			
			<p><span class="awardmedal"><span class="award<?php 
echo Badges::$badgelist[$params["badge_id"] + 0]["medal"];
?>
"><?php 
echo html(Badges::$badgelist[$params["badge_id"] + 0]["title"]);
コード例 #14
0
<?php

@header("Content-Type: text/css; Charset: UTF-8");
$expires = 3600;
@header("Pragma: public");
@header("Cache-Control: maxage=" . $expires);
@header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
$a = fcache::read(__FILE__, 3600);
if ($a != null) {
    die($a);
}
$db = new SQL(0);
$rows = $db->cmdrows(0, 'SELECT tag,icon_URL FROM tag_details WHERE icon_URL != ""');
$out = "";
foreach ($rows as $row) {
    $out .= '.tags a.tag.' . niceClass($row["tag"]) . ' { background: #F3F6F6 url(\'' . $row["icon_URL"] . '\') no-repeat left center; background-size: 16px 16px; padding-left: 18px; }' . PHP_EOL;
}
$out .= '/***cached at ' . date("d.m.Y H:i:s") . ' ***/' . PHP_EOL;
fcache::write(__FILE__, $out);
echo $out;
exit(1);
コード例 #15
0
			<div id="widget-tags" class="widget tags"> 
				<h2 class="contributorback"><?php 
echo _e("Tags");
?>
</h2>
<ul class="tags"><?php 
$db = new SQL(0);
$rows = $db->cmdrows(0, 'SELECT tag, count(*) as Anzahl FROM question_tags WHERE (tag != "") GROUP BY tag ORDER BY Anzahl DESC LIMIT 0,50');
foreach ($rows as $row) {
    echo '<li><a class="tag ' . Tag::niceClass($row["tag"]) . '" href="' . get_path("/tags/" . html($row["tag"]) . "/info") . '">' . html($row["tag"]) . '</a> x <span class="counter">' . $row["Anzahl"] . '</span></li>';
}
?>
</ul>
			</div>
コード例 #16
0
<?php

$db = new SQL(0);
$rows = $db->cmdrows(0, 'SELECT id, title,MATCH (`title`,`question`,`tags`) AGAINST ("{0}") as Score FROM questions WHERE id != {1} AND MATCH (`title`,`question`,`tags`) AGAINST ("{0}") ORDER BY Score DESC LIMIT 0,5', array($params["data"]["title"] . " " . $params["data"]["question"] . " " . $params["data"]["tags"], $params["data"]["id"] + 0));
?>
<div id="widget-similar" class="widget similar questions"> 
				<h2 class=""><?php 
echo _e("similar questions");
?>
</h2>
<ul>
<?php 
foreach ($rows as $row) {
    echo '<li><a class="question" href="' . Question::PermalinkByData($row["id"], $row["title"]) . '">' . html($row["title"]) . '</a> ' . number_format($row["Score"], 1) . '%</li>';
}
?>
</ul>
			</div>
<style>
#widget-similar ul { padding:0px; margin:0px; }
#widget-similar li { font-family: 'Yanone Kaffeesatz',Arial,sans-serif;  font-size:14px; list-style: none; margin: 4px 0px; padding:0px; color: #707070; }
#widget-similar a { color: #1B79BD; }
#widget-similar a:hover { }
</Style>
コード例 #17
0
</td></tr>
	<tr><td>
	</table>
	
</div>
<div id="widget-tag-stats" class="widget tag stats"> 
	<h2 class=""><?php 
echo _e("Top Answerers");
?>
</h2>
<?php 
$db = new SQL(0);
$rows = $db->cmdrows(0, 'SELECT T2.id, T2.username, T2.email_standard, country, show_country, T2.karma, T2.award_gold, T2.award_silver, T2.award_bronce, sum(T1.count_votes)+count(*) as Rating FROM answers as T1 LEFT JOIN user_list as T2 ON T1.author=T2.id WHERE question IN (SELECT question FROM question_tags WHERE tag="{0}") GROUP BY T2.id ORDER BY Rating DESC LIMIT 0,10', array($params["id"]));
foreach ($rows as $row) {
    if (!isset($row["karma"])) {
        continue;
    }
    echo '<div class="user" style="position: relative; width:180px; height:32px; overflow: hidden; margin-bottom: 5px;">';
    echo '<a href="' . UserProfile::ProfilePermaLink($row["id"], $row["username"]) . '"><img class="gravatar" width="32" height="32" src="http://www.gravatar.com/avatar/' . md5(strtolower(trim($row["email_standard"]))) . '?s=32&d=mm" title="' . html($row["username"]) . '" alt="' . _e("{0}'s Gravatar Image") . '" style="float: left; margin-right:3px; ">';
    //if ($row["is_expert"] == "expert") echo('<img src="'.get_path("/skins/default/images/icons/expert.png").'" TITLE="'._e("Expert for this Subject").'" style="width:8px; height:8px; position: absolute; top:24px; left: 28px;"/>');
    echo '<span class="username">' . html($row["username"]) . '</span></a>';
    if ($row["country"] != "" and $row["show_country"] == "1") {
        echo '<img class="flag" src="' . get_path("/skins/default/images/flags/16x11/" . strtolower($row["country"]) . ".png") . '" alt="' . _e(Country::getCountryName($row["country"])) . '" title="' . _e(Country::getCountryName($row["country"])) . '"/>';
    }
    echo '<br/>';
    echo '<span class="karma counter" title="' . _e("User karma of {0}", array($row["username"])) . '">' . $row["karma"] . '</span>';
    if ($row["award_gold"] > 0) {
        echo '<span class="award1" title="' . _e("gold medals of {0}", array($row["username"])) . '">' . $row["award_gold"] . '</span>';
    }
    if ($row["award_silver"] > 0) {
        echo '<span class="award2" title="' . _e("silver medals of {0}", array($row["username"])) . '">' . $row["award_silver"] . '</span>';
コード例 #18
0
$db = new SQL(0);
//die(date("d.m.Y", strtotime("this week")));
$sql = 'SELECT SQL_CALC_FOUND_ROWS T1.tag, count(*) as Anzahl, T2.short_desc
	FROM question_tags as T1 
	LEFT JOIN tag_details as T2 ON T1.tag=T2.tag ';
$sql .= ' WHERE (T1.`tag` != "") ';
$sql .= ' GROUP BY T1.tag';
switch (isset($_GET["sort"]) ? $_GET["sort"] : "used") {
    case "name":
        $sql .= ' ORDER BY tag ASC';
        break;
    case "used":
        $sql .= ' ORDER BY Anzahl DESC';
        break;
}
$sql .= ' LIMIT ' . (isset($_GET["page"]) ? $_GET["page"] * 60 : "0") . ',60';
$rows = $db->cmdrows(0, $sql);
$AnzahlTags = $db->countallrows();
function SortIcon($name, $key, $popup, $default = false)
{
    echo '<a id="by_' . $key . '" href="' . URL::addVar("sort", $key) . '" class="sortby" title="' . _e($popup) . '"><span>' . _e($name);
    if ((isset($_GET["sort"]) or $default) && $_GET["sort"] == $key) {
        if (!isset($_GET["sortdir"]) or $_GET["sortdir"] == "1") {
            echo ' ^';
        }
        if (isset($_GET["sortdir"]) and $_GET["sortdir"] == "2") {
            echo ' ▼';
        }
    }
    echo '</span></a>';
コード例 #19
0
<?php

PageEngine::html("html_head");
PageEngine::html("header", array("searchquery" => isset($_GET["query"]) ? $_GET["query"] : ""));
$db = new SQL(0);
$userinfo = $db->cmdrow(0, 'SELECT * FROM user_list WHERE id={0} LIMIT 0,1', array($params["user_id"]));
$infos = $db->cmdrows(0, 'SELECT T1.*, T2.title FROM karma_log as T1 LEFT JOIN questions as T2 ON T1.question=T2.id WHERE user={0} ORDER BY created DESC', array($userinfo["id"]));
?>
	<div id="Content" class="content-wrapper PageUserKarma">
		<article>
			
			<h1 class="search-result-summary"><?php 
echo _e("{0}'s Karma Übersicht", array(0 => html($userinfo["username"])));
?>
</h1>
<?php 
PageEngine::html("box_userprofile_navi", array("id" => $userinfo["id"], "name" => $userinfo["username"]));
?>
			
			<script type="text/javascript" src="https://www.google.com/jsapi"></script>
			<script type="text/javascript">
				google.load("visualization", "1", {packages:["corechart"]});
				google.setOnLoadCallback(drawChart);
				function drawChart() {
					var data = google.visualization.arrayToDataTable(<?php 
$out = array(array("Datum", "Karma"));
$rows = $db->cmdrows(0, 'SELECT sum(points) as Karma, substr(stamp,1,10) as Datum FROM karma_log WHERE user={0} GROUP BY Datum ORDER BY Datum ASC', array($userinfo["id"]));
$raws = array();
$sum = 0;
$time = $userinfo["dt_registered"] - 86400;
foreach ($rows as $row) {
コード例 #20
0
<?php

header("Content-Type: text/xml; Charset: UTF-8");
header("Content-Type: application/xml; Charset: UTF-8");
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">' . PHP_EOL;
$db = new SQL(0);
$maxviews = max(1, $db->cmdvalue(0, 'SELECT max(count_views) FROM questions WHERE 1'));
$rows = $db->cmdrows(0, 'SELECT id, title, date_edited, date_action, count_views FROM questions ORDER BY id DESC');
foreach ($rows as $row) {
    echo '<url>
    <loc>' . Question::PermalinkByData($row["id"], $row["title"]) . '</loc>
    <lastmod>' . date("Y-m-d", $row["date_action"]) . 'T' . date("H:i:s", $row["date_action"]) . '+01:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>' . (0.49 + 0.5 * $row["count_views"] / $maxviews) . '</priority>
  </url>' . PHP_EOL;
}
?>
<url>
    <loc><?php 
echo $_ENV["baseurl"];
?>
questions</loc>
    <lastmod><?php 
echo date("Y-m-d");
?>
T01:00:00+01:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>.99</priority>
 </url>
<url>
コード例 #21
0
<?php

$db = new SQL(0);
$info = $db->cmdrow(0, "SELECT T1.*,T2.username as authorname, T2.country, T2.show_country, T2.email_standard as authoremail, T2.karma as authorkarma, T2.award_gold, T2.award_silver, T2.award_bronce, T2.website as authorwebsite, T3.vote as MyVote, T4.right as authorexpert, T5.username as user_actionname\r\tFROM questions as T1 \r\tLEFT JOIN user_list as T2 ON T1.author=T2.id \r\tLEFT JOIN user_list as T5 ON T1.user_action=T5.id \r\tLEFT JOIN question_votes as T3 ON T1.id=T3.question AND T3.user={1}\r\tLEFT JOIN user_rights as T4 ON T1.author=T4.user AND T4.right = 'expert'\r\tWHERE T1.id={0} GROUP BY T1.id LIMIT 0,1", array($params["id"], MyUser::id() + 0));
if (!isset($info["id"])) {
    PageEngine::html("page_404");
}
$tags = $db->cmdrows(0, "SELECT * FROM question_tags WHERE question={0} ORDER BY tag ASC", array($info["id"]));
switch (isset($_GET["sort"]) ? $_GET["sort"] : "") {
    case "oldest":
        $ansorder = "date_created ASC";
        break;
    case "latest":
        $ansorder = "date_created DESC";
        break;
    default:
        $ansorder = "count_votes DESC";
}
$answers = $db->cmdrows(0, "SELECT T1.*,T2.username as authorname,T2.email_standard as authoremail, T2.GooglePlus, T2.country, T2.show_country, T2.karma as authorkarma, T2.award_gold, T2.award_silver, T2.award_bronce, T2.website as authorwebsite, T2.FlattrUID, T3.vote as MyVote, T4.right as authorexpert\r\tFROM answers as T1\r\tLEFT JOIN user_list as T2 ON T1.author=T2.id \r\tLEFT JOIN answer_votes as T3 ON T1.id=T3.answer AND T3.user={1}\r\tLEFT JOIN user_rights as T4 ON T1.author=T4.user AND T4.right = 'expert'\r\tWHERE T1.question={0} \r\tORDER BY " . $ansorder . ", right_answer DESC", array($info["id"], MyUser::id() + 0));
$bounties = $db->cmdrows(0, 'SELECT sum(amount) as amount, currency FROM question_bounty WHERE question={0} GROUP BY currency', array($info["id"] + 0), "currency");
if ($info["author"] != MyUser::id()) {
    $db->cmd(0, 'INSERT LOW_PRIORITY IGNORE INTO `question_views` (`question`, `IP`, `day`) VALUES (' . $info["id"] . ', "' . $_SERVER["REMOTE_ADDR"] . '", ' . date("Ymd") . ');', true);
    $db->cmd(0, 'UPDATE LOW_PRIORITY `questions` SET count_views=(SELECT count(*) FROM `question_views` WHERE question=questions.id) WHERE id={0} LIMIT 1', true, array($info["id"]));
    if ($info["count_views"] == 500) {
        Badges::add(21, $info["author"], array("question" => $info["id"]));
    } elseif ($info["count_views"] == 250) {
        Badges::add(31, $info["author"], array("question" => $info["id"]));
    } elseif ($info["count_views"] == 150) {
        Badges::add(41, $info["author"], array("question" => $info["id"]));
    }
}