Anzahl Privater Nachrichten je Ordner anzeigen lassen

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Anzahl Privater Nachrichten je Ordner anzeigen lassen

Beitrag von oxpus »

Dieses Snippet zeigt in den Links zu den einzelnen Ordnern an, wieviele Private Nachrichten jeweils enthalten sind:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
privmsg.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'common.'.$phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
include_once($phpbb_root_path . 'includes/functions_stats.'.$phpEx);

#
#-----[ FIND ]------------------------------------------
#
# In total tree times!!!
#
		'INBOX' => $inbox_url, 
		'SENTBOX' => $sentbox_url,
		'OUTBOX' => $outbox_url,
		'SAVEBOX' => $savebox_url,

#
#-----[ REPLACE WITH ]------------------------------------------
#
		'INBOX' => $inbox_url.pm_in_total(), 
		'SENTBOX' => $sentbox_url.pm_sent_total(),
		'OUTBOX' => $outbox_url.pm_out_total(),
		'SAVEBOX' => $savebox_url.pm_save_total(),

#
#-----[ OPEN ]------------------------------------------
#
includes/functions_stats.php

#
#-----[ FIND ]------------------------------------------
#
?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
function pm_in_total()
{
	global $db, $userdata;

	$sql_total = "SELECT COUNT(privmsgs_id) AS total
		FROM " . PRIVMSGS_TABLE . "
		WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
		AND ( privmsgs_type =  " . PRIVMSGS_NEW_MAIL . "
			OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
			OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . ")";

	if ( $result=$db->sql_query($sql_total) )
	{
		while ( $row=$db->sql_fetchrow($result) )
		{
			$in_total = $row['total'];
		}
	}

	$db->sql_freeresult($result);

	$in_total = ( $in_total <= 0 ) ? '' : '&nbsp;('.$in_total.')';

	return $in_total;
}

function pm_out_total()
{
	global $db, $userdata;

	$sql_total = "SELECT COUNT(privmsgs_id) AS total
		FROM " . PRIVMSGS_TABLE . "
		WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
		AND ( privmsgs_type =  " . PRIVMSGS_NEW_MAIL . "
			OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";

	if ( $result=$db->sql_query($sql_total) )
	{
		while ( $row=$db->sql_fetchrow($result) )
		{
			$out_total = $row['total'];
		}
	}

	$db->sql_freeresult($result);

	$out_total = ( $out_total <= 0 ) ? '' : '&nbsp;('.$out_total.')';

	return $out_total;
}

function pm_sent_total()
{
	global $db, $userdata;

	$sql_total = "SELECT COUNT(privmsgs_id) AS total
			FROM " . PRIVMSGS_TABLE . "
			WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
			AND privmsgs_type =  " . PRIVMSGS_SENT_MAIL;

	if ( $result=$db->sql_query($sql_total) )
	{
		while ( $row=$db->sql_fetchrow($result) )
		{
			$sent_total = $row['total'];
		}
	}

	$db->sql_freeresult($result);

	$sent_total = ( $sent_total <= 0 ) ? '' : '&nbsp;('.$sent_total.')';

	return $sent_total;
}

function pm_save_total()
{
	global $db, $userdata;

	$sql_total = "SELECT COUNT(privmsgs_id) AS total
			FROM " . PRIVMSGS_TABLE . "
			WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . "
			AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " )
			OR ( privmsgs_from_userid = " . $userdata['user_id'] . "
			AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") )";

	if ( $result=$db->sql_query($sql_total) )
	{
		while ( $row=$db->sql_fetchrow($result) )
		{
			$save_total = $row['total'];
		}
	}

	$db->sql_freeresult($result);

	$save_total = ( $save_total <= 0 ) ? '' : '&nbsp;('.$save_total.')';

	return $save_total;
}


#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Wenn dieses Snippet korrekt eingebaut wurde, erscheint die korrekte Anzeige bei der Ordneransicht und beim Lesen einer Privaten Nachricht.
Zuletzt geändert von oxpus am Mi 27.Jul, 2005 21:21, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Stoebi
Beiträge: 447
Registriert: Do 24.Feb, 2005 16:35
Wohnort: Berlin
Kontaktdaten:

Beitrag von Stoebi »

Dank dir Oxpus,

ich bin immer wieder verwundert, wie schnell du das alles hinbekommst. Funktioniert und sieht gut aus.


Gruß Stöbi
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Najo, wenn man sowas schon mal gemacht hatte ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Scotty
Beiträge: 200
Registriert: Di 12.Jul, 2005 20:19
Wohnort: Neuruppin
Kontaktdaten:

Beitrag von Scotty »

Hmm, wie geht das wenn ich alles auf einmal angezeigt bekommen möchte? Also ich würde das gerne so machen das die nachrichten Auflistung rechts gehalten wird und links kommen dann die Volumenboxen wo dann oben ne Box ist wo drin steht wo wie viel wo drin ist…? Also so wie in den anderen Systemen ;), man müsste das doch übergreifend in den Templates anzeigen lassen können, egal in welchen Ordner man nun drin ist?
Scotty's Stubentiger-Forum - Miau
Scotty's .NET Projekte: StarTrek Infos 10.01, e-hahn Updater 3.01, Easy Desktop Note 1.04
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich kenne andere Systeme nicht, aber Du kannst gerne mal ein Screenshot für Deine Vorstellungen posten...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Scotty
Beiträge: 200
Registriert: Di 12.Jul, 2005 20:19
Wohnort: Neuruppin
Kontaktdaten:

Beitrag von Scotty »

;) Ok:
http://www.e-hahn.de/temp/pnbox.jpg (Screenshot)

Hier würde ich dann auf der linken Seite noch gerne so eine Box einbauen, wo dann aufgelistet ist wie viel Private Nachrichten ich wo drin hab, also die Anzahl…
Scotty's Stubentiger-Forum - Miau
Scotty's .NET Projekte: StarTrek Infos 10.01, e-hahn Updater 3.01, Easy Desktop Note 1.04
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Warum das nicht oben bei den Links mit darstellen? Das ist doch auch ausreichend. Ausser, man stellt das gesamte Template um...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Scotty
Beiträge: 200
Registriert: Di 12.Jul, 2005 20:19
Wohnort: Neuruppin
Kontaktdaten:

Beitrag von Scotty »

[quote="oxpus - So 11.Sep, 2005 09:48";p="43372"]Warum das nicht oben bei den Links mit darstellen?[/quote]
Na ja es geht mir hier eher um die Optik, das würde so einfach besser aussehen.

Schau mal hier: http://www.phpbb.de/viewtopic.php?p=528194#528194 dadurch kann man das so machen, leider ist da nen Fehler drin, der auch irgendwie behoben wurde (oder umgangen) schau mal bitte…?
Scotty's Stubentiger-Forum - Miau
Scotty's .NET Projekte: StarTrek Infos 10.01, e-hahn Updater 3.01, Easy Desktop Note 1.04
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Was für einen Fehler? Ich habe momentan nicht die Zeit, lange zu suchen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Scotty
Beiträge: 200
Registriert: Di 12.Jul, 2005 20:19
Wohnort: Neuruppin
Kontaktdaten:

Beitrag von Scotty »

Na ja steht ja 2 weitere Beiträge darunter, auch dann ne Lösung, die aber ist sicher nicht die beste?
Scotty's Stubentiger-Forum - Miau
Scotty's .NET Projekte: StarTrek Infos 10.01, e-hahn Updater 3.01, Easy Desktop Note 1.04
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hm, die Lösng ist nicht korrekt, aber ich sehe auch im betreffenden SQL-Statement keinen Fehler...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Scotty
Beiträge: 200
Registriert: Di 12.Jul, 2005 20:19
Wohnort: Neuruppin
Kontaktdaten:

Beitrag von Scotty »

;) Ich selber eh nicht, man kann da dann halt nur (wie geschrieben wurde) keine Benutzer mehr im ACP suchen…
Scotty's Stubentiger-Forum - Miau
Scotty's .NET Projekte: StarTrek Infos 10.01, e-hahn Updater 3.01, Easy Desktop Note 1.04
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Muss ich wirklich passen. Da sollte der Autor mal prüfen. Wenn er denn auch mal Zeit hätte...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

...nur mal so zur anregung...

Code: Alles auswählen

## MOD Title: count pm
## MOD Author: emrag < emrah987@hotmail.com > (Emrah Türkmen)  www.canver.net
## MOD Description: this hack will show how many messages are there in
##		    inbox, outbox, sentbox and savebox.
##
##
##		---------------------------------------------------------
##		-							-
##		-    INBOX       OUTBOX       SENTBOX       SAVEBOX	-
##		-							-
##		---------- change to ------------------------------------
##		-							-
##		-    INBOX (3)   OUTBOX (1)   SENTBOX (0)   SAVEBOX (5) -
##		-							-
##		---------------------------------------------------------
##
##
## MOD Version: 1.0.1
## 
## Installation Level: easy
## Installation Time : ~3 minutes 
## Files to Edit: privmsg.php	
##		  templates/subSilver/privmsgs_body.tpl
##
## Included Files: n/a
############################################################## 
##
## Author Notes: -
## 
##############################################################
##
## MOD History: ??.??.2004 - 1.0.0
##		- First release
##
##		10.01.2005 - 1.0.1
##		- cleaned extra codes
##
##############################################################
##
## Before Adding This Hack To Your Forum, You Should Back Up All Files Related To This Hack  
##
############################################################## 
# 
#-----[ OPEN ]------------------------------------------ 
# 

privmsg.php

#
#----[ FIND ]------------------------------------------ 
#

$sql .= $limit_msg_time . " ORDER BY pm.privmsgs_date DESC LIMIT $start, " . $board_config['topics_per_page'];
$sql_all_tot = $sql_tot;
$sql_tot .= $limit_msg_time_total;

#
#-----[ AFTER, ADD ]------------------------------------------ 
# 

// Start add - Count pm MOD
$total_inbox = '';
$total_sentbox = '';
$total_outbox = '';
$total_savebox = '';

for ($i = 1; $i < 5; $i++)
{

$sql1 = sql_.$i;
$sql2 = sql_.$i;

$tot = tot_.$i;

$$sql1 = "SELECT COUNT(privmsgs_id) AS $tot
	FROM " . PRIVMSGS_TABLE . " ";

// inbox (1)
		$sql_1 .= "WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
			AND ( privmsgs_type =  " . PRIVMSGS_NEW_MAIL . "
				OR privmsgs_type = " . PRIVMSGS_READ_MAIL . " 
				OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";

// sentbox (2)
		$sql_2 .= "WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
			AND privmsgs_type =  " . PRIVMSGS_SENT_MAIL;

// outbox (3)
		$sql_3 .= "WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
			AND ( privmsgs_type =  " . PRIVMSGS_NEW_MAIL . "
				OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";

// savebox (4)
		$sql_4 .= "WHERE ( ( privmsgs_to_userid = " . $userdata['user_id'] . " 
				AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " )
			OR ( privmsgs_from_userid = " . $userdata['user_id'] . " 
				AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . ") )";

if ( !($result1 = $db->sql_query($$sql2)) )
{
	message_die(GENERAL_ERROR, 'Could not query forum PM information', '', __LINE__, __FILE__, $sql_tot_pm_savebox);
}

while ($row1 = $db->sql_fetchrow($result1))
{
$total_inbox .= $row1['tot_1'];
$total_sentbox .= $row1['tot_2'];
$total_outbox .= $row1['tot_3'];
$total_savebox .= $row1['tot_4'];
}

}
// End add - Count pm MOD

#
#----[ FIND ]------------------------------------------ 
#

	'POST_PM_IMG' => $post_pm_img, 
	'POST_PM' => $post_pm, 

#
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

	// Start add - Count pm MOD
	'TOTAL_INBOX' => $total_inbox,
	'TOTAL_SENTBOX' => $total_sentbox,
	'TOTAL_OUTBOX' => $total_outbox,
	'TOTAL_SAVEBOX' => $total_savebox,
	// End add - Count pm MOD

# 
#-----[ OPEN ]------------------------------------------ 
# 

privmsgs_body.tpl

#
#----[ FIND ]------------------------------------------ 
#
# if your theme isn't subsilver you will not find below part
# so find these 4 parts and replace
#
# {INBOX} &nbsp;    -- replace with -->  {INBOX} &nbsp;({TOTAL_INBOX}) &nbsp;
# {SENTBOX} &nbsp;  -- replace with -->  {SENTBOX} &nbsp;({TOTAL_SENTBOX}) &nbsp;
# {OUTBOX} &nbsp;   -- replace with -->  {OUTBOX} &nbsp;({TOTAL_OUTBOX}) &nbsp;
# {SAVEBOX} &nbsp;  -- replace with -->  {SAVEBOX} &nbsp;({TOTAL_SAVEBOX}) &nbsp;
#
#

	  <table height="40" cellspacing="2" cellpadding="2" border="0">
		<tr valign="middle"> 
		  <td>{INBOX_IMG}</td>
		  <td><span class="cattitle">{INBOX} &nbsp;</span></td>
		  <td>{SENTBOX_IMG}</td>
		  <td><span class="cattitle">{SENTBOX} &nbsp;</span></td>
		  <td>{OUTBOX_IMG}</td>
		  <td><span class="cattitle">{OUTBOX} &nbsp;</span></td>
		  <td>{SAVEBOX_IMG}</td>
		  <td><span class="cattitle">{SAVEBOX} &nbsp;</span></td>
		</tr>
	  </table>

#
#----[ REPLACE WITH ]------------------------------------------ 
#

	  <table height="40" cellspacing="2" cellpadding="2" border="0">
		<tr valign="middle"> 
		  <td>{INBOX_IMG}</td>
		  <td><span class="cattitle">{INBOX} &nbsp;({TOTAL_INBOX})&nbsp;</span></td>
		  <td>{SENTBOX_IMG}</td>
		  <td><span class="cattitle">{SENTBOX} &nbsp;({TOTAL_SENTBOX})&nbsp;</span></td>
		  <td>{OUTBOX_IMG}</td>
		  <td><span class="cattitle">{OUTBOX} &nbsp;({TOTAL_OUTBOX})&nbsp;</span></td>
		  <td>{SAVEBOX_IMG}</td>
		  <td><span class="cattitle">{SAVEBOX} &nbsp;({TOTAL_SAVEBOX})&nbsp;</span></td>
		</tr>
	  </table>

#
#-----[ SAVE ALL FILES/CLOSE 
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
Scotty
Beiträge: 200
Registriert: Di 12.Jul, 2005 20:19
Wohnort: Neuruppin
Kontaktdaten:

Beitrag von Scotty »

Habs schon, da gabs nen MOD, der auch Fix eingebaut ist:
http://www.phpbbhacks.com/download/4462

So schaut es bei mir aus bzw. so meinte ich es:
http://www.e-hahn.de/temp/pnbox.jpg (Screenshot)

Das andere Prob hatte Mungo von phpbb.de auch gelöst ;)...

@schmidtedv
Genau ;)
Scotty's Stubentiger-Forum - Miau
Scotty's .NET Projekte: StarTrek Infos 10.01, e-hahn Updater 3.01, Easy Desktop Note 1.04
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na, ist doch klasse geworden...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Twins

Beitrag von Twins »

Cooler Mod, oxpus.Echt stark, bei mir ging alles ohne Probleme.
Posteingang (11) Gesendete Nachrichten (12)
Bei Postausgang und Archiv wird aber keine Zahl angezeigt...Ist das extra so oder habe ich da was falsch gemacht?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hast Du meinen oder den MOD von emrag eingebaut?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Twins

Beitrag von Twins »

Ich habe deinen Mod eingebaut.
Und ich habe in der privmsg.php auch die Codestellen dreimal gesucht und ersetzt...
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Häng mal die Datei an, dann schau ich mal nach...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Twins

Beitrag von Twins »

Danke...;)
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Datei ist korrekt.
Du hast auch alle 4 Funktionen in der functions_stats.php eingefügt?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Twins

Beitrag von Twins »

Ich denke doch...;)
Zuletzt geändert von Twins am Do 15.Sep, 2005 14:50, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Jo, so wie es sein soll.
Komisch.
Hast Du an den Postfächern was geändert? Also einen MOD da eingebaut?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Twins

Beitrag von Twins »

Das einzige, was ich an der privmsg.php gemacht habe, war das speichern von PM`s als txt und die Anzeige des Online/Offline Status.Diese Änderungen sind aber alle in der privmsg.php drin.Sonst habe ich da nichts gemacht.
Antworten