Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

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


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Portal: latest-Threads-Übersicht anpassen
#1
Hi,

vorweg: ich habe von PHP keine Ahnung, und in HTML nur Grundkenntnisse, von daher ist alles, was ich bisher versucht habe einzig und allein mit dem Begriff "frickeln" zu bezeichnen.

In 4 Such-Seiten zu Portal konnte ich leider die Lösung nicht finden - wenn ich es übersehen habe, wäre ein einfacher Link nett Smile

Ich möchte gerne die Latest-Threads-Anzeige des Portals verändern.
Vorweg zum Anschauen, was ich bisher hingekriegt habe: klicken
Und zwar soll diese Übersicht aus 6 Spalten bestehen (von links nach rechts):
Beitragsicon, Latest Thread, Posted By, Replies, Views, Last Post.

Problem:
1.) Beitragsicon
2.) Ich brauche unter dem Threadtitel einen Link in das entsprechende Forum
3.) Den Threadersteller mit Datum/Uhrzeit der Threaderstellung kriege ich auch nicht hin

Meine Versuche bisher:
portal_latestthreads
portal_latestthreads_thread

In portal_latestthreads_thread funktionieren meine Versuche für 1-3 (3 nur für den Threadersteller) offensichtlich nicht (Zeilen 2,6,8).
Wenn jemand Lust hat, kann er mir auch gerne kurz erklären, warum das nicht gehen kann Wink

Hat da jemand eine Lösung?
TESTSIGNATUR
Zitieren
#2
Schau dir mal dieses Thema an, damit solltest du schonmal weiterkommen: https://www.mybb.de/forum/showthread.php?tid=5343

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
Den Thread hatte ich sogar auf dem Radar.

Die Lösung von Modercol sieht definitiv schon einmal besser aus. Allerdings sehe ich nicht, wo mir das bei meinen 3 Problemen weiterhilft. Denn der andere Vorschlag in dem Thread bezieht sich ja auf die Anzeige der neuesten Beiträge aus einem bestimmten Subforum. Aber das will ich ja gar nicht.

Ich hab die Version aus dem Thread jetzt mal um 2 Spalten erweitert und die Replies "aufgepeppt" mit
Code:
<a href="javascript:MyBB.whoPosted({$thread['tid']});">{$thread['replies']}</a>
sowie ein Direktlink zum letzten Post mit
Code:
<a href="showthread.php?action=newpost&tid={$thread['tid']}"><img src="{$theme['imgdir']}/jump.gif" alt="{$lang->goto_first_unread}" /></a>

Nur bei meinen drei eigentlich Problemen "Direktlink zum Forum"/Threadersteller mit Datum und Uhrzeit/Beitragsicon bin ich leider nicht weiter gekommen Sad
TESTSIGNATUR
Zitieren
#4
1) Für das Icon sind Änderungen in der portal.php erforderlich. Die ID des Icons ist in der Variablen {$thread['icon']}, das Icon dazu muss noch auch dem Cache ausgelesen werden.

2) Link zum entsprechenden Forum:
Code:
<a href="forumdisplay.php?fid={$thread['fid']}">Zum Forum</a>
Solltest du noch den Namen des Forums benötigen sind wiederum Änderungen in der PHP-Datei erforderlich, da der Forenname nicht aus der Datenbank abgefragt wird.

3) Den Threadersteller kannst du über die Variable {$thread['username']} ausgeben. Allerdings wäre es empfehlenswert diesen vorher in der PHP-Datei durch die Funktion htmlspecialchars_uni() zu schicken, um Cross-Site-Skripting zu verhindern. Für die Zeit sind ebenfalls Codeänderungen erforderlich, da in der Datenbank nur ein UNIX-Timestamp gespeichert ist, der erst umgewandelt werden muss.

Alles in allem sind also PHP-Kenntnisse von Vorteil, da sich die gewünschten Änderungen nicht nur durch das Bearbeiten der Templates erreichen lassen.

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
#5
Gut, vielen Dank für deine Antwort. Dann weiß ich jetzt wenigstens, dass das was ich will nicht ohne weiteres geht.

Ich les mal noch ein wenig rum Wink
TESTSIGNATUR
Zitieren
#6
Ok, ich habe jetzt in der portal.php in der while-Schleife aus dem Latest-forum-discussions-Block für den Threadersteller
Code:
$thread['username'] = htmlspecialchars_uni($thread['username']);
eingefügt. Soweit in Ordnung (funktioniert scheinbar)?

Für das Abfragen des Forumnamens denke ich sollte das doch so gehen:
Ich nehme die fid aus $thread['fid'] und gehe damit in die mybb_forums um 'name' abzufragen.

Mein Versuch sieht dann so aus (einfach in die while-Schleife eingefügt):
Code:
while($thread = $db->fetch_array($query))
    {
        $query2 = $db->query ("SELECT name FROM ".TABLE_PREFIX."forums WHERE fid = ".$thread['fid']."");
        $subforum = $db->fetch_array($query2);
Nach meinem SQL-Tutorial-Studium sollte er mir doch so die entsprechende Zelle geben. Allerdings kriege ich anstatt des erhofften Namens nur ein 'Array'. :\
TESTSIGNATUR
Zitieren
#7
Du musst für den zweiten Query wieder eine while-Schleife machen, genau wie für den ersten.
Vantage-Forum: http://vantage-forum.de/
Zitieren
#8
Ah, ok.
Wie ich bereits befürchtet hatte, hat eine neue while-Schleife in der while-Schleife und den damit verbundenen Datenbankabfragen den Seitenaufbau schon bei nur 4 angezeigten Topics extrem verlangsamt.
Also habe ich die erste Datenbankanfrage versucht zu erweitern, das scheint ganz gut zu funktionieren (Zeile 5 hinzugefügt, Zeile 2 f.name hinzugefügt):
PHP-Code:
$query $db->query("
        SELECT t.*, u.username, f.name
        FROM "
.TABLE_PREFIX."threads t
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=t.uid)
        LEFT JOIN "
.TABLE_PREFIX."forums f ON (f.fid=t.fid) 
        WHERE 1=1 
$unviewwhere AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
        ORDER BY t.lastpost DESC 
        LIMIT 0, "
.$mybb->settings['portal_showdiscussionsnum'
Danach lässt sich mit $thread['name'] der Subforenname anzeigen.

Als nächstes ist jetzt das Datum der Threaderstellung dran... Wink
TESTSIGNATUR
Zitieren
#9
kann mein kein plugin machen, wo man die letzten beiträge verbessern kann? oder allgemein das Portal verbessert??
mir gefällt das sehr mit den letzten Beiträgen in der mitte..

ich finds nur schade das es alles so kompliziert ist zu erstellen...

vielleicht als tip für die nächste Version..
Zitieren
#10
Ich werde versuchen ein Plugin daraus zu machen.

Jetzt habe ich auch endlich das dumme Posticon im Griff ^^
TESTSIGNATUR
Zitieren