Hallo, Gast! (Registrieren)

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


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Automatische Verlinkung im welcomeblock_member
#1
Hallo!

Vor einiger Zeit habe ich in einem anderen Forum eine Anleitung gefunden, wie der jeweils erste Post eines Threads aus einem bestimmten Forum je User verlinkt werden kann. [Jeder User hat grundsätzlich nur einen einzigen Thread in dem Forum.] Diese Anleitung umfing das Profil, die Mitgliederiste und die Themenansicht. Ich würde zusätzlich gerne die Anzeige der Links in den header_welcomeblock_member packen. Einen Teilerfolg im Einbau habe ich, aber es funktioniert noch nicht so richtig. Vielleicht kann mir jemand helfen? [Im Forum mit der Anleitung warte ich schon länger auf Reaktion. Sad]

Es geht um folgenden Code, der in diesem Fall von der Anleitung für die memberlist genommen wurde:
PHP-Code:
//START Charakterlinks    
// STECKBRIEF
// WICHTIG! f.fid = 'aaa' --> aaa anpassen mit ID des Steckbriefforums
// Bei mehreren Steckbriefforen: f.fid = 'aaa' || f.fid = 'bbb'
$steckbrief $db->query("
SELECT *
FROM "
.TABLE_PREFIX."threads t
LEFT JOIN "
.TABLE_PREFIX."posts p ON (t.firstpost = p.pid)
LEFT JOIN "
.TABLE_PREFIX."forums f ON (f.fid = t.fid)
WHERE (t.uid = '"
.$user['uid']."') AND (f.fid = '10')
LIMIT 1
"
);
$steckbrieflink "";
while(
$row $db->fetch_array($steckbrief)){
$steckbriefurl "/showthread.php?tid=$row[tid]&pid=$row[firstpost]#pid$row[firstpost]";
eval(
"\$steckbrieflink .= \"".$templates->get("header_welcomeblock_member_charalinks_steckbrief")."\";");
   
// BEZIEHUNGEN
// WICHTIG! f.fid = 'hhh' --> hhh anpassen mit ID des Beziehungsforums
// Bei mehreren Beziehungsforen: f.fid = 'hhh' || f.fid = 'iii'
$beziehungen $db->query("
SELECT *
FROM "
.TABLE_PREFIX."threads t
LEFT JOIN "
.TABLE_PREFIX."posts p ON (t.firstpost = p.pid)
LEFT JOIN "
.TABLE_PREFIX."forums f ON (f.fid = t.fid)
WHERE (t.uid = '"
.$user['uid']."') AND (f.fid = '11')
LIMIT 1
"
);
$beziehungenlink "";
while(
$row $db->fetch_array($beziehungen)){
$beziehungenurl "/showthread.php?tid=$row[tid]&pid=$row[firstpost]#pid$row[firstpost]";
eval(
"\$beziehungenlink .= \"".$templates->get("header_welcomeblock_member_charalinks_beziehungen")."\";");
}
// SZENEN
// WICHTIG! f.fid = 'sss' --> sss anpassen mit ID des Szenenforums
// Bei mehreren Szenenforen: f.fid = 'sss' || f.fid = 'ttt'
$szenen $db->query("
SELECT *
FROM "
.TABLE_PREFIX."threads t
LEFT JOIN "
.TABLE_PREFIX."posts p ON (t.firstpost = p.pid)
LEFT JOIN "
.TABLE_PREFIX."forums f ON (f.fid = t.fid)
WHERE (t.uid = '"
.$user['uid']."') AND (f.fid = '54')
LIMIT 1
"
);
$szenenlink "";
while(
$row $db->fetch_array($szenen)){
$szenenurl "/showthread.php?tid=$row[tid]&pid=$row[firstpost]#pid$row[firstpost]";
eval(
"\$szenenlink .= \"".$templates->get("header_welcomeblock_member_welcomecharalinks_szenen")."\";");
        
// POSTINGPARTNERSUCHE
// WICHTIG! f.fid = 'sss' --> sss anpassen mit ID des Szenenforums
// Bei mehreren Szenenforen: f.fid = 'sss' || f.fid = 'ttt'
$partner $db->query("
SELECT *
FROM "
.TABLE_PREFIX."threads t
LEFT JOIN "
.TABLE_PREFIX."posts p ON (t.firstpost = p.pid)
LEFT JOIN "
.TABLE_PREFIX."forums f ON (f.fid = t.fid)
WHERE (t.uid = '"
.$user['uid']."') AND (f.fid = '37')
LIMIT 1
"
);
$partnerlink "";
while(
$row $db->fetch_array($partner)){
$partnerurl "/showthread.php?tid=$row[tid]&pid=$row[firstpost]#pid$row[firstpost]";
eval(
"\$partnerlink .= \"".$templates->get("header_charalinks_partner")."\";");
  
//ENDE Charakterlinks 

Eingesetzt wurde der Code ÜBER folgendem Schnippsel in der memberlist.php:
PHP-Code:
eval("\$users .= \"".$templates->get("memberlist_user")."\";"); 

Entsprechende Templates wurden natürlich auch erstellt bzw. für meine Zwecke umgebaut.
Ich habe den Code (mit angepasstem Template-Pfad) in der global.php über diese Zeile gesetzt:
PHP-Code:
eval('$welcomeblock = "'.$templates->get('header_welcomeblock_member').'";'); 

Theoretisch funktioniert es. Allerdings werden bei jedem User, wenn noch ein Thread eines gelöschten Accounts im Forum ist, dieser als Link ausgespuckt. Ist kein "gelöschter User" bzw. dessen Thread mehr im Forum, erfolgt keine Ausgabe.
Leider verstehe ich noch nicht so genau, wo in der Anleitung der Teil ist, wo die eigene User-ID rausgezogen wird. Ich denke mal, dass  es um die geht und irgendwo deshalb der Link falsch ausgegeben wird.
Zitieren
#2
Wenn für jeden User der eigene Thread im Header verlinkt werden soll, wirst du wohl in den Abfragen jeweils $mybb->user['uid'] statt $user['uid'] verwenden müssen.
Zitieren
#3
Sorry, dass es im falschen Forum gepostet wurde. ^^

Es funktionert! Dankeschön!
Kannst du mir erklären, warum an der Stelle dieser Zusatz davor gehört? Ich vermute, weil es eine globale Einbindung ist, bin mir aber nicht sicher. Es würde mich auf jeden Fall für künftige Sachen interessieren. Smile
Zitieren