MyBB.de Forum

Normale Version: Mitgliederliste anpassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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?
Du benutzt in deinem Code die Variable $users, welche nicht definiert ist. Da ist ein "s" am Ende zu viel.
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!
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\";"); 
(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: [attachment=3641]
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.
Danke, aber {$emailcode} und {$pmcode} funzt bei mir leider nicht :-(
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
(03.09.2008, 11:16)-=snAke=- schrieb: [ -> ]copy & paste, funzt Wink

Bei mir nicht: [attachment=3655]

Hier die Memberlist.php: [attachment=3656]
versuchs mal mit meiner

[attachment=3657]
Seiten: 1 2