Freunde Block

Begonnen von vittatus, 21 Oktober 2005, 16:07:19

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

vittatus

Hey habe nochmal ein Block für die JSM Friendlist gebastelt.. :thumbup:#

Läuft auch alles soweit nur ich hätte es gerne nach Online und Offline Sortiert.hat jemand vielleicht eine Idee ?
Hier mal der Code:
Bitte nicht mekern falls irgentwas da nicht rein gehört oder sonstwas
bin in php / pragmamx noch nicht ganz so bewandert  ;)

<?php

################# Einstell Variablen ############################################################################
$onlinelistsize  20     # Hoehe des Selectfeld der Onlinuser (Online-Liste)
# Namen mit Komma trennen!
$excludedusers ="Texsterdsgf, Knaxllerfgfd";
##################################################################################################################
$imagedir="images/maaxon";
##################################################################################################################
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

global 
$prefix$user_prefix$bgcolor1$bgcolor2$bgcolor3$txtcolor1$txtcolor2;

# Variablen initialisieren
$username "";
if (
MX_IS_USER){
$cookie=mxGetUserSession();
$username $cookie[1];
$uid $cookie[0];
}

# SQL-bedingung fuer excluded Users erstellen
$exusers explode (","$excludedusers);
if(!
MX_IS_ADMIN){
while (list($key$val) = each($exusers)) {      
$xexusers[]=trim($val);
}
}
$xexusers[] = $GLOBALS['anonymous'];
$excludedusers "'".implode("','",$xexusers)."'";

$friend=addslashes($friend);

$cookie mxGetUserSession();

    
$result=sql_query("select uid from ".$user_prefix."_users where uname='".$cookie[1]."'");

$row=sql_fetch_array($result);

        
$result=sql_query("select friendname from ".$user_prefix."_users_friendslist where uname='".$cookie[1]."'");

        
$num=sql_num_rows($result);

        if(
$num>=1){

   
         while(list(
$friendname) = sql_fetch_row($result)) {

    
$furl "modules.php?name=Userinfo&amp;uname=".$friendname."";

    
$past time()- MX_SETINACTIVE_MINS ;

$result0 sql_query("select uname from ".$user_prefix."_users where((uname='$friendname') AND (user_lastvisit >= ".$past.") AND (user_stat=1) AND (user_lastmod<>'logout')) AND user_stat=1");

                   list(
$uname) = sql_fetch_row($result0);

                       if (
$uname == "") {

                             
$online "(offline)";

                     } else {

                         
$online "(online)";;

                     }

                     
$result3 sql_query("select uname, user_sexus, user_lastvisit from ".$user_prefix."_users where((uname='$friendname') ) AND user_stat=1");

                   list(
$uname$user_sexus$user_lastvisit) = sql_fetch_row($result3);

$letzterbesuch strftime("%d.%m.%Y"$user_lastvisit);





if (
$user_sexus==1) {
    
    
$uname3 mxCutString($friendname10"..""");    # Kurzen Usernamen erstellen
    
$whoonlineselect.="<option style=\"color:black;\" value=\"".$friendname."\" title=\"".$friendname."\">".$uname3." (w) ".$online."</OPTION>\n"# options fuer auswahlselect erstellen
    
$member_online_num++;    # Anzahl User hochzaehlen
    
}
if (
$user_sexus==2){    
    
    
$uname3 mxCutString($friendname10"..""");    # Kurzen Usernamen erstellen
    
$whoonlineselect.="<option style=\"color:black;\" value=\"".$friendname."\" title=\"".$friendname."\">".$uname3." (m) ".$online."</OPTION>\n"# options fuer auswahlselect erstellen
    
$member_online_num++;    # Anzahl User hochzaehlen
    
}
if (
$user_sexus==0){    
    
    
$uname3 mxCutString($friendname10"..""");    # Kurzen Usernamen erstellen
    
$whoonlineselect.="<option style=\"color:black;\" value=\"".$friendname."\" title=\"".$friendname."\">".$uname3." ".$online."</OPTION>\n"# options fuer auswahlselect erstellen
    
$member_online_num++;    # Anzahl User hochzaehlen
    
}


# Ausgabe ...................................
$content "\n<!-- $thisfile output start -->\n<div class=\"boxcontent\" align=\"center\">\n"
."<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 0px; margin-bottom: 5px;\">\n"
."</table>\n";

# Onlineliste anzeigen wenn User online sind
if($member_online_num>0){
if($onlinelistsize>=$member_online_num) {$onlinelistsize=$member_online_num+5;}

$script "";
}
else{
$script " onDblClick=\"whob_clickit()\"";
$content .= "<script language=\"JavaScript\" type=\"text/javascript\">\n<!--\n";
$content .= "function whob_clickit(){\n";
$content .= " var y=document.onlineuserinfo.uname.selectedIndex; \n";
$content .= " var x=document.onlineuserinfo.uname.options[y].value; \n";
$content .= " window.open('modules.php?name=$pm_module_name&file=buddy&op=compose&to='+x, '".md5(time())."','left=370,top=150,width=360,height=200,toolbar=no,location=no,menubar=no,scrollbars=yes,resizeable=yes,status=no');\n";
$content .= " return false;\n";
$content .= " }\n//-->\n";
$content .= "</script>\n";
}
#background-color: $bgcolor1; font-size: 9px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: $txtcolor1; width: 90%; border: 0px $bgcolor1;

$content .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 0px; margin-bottom: 5px;\">\n";
$content .= "\n<tr>\n<td colspan=\"2\" align=\"center\" class=\"boxcontent\">\n";
$content .= "Freundeliste (<b>$member_online_num</b>)";
$content .= "</td>\n</tr>\n";
$content .= "\n<tr>\n<td colspan=\"2\" align=\"center\">"; # select-options verwenden
$content .= "<form action=\"modules.php?test\" name=\"onlineuserinfo\" method=\"get\" style=\"border: 0px; margin-bottom: 5px; margin-top: 0px;\">";
$content .= "<input type=\"hidden\" name=\"name\" value=\"Your_Account\">";
$content .= "<input type=\"hidden\" name=\"op\" value=\"userinfo\">";
$content .= "<select name=\"uname\" size=\"$onlinelistsize\" style=\" background-color: $bgcolor1; font-size: 9px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: $txtcolor1; width: 90%; cursor: hand; border: 1px solid $bgcolor2; text-decoration: none; padding-left: 1px; padding-top: 1px; padding-bottom: 1px;\" $script>".$whoonlineselect."</select>";
$content .= "<br>\n<input type=\"image\" src=\"$imagedir/info.png\" alt=\""._BWOUSERINFO."\">";
$content .= "</form>\n";
$content .= "</td>\n</tr>\n";
$content .= "</table>\n";
}



$content .= "";
$content .= "</div>\n<!-- $thisfile output end -->\n";
?>

jubilee

#1
Hallo !
Zitatif (MX_IS_USER){
und
Zitatif(!MX_IS_ADMIN){
Geht so nicht
der Funktionsaufruf für die beiden Funktionen muss lauten :
Zitatif(mxIsUser()){
und
Zitatif(!mxIsAdmin()){

anstatt darüber festzustellen, ob ein User online ist :
Zitat$result0 = sql_query("select uname from ".$user_prefix."_users where((uname='$friendname') AND (user_lastvisit >= ".$past.") AND (user_stat=1) AND (user_lastmod<>'logout')) AND user_stat=1");

                   list($uname) = sql_fetch_row($result0);

                       if ($uname == "") {

                             $online = "(offline)";

                     } else {

                         $online = "(online)";;

                     }
geht es ersatzweise einfacher mit :
Zitat
   $Isonline=mxGetUserDataFromUsername($friedname);
      if ($Isonline['user_online'])
                                 {
                                      $online = "(online)";
                                  }
                                  else
                                   {
                                        $online = "(offline)";
                                    }


Ausserdem ist alles etwas durcheinander und es kommen auch unnötigerweise doppelte aufrufe vor .
z.B.
Zitat
if (MX_IS_USER){
$cookie=mxGetUserSession();
$username = $cookie[1];
$uid = $cookie[0];
}

dann einige Zeilen tiefer
Zitat$cookie = mxGetUserSession();
Wenn die obige Ausschlußbedingung schon richtig geschrieben wäre, wäre das 2x Abfragen der session komplett unnötig.



MfG
jubilee

vittatus

Hey,

Vielen dank erstmal Jubilee für deine Hilfe.
Habe erstmal alles abgeändert.

Wollte aber gerne noch wissen wie ich es hinbekomme das es nach on-offline sortiert wird.

Gruss Markus.

vittatus


smartmusic

hi,

das einfachste und sinnvollste wird doch sein nur die online user anzuzeigen...

vittatus

Hey,

das wäre auch eine möglichkeit aber lieber wäre es mir wenn alle angzeigt werden und die online sind halt zuerst...

smartmusic

kannst du bitte nochmal jetzt den geänderten code hier posten

vittatus

#7
klar:

<?php

################# Einstell Variablen ############################################################################
$onlinelistsize  10     # Hoehe des Selectfeld der Onlinuser (Online-Liste)
$showuserlistall 1;      # Wenn Online-Liste immer erscheinen soll, 1=Ja, 0=nein
# Namen mit Komma trennen!
$excludedusers ="Texsterdsgf, Knaxllerfgfd";
##################################################################################################################
$imagedir="images/maaxon";
##################################################################################################################
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
global 
$prefix$user_prefix$bgcolor1$bgcolor2$bgcolor3$txtcolor1$txtcolor2;

# Variablen initialisieren
$username "";
if(
mxIsUser()){
$cookie=mxGetUserSession();
$username $cookie[1];
$uid $cookie[0];
}

# SQL-bedingung fuer excluded Users erstellen
$exusers explode (","$excludedusers);
if(!
mxIsAdmin()){
while (list($key$val) = each($exusers)) {      
$xexusers[]=trim($val);
}
}
$xexusers[] = $GLOBALS['anonymous'];
$excludedusers "'".implode("','",$xexusers)."'";
$friend=addslashes($friend);


$result=sql_query("select uid from ".$user_prefix."_users where uname='".$cookie[1]."'");
$row=sql_fetch_array($result);
        
$result=sql_query("select friendname from ".$user_prefix."_users_friendslist where uname='".$cookie[1]."'");
        
$num=sql_num_rows($result);
        if(
$num>=1){

   
    while(list(
$friendname) = sql_fetch_row($result)) {
    
$past time()- MX_SETINACTIVE_MINS ;
$result0 sql_query("select uname from ".$user_prefix."_users where((uname='$friendname') AND (user_lastvisit >= ".$past.") AND (user_stat=1) AND (user_lastmod<>'logout')) AND user_stat=1");

                   list(
$uname) = sql_fetch_row($result0);
                   if (
$uname == "") {
                             
$online "(offline)";
                     } else {
                         $online "(online)";;
                     }

                     
$result3 sql_query("select uname, user_sexus, user_lastvisit from ".$user_prefix."_users where((uname='$friendname') ) AND user_stat=1");
                    list(
$uname$user_sexus) = sql_fetch_row($result3);

if (
$user_sexus==1) {
    
    
$uname3 mxCutString($friendname10"..""");    # Kurzen Usernamen erstellen
    
$whoonlineselect.="<option style=\"color:black;\" value=\"".$friendname."\" title=\"".$friendname."\">".$uname3." (w) ".$online."</OPTION>\n"# options fuer auswahlselect erstellen
    
$member_online_num++;    # Anzahl User hochzaehlen
    
}
if (
$user_sexus==2){    
    
    
$uname3 mxCutString($friendname10"..""");    # Kurzen Usernamen erstellen
    
$whoonlineselect.="<option style=\"color:black;\" value=\"".$friendname."\" title=\"".$friendname."\">".$uname3." (m) ".$online."</OPTION>\n"# options fuer auswahlselect erstellen
    
$member_online_num++;    # Anzahl User hochzaehlen
    
}
if (
$user_sexus==0){    
    
    
$uname3 mxCutString($friendname10"..""");    # Kurzen Usernamen erstellen
    
$whoonlineselect.="<option style=\"color:black;\" value=\"".$friendname."\" title=\"".$friendname."\">".$uname3." ".$online."</OPTION>\n"# options fuer auswahlselect erstellen
    
$member_online_num++;    # Anzahl User hochzaehlen
    
}


# Ausgabe ...................................
$content "\n<!-- $thisfile output start -->\n<div class=\"boxcontent\" align=\"center\">\n"
."<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 0px; margin-bottom: 5px;\">\n"
."</table>\n";

if (
MX_IS_USER || MX_IS_ADMIN || $showuserlistall) { # Wenn angemeldeter User oder Admin oder Liste immer erscheinen soll
# Onlineliste anzeigen wenn User online sind
if($member_online_num>0){
if($onlinelistsize>=$member_online_num) {$onlinelistsize=$member_online_num+1;}

$script "";
}
else{
$script " onDblClick=\"whob_clickit()\"";
$content .= "<script language=\"JavaScript\" type=\"text/javascript\">\n<!--\n";
$content .= "function whob_clickit(){\n";
$content .= " var y=document.onlineuserinfo.uname.selectedIndex; \n";
$content .= " var x=document.onlineuserinfo.uname.options[y].value; \n";
$content .= " window.open('modules.php?name=$pm_module_name&file=buddy&op=compose&to='+x, '".md5(time())."','left=370,top=150,width=360,height=200,toolbar=no,location=no,menubar=no,scrollbars=yes,resizeable=yes,status=no');\n";
$content .= " return false;\n";
$content .= " }\n//-->\n";
$content .= "</script>\n";
}
#background-color: $bgcolor1; font-size: 9px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: $txtcolor1; width: 90%; border: 0px $bgcolor1;

$content .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 0px; margin-bottom: 5px;\">\n";
$content .= "\n<tr>\n<td colspan=\"2\" align=\"center\" class=\"boxcontent\">\n";
$content .= "Freundeliste (<b>$member_online_num</b>)";
$content .= "</td>\n</tr>\n";
$content .= "\n<tr>\n<td colspan=\"2\" align=\"center\">"; # select-options verwenden
$content .= "<form action=\"modules.php?test\" name=\"onlineuserinfo\" method=\"get\" style=\"border: 0px; margin-bottom: 5px; margin-top: 0px;\">";
$content .= "<input type=\"hidden\" name=\"name\" value=\"Your_Account\">";
$content .= "<input type=\"hidden\" name=\"op\" value=\"userinfo\">";
$content .= "<select name=\"uname\" size=\"$onlinelistsize\" style=\" background-color: $bgcolor1; font-size: 9px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: $txtcolor1; width: 90%; cursor: hand; border: 1px solid $bgcolor2; text-decoration: none; padding-left: 1px; padding-top: 1px; padding-bottom: 1px;\" $script>".$whoonlineselect."</select>";
$content .= "<br>\n<input type=\"image\" src=\"$imagedir/info.png\" alt=\""._BWOUSERINFO."\">";
$content .= "</form>\n";
$content .= "</td>\n</tr>\n";
$content .= "</table>\n";
}



}
$content .= "";
$content .= "</div>\n<!-- $thisfile output end -->\n";
?>

vittatus

Hallo,
hab nochmal ein bischen rumprobiert.
und zwar habe ich folgenden code:

                   list($uname) = sql_fetch_row($result0);
                   if ($uname == "") {
                             $online = "(offline)";
                     } else {
                         $online = (online)";;
                     }

         

Zu folgendes abgeändert:

                   list($uname) = sql_fetch_row($result0);
                   if ($uname == "") {
                             $online = "(offline)";
                     } else {
                         $online = "<option style=\"color:red;\">(online)</option>";;
                     }

         


Das bedeutet der online wird in rot angezeigt nur leider steht das online aufeinmal eine zeile tiefer gibs da eine möglichkeit das es in der gleichen zeile bleibt ?

Gruss Markus

onkel

Die Freundeliste hat einen Fehler, denn die user die sich mal gelöscht haben werden trotzdem angezeigt und man kann sie nicht aus der liste löschen ;) .......

vittatus

Hey,
Redest du vom block oder von der Freundeliste selbst ?
Beim Block habe ich es gerade nochmal getestet und geht einwandfrei  ;)
Gruss Markus

onkel

ZitatHey,
Redest du vom block oder von der Freundeliste selbst ?
Beim Block habe ich es gerade nochmal getestet und geht einwandfrei 
Gruss Markus


Häää von wo holt sich der block die Daten ?

vittatus

ZitatHäää von wo holt sich der block die Daten ?

Von der JSM_Friendlist

onkel

#13
Sorry ... habe mich vertan :) man bekommt sie nicht aus ''Wer hat mich in seiner Freundesliste?''  :D

vittatus


onkel

und auch nicht aus ''Wer hat mich in seiner Ignorierliste?''

vittatus

 ;)
Hat vielleicht jetzt jemand eine Idee wie man es nach on-offline Sortieren kann ?

smartmusic

...also ich fände es auch gut wenn es funktionieren würde...

schnikemike

Meinst du die liste oder das mit dem nicht dem weiterhin angezeigt.
Wer anderen eine Grube gräbt der hat ein Grubengrabgerät!
 

smartmusic

das die online freunde oben stehen,mir würde es auch schon reichen wenn nur die online freunde angezeigt werden...

...für den rest gibt es ja das modul