75 lines
3.4 KiB
PHP
Executable File
75 lines
3.4 KiB
PHP
Executable File
<?php #pgs/board/main.php
|
|
// Liste aus Kategorien mit Threads
|
|
|
|
$tpl["main"] = tplExtrSection(tplLoadFile("pgs/board/categories.html"), "###BOARDCATS###");
|
|
$tpl["cat"] = "";
|
|
|
|
if ($userID = lgnCheckLogin($mysqli)) {
|
|
$tpl["cat"] = tplExtrSection($tpl["main"], "###BOARDCATS.CAT###");
|
|
$tpl["thread"] = tplExtrSection($tpl["cat"], "###BOARDCATS.CAT.THREAD###");
|
|
$tpl["nothreads"] = tplExtrSection($tpl["cat"], "###BOARDCATS.CAT.NOTHREADS###");
|
|
$cats = "";
|
|
|
|
$qry = "SELECT c.ID, c.name, c.description FROM board_categories c "
|
|
."LEFT JOIN rolerights r ON r.rightID=c.rightID "
|
|
."LEFT JOIN users u ON u.roleID=r.roleID "
|
|
."WHERE c.rightID IS NULL OR u.ID = ? "
|
|
."ORDER BY c.name ASC";
|
|
if ($stmt = $mysqli->prepare($qry)) {
|
|
$stmt->bind_param("i", $userID);
|
|
$stmt->execute();
|
|
$catres = $stmt->get_result();
|
|
while ($catrow = $catres->fetch_assoc()) {
|
|
$replace = array(
|
|
"###BOARDCATS.CAT.ID###" => $catrow["ID"],
|
|
"###BOARDCATS.CAT.NAME###" => $catrow["name"],
|
|
"###BOARDCATS.CAT.DESC###" => $catrow["description"]
|
|
);
|
|
$cat = tplReplMarkerArray($tpl["cat"], $replace);
|
|
$threads = "";
|
|
|
|
$qry = "SELECT m.ID, m.dttm, m.title, m.text, g.prenames, g.surnames, "
|
|
."(SELECT COUNT(*) FROM board_messages ms WHERE ms.rootID=m.ID) replies "
|
|
."FROM board_messages m LEFT JOIN guests g ON g.ID = m.guestID "
|
|
."WHERE m.parentID IS NULL AND m.categoryID = ".$catrow["ID"]." "
|
|
."ORDER BY m.dttm DESC";
|
|
if ($thrres = $mysqli->query($qry)) {
|
|
if ($thrres->num_rows==0) {
|
|
$threads = $tpl["nothreads"];
|
|
} else {
|
|
while ($thrrow = $thrres->fetch_assoc()) {
|
|
$thread = tplReplMarker($tpl["thread"], "###BOARDCATS.CAT.THREAD.MSG###", tplExtrSection(tplLoadFile("pgs/board/msg.html"), "###BOARDMSG###"));
|
|
$thread = tplReplSection($thread, "###BOARDMSG.FOOTER###", "");
|
|
$thread = tplReplSection($thread, "###BOARDMSG.INDENT.IN###", "");
|
|
$thread = tplReplSection($thread, "###BOARDMSG.INDENT.OUT###", "");
|
|
preg_match_all("/([\s-]?)([A-Z])/", $thrrow["surnames"], $matches);
|
|
$replace = array(
|
|
"###BOARDMSG.ID###" => $thrrow["ID"],
|
|
"###BOARDMSG.TITLE###" => cntCipherTextSym($thrrow["title"], SYM_CIPHER_KEY),
|
|
"###BOARDMSG.AUTHOR###" => $thrrow["prenames"]." ".implode(".", $matches[0]).".",
|
|
"###BOARDMSG.DATETIME###" => $thrrow["dttm"],
|
|
"###BOARDMSG.LEVEL###" => 0
|
|
);
|
|
$decText = cntCipherTextSym($thrrow["text"], SYM_CIPHER_KEY);
|
|
if (strlen($decText)>33) {
|
|
$replace["###BOARDMSG.TEXT###"] = substr($decText, 0, 30)."...<br /><i>".$thrrow["replies"]." Antwort".($thrrow["replies"]!="1" ? "en" : "")."</i>";
|
|
} else {
|
|
$replace["###BOARDMSG.TEXT###"] = $decText."<br /><i>".$thrrow["replies"]." Antwort".($thrrow["replies"]!="1" ? "en" : "")."</i>";
|
|
}
|
|
$threads.= tplReplMarkerArray($thread, $replace);
|
|
}
|
|
}
|
|
} else {
|
|
addError("Mysql", $mysqli->error);
|
|
}
|
|
$cat = tplReplSection($cat, "###BOARDCATS.CAT.NOTHREADS###", "");
|
|
$cats.= tplReplSection($cat, "###BOARDCATS.CAT.THREAD###", $threads);
|
|
}
|
|
$stmt->close();
|
|
$tpl["cat"] = $cats;
|
|
}
|
|
}
|
|
$tpl["main"] = tplReplSection($tpl["main"], "###BOARDCATS.CAT###", $tpl["cat"]);
|
|
|
|
?>
|