Wer ist Online Block zählt private Nachrichten falsch

Begonnen von Novacat_52, 18 Juli 2002, 10:47:59

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Novacat_52

Hallo!
Ich habe ein Problem mit eurem Who is Online Block. Und zwar zählt er bei der Anzeige der privaten Nachrichten alle mit, statt nur die im Posteingang. Auch solche die längst unsichtbar (gelöscht) sind werden mitgezählt. Zwar sind diese ja noch im System enthalten (er zählt zwar richtig) aber sollten vom Benutzer nicht mehr abgerufen werden können.
Vorher hatte ich folgenden Block:

<?php

#########################################################
# PHP-Nuke Block: Total Hits v0.1                                      #
#                                                                      #
# Copyright (c) 2001 by C. Verhoef (cverhoef@gmx.net)                  #
#                                                                      #
# Updated to work with the Private message counter for phpBB2 by       #
# Tom Nitzschner (tom@toms-home.com)                                   #
# http://www.toms-home.com                                             #
#                                                                      #
#########################################################
# This program is free software. You can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License.       #
#########################################################
# Modified to include online user list May 2, 2002 by Kenneth Youens.  #


if (eregi("block-Who_is_Online.php", $PHP_SELF)) {
    Header("Location: index.php");
    die();
}

global $user, $cookie, $prefix, $dbi, $user_prefix;

cookiedecode($user);
$ip = getenv("REMOTE_ADDR");
$username = $cookie[1];
if (!isset($username)) {
    $username = "$ip";
    $guest = 1;
}

$result = sql_query("SELECT username FROM ".$prefix."_session where guest=1", $dbi);
$guest_online_num = sql_num_rows($result, $dbi);

$result = sql_query("SELECT username FROM ".$prefix."_session where guest=0", $dbi);
$member_online_num = sql_num_rows($result, $dbi);

$who_online_num = $guest_online_num + $member_online_num;
if ($guest_online_num =="") { $guest_online_num = "0"; }
if ($member_online_num =="") { $member_online_num = "0"; }
$who_online = "<center><font class=\"content\">"._CURRENTLY." $guest_online_num "._GUESTS." $member_online_num "._MEMBERS."<br>";
$result = sql_query("select title from ".$prefix."_blocks where bkey='online'", $dbi);
list($title) = sql_fetch_row($result, $dbi);
$content = "$who_online<br>";
if (is_user($user)) {
       if (is_active("Private_Messages")) {
   $result = sql_query("select user_new_privmsg from ".$user_prefix."_users where uname='$username'", $dbi);
   list($numrow) = sql_fetch_row($result, $dbi);
   if ($newnumrow == "0") {
       $content .= ""._YOUHAVE." no "._PRIVATEMSG."";
   } else {   
       $content .= ""._YOUHAVE." <a href=\"modules.php?name=Private_Messages\"><b>$numrow</b></a> "._PRIVATEMSG."";
   }
    }
    $content .= "</font></center>";
} else {
    $content .= "<br>"._YOUAREANON."</font></center>";
}



if (is_user($user)) {
      $count = 0;
      $resWho = mysql_query ("SELECT username FROM $prefix"._session." where guest=0;");
      $content .= "<br><b><left>"._WHOON_CURRENTLYONLINE."</left><br></b>";
      
      while (list($userWho) = mysql_fetch_row($resWho)) {
      
         if ($count > 0) {
            $content .="";
         };
         
         $content .= "<strong><big>·</big></strong> <a
         href=\"modules.php?name=Your_Account&op=userinfo&uname=$userWho\">$userWho</a><br>";
         
            $count ++;
      }
      }
      else
      {
         # do nothing
   }

?>

Kann ich euer Block bezüglich dem Zählen von Nachrichten mit dem hier kombinieren?

Danke im Voraus!

MFG

Novacat_52

Andi

 
ZitatAuch solche die längst unsichtbar (gelöscht) sind werden mitgezählt. Zwar sind diese ja noch im System enthalten (er zählt zwar richtig) aber sollten vom Benutzer nicht mehr abgerufen werden können.
 

Hi Novacat_52,
das kann nicht sein, gelöscht ist gelöscht. Zumindest bei mySQL.
Du meinst vermutlich die bereits gelesenen Nachrichten. Die werden mitgezählt.
Warte auf das neue VKP, da wird der Block hier von der Seite enthalten sein. Dann bekommst Du beides angezeigt, gelesen und ungelesen ;)
schön´s Grüssle, Andi

Novacat_52

Nein, ich will kein VKP!
Ich verwende im Miment PHP-Nuke 5.6 mit dem phpBB Port zusammen. Die Nachrichten werden von dem verwaltet. Der Code von diesem Block hier war bei dem Port dabei und wird empfohlen.
Es sollte aber doch kein Problem sein, die Nachrichtenabfrage in eurem Block, den ich nun verwenden will zu ändern, oder?
Ich komme eben noch nicht so gut draus, kannst Du mir nicht helfen?
MFG

Novacat_52

PS: Ich habe auf phpnuke.org gelesen, dass es eine Beta von PHP-Nuke 6.0 gibt. Ist das wahr?

Andi

Hi Novacat_52,

alla gut...., musst ja nicht  :D
Suche in unserem Blockfile die sql-Abfrage
 "select to_userid from $prefix"._priv_msgs." where to_userid='$uid' (oder so ähnlich

Und ändere sie wie folgt ab:
 "select to_userid from ".$prefix."_priv_msgs where to_userid='$uid' and read_msg=0;

Dann sollten eigentlich nur noch die ungelesenen Nachrichten gezählt werden

Wegen nuke6.0 bist Du auf phpnuke.org auf der Heimatseite von Nuke, die müssen es am Besten wissen ;)
Bei uns wurde mit 5.5 ein Schlusstrich gezogen :)
schön´s Grüssle, Andi

Novacat_52

Ha, nun habe ich das Problem:
Das neue PN-Modul speichert die Nachrichten in einer anderen Tabelle ab, als das normale.
Das neue sichert die Überschriften in nuke_privmsgs die texte in nuke_privmsgs_text, das alte jedoch alles in nuke_priv_msgs.
Da muss man wohl die Abfrage änder, oder?

Noch was: Wie kann ich nun machen, dass alle PNs zukünftig korrekt in die beiden Tabellen gesendet werden? Der site-messenger und youraccount+ würden sie ja noch an die alte tabelle senden.

THX

Novacat_52

Excalibur100

Hallo,

wie Andi schon sagte, ich glaube für die 6.0 Probleme bist du besser bei der Nukeseite aufgehoben. Ich denke mal das sie für Nuke 6 einiges geändert haben, auch in den Tabellen.
Dann wirst du noch öfter Probleme bekommen wenn du Sachen von Nuke5.5 einbauen möchtest.

Ich glaube es gibt dort aber auch ein Forum.
Ich für meinen Teil habe auch erstmal mit 5.5 einen Schlußstrich gemacht. Denn wenn hier das neue VKP da ist, dann habe ich alles was ich brauche und fange bestimmt mit 6.0 nicht wieder von vorne an.

@Excalibur100
Nene, das waren zwei verschiedene Fragen! Andi hat mich schon richtig verstanden.
Bei meinem Nuke handelt es sich um PHP-Nuke 5.6 mit dem phpBB Port 2.0.4 (phpBB ist ein Forum).
Das Problem: Das Forum überschribt das bestehende Private-Nachrichten Modul, und wegen dem kommt der Wer-ist-Online Block von maaX dESIGN, bezüglich dem Zählen und versenden der Nachrichten nicht mehr draus.