ilch Forum » Ilch Clan 1.1 » Allgemein » Forumposts-Zähler

Geschlossen
  1. #1
    User Pic
    Master Salami Mitglied
    Registriert seit
    06.03.2008
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    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: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    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
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Master Salami Mitglied
    Registriert seit
    06.03.2008
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    Vielen Dank für die schnelle Antwort, Mairu!

    Klappt wunderbar, besten Dank!

    MfG

    Salami
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    betatier Mitglied
    Registriert seit
    11.01.2009
    Beiträge
    10
    Beitragswertungen
    0 Beitragspunkte
    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 lächeln

    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 :::
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    oink Mitglied
    Registriert seit
    23.09.2010
    Beiträge
    740
    Beitragswertungen
    227 Beitragspunkte
    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
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    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
    1 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    betatier Mitglied
    Registriert seit
    11.01.2009
    Beiträge
    10
    Beitragswertungen
    0 Beitragspunkte
    Wow das ging ja schnell lächeln

    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 :::
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten