Hier kann eine Notiz zum Merk-Eintrag hinzugefügt werden (optional)
| [ Anmelden zum schreiben ] |
| Forumposts-Zähler | |||
|---|---|---|---|
| Master Salami Mitglied
Posts: 7 |
Hallo Zusammen!
Ich habe eine Frage betreffend Forum des Clanscripts. Und zwar haben wir im Clan das folgende Problem: Einige "Kiddies" spammen den ganzen Tag im Fun-Forum umher und haben da pro Tag locker mal 200 neue Beiträge gemacht. Dies verfälscht die Top 5 User Statistik natürlich drastisch... Jetzt wollte ich mich mal erkundigen, ob es irgendeine Möglichkeit gibt, dass dieses eine Fun-Forum bei der Statistik nicht mehr mitzählt, sprich - Beiträge die in diesem Forum verfasst werden geben keinen neuen Beitrag in der Statistik. Ich hatte mal ein anderes CMS wo mal dies einstellen konnte, bei Ilch habe ich diese Funktion leider nicht gefunden. Vielen Dank für Antworten und freundliche Grüsse, Master Salami verwendete ilchClan Version: 1.1 betroffene Homepage: www.skillorstyle.ch.vu |
||
| Mairu Coder
Posts: 12770 |
In der contents/forum/new_post.php Zeile 102
db_query("UPDATE `prefix_user` set posts = posts+1 WHERE id = ".$uid); zu if ($fid != ZAHL) {
db_query("UPDATE `prefix_user` set posts = posts+1 WHERE id = ".$uid);
} ändern.
Wobei die ZAHL durch die Forenid ersetzt werden sollte, bei index.php?forum-showtopics-ZAHL kannst du sie ablesen. Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite |
||
| Master Salami Mitglied
Posts: 7 |
Vielen Dank für die schnelle Antwort, Mairu!
Klappt wunderbar, besten Dank! MfG Salami |
||
| betatier Mitglied
Posts: 9 |
Hallo.
Nach langer Suche und Recherche bin ich auf dieses Thema gestoßen. Meine Problem kann nur bedingt mit dieser Lösung gelöst werden, denn ich möchte in einem bestimmten Post den Zähler abschalten. In meinem fall ist es der Post 71 (/index.php?forum-showposts-71) Wenn ich jetzt die new_post.php verändere, in der sich der Post bedindet der nicht gezählt werden soll, wird gar kein Post mehr gewertet. Was ja auch klar ist. Will ich aber nicht. Muss ich dann die new_topic.php verändern ? <?php
# Copyright by: Manuel
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
if ( $forum_rights['start'] == FALSE ) {
$forum_failure[] = $lang['nopermission'];
check_forum_failure($forum_failure);
}
$title = $allgAr['title'].' :: Forum :: '.aktForumCats($aktForumRow['kat'],'title').' :: '.$aktForumRow['name'].' :: neues Thema';
$hmenu = $extented_forum_menu.'<a class="smalfont" href="index.php?forum">Forum</a><b> » </b>'.aktForumCats($aktForumRow['kat']).'<b> » </b><a class="smalfont" href="index.php?forum-showtopics-'.$fid.'">'.$aktForumRow['name'].'</a>'.$extented_forum_menu_sufix;
$dppk_time = time();
$time = time();
if (!isset($_SESSION['klicktime'])) { $_SESSION['klicktime'] = 0; }
$topic = '';
$txt = '';
$xnn = '';
if (isset($_POST['topic'])) {
$topic = trim(escape($_POST['topic'], 'string'));
}
if (isset($_POST['txt'])) {
$txt = trim(escape($_POST['txt'], 'textarea'));
}
if (isset($_POST['Gname'])) {
$xnn = trim(escape_nickname($_POST['Gname']));
}
if (($_SESSION['klicktime'] + 15) > $dppk_time OR empty($topic) OR empty($txt) OR !empty($_POST['priview']) OR (empty($_POST['Gname']) AND !loggedin()) OR !chk_antispam ('newtopic')) {
$design = new design ( $title , $hmenu, 1);
$design->header();
$tpl = new tpl ( 'forum/newtopic' );
$name = '';
if ( !loggedin() ) {
$name = '<tr><td class="Cmite"0><b>'.$lang['name'].'</b></td>';
$name .= '<td class="Cnorm"><input type="text" value="'.unescape($xnn).'" maxlength="15" name="Gname"></td></tr>';
}
if (isset($_POST['priview'])) {
$tpl->set_out('txt', bbcode(unescape($txt)), 0);
}
$ar = array (
'name' => $name,
'txt' => escape_for_fields(unescape($txt)),
'topic' => escape_for_fields(unescape($topic)),
'fid' => $fid,
'SMILIES' => getsmilies(),
'antispam'=> get_antispam('newtopic',1)
);
$tpl->set_ar_out($ar,1);
} else {
# save toipc
$_SESSION['klicktime'] = $dppk_time;
$design = new design ( $title , $hmenu, 0);
$design->header();
if ( loggedin()) {
$uid = $_SESSION['authid'];
$erst = escape($_SESSION['authname'],'string');
db_query("UPDATE `prefix_user` set posts = posts+1 WHERE id = ".$uid);
} else {
$erst = $xnn;
$uid = 0;
}
db_query("INSERT INTO `prefix_topics` (fid, name, erst, stat) VALUES ( ".$fid.", '".$topic."', '".$erst."', 1 )");
$tid = db_last_id();
# topic alert
if (!empty($_POST['topic_alert']) AND $_POST['topic_alert'] == 'yes' AND loggedin()) {
if (0 == db_result(db_query("SELECT COUNT(*) FROM prefix_topic_alerts WHERE uid = ".$_SESSION['authid']." AND tid = ".$tid),0)) {
db_query("INSERT INTO prefix_topic_alerts (tid,uid) VALUES (".$tid.", ".$_SESSION['authid'].")");
}
}
db_query ("INSERT INTO `prefix_posts` (tid,fid,erst,erstid,time,txt) VALUES ( ".$tid.", ".$fid.", '".$erst."', ".$uid.", ".$time.", '".$txt."')");
$pid = db_last_id();
db_query("UPDATE `prefix_topics` SET last_post_id = ".$pid." WHERE id = ".$tid);
db_query("UPDATE `prefix_forums` SET posts = posts + 1, last_post_id = ".$pid.", topics = topics + 1 WHERE id = ".$fid);
# toipc als gelesen markieren
$_SESSION['forumSEE'][$fid][$tid] = time();
wd('index.php?forum-showposts-'.$tid,$lang['createtopicsuccessful']);
}
$design->footer();
?>
Wenn ich da aber in Zeile 72 folgenden Code eintrage zählt es trotzdem weiter if ($fid != 71) {
db_query("UPDATE `prefix_user` set posts = posts+1 WHERE id = ".$uid);
}
Hab ich ein grundsätzliches Verständnissprolem (Forum, Post und Topic) oder ist mein Code nur murgs
Es würde mich freuen wenn mir da einer weiterhelfen könnte. gruß betatier Edit: Achso, betroffene Homepage www.facesofpain.de Zuletzt modifiziert von betatier am 11.02.2012 - 00:55:23 ::: Its not a bug, its a feature ::: |
||
| oink ForenTroll
Posts: 727 |
achtung, die query kommt 2 mal vor, bau deine bedingung auch noch um die zweite, dann solltest du dein ziel erreicht haben.
include/contents/forum/new_post.php #109 include/contents/forum/new_topic.php #72 before creation there must be destruction |
||
| Mairu Coder
Posts: 12770 |
Naja wenn ich dich richtig verstanden hab, willst du es nur in einem Thema (showposts heißt die Posts aus einem Thema), also bei dir Thema 71, das wäre also dann nicht die Forenid (fid), sondern die Topicid (tid), gegen die geprüft werden müssen, und da es nur um neue Beiträge und nicht um neue Themen geht, reicht auch der Eintrag in der new_post.php(, im Gegensatz, wenn man es für ein ganzes Forum will, müsste man es auch beim Erstellen von neuen Themen machen).
Kurz gefasst, für dich sollte folgende Version funktionieren: if ($tid != 71) {
db_query("UPDATE `prefix_user` set posts = posts+1 WHERE id = ".$uid);
}
PS: Es ist nicht an jeder Stelle im Code so einfach $fid durch $tid zu ersetzen, aber in diesem Falle gehts. Zuletzt modifiziert von Mairu am 11.02.2012 - 10:32:29 Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite |
||
| betatier Mitglied
Posts: 9 |
Wow das ging ja schnell
Danke Mairu es hat wunderbar geklappt. Das Ändern der Topicid wars ^^ Es reicht auch den Code nur in der new_post.php zu ändern. Kurz gesagt, ich liebe Ilch und die Community gruß betatier ::: Its not a bug, its a feature ::: |
||
| [ Anmelden zum schreiben ] |