WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
Ich habe hier ein kleines Droplet geschrieben, mit dem man die letzten Artikel eines bestimmten Users ausgeben kann.
Zu verwenden ist es so:
[[last_topics_by_user?user_id=3&amount=5]]
Bei user_id die UserID des Users eintragen
Bei amount die Anzahl der letzten Posts.
In's Droplet Tool eintragen => Neues Droplet
Bei Name: last_topics_by_user
Und dann den Code:
$aPosts = array();
$sOutput = '';
if (isset( $user_id )){
global $database;
$sLimit = isset( $amount ) ? ' LIMIT '.(int) $amount : '';
$sSql = "SELECT * FROM `".TABLE_PREFIX."mod_topics` WHERE `posted_by` = '".(int) $user_id."'" . $sLimit;
$rQuery = $database->query($sSql);
if($rQuery->numRows() > 0) {
while($rec = $rQuery->fetchRow(MYSQL_ASSOC)) {
$aPosts[] = array(
'[POST_TITLE]' => $rec['title'],
'[LINK]' => WB_URL.PAGES_DIRECTORY.'/topics/'.$rec['link'].PAGE_EXTENSION,
'[DESCRIPTION]' => $rec['description'],
);
}
}
}
if (!empty($aPosts)){
$sOutput .= '<ul>';
$sTPL = '<li><a href="[LINK]">[POST_TITLE]</a><br>[DESCRIPTION]</li>';
foreach ($aPosts as $rec){
$sOutput .= strtr($sTPL, $rec);
}
$sOutput .= '</ul>';
} else {
global $TEXT;
$sOutput = $TEXT['NONE'];
}
return $sOutput;
Edit: Verwendungsbeispiel in diesem Thread: https://forum.wbce.org/viewtopic.php?id=2424
Viel Spaß,
Christian
Beitrag geändert von stefanek (07.11.2018 10:17:22)
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
florian, chap
Abgespeichert. Herzlichen Dank Christian!
Liebe Grüße,
cHAp
Offline
stefanek
Keine große Ursache, Chap.
Wie Du erkennen kannst, kannst Du das Droplet beliebig erweitern, also die [TOKEN] und deren Replacements.
Einfach in dem ersten Loop die Token hinzufügen und im zweiten Loop die Token setzen/verwenden.
Also alles was es in der Tabelle "mod_topics" zu finden gibt, kann hier in die Loops mit eingebaut werden.
Und das "Template" bzw. die HTML Ausgabe musst Du Dir entsprechend anpassen, die richtigen/gewünschten CSS Selektoren verwenden etc.
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Hallo @stefanek,
ich habe das nun umgesetzt. gibt nur ein Problem. Es zeigt mir zwar 5 Artikel an aber nicht die letzten 5 Erstellten Artikel sondern, wenn ich richtig liege die ersten 5 ältesten.
Siehe Foto im Anhang!
Liebe Grüße,
cHAp
Offline
Wende Dich gerne mal an Chio, der kann Dir da sicher weiter helfen.
Ansonsten schaue ich mir das morgen Abend mal an.
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Ich hab grad versucht ein ORDER BY `published_when` DESC einzufügen aber das wollte nicht so wie ich es gerne hätte.
Bin der Meinung das einfach nur eine Sortierung noch fehlt in der SQL Abfrage.
Danke dir jedenfalls erstmal für deine Bemühungen.
Liebe Grüße,
cHAp
Offline
Hat sich gerade erledigt. Mein Fehler, hab das hinter einen " gesetzt gehabt. Lach
$aPosts = array();
$sOutput = '';
if (isset( $user_id )){
global $database;
$sLimit = isset( $amount ) ? ' LIMIT '.(int) $amount : '';
$sSql = "SELECT * FROM `".TABLE_PREFIX."mod_topics` WHERE `posted_by` = '".(int) $user_id."' ORDER BY `published_when` DESC" . $sLimit;
$rQuery = $database->query($sSql);
if($rQuery->numRows() > 0) {
while($rec = $rQuery->fetchRow(MYSQL_ASSOC)) {
$aPosts[] = array(
'[POST_TITLE]' => $rec['title'],
'[LINK]' => WB_URL.PAGES_DIRECTORY.'/topics/'.$rec['link'].PAGE_EXTENSION,
'[DESCRIPTION]' => $rec['description'],
);
}
}
}
if (!empty($aPosts)){
$sOutput .= '<ul>';
$sTPL = '<li><a href="[LINK]">[POST_TITLE]</a><br>[DESCRIPTION]</li>';
foreach ($aPosts as $rec){
$sOutput .= strtr($sTPL, $rec);
}
$sOutput .= '</ul>';
} else {
global $TEXT;
$sOutput = $TEXT['NONE'];
}
return $sOutput;
Beitrag geändert von chap (13.11.2018 22:48:38)
Liebe Grüße,
cHAp
Offline
Ach und noch ein Tipp, wenn jemand das ShortURL einsetzt:
Zeile 2:
$sOutput = '';
Ersetzen mit:
$sOutput = '[[shorturl]]';
Dann funktioniert es auch mit den Links korrekt.
Liebe Grüße,
cHAp
Offline
stefanek
Ah, sehr gut. Du lernst Programmierung und ich habe mehr Freizeit.
So ist schön
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Bisschen was grieg ich noch hin. Ist ja nicht so das ich nichts dazu lernen will. Lach.
Liebe Grüße,
cHAp
Offline
stefanek