Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Wunsch: Realname im Profil und Username nur zum einloggen
#11
Super Danke
Zitieren
#12
hm.....@dragon,
ich werd mal die Daten selber in Ruhe durchgehen.
Du brauchst nichts für mich zu suchen.

Aber trotzdem DankeWink

Wollt nur fragen ob man auch ein Absatz
einfügen kann ?

$post['username'] = "{$post['fid4']} {$post['fid6']}";

fid4 ist der Vorname und fid6 der Nachname
möchte das es so steht

Vorname
Nachname

und im mooment steht es so da

Vorname Nachname
Zitieren
#13
Dann:
PHP-Code:
$post['username'] = "{$post['fid4']}<br />{$post['fid6']}"
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#14
Benutzerliste:
Ersetze im Template "memberlist_row":
Code:
{$users['username']}
durch:
Code:
{$users['fid4']} {$users['fid6']}
letzten Beiträge:
inc/functions.php:
Ersetze:
PHP-Code:
    $query $db->query("
        SELECT u.uid, u.username, p.username AS postusername, p.dateline
        FROM "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
        WHERE p.tid='
$tid' AND p.visible='1'
        ORDER BY p.dateline DESC
        LIMIT 1"
    
);
    
$lastpost $db->fetch_array($query);

    
$query $db->query("
        SELECT u.uid, u.username, p.username AS postusername, p.dateline
        FROM "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
        WHERE p.tid='
$tid'
        ORDER BY p.dateline ASC
        LIMIT 1
    "
);
    
$firstpost $db->fetch_array($query); 
durch:
PHP-Code:
    $query $db->query("
        SELECT u.uid, u.username, p.username AS postusername, p.dateline, f.*
        FROM "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
        LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
        WHERE p.tid='
$tid' AND p.visible='1'
        ORDER BY p.dateline DESC
        LIMIT 1"
    
);
    
$lastpost $db->fetch_array($query);

    
$query $db->query("
        SELECT u.uid, u.username, p.username AS postusername, p.dateline, f.*
        FROM "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
        LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
        WHERE p.tid='
$tid'
        ORDER BY p.dateline ASC
        LIMIT 1
    "
);
    
$firstpost $db->fetch_array($query);

    if(
$firstpost['fid4'] && $firstpost['fid6'])
    {
        
$firstpost['username'] = "{$firstpost['fid4']} {$firstpost['fid6']}";
    }

    if(
$lastpost['fid4'] && $lastpost['fid6'])
    {
        
$lastpost['username'] = "{$lastpost['fid4']} {$lastpost['fid6']}";
    } 
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#15
Ist das erledigt?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#16
Hallo Dragon, bei mir hat bisher das beschriebene gut funktioniert.
Herzlichen Dank dafür. Big Grin
Aber wie du schon richtig bemerkst, ist es schwierig an allen Stellen eine Modifikation vorzunehmen.
Ist es aber nicht so, daß die Ausgabe des Benutzernames aus der Datenbanktabelle „posts“ erfolgt. Wäre es dann nicht am einfachsten in posts.username gleich den Vor- und Nachnamen der erstellen Profilfelder einzutragen.
Bin ich damit total auf dem Holzweg? :question:
Such mich gerade zu tote wo wohl die Post in die Datenbank geschrieben wird.
Jemand eine Idee?
Arakel schrieb:Ist es aber nicht so, daß die Ausgabe des Benutzernames aus der Datenbanktabelle „posts“ erfolgt.
Sorry, das war Mist. Hab in phpMyAdmin gerade mal das Feld verändert und z.B. beim Zitieren wird trotzdem mittels uid der Name ermittelt. Sad
Zitieren
#17
In der Datenbank wird aus Performence-Gründen der Benutzername zwischengespeichert. Allerdings wird er, wie du schon sagtest, bei vielen Aktionen neu geladen. Damit kann man also nicht arbeiten.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#18
Ja, so sieht es aus. Sad Also doch alles Stück bei Stück:

z.B. für die Anzeige: Unser neuestes Mitglied heißt:
Wieder in der Datei functions.php ca. bei Zeile 1250:
PHP-Code:
    // Fetch latest user if the user count is changing
    
if(array_key_exists('numusers'$changes))
    {
        
$query $db->simple_select(TABLE_PREFIX."users""uid, username""", array('order_by' => 'uid''order_dir' => 'DESC''limit' => 1));
        
        
$lastmember $db->fetch_array($query);
//******************************************************************************    
// Anzeige des ganzen Namens         
        
$namenuserid $lastmember['uid'];
        
$query $db->query("SELECT f.* FROM ".TABLE_PREFIX."userfields f 
        WHERE f.ufid= '
$namenuserid'
        LIMIT 1
        "
);
       
$ganzername $db->fetch_array($query);
       
$lastmember['username'] = "{$ganzername['fid4']} {$ganzername['fid5']}";
//******************************************************************************    
        
$new_stats['lastuid'] = $lastmember['uid'];
        
$new_stats['lastusername'] = $lastmember['username']; 
Also nur den Code einfügen. Wobei natürlich wieder der Index ( fidx) individuell angepasst werden muß.
Nach der Veränderung muß auch der Cache von 'stats' neu gebildet werden. (Admin-CP / Verwaltung / Cache-Manager)
Hoffe der Code ist nicht allzu schrecklich, bin kein Profi in PHP/SQL.

Jetzt brauche ich noch "Wer ist online", das Zitieren (xxx schrieb: ) und den Namen von Threadverfassern.
Zitieren
#19
Das Code ist ganz in Ordnung. Ich werde die beiden anderen Sachen mir mal anschauen, sobald ich Zeit dafür habe.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#20
Dragon schrieb:Das Code ist ganz in Ordnung. Ich werde die beiden anderen Sachen mir mal anschauen, sobald ich Zeit dafür habe.

Danke Dragon Smile

Hab jetzt eine Lösung für die Anzeige "Wer ist online"

diesmal in der index.php (!) ca. Zeile 50:
PHP-Code:
    // Get the online users.
    
$timesearch time() - $mybb->settings['wolcutoffmins']*60;
    
$comma '';
    
$query $db->query("
        SELECT s.sid, s.ip, s.uid, s.time, s.location, u.username, u.invisible, u.usergroup, u.displaygroup 
        FROM "
.TABLE_PREFIX."sessions s
        LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid=u.uid)
        WHERE s.time>'
$timesearch'
        ORDER BY u.username ASC, s.time DESC
    "
); 
wird zu:
PHP-Code:
    // Get the online users.
    
$timesearch time() - $mybb->settings['wolcutoffmins']*60;
    
$comma '';
    
$query $db->query("
        SELECT s.sid, s.ip, s.uid, s.time, s.location, u.username, u.invisible, u.usergroup, u.displaygroup, f.*
        FROM "
.TABLE_PREFIX."sessions s
        LEFT JOIN "
.TABLE_PREFIX."users u ON (s.uid=u.uid)
        LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
        WHERE s.time>'
$timesearch'
        ORDER BY u.username ASC, s.time DESC
    "
); 
und ein paar Zeilen weiter unten:
PHP-Code:
// Properly format the username and assign the template.
    
$user['username'] = format_name($user['username'], $user['usergroup'], $user['displaygroup']); 
zu:
PHP-Code:
// Properly format the username and assign the template.
$user['username'] = format_name("{$user['fid4']} {$user['fid5']}"$user['usergroup'], $user['displaygroup']); 
Bitte wieder die fidx anpassen.

Dragon, ist das überhaupt OK, wenn ich hier dieses Zeug poste? Denke es könnte vielleicht jemanden mit dem gleichen Problem helfen.
Habe jetzt noch das Problem, daß beim Schicken von PM und Email der Nick im To-Feld steht Sad Tja, es bleibt noch viel zu tun Wink
Und natürlich der Verfasser und das Zitieren aber ich bin dran. Wird sicher noch, hab myBB ja erst seit Sonntag am laufen Big Grin
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Username im PN-Fach mit Link zum Profil Jockl 6 2.323 18.09.2008, 21:40
Letzter Beitrag: Jockl