Seite 1 von 1

Anzeige der Original Posting Zahl

Verfasst: 14.08.2004 11:05
von Kettu
Jeder kennt sicher das "Problem", dass beim Pruning auch der Zähler auf der index.php zurückgesetzt wird. Dadurch sieht es immer so aus, als ob ein Forum recht inaktiv ist, wenn dort eine geringe Zahl da ist.
Ich zum Beispiel versuche aber die Datenbank klein zu halten, um die Geschwindigkeit zu verbessern und weil ich nicht so viel Webspace habe.

Hat jemand eine Idee, wie ich - zum Beispiel durch eine zusätzliche Angabe (in Klammern hinter der Gesamtpostingzahl) - die Originalzahl anzeigen kann?

Die Originalzahl ist vorhanden, was man immer merkt, wenn man ein neues Posting macht. Dann bekommt dieses nämlich eben die Nummer.

Verfasst: 14.08.2004 11:18
von Acid
Du könntest z.B. in der index.php den verlorenen Wert zur Ausgabe hinzuaddieren, was aber immer wieder angepasst werden müsste.
$total_posts = get_db_stat('postcount')+1;

Verfasst: 14.08.2004 14:07
von Kettu
Acid hat geschrieben:Du könntest z.B. in der index.php den verlorenen Wert zur Ausgabe hinzuaddieren, was aber immer wieder angepasst werden müsste.
$total_posts = get_db_stat('postcount')+1;
Du meinst also, wenn ich 3000 Posts gelöscht habe, dann muss ich dein "+1" mit "+3000" ersetzen?

Hm, ist auf jeden Fall eine Variante. Aber irgendwie müsste es doch möglich sein, den richtigen Wert auszulesen. Schließlich macht das Forum das doch auch, oder?

Verfasst: 14.08.2004 14:12
von Acid
..ja, mit der jeweiligen Ziffer ersetzen.

Auf dem Index werden die vorhandenen post_ oder topic_ids zusammengezählt, was dann den jeweiligen Wert ergibt. Das dann beim Posten immer weiter gezählt wird und die IDs nicht "weniger" werden, liegt daran, das gelöschte IDs nicht neu belegt werden.

Verfasst: 14.08.2004 14:17
von Kettu
Kann man diese ID's dann nicht auch auslesen?
Ich weiß, ich bin hartnäckig *lieb guck*

Verfasst: 14.08.2004 14:25
von Acid
hmm.. ich weiss jetzt nicht, ob das "zu" einfach ist, aber man kann ja die aktuellste ID auslesen.

Code: Alles auswählen

			$sql = "SELECT MAX(post_id) AS max_id FROM ". POSTS_TABLE;
			if( !$result = $db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "couldn't get max id", "", __LINE__, __FILE__, $sql);
			}
			$row = $db->sql_fetchrow($result);
..und dann die ID als Zahl über $max_id = $row['max_id']; ausgeben. Das würde dann z.B. 3383 ergeben.

hmm.. :o

Verfasst: 14.08.2004 14:53
von Kettu
Ja, es ist tatsächlich so einfach :D Und das dachte ich mir fast. Hab's eingebaut und funktioniert phantastisch! Danke!!!!! *knuddel*

Der Einbau erfolgte wie folgt:

Code: Alles auswählen

#
#-----[ OPEN index.php ]-------------------
# 
# 
#-----[ FIND ]----------------------------------
# 
$total_posts = get_db_stat('postcount');
# 
#-----[ BEFORE, ADD ]------------------------------------------ 

 $sql = "SELECT MAX(post_id) AS max_id FROM ". POSTS_TABLE;
         if( !$result = $db->sql_query($sql) )
         {
            message_die(GENERAL_ERROR, "couldn't get max id", "", __LINE__, __FILE__, $sql);
         }
         $row = $db->sql_fetchrow($result);

#-----[ FIND ]----------------------------------
# 
$total_posts = get_db_stat('postcount');
#
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
$total_posts_all = $row['max_id'];
#
#  
#-----[ FIND ]----------------------------------
# 
#
$template->assign_vars(array(
                'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
'TOTAL_POSTS_ALL' => sprintf($total_posts_all),
#
#
#-----[ OPEN templates/SubSilver/index_body.tpl ]-------------------
#
# 
# 
#-----[ FIND ]----------------------------------
# 
#
  <tr>
        <td class="row1" align="center" valign="middle" rowspan="3"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
        <td class="row1" align="left" width="100%"><span class="gensmall">{TOTAL_POSTS}<br />{TOTAL_USERS}<br />{NEWEST_USER}</span>
        </td>
  </tr>
#
#-----[ REPLACE WITH ]----------------------------------
#
  <tr>
        <td class="row1" align="center" valign="middle" rowspan="3"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
        <td class="row1" align="left" width="100%"><span class="gensmall">{TOTAL_POSTS} (Total: <b>{TOTAL_POSTS_ALL}</b>) <br />{TOTAL_USERS}<br />{NEWEST_USER}</span>
        </td>
  </tr>
Kann man doch so machen, oder?
Jedenfalls wird damit der aktuelle Wert angezeigt sowie der Totalwert. Genau so, wie ich es wollte 8)

Verfasst: 12.09.2004 14:23
von Kettu
Wer anstelle des (Total: Zahl) lieber einen Text stehen haben will, der je nach Sprachwahl variiert, der muss wie folgt ab Replace with vorgehen

Code: Alles auswählen

#-----[ REPLACE WITH ]----------------------------------
#
  <tr>
        <td class="row1" align="center" valign="middle" rowspan="3"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
        <td class="row1" align="left" width="100%"><span class="gensmall">{TOTAL_POSTS} {totalpostings}<b>{TOTAL_POSTS_ALL}</b> <br />{TOTAL_USERS}<br />{NEWEST_USER}</span>
        </td>
  </tr>

#
#-----[ Open includes/page_header.php ]--------
#
#-----[ find ]-----
#
'L_SEARCH_SELF' => $lang['Search_your_posts'],
#
#-----[ after, add ]-----
#
'L_totalpostings' => $lang['totalpostings'],
#
#-----[ open language/your language/lang_main.php ]-----
#
#-----[ find ]-----
#
//
// That's all Folks!
#
#-----[ before, add ]-----
#
$lang['totalpostings'] = 'Beiträge seit Bestehen des Forums: ';
#
#---- Das war's. Viel Spaß damit. ----
Ich hab einfach (Total: und die Klammer am Ende mit {totalpostings} ersetzt, um auf den danach folgenden Spracheintrag zugreifen zu können.

Dank nochmal an Acid, ohne dessen Hilfe dieser Mod nicht entstanden wäre :grin:

Verfasst: 14.10.2004 21:58
von Brummer1968
Hey, tolle Sache das. Ich hab das ganze mal bei mir eingebaut. Allerdings hab ich es noch ein bisschen umgefrickelt, so dass ich in der page_header.php gar nichts ändern muss. Läuft dann über die index.php und in der language-Datei kann man für die zusätzliche Angabe eine eigene Zeile einfügen.

Bei mir wird also der Statistik-Block um eine Zeile erweitert und das sieht dann ungefähr so aus:

Unsere Benutzer haben insgesamt 32107 Beiträge geschrieben.
Unsere Foren enthalten insgesamt 18986 Beiträge.