replycount zählt gelöschte Posts

zebracamouflage
Problembeschreibung:
Bei uns werden für die jeweiligen Themen auch gelöschte Posts mitgezählt, sodass es immer erstmal so aussieht, als wären Antworten vorhanden, obwohl bereits alle gelöscht wurden.

Link zum Forum:
http://hometonight.bplaced.de/wbblite/index.php?sid=

Ich wäre dankbar, wenn jemand einen Lösungsansatz hat und mir sagen kann, wo/wie ich einstellen kann, dass nur die tatsächlich vorhandenen Antworten gezählt werden. Floeten
Pigsel
auf welchem Weg sind die Beiträge gelöscht worden? mit "qucikydelete"?

was du tun kannst, ist die Beitragszahl in der Datenbank korigieren, ist zwar aufwändig aber leider hilft das nichts ..

dann ggf. einen richtigen "Löschhack einbauen der auch die LöschAnweisung an die Datenbank weiter reicht

und dann sollte das zukünftig kein Problem mehr sein
zebracamouflage
ah, du hast recht! läuft über quickdelete.
Das Ding ist nur: über whoposted bekomm ich bei "Beiträge gesamt" auch die korrekte Anzahl angezeigt, also ohne die gelöschten. Irgendwo scheint ers ja also doch zu raffen?! Ist nur die Frage, wie man das auch in die eigentliche Tabelle überträgt.
Pigsel
den whoposted kenne ich leider nicht, aber das es falsch dargestellt wird in "board.php und thread.php das kann man loswerden denk ich wenn man den quickydelete wieder ausbaut ... bzw. den Einbau rückgängig macht Augenzwinkern

und dann kann es hilfreich sein auch maldie "anzeigen" zu "aktualisieren" im ACP

wenn das ales nicht hilft, kann man sich das immernoch vorOrt anschauen
Beckebans
Die "whoposted"-Funktion zählt das direkt, anstatt einen Wert aus der Datenbank auszulesen.

Als Lösung hilft es nur einen fehlerfreien Hack zum Löschen einzubauen.

Bis dahin kannst du dir diesen Code einbauen und damit im ACP die Anzeigen manuell aktualisieren:

==> acp/otherstuff.php

Suche:
php:
1:
?>

Darüber einfügen:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
if($action=="boardposts") {
  $result=$db->query("SELECT boardid FROM bb".$n."_boards ORDER BY boardid ASC");
  while($row=$db->fetch_array($result)) {
    $postcount $db->query_first("SELECT COUNT(*) AS countp FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (p.threadid=t.threadid) WHERE t.boardid='$row[boardid]' AND p.visible=1");
    $board $db->query_first("SELECT childlist FROM bb".$n."_boards WHERE boardid='$row[boardid]'");
    $count $postcount[countp];
    if($board[childlist] != "0") {
     $childlist explode(","$board[childlist]);
     for($i 0$i count($childlist); $i++ ) { 
      if($childlist[$i] != "0") {
       $postcount_childboard $db->query_first("SELECT COUNT(*) AS countp FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (p.threadid=t.threadid) WHERE t.boardid='$childlist[$i]' AND p.visible=1");
       $count $count $postcount_childboard[countp];
      }
     }
    }
    $db->unbuffered_query("UPDATE bb".$n."_boards SET postcount='$count' WHERE boardid='$row[boardid]'",1);
  }
  eval("print(\"".gettemplate("working_done")."\");");
}

if($action=="boardthreads") {
  $result=$db->query("SELECT boardid FROM bb".$n."_boards ORDER BY boardid ASC");
  while($row=$db->fetch_array($result)) {
    $threadcount=$db->query_first("SELECT COUNT(*) AS countthreads FROM bb".$n."_threads WHERE boardid='$row[boardid]' AND visible=1");
    $board $db->query_first("SELECT childlist FROM bb".$n."_boards WHERE boardid='$row[boardid]'");
    $count $threadcount[countthreads];
    if($board[childlist] != "0") {
     $childlist explode(","$board[childlist]);
     for($i 0$i count($childlist); $i++ ) { 
      if($childlist[$i] != "0") {
       $threadcount_childboard $db->query_first("SELECT COUNT(*) AS countthreads FROM bb".$n."_threads WHERE boardid='$childlist[$i]' AND visible=1");
       $count $count $threadcount_childboard[countthreads];
      }
     }
    }
    $db->unbuffered_query("UPDATE bb".$n."_boards SET threadcount='$count' WHERE boardid='$row[boardid]'",1);
  }
  eval("print(\"".gettemplate("working_done")."\");");
}

if($action=="threadreplys") {
  $result=$db->query("SELECT threadid FROM bb".$n."_threads ORDER BY threadid ASC");
  while($row=$db->fetch_array($result)) {
      $threadreply=$db->query_first("SELECT COUNT(postid) AS countreply FROM bb".$n."_posts p LEFT JOIN bb".$n."_threads t ON (p.threadid=t.threadid) WHERE t.threadid='$row[threadid]'");
      $countreply=$threadreply[countreply]-1;
      $db->unbuffered_query("UPDATE bb".$n."_threads SET replycount='$countreply' WHERE threadid='$row[threadid]'",1);
  }
  eval("print(\"".gettemplate("working_done")."\");");
}




==> acp/templates/otherstuff.php

Suche:
code:
1:
2:
</body>
</html>

Darüber einfügen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
<form name="form4" action="#" method="post">
 <table cellpadding="4" cellspacing="1" border="0" class="tblborder" width="95%" align="center">
  <tr class="tblhead">
   <td colspan="2">Zählung der Boardbeiträge</td>
  </tr>
  <tr class="secondrow">
   <td colspan="2" align="center"><b>Achtung:</b> Vor dem Aktualisieren sollten die Foren synchronisiert werden. Dabei erfolgt automatisch eine Weiterleitung auf die Forenübersicht.<br><br><input type="button" value="Synchronisieren" onclick="window.location.href='board.php?action=sync&sid=$session[hash]'"> <input type="button" value="Aktualisieren" onclick="update(this.form.action.value,0)"></td>
  </tr>
 </table>
 <input type="hidden" name="action" value="boardposts">
</form>

<form name="form5" action="#" method="post">
 <table cellpadding="4" cellspacing="1" border="0" class="tblborder" width="95%" align="center">
  <tr class="tblhead">
   <td colspan="2">Zählung der Boardthemen</td>
  </tr>
  <tr class="secondrow">
   <td colspan="2" align="center"><b>Achtung:</b> Vor dem Aktualisieren sollten die Foren synchronisiert werden. Dabei erfolgt automatisch eine Weiterleitung auf die Forenübersicht.<br><br><input type="button" value="Synchronisieren" onclick="window.location.href='board.php?action=sync&sid=$session[hash]'"> <input type="button" value="Aktualisieren" onclick="update(this.form.action.value,0)"></td>
  </tr>
 </table>
 <input type="hidden" name="action" value="boardthreads">
</form>

<form name="form6" action="#" method="post">
 <table cellpadding="4" cellspacing="1" border="0" class="tblborder" width="95%" align="center">
  <tr class="tblhead">
   <td colspan="2">Zählung der Antworten</td>
  </tr>
  <tr class="secondrow">
   <td colspan="2" align="center"><input type="button" value="Aktualisieren" onclick="update(this.form.action.value,0)"></td>
  </tr>
 </table>
 <input type="hidden" name="action" value="threadreplys">
</form>
zebracamouflage
Alles klar, danke euch beiden. Dann wissen wir vor allem auch, wo überhaupt das Problem liegt und werden über kurz oder lang wohl den quickydelete gegen einen anderen Löschen-Hack austauschen Augenzwinkern