Re: Modul: Forum
Verfasst: Sa 3. Jul 2010, 10:55
Wie könnte ich es noch schreiben?
Das Diskussionsforum zum Open Source Content Management System
https://forum.contenido.org/
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Forum Anzeige
* Version : 0.9
* Created : 17.09.2009
* Author : Andreas Dinkelacker
* Copyright : Andreas Dinkelacker
************************************************/
$username=$auth->auth['uname'];
$userid=$auth->auth['uid'];
$settings=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_settings"));
if ($settings[allow_guest_post]=="true" || $username!="nobody" || $userid!="nobody") $allowPost="true";
$catSitenav=$settings[cat_sitenav];
$threadSitenav=$settings[thread_sitenav];
$postSitenav=$settings[post_sitenav];
echo '<script language="javascript" type="text/javascript" src="'.$cfg['path']['wysiwyg_html'].'jscripts/tiny_mce/tiny_mce.js"></script>
<link rel="stylesheet" href="css/forum.css" type="text/css" media="all" />
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "exact",
elements: "post_message",
language : "de",
width : "'.$settings[tinymce_width].'",
height : "'.$settings[tinymce_height].'",
theme : "advanced",
force_br_newlines : "true",
forced_root_block : "",
force_p_newlines : "false",
plugins : "safari,table,save,advhr,advimage,advlink,pagebreak,style,layer,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups",
theme_advanced_buttons1 : "'.$settings[tinymce1].'",
theme_advanced_buttons2 : "'.$settings[tinymce2].'",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_align : "left",
theme_advanced_toolbar_location : "top",
valid_elements : "*[*]",
extended_valid_elements : "*[*]",
content_css : "css/forum.css",
verify_css_classes : "false"
});
</script>';
// Check if mod_rewrite may be active
if (substr_count($_SERVER[REQUEST_URI],"front_content.php")==0) {
$modRewrite=1;
$modRewriteFiller="?";
$phpSelf=str_replace("?".$_SERVER[QUERY_STRING],"",$_SERVER[REQUEST_URI]);
} else {
$modRewrite=0;
$modRewriteFiller="&";
$idcat=strip_tags($_GET[idcat]);
$idart=strip_tags($_GET[idart]);
$idcatart=strip_tags($_GET[idcatart]);
if ($idcat!="" && $idcat!=0) {
$artCat='idcat='.$idcat;
} elseif ($idart!="" && $idart!=0) {
$artCat='idart='.$idart;
} elseif ($idcatart!="" && $idcatart!=0) {
$artCat='idcatart='.$idcatart;
}
$phpSelf=$_SERVER[PHP_SELF].'?'.$artCat;
}
if (isset($_POST['new_thread'])) {
$forum_id=strip_tags($_POST[forum_id]);
// Neuen Thread schreiben
echo '<form name=post" action="" method="post">';
echo '<table cellspacing="0" cellpadding="0" class="forum-catTable" style="width;:'.$settings[forum_width].'px;">
<tr>
<td colspan="2" class="forum-header"><b>'.mi18n("Neuen Thread verfassen").'</b></td>
</tr>
<tr>
<td width="75">Titel</td>
<td><input type="text" name="post_subject" maxlength="255" style="width:200px;" /></td>
</tr>
<tr>
<td class="forum-header" valign="top">'.mi18n("Text").'</td>
<td class="forum-header"><textarea style="word-break:break-all;" rows="20" cols="45" name="post_message"></textarea></td>
</tr>';
$modArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_forums WHERE forum_id='".$forum_id."'"));
$treffer_mod = substr_count($modArr['forum_mods'], $userid);
if (substr_count($modArr['forum_mods'], $userid)!=0) {
$modIDs=$userid;
}
if (substr_count($settings['forum_admins'], $userid)!=0) {
$adminIDs=$userid;
}
if ($modIDs==$userid || $adminIDs==$userid) {
echo '<tr>
<td class="forum-header"> </td>
<td class="forum-header"><input type="checkbox" value="1" name="sticky" /> '.mi18n("Thread pinnen").'</td>
</tr>';
echo '<tr>
<td class="forum-header"> </td>
<td class="forum-header"><input type="checkbox" value="true" name="locked" /> '.mi18n("Thread sperren").'</td>
</tr>';
}
echo '<tr>
<td colspan="2" align="center"><input type="hidden" value="'.$forum_id.'" name="forum_id" /><input type="submit" value="'.mi18n("Speichern").'" class="forum-button" name="save_new_thread" /></td>
</tr>
</table></form>';
} elseif (isset($_POST['save_new_thread'])) {
if ($_POST['post_subject']=="") {
echo mi18n("Der Thread hat keinen Betreff.");
echo '<br/><a href="javascript:history.back()" target="_self">'.mi18n("zurück").'</a>';
} elseif ($_POST['post_message']=="") {
echo mi18n("Der Thread hat keinen Text.");
echo '<br/><a href="javascript:history.back()" target="_self">'.mi18n("zurück").'</a>';
} else {
$forum_id=strip_tags($_POST[forum_id]);
$post_subject=$_POST['post_subject'];
$post_text=str_replace("<a href","<a target=\"_blank\" href",$_POST['post_message']);
$post_author=$userid;
$post_time=date('Y-m-d H:i:s');
$isSticky=strip_tags($_POST[sticky]);
if ($isSticky!="1") $isSticky="0";
$isLocked=strip_tags($_POST[locked]);
if ($isLocked!="true") $isLocked="false";
$qry=mysql_query("INSERT INTO ".$cfg['sql']['sqlprefix']."_forum_threads VALUES ('', '".$forum_id."', '0', '".$isLocked."', '".$isSticky."', '', '', '".$post_time."')");
$thread_id=mysql_insert_id();
$qry=mysql_query("INSERT INTO ".$cfg['sql']['sqlprefix']."_forum_posts VALUES ('', '".$thread_id."', '".$_POST['forum_id']."', '".$post_subject."', '".$post_text."', '".$post_author."', '".$post_time."', '', '', '')");
$post_id=mysql_insert_id();
$qry=mysql_query("UPDATE ".$cfg['sql']['sqlprefix']."_forum_threads SET thread_firstpost='".$post_id."' WHERE thread_id='".$thread_id."'");
header('Location: '.$phpSelf.$modRewriteFiller.'thread_id='.$thread_id);
}
} elseif (isset($_POST['new_post']) || isset($_POST['quote_post'])) {
$post_id=strip_tags($_POST[post_id]);
// Post-Antwort schreiben
echo '<form name=post" action="" method="post">';
echo '<table cellspacing="0" cellpadding="0" style="width:'.$settings[forum_width].'px;">
<tr>
<td class="forum-header" colspan="2"><b>'.mi18n("Post-Antwort schreiben").'</b></td>
</tr>
<tr>
<td width="75">'.mi18n("Titel").'</td>
<td><input type="text" name="post_subject" value="" maxlength="255" style="width:200px;" /></td>
</tr>
<tr><td valign="top" class="forum-header">'.mi18n("Text").'</td>';
// quote post?
if (isset($_POST[quote_post])) {
$arrGetThreadId=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='".$post_id."'"));
$thread_id=$arrGetThreadId[thread_id];
$quoteArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='".$post_id."'"));
$postMessage=$quoteArr[post_message];
$postMessage=str_replace('class="forum-quote4"','class="forum-quote5"',$postMessage);
$postMessage=str_replace('class="forum-quote3"','class="forum-quote4"',$postMessage);
$postMessage=str_replace('class="forum-quote2"','class="forum-quote3"',$postMessage);
$postMessage=str_replace('class="forum-quote1"','class="forum-quote2"',$postMessage);
$quoteAuthorArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_frontendusers WHERE idfrontenduser='".$quoteArr[post_author]."'"));
$quoteAuthor=$quoteAuthorArr[username];
$quoteText='<br/><center><div class="forum-quote1"><b>'.mi18n("Zitat von").' '.$quoteAuthor.' '.mi18n("vom").' '.date($settings[dateformat],strtotime($quoteArr[post_time])).':</b><br/>'.$postMessage.'</div></center><br/>';
echo '<td class="forum-header">'.$quoteText.'<input type="hidden" value="'.urlencode($quoteText).'" name="quoteText" /></td></tr>';
echo '<tr><td class="forum-header"> </td>';
}
echo '<td><textarea style="word-break:break-all;" rows="20" cols="45" name="post_message"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="hidden" value="'.$thread_id.'" name="thread_id" /><input type="submit" value="'.mi18n("Speichern").'" class="forum-button" name="save_new_post" /></td>
</tr>
</table></form>';
} elseif (isset($_POST['save_new_post'])) {
if ($_POST['post_message']=="") {
echo mi18n("Bitte einen Text eingeben.");
echo '<br/><a href="javascript:history.back()" target="_self">'.mi18n("zurück").'</a>';
} else {
$thread_id=strip_tags($_POST[thread_id]);
$arr1=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_id='".$thread_id."'"));
$postArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='".$arr1[thread_firstpost]."'"));
if ($post_subject=="") {
$post_subject=mi18n("RE:").' '.$postArr[post_subject];
} else {
$post_subject=$_POST['post_subject'];
}
$post_message=str_replace("target=\"_self\"","target=\"_blank\"",str_replace("<a href","<a target=\"_blank\" href",$_POST['post_message']));
if ($_POST[quoteText]!="") $post_message=urldecode($_POST[quoteText]).$post_message;
$post_author=$userid;
$post_time=date('Y-m-d H:i:s');
$qry=mysql_query("INSERT INTO ".$cfg['sql']['sqlprefix']."_forum_posts VALUES ('', '$arr1[thread_id]', '$arr1[forum_id]', '$post_subject', '$post_message', '$post_author', '$post_time', '', '', '')");
$post_id=mysql_insert_id();
$qry=mysql_query("UPDATE ".$cfg['sql']['sqlprefix']."_forum_threads SET thread_lastpost_time='".$post_time."' WHERE thread_id='".$arr1[thread_id]."'");
//echo mi18n("Der Post wurde gespeichert.");
header("Location: ".$phpSelf.$modRewriteFiller."thread_id=".$thread_id."&post_id=".$post_id."&show=last#".$post_id);
}
} elseif (isset($_POST['edit_post'])) {
// Post editieren
$post_id=strip_tags($_POST[post_id]);
$arr1 = mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='".$post_id."'"));
echo '<form name=post" action="" method="post">';
echo '<table cellspacing="0" cellpadding="0" class="forum-catTable" style="width:'.$settings[forum_width].'px;">
<tr>
<td class="forum-header" colspan="2"><b>'.mi18n("Post bearbeiten").'</b></td>
</tr>
<tr>
<td width="75">'.mi18n("Titel").'</td>
<td><input type="text" name="post_subject" value="'.$arr1[post_subject].'" maxlength="255" style="width:200px;" /></td>
</tr>
<tr>
<td class="forum-header" valign="top">'.mi18n("Text").'</td>
<td class="forum-header"><textarea name="post_message" style="word-break:break-all;" rows="20" cols="45">'.$arr1[post_message].'</textarea></td>
</tr>';
$row1=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_firstpost='".$post_id."'"));
if ($row1==0 && $settings[delete_post]=="true") {
echo '<tr>
<td class="forum-header"> </td>
<td class="forum-header"><input type="checkbox" value="1" name="del_post" /> '.mi18n("Post löschen").'</td>
</tr>';
}
// if ($row0==0) {
// if ($row0==0 && $settings[delete_post]=="true") {
// echo '<tr>
// <td class="forum-header"> </td>
// <td class="forum-header"><input type="checkbox" value="1" name="del_threads" /> '.mi18n("Ganzen Thread löschen").'</td>
// </tr>';
// }
$rowThread=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_firstpost='".$arr1[post_id]."'"));
if ($rowThread==1) {
$modArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_forums WHERE forum_id='".$arr1[forum_id]."'"));
$treffer_mod = substr_count($modArr['forum_mods'], $userid);
if (substr_count($modArr['forum_mods'], $userid)!=0) {
$modIDs=$userid;
}
if (substr_count($settings['forum_admins'], $userid)!=0) {
$adminIDs=$userid;
}
$arrThread=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_firstpost='".$arr1[post_id]."'"));
if ($arrThread[thread_locked]=="true") $chkLocked=" checked";
if ($arrThread[thread_sticky]=="1") $chkSticky=" checked";
if ($modIDs==$userid || $adminIDs==$userid) {
echo '<tr>
<td class="forum-header"> </td>
<td class="forum-header"><input type="checkbox" value="1" name="sticky"'.$chkSticky.' /> '.mi18n("Thread pinnen").'</td>
</tr>';
echo '<tr>
<td class="forum-header"> </td>
<td class="forum-header"><input type="checkbox" value="true" name="locked"'.$chkLocked.' /> '.mi18n("Thread sperren").'</td>
</tr>';
}
}
echo '<tr>
<td colspan="2" align="center"><input type="hidden" value="'.$_POST[post_id].'" name="post_id" /><input type="submit" value="'.mi18n("Speichern").'" class="forum-button" name="save_edit_post" /></td>
</tr>
</table></form>';
} elseif (isset($_POST['save_edit_post'])) {
if ($_POST['del_post']==1) {
$qry=mysql_query("DELETE FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='$_POST[post_id]'");
echo mi18n("Der Post wurde erfolgreich gelöscht.").'<br/><br/><a href="'.$phpSelf.'" target="_self">'.mi18n("zum Übersicht").'</a>';
} else if ($_POST['del_threads']==1) {
$qry=mysql_query("DELETE FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_id='".$_POST[thread_id]."'");
// $qry=mysql_query("DELETE FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_id='$_POST[thread_id]'");
echo mi18n("Der Beitrag wurde erfolgreich gelöscht.").'<br/><br/><a href="'.$phpSelf.'" target="_self">'.mi18n("zum Übersicht").'</a>';
} else {
$postId=$_POST['post_id'];
$isSticky="0";
if (strip_tags($_POST[sticky])=="1") $isSticky="1";
$isLocked="false";
if (strip_tags($_POST[locked])=="true") $isLocked="true";
$qry1=mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_firstpost='".$post_id."'");
$qry2=mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='".$post_id."'");
$arr22=mysql_fetch_assoc($qry2);
$row1=mysql_num_rows($qry1);
if ($_POST['post_subject']=="" && $row1==1) {
echo mi18n("Dieser Post muss einen Betreff haben, da es der erste in einem Thread ist.");
} elseif ($_POST['post_message']=="") {
echo mi18n("Der Post hat keinen Text.");
echo '<br/><a href="javascript:history.back()" target="_self">'.mi18n("zurück").'</a>';
} else {
$postArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='".$post_id."'"));
if ($post_subject=="") {
$post_subject=mi18n("RE:").' '.$postArr[post_subject];
} else {
$post_subject=$_POST['post_subject'];
}
$post_text=str_replace("<a href","<a target=\"_blank\" href",$_POST['post_message']);
$edit_user=$userid;
$qry=mysql_query("UPDATE ".$cfg['sql']['sqlprefix']."_forum_posts SET post_subject='$post_subject', post_message='$post_text', post_edittime='".date('Y-m-d H:i:s')."', post_edituser='$edit_user' WHERE post_id='".$postId."'");
$arr1=mysql_fetch_assoc($qry1);
if ($arr1[thread_firstpost]==$post_id) $qry=mysql_query("UPDATE ".$cfg['sql']['sqlprefix']."_forum_threads SET thread_sticky='".$isSticky."', thread_locked='".$isLocked."' WHERE thread_id='".$postArr[thread_id]."'");
header('Location: '.$phpSelf.$modRewriteFiller.'thread_id='.$arr22[thread_id]);
}
}
} elseif (isset($_POST['open_thread']) || ($_GET['post_id']!="" || $_GET['thread_id']!="")) {
if ($_GET['post_id']!="" && $_GET['post_id']!="0") {
$post_id=addslashes($_GET[post_id]);
$arr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='$post_id'"));
$thread_id=$arr[thread_id];
} elseif ($_GET['thread_id']!="" && $_GET['thread_id']!=0) {
$thread_id=addslashes($_GET['thread_id']);
} else {
$thread_id=$_POST['thread_id'];
}
// Posts im Thread anzeigen
if (!$show || !$_GET[show]) $show=0;
$rowsNavi=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE thread_id='".$thread_id."' ORDER BY post_time"));
if ($postSitenav==0) $postSitenav=$rowsNavi;
if (strip_tags($_GET[show])=="last") $show=(ceil($rowsNavi/$postSitenav)-1)*$postSitenav;
if ($rowsNavi>$postSitenav) {
$show2 = ceil($rowsNavi/$postSitenav);
$show2 = "&show=".(($show2-1)*$postSitenav);
} else {
$show2 = "";
}
$qry1 = mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE thread_id='".$thread_id."' ORDER BY post_time LIMIT ".$show.",".$postSitenav);
$arr11 = mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE thread_id='".$thread_id."'"));
$arr12 = mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_forums WHERE forum_id='".$arr11['forum_id']."'"));
$arr13=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_id='".$thread_id."'"));
$arr14=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE post_id='".$arr13['thread_firstpost']."'"));
$modpool=$arr12['forum_mods'];;
$treffer_mod = substr_count($modpool, $userid);
if ($treffer_mod!=0) $modIDs=$userid;
echo '<table cellspacing="0" cellpadding="0" class="forum-catTable" style="border:0px;width:'.$settings[forum_width].'px;">';
echo '<tr><td colspan="2"><a href="'.$phpSelf.'">'.mi18n("Übersicht").'</a> > <a href="'.$phpSelf.$modRewriteFiller.'forum_id='.$arr12[forum_id].'">'.$arr12[forum_name].'</a> > '.$arr14[post_subject].'</td>
<td align="right" colspan="2"><br/>';
echo makeNavi($show,$postSitenav,$rowsNavi,ceil($rowsNavi/$postSitenav),$phpSelf.$modRewriteFiller."thread_id=".$thread_id);
echo '<br/><br/></td></tr>';
echo '<tr><td colspan="4" align="right">';
if ($allowPost=="true") echo '<form action="" method="post" margin="0"><input type="hidden" value="'.$thread_id.'" name="thread_id" /><input type="hidden" value="'.$arr12[forum_id].'" name="forum_id" />';
if ($arr13[thread_locked]!="true") {
echo '<input type="submit" name="new_post" class="forum-button" value="'.mi18n("Antworten").'" />';
} else {
echo ' ';
}
echo '<input type="submit" name="new_thread" class="forum-button" value="'.mi18n("Neuer Thread").'" /></form>';
echo '</td></tr>';
echo '</tr><tr><td colspan="4" style="height:3px;"></td></tr>';
while ($arr1=mysql_fetch_assoc($qry1)) {
$thisAuthorArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_frontendusers WHERE idfrontenduser='".$arr1[post_author]."'"));
$thisAuthor=$thisAuthorArr[username];
echo '<tr>
<td class="forum-header" width="10%"><a name="'.$arr1[post_id].'"></a>'.mi18n("Autor:").'<br/>'.$thisAuthor.'</td>
<td class="forum-header" width="75%" style="padding-left:2px;"><b><a href="'.$phpSelf.$modRewriteFiller.'thread_id='.$arr1[thread_id].'&show='.$show.'#'.$arr1[post_id].'" target="_self">'.$arr1[post_subject].'</a></b><br/>'.date($settings[dateformat],strtotime($arr1[post_time])).'</td>
<td class="forum-header" width="15%" colspan="2" align="right"><form margin="0" action="" method="post"><input type="hidden" value="'.$arr1[post_id].'" name="post_id" />';
if (($userid==$arr1['post_author'] || $userid==$adminIDs || $userid==$modIDs) && $allowPost=="true") echo '<input type="submit" class="forum-button" name="edit_post" value="'.mi18n("editieren").'" />';
if ($allowPost=="true") echo '<input type="submit" class="forum-button" name="quote_post" value="'.mi18n("zitieren").'" />';
echo '</form></td>
</tr>
<tr>
<td colspan="4" class="forum-postContent">'.nl2br($arr1[post_message]).'</td>';
if ($arr1['post_edituser']!="" && $arr1['post_edittime']!=0) echo '<tr><td colspan="4" style="border:1px solid #eee;border-top:0px;" align="right"><small><i>'.mi18n("zuletzt editiert am").' '.date($settings[dateformat],strtotime($arr1[post_edittime])).' '.mi18n("von").' '.$arr1[post_edituser].'</i></small></td>';
echo '</tr><tr><td colspan="4" style="height:3px;"></td></tr>';
}
echo '<tr><td colspan="4" align="right">';
if ($allowPost=="true") echo '<form action="" method="post" margin="0"><input type="hidden" value="'.$thread_id.'" name="thread_id" /><input type="hidden" value="'.$arr12[forum_id].'" name="forum_id" />';
if ($arr13[thread_locked]!="true") {
echo '<input type="submit" name="new_post" class="forum-button" value="'.mi18n("Antworten").'" />';
} else {
echo ' ';
}
echo '<input type="submit" name="new_thread" class="forum-button" value="'.mi18n("Neuer Thread").'" /></form>';
echo '</td></tr>
<tr><td colspan="2"><a href="'.$phpSelf.'">'.mi18n("Übersicht").'</a> > <a href="'.$phpSelf.$modRewriteFiller.'forum_id='.$arr12[forum_id].'">'.$arr12[forum_name].'</a> > '.$arr14[post_subject].'</td>
<td colspan="2" align="right"><br/><br/>';
echo makeNavi($show,$postSitenav,$rowsNavi,ceil($rowsNavi/$postSitenav),$phpSelf.$modRewriteFiller."thread_id=".$thread_id);
echo '</td></tr>';
echo '</table></form>';
} elseif (isset($_POST['open_forum']) || ($_GET['forum_id']!="" || $_GET['forum_id']!=0)) {
// Threads im Forum anzeigen
if ($_GET['forum_id']!="" && $_GET['forum_id']!=0) {
$forum_id=strip_tags($_GET['forum_id']);
} else {
$forum_id=$_POST['forum_id'];
}
if (!$show || !$_GET[show]) $show=0;
$rowsNavi=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE forum_id='".$forum_id."' ORDER BY thread_lastpost_time DESC"));
if ($threadSitenav==0) $threadSitenav=$rowsNavi;
if (strip_tags($_GET[show])=="last") $show=(ceil($rowsNavi/$threadSitenav)-1)*$threadSitenav;
if ($rowsNavi>$threadSitenav) {
$show2 = ceil($rowsNavi/$threadSitenav);
$show2 = "&show=".(($show2-1)*$threadSitenav);
} else {
$show2 = "";
}
$qry1=mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE forum_id='".$forum_id."' ORDER BY thread_sticky DESC,thread_lastpost_time DESC LIMIT ".$show.",".$threadSitenav);
$qryThreads=mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE forum_id='".$forum_id."' ORDER BY thread_lastpost_time DESC");
$arr12=mysql_fetch_assoc($qryThreads);
$arr13=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_forums WHERE forum_id='".$forum_id."'"));
echo '<table style="width:'.$settings[forum_width].'px;" cellspacing="0" cellpadding="0">';
echo '<tr><td colspan="3"><a href="'.$phpSelf.'">'.mi18n("Übersicht").'</a> > '.$arr13[forum_name].'</td>
<td colspan="2" align="right"><br/>';
echo makeNavi($show,$threadSitenav,$rowsNavi,ceil($rowsNavi/$threadSitenav),$phpSelf.$modRewriteFiller."forum_id=".$forum_id);
echo '<br/><br/></td></tr>';
echo '<tr><td colspan="5" align="right">';
if ($allowPost=="true") { echo '<form action="" method="post" margin="0"><input type="hidden" value="'.$forum_id.'" name="forum_id" /><input type="submit" name="new_thread" class="forum-button" value="'.mi18n("Neuer Thread").'" /></form>'; } else { echo ' '; }
echo '</td></tr><tr><td style="height:3px"> </tr>';
echo '<tr>
<td class="forum-table-header-1" width="50%" colspan="2">'.mi18n("Thread").'</td>
<td class="forum-table-header-2" width="10%">'.mi18n("Posts").'</td>
<td class="forum-table-header-3" width="15%">'.mi18n("erstellt von").'</td>
<td class="forum-table-header-4" width="25%" align="center">'.mi18n("neuster Post").'</td>
</tr>';
$i=0;
while ($arr1=mysql_fetch_assoc($qry1)) {
$back="forum-threadLine1";
if ($i%2) $back="forum-threadLine2";
$posts=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE thread_id='".$arr1[thread_id]."'"));
$lastpost=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE thread_id='".$arr1[thread_id]."' ORDER BY post_id DESC LIMIT 1"));
$arr11=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE thread_id='".$arr1['thread_id']."'"));
$arr12=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE thread_id='".$arr1['thread_id']."' AND post_id='".$arr11['thread_firstpost']."'"));
echo '<tr><td class="'.$back.'-1" width="20">';
if ($arr1[thread_sticky]=="1") echo '<img style="padding-right:3px;" src="images/but_warn.gif" alt="!" title="sticky" />';
if ($arr1[thread_sticky]=="0" && $arr1[thread_locked]=="false") echo ' ';
echo '</td><td class="'.$back.'-2" width="60%">';
if ($arr1[thread_locked]=="true") echo '<img style="padding-right:3px;" src="images/lock_closed.gif" alt="x" title="closed" />';
echo '<a href="'.$phpSelf.$modRewriteFiller.'thread_id='.$arr1[thread_id].'" target="_self">'.$arr12[post_subject].'</a>
</td>';
echo '<td class="'.$back.'-2">'.$posts.'</td>';
$thisAuthorArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_frontendusers WHERE idfrontenduser='".$arr12[post_author]."'"));
$thisAuthor=$thisAuthorArr[username];
echo '<td class="'.$back.'-3">'.$thisAuthor.'</td>';
$lastAuthorArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_frontendusers WHERE idfrontenduser='".$lastpost[post_author]."'"));
$lastAuthor=$lastAuthorArr[username];
echo '<td class="'.$back.'-4" width="25%" align="right" valign="top">'.$lastAuthor.' <a href="'.$phpSelf.$modRewriteFiller.'thread_id='.$lastpost[thread_id].'&show=last#'.$lastpost[post_id].'"><img src="images/arrows.gif" border="0" alt="»"></a> <br/>'.date($settings[dateformat],strtotime($lastpost[post_time])).'</td>';
echo '</tr>';
$i++;
}
echo '<tr><td colspan="5" align="right">';
if ($allowPost=="true") { echo '<form action="" method="post" margin="0"><input type="hidden" value="'.$forum_id.'" name="forum_id" /><input type="submit" name="new_thread" class="forum-button" value="'.mi18n("Neuer Thread").'" /></form>'; } else { echo ' '; }
echo '</td></tr><tr><td colspan="5" style="height:3px;"></td></tr>';
echo '<tr><td colspan="3"><a href="'.$phpSelf.'">'.mi18n("Übersicht").'</a> > '.$arr13[forum_name].'</td>
<td colspan="2" align="right">';
echo makeNavi($show,$threadSitenav,$rowsNavi,ceil($rowsNavi/$threadSitenav),$phpSelf.$modRewriteFiller."forum_id=".$forum_id);
echo '</td></tr></table>';
} else {
// Kategorien und Foren auflisten
if (!$show || !$_GET[show]) $show=0;
$rowsNavi=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_cats"));
if ($catSitenav==0) $catSitenav=$rowsNavi;
if ($rowsNavi==0) {
mi18n("Noch keine Kategorien und Foren angelegt.");
die();
}
if (strip_tags($_GET[show])=="last") $show=(ceil($rowsNavi/$catSitenav)-1)*$catSitenav;
if ($rowsNavi>$catSitenav) {
$show2 = ceil($rowsNavi/$catSitenav);
$show2 = "&show=".(($show2-1)*$catSitenav);
} else {
$show2 = "";
}
echo '<div style="text-align:right;width:'.$settings[forum_width].'px;">'.makeNavi($show,$catSitenav,$rowsNavi,ceil($rowsNavi/$catSitenav),$phpSelf.$modRewriteFiller).'</div><br/>';
$qry=mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_cats LIMIT ".$show.",".$catSitenav);
while ($arr=mysql_fetch_assoc($qry)) {
$accessIDs="";
if ($arr['cat_access']!="") {
$treffer_access = substr_count($arr['cat_access'], $userid);
if ($treffer_access!=0) {
$accessIDs=$userid;
}
} else {
$accessIDs=$userid;
}
if ($accessIDs==$userid || $adminIDs==$userid) {
echo '<table class="forum-catTable" style="width:'.$settings[forum_width].'px;" cellspacing="0" cellpadding="0">';
echo '<tr>
<td colspan="4" class="forum-catHeader"><b>'.$arr[cat_name].'</b></td></tr>';
$qry1 = mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_forums WHERE cat_id='".$arr[cat_id]."' AND forum_status='1'");
echo '<tr>
<td class="forum-table-header" width="50%">'.mi18n("Forum").'</td>
<td class="forum-table-header" width="10%" align="center">'.mi18n("Threads").'</td>
<td class="forum-table-header" width="15%" align="center">'.mi18n("Posts").'</td>
<td class="forum-table-header" width="25%" align="right">'.mi18n("neuster Post").'</td>
</tr>';
$i=0;
while ($arr1=mysql_fetch_assoc($qry1)) {
$forumAccessIDs="";
$modIDs="";
if ($arr1['forum_access']!="") {
$forum_access = substr_count($arr1['forum_access'], $userid);
if ($forum_access!=0) {
$forumAccessIDs=$userid;
}
} else {
$forumAccessIDs=$userid;
}
$treffer_mod = substr_count($arr1['forum_mods'], $userid);
if ($treffer_mod!=0) {
$modIDs=$userid;
}
if ($forumAccessIDs==$userid || $adminIDs==$userid || $modIDs==$userid) {
$back="forum-catLine1";
if ($i%2) $back="forum-catLine2";
$threads=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_threads WHERE forum_id='$arr1[forum_id]'"));
$posts=mysql_num_rows(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE forum_id='$arr1[forum_id]'"));
$lastpost=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_forum_posts WHERE forum_id='$arr1[forum_id]' ORDER BY post_id DESC LIMIT 1"));
$cut_val=strrpos($arr1[forum_mods], ', ');
echo '<tr>';
echo '<td class="'.$back.'"><form action="" method="post" margin="0">
<input type="hidden" value="'.$arr1[forum_id].'" name="forum_id" />
<a href="'.$phpSelf.$modRewriteFiller.'forum_id='.$arr1[forum_id].'" target="_self">'.$arr1[forum_name].'</a>
<br/><small>'.$arr1[forum_description].'</small>
</form></td>';
echo '<td class="'.$back.'" align="center">'.$threads.'</td>';
echo '<td class="'.$back.'" align="center">'.$posts.'</td>';
if ($threads==0 && $posts==0) {
echo '<td class="'.$back.'" align="right">'.mi18n("keine Posts").'</td>';
} else {
$thisAuthorArr=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$cfg['sql']['sqlprefix']."_frontendusers WHERE idfrontenduser='".$lastpost[post_author]."'"));
$thisAuthor=$thisAuthorArr[username];
echo '<td class="'.$back.'" align="right" valign="top">'.$thisAuthor.' <a href="'.$phpSelf.$modRewriteFiller.'thread_id='.$lastpost[thread_id].'&show=last#'.$lastpost[post_id].'"><img src="images/arrows.gif" border="0" alt="»"></a> <br/>'.date($settings[dateformat],strtotime($lastpost[post_time])).'</td>';
}
echo '</tr>';
$i++;
}
}
echo '</table><div style="padding-top:5px;text-align:right;width:'.$settings[forum_width].'px;">';
echo makeNavi($show,$catSitenav,$rowsNavi,ceil($rowsNavi/$catSitenav),$phpSelf.$modRewriteFiller);
echo '</div>';
}
}
}
function cut($text, $length) {
$dec = array("\"", "'", "\\", '\"', "\'", "<", ">");
$enc = array(""", "'", "\", """, "'", "<", ">");
$text = str_replace($enc, $dec, $text);
$text = str_replace($dec, $enc, $text);
if (strlen($text) > $length) {
$text = substr($text, 0, ($length-3)."...");
}
return $text;
}
function makeNavi($start,$count,$total,$range,$link){
$link=$link.'&show=';
$res="";
$pg_cnt=ceil($total / $count);
$pg_cnt_abs=$pg_cnt;
$cur_page=ceil(($start + 1) / $count);
if ($start>0) {
$thisRange=$start;
} else {
$thisRange=$range;
}
if ($pg_cnt>10) {
if ($thisRange==$start) {
if ($start>bcdiv($total,2,0)) {
$middleRange=bcdiv(bcadd($thisRange,1,0),2,0);
} else {
$middleRange=$thisRange + 1;
}
} else {
$middleRange=bcdiv($thisRange,2,0);
}
$middleRangeSub=bcsub($middleRange,1,0);
$middleRangeSubSub=bcsub($middleRangeSub,1,0);
$middleRangeAdd=bcadd($middleRange,1,0);
$middleRangeAddAdd=bcadd($middleRangeAdd,1,0);
$lastRangeSub=bcsub($range,1,0);
$lastRangeSubSub=bcsub($lastRangeSub,1,0);
$pg_cnt_abs=$range;
// The first three sites
$validSites=array('1','2','3');
if ($cur_page==3 || $cur_page==4 || $cur_page==5) array_push($validSites,'4');
if ($cur_page==4 || $cur_page==5) array_push($validSites,'5');
if ($cur_page==5) array_push($validSites,'6');
array_push($validSites,'...');
if (!in_array($cur_page,$validSites) && $cur_page>5 && $cur_page<bcsub($pg_cnt,2,0)) array_push($validSites,bcsub($cur_page,1,0),$cur_page);
if ($cur_page>5 && $cur_page<bcsub($pg_cnt,3,0)) array_push($validSites,bcadd($cur_page,1,0));
if ($cur_page>5 && $cur_page<bcsub($pg_cnt,4,0)) array_push($validSites,'...');
if ($cur_page>5 && $cur_page>bcsub($pg_cnt,3,0) && $cur_page<bcsub($pg_cnt,1,0)) array_push($validSites,bcsub($cur_page,1,0));
// The last three sites
array_push($validSites,bcsub($pg_cnt,2,0),bcsub($pg_cnt,1,0),$pg_cnt);
}
if($pg_cnt > 1) {
$idx_back = $start - $count;
$idx_next = $start + $count;
$cur_page=ceil(($start + 1) / $count);
$res.="<span class='small'>".mi18n("Seite")." ".$cur_page." ".mi18n("von")." ".$pg_cnt_abs." </span>";
if($idx_back >= 0) {
$res.="<a class='small' href='".$link."0'>«</a> ";
$res.="<a class='small' href='".$link.bcsub($start,$count,0)."'>‹</a> ";
}
$idx_fst=max($cur_page - $range, 1);
$idx_lst=min($cur_page + $range, $pg_cnt);
if($range==0){
$idx_fst = 1;
$idx_lst=$pg_cnt;
}
if ($pg_cnt>10) {
foreach ($validSites as $thisSite) {
if ($thisSite!="...") $offset_page=($thisSite - 1) * $count;
if($thisSite==$cur_page || $thisSite=="..."){
$res.="<span class='small'><b>$thisSite</b> </span>";
}else{
$res.="<a class='small' href='".$link.$offset_page."'><b>$thisSite</b></a> ";
}
}
} else {
for($i=$idx_fst;$i<=$idx_lst;$i++){
$offset_page=($i - 1) * $count;
if($i==$cur_page){
$res.="<span class='small'><b>$i</b> </span>";
}else{
$res.="<a class='small' href='".$link.$offset_page."'><b>$i</b></a> ";
}
}
}
if($idx_next < $total) {
$res.="<a class='small' href='".$link.bcadd($start,$count,0)."'>›</a> ";
$res.="<a class='small' href='".$link.$offset_page."'>»</a> ";
}
}
return $res;
}
?>