Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
Mitgliederliste anpassen
#1
Wie in den vorigen Versionen, möchte ich auch diesmal in der 1.4 die Mitgliederliste nach meinen Wünschen anpassen. eMail- und PN-Buttons sind drin; ein Problem habe ich aber mit dem jeweiligen Online-/Offline-/An- und Abwesenheits-Status.

Um den Status anzeigen zu lassen, habe ich in der "memberlist.php" (Zeile 322) folgenden Code vor:

PHP-Code:
$user['regdate'] = my_date($mybb->settings['dateformat'], $user['regdate']).", ".my_date($mybb->settings['timeformat'], $user['regdate']);
$user['lastvisit'] = my_date($mybb->settings['dateformat'], $user['lastactive']).", ".my_date($mybb->settings['timeformat'], $user['lastactive']);;
$user['postnum'] = my_number_format($user['postnum']);
$alt_bg alt_trow();
eval(
"\$users .= \"".$templates->get("memberlist_user")."\";"); 

eingefügt und das entspr. Template um die Variablen $status bzw. $abwesend ergänzt:

PHP-Code:
// START Online || Offline Status
$timecut time() - $mybb->settings['wolcutoffmins'];

if(
$users['lastactive'] > $timecut && $users['lastvisit'] != $users['lastactive'])
{
  
$status 'Online';
}
else
{
  
$status 'Offline';
}
// ENDE Online || Offline Status

// START Abwesend?
if($users['away'] == "1")
{
  
$abwesend 'Abwesend';    
}
else
{
  
$abwesend 'Anwesend';
}
// ENDE Abwesend? 

Leider funktioniert das nicht so, wie ich will. Als Status wird immer "Offline" und "Anwesend" angezeigt. Der User "Test" ist - wie auch im Profil zu sehen - abwesend.

Demo: http://www.demida.de/forum/memberlist.php

Hab´ ich da irgendwo einen Denkfehler und seh´ wieder mal den Wald vor lauter Bäumen nicht, oder funktioniert dieser (leicht angepasste) Code aus der 1.2 nicht mit der 1.4?
 
The User, Formerly Known As "En-Gedi"
 
Zitieren
#2
Du benutzt in deinem Code die Variable $users, welche nicht definiert ist. Da ist ein "s" am Ende zu viel.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Ich hab´s geahnt ... da waren tatsächlich zu viel Bäume, die den Blick versperrt haben. Da hilft jetzt nur noch ein Pause ... ab in den Garten und für 4 Stunden Rasen mähen Wink

Danke, funktioniert!
 
The User, Formerly Known As "En-Gedi"
 
Zitieren
#4
So, kurze Zusammenfassung für die, die´s auch in der 1.4 haben wollen:

Suche in der Datei "memberlist.php" (~Zeile 322) nach:

PHP-Code:
$user['regdate'] = my_date($mybb->settings['dateformat'], $user['regdate']).", ".my_date($mybb->settings['timeformat'], $user['regdate']); 

Füge davor ein:

PHP-Code:
// START Online || Offline Status
    
$timecut time() - $mybb->settings['wolcutoff'];
    if(
$user['lastactive'] > $timecut && $user['lastvisit'] != $user['lastactive'])
    {
        eval(
"\$status = \"".$templates->get("postbit_online")."\";");
        }
    else
    {
        eval(
"\$status = \"".$templates->get("postbit_offline")."\";");
    }
// ENDE Online || Offline Status

// START Abwesend?
    
if($user['away'] == "1")
    {
        eval(
"\$abwesend = \"".$templates->get("postbit_away")."\";");
    }
    else
    {
        eval(
"\$abwesend = \"\";");
        }
// ENDE Abwesend?

// START eMail und PN-Button
        
$post['uid'] = $user['uid'];
        
$emailcode $pmcode '';
        if(
$user['hideemail'] != 1)
        {
            eval(
"\$emailcode = \"".$templates->get("postbit_email")."\";");
        }
        
        if(
$user['receivepms'] != && $mybb->settings['enablepms'] != && my_strpos(",".$user['ignorelist'].","",".$mybb->user['uid'].",") === false)
        {
            eval(
"\$pmcode = \"".$templates->get("postbit_pm")."\";");
        }
// ENDE eMail und PN-Button 

Dann können die Variablen {$status} {$abwesend} {$emailcode} und {$pmcode} im Template "memberlist_user" an beliebiger Stelle eingefügt werden. Demo-Link: http://www.demida.de/forum/memberlist.php



Die Ausgabe selbst (eigene Grafiken, nur Text etc.) kann in der jeweiligen eval("\....-Zeile angepasst werden.

Beispiel für den An-/Abwesenheitsstatus:

In der ersten eval-Zeile (bei Abwesenheit) wird das Standardicon (graues Männchen mit rotem Minus) eingebunden. In der zweiten eval-Zeile, die ausgegeben wird, wenn jemand anwesend ist, steht nichts. Soll hier z.B. der Text "Anwesend" angezeigt werden, müsste die Zeile so aussehen:

PHP-Code:
eval("\$abwesend = \"Anwesend\";"); 
 
The User, Formerly Known As "En-Gedi"
 
Zitieren
#5
(31.08.2008, 12:26)en-gedi schrieb: Dann können die Variablen {$status} {$abwesend} {$emailcode} und {$pmcode} im Template "memberlist_user" an beliebiger Stelle eingefügt werden.

Ist das Template "memberlist_user" das einzigste Template was geändert werden muss? Denn bei mir sieht das jetzt so aus:    
Gruß, Micha
=========
Zitieren
#6
Da jetzt eine oder mehrere Spalten zusätzlich in der Tabelle sind, muss noch im Template "Memberlist" der Wert für "colspan" (müsste so ungefähr Zeile 11 sein) erhöht werden.
 
The User, Formerly Known As "En-Gedi"
 
Zitieren
#7
Danke, aber {$emailcode} und {$pmcode} funzt bei mir leider nicht :-(
Gruß, Micha
=========
Zitieren
#8
memberlist

Code:
<html>
<head>
<title>{$mybb->settings['bbname']} - {$lang->member_list}</title>
{$headerinclude}
</head>
<body>
{$header}
{$multipage}
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="11"><strong>{$lang->member_list}</strong></td>
</tr>
<tr>
<td class="tcat" width="5%"><span class="smalltext"><strong>{$lang->avatar}</strong></span></td>
<td class="tcat" width="25%" ><span class="smalltext"><strong>{$lang->username}</strong></span></td>
<td class="tcat" width="10%" align="center"><span class="smalltext"><strong>PM</strong></span></td>
<td class="tcat" width="10%" align="center"><span class="smalltext"><strong>E-Mail</strong></span></td>
<td class="tcat" width="15%" align="center"><span class="smalltext"><strong>{$lang->joined}</strong></span></td>
<td class="tcat" width="15%" align="center"><span class="smalltext"><strong>{$lang->lastvisit}</strong></span></td>
<td class="tcat" width="10%" align="center"><span class="smalltext"><strong>{$lang->posts}</strong></span></td>
<td class="tcat" width="10%" align="center"><span class="smalltext"><strong>Status</strong></span></td>
</tr>
{$users}
</table>
<div class="float_right" style="padding-top: 4px;">
    <a href="showteam.php"><strong>{$lang->forumteam}</strong></a>
</div>
{$multipage}
<br style="clear: both;" />
<br />
<form method="post" action="memberlist.php">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" colspan="3">
    <div class="float_right">
        <strong><a href="memberlist.php?action=search">{$lang->advanced_search}</a></strong>
    </div>
    <div><strong>{$lang->search_members}</strong></div>
</td>
</tr>
<tr>
    <td class="tcat"><strong><label for="username">{$lang->username}</label></strong></td>
    <td class="tcat"><strong><label for="website">{$lang->website}</label></strong></td>
    <td class="tcat"><strong><label for="sort">{$lang->sort_by}</label></strong></td>
</tr>
<tr>
    <td class="trow1" width="33%" style="vertical-align: top;">
        {$lang->contains}<br />
        <input type="text" class="textbox" name="username" id="username" style="width: 99%; margin-top: 4px;" value="{$search_username}" />
    </td>
    <td class="trow1" width="33%" style="vertical-align: top;">
        {$lang->contains}<br />
        <input type="text" class="textbox" name="website" id="website" style="width: 99%; margin-top: 4px;" value="{$search_website}" />
    </td>
    <td class="trow1" width="33%">
        <select name="sort" id="sort" style="width: 99%;">
            <option value="username"{$sort_selected['username']}>{$lang->sort_by_username}</option>
            <option value="regdate"{$sort_selected['regdate']}>{$lang->sort_by_regdate}</option>
            <option value="lastvisit"{$sort_selected['lastvisit']}>{$lang->sort_by_lastvisit}</option>
            <option value="postnum"{$sort_selected['postnum']}>{$lang->sort_by_posts}</option>
        </select><br />
        <span class="smalltext">
        <input type="radio" class="radio" name="order" id="order_asc" value="asc"{$order_check['asc']} /> <label for="order_asc">{$lang->order_asc}</label><br />
        <input type="radio" class="radio" name="order" id="order_desc" value="desc"{$order_check['desc']} /> <label for="order_desc">{$lang->order_desc}</label>
        </span>
    </td>
</tr>
</table>
<div align="center"><br /><input type="submit" class="button" name="submit" value="{$lang->search}" /></div>
</form>
{$footer}
<script type="text/javascript" src="jscripts/autocomplete.js?ver=1400"></script>
<script type="text/javascript">
<!--
    if(use_xmlhttprequest == "1")
    {
        new autoComplete("username", "xmlhttp.php?action=get_users", {valueSpan: "username"});
    }
// -->
</script>
</body>
</html>

memberlist_user

Code:
<tr>
    <td class="{$alt_bg}" align="center">{$user['avatar']}</td>
    <td class="{$alt_bg}">{$user['profilelink']}<br />
<span class="smalltext">
    {$user['usertitle']}<br />
    {$usergroup['groupimage']}
    {$user['userstars']}
</span></td>
    <td class="{$alt_bg}" align="center">{$pmcode}</td>
    <td class="{$alt_bg}" align="center">{$emailcode}</td>
        <td class="{$alt_bg}" align="center">{$user['regdate']}</td>
    <td class="{$alt_bg}" align="center">{$user['lastvisit']}</td>
    <td class="{$alt_bg}" align="center">{$user['postnum']}</td>
    <td class="{$alt_bg}" align="center">{$status}</td>
</tr>

copy & paste, funzt Wink
Zitieren
#9
(03.09.2008, 11:16)-=snAke=- schrieb: copy & paste, funzt Wink

Bei mir nicht:    

Hier die Memberlist.php:
.php   memberlist.php (Größe: 10,02 KB / Downloads: 7)
Gruß, Micha
=========
Zitieren
#10
versuchs mal mit meiner


.php   memberlist.php (Größe: 10,76 KB / Downloads: 30)
Zitieren