» Forum » Clanscript » Allgemein » Forumposts-Zähler
  Mitglieder   |   Gallery   |   FAQ's   |   Regeln

[ Anmelden zum schreiben ]

Forumposts-Zähler
Master Salami
Mitglied
0 Beitragspunkte
Posts: 7

0 Mitglieder finden den Beitrag gut.

Merkliste 07.06.2008 - 13:03:50     Zitieren
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
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 08.06.2008 - 10:35:39     Zitieren
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
0 Beitragspunkte
Posts: 7

0 Mitglieder finden den Beitrag gut.

Merkliste 08.06.2008 - 11:30:49     Zitieren
Vielen Dank für die schnelle Antwort, Mairu!

Klappt wunderbar, besten Dank!

MfG

Salami
betatier
Mitglied
0 Beitragspunkte
Posts: 9

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 11.02.2012 - 00:53:27     Zitieren
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> &raquo; </b>'.aktForumCats($aktForumRow['kat']).'<b> &raquo; </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 Smilie

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
218 Beitragspunkte
Posts: 727

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 11.02.2012 - 02:25:00     Zitieren
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
128 Beitragspunkte
Posts: 12770

User Pic

1 Mitglieder finden den Beitrag gut.

Merkliste 11.02.2012 - 10:30:17     Zitieren
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
0 Beitragspunkte
Posts: 9

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 11.02.2012 - 13:43:41     Zitieren
Wow das ging ja schnell Smilie

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 ]