WBCE Home | WBCE Hilfe | WBCE Addon Repository | Impressum | Datenschutz

WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 05.11.2018 13:11:55

stefanek
Developer

[droplet] Die letzten X Artikel eines Users ausgeben

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

Last edited by stefanek (07.11.2018 10:17:22)


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

Liked by:

florian, chap

#2 05.11.2018 13:36:47

chap
Member

Re: [droplet] Die letzten X Artikel eines Users ausgeben

Abgespeichert. Herzlichen Dank Christian! smile

Offline

Liked by:

stefanek

#3 05.11.2018 16:06:27

stefanek
Developer

Re: [droplet] Die letzten X Artikel eines Users ausgeben

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


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

#4 13.11.2018 21:11:50

chap
Member

Re: [droplet] Die letzten X Artikel eines Users ausgeben

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!

Offline

#5 13.11.2018 22:37:44

stefanek
Developer

Re: [droplet] Die letzten X Artikel eines Users ausgeben

Wende Dich gerne mal an Chio, der kann Dir da sicher weiter helfen.
Ansonsten schaue ich mir das morgen Abend mal an.

Gruß,
Christian


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

#6 13.11.2018 22:45:48

chap
Member

Re: [droplet] Die letzten X Artikel eines Users ausgeben

Ich hab grad versucht ein ORDER BY `published_when` DESC einzufügen aber das wollte nicht so wie ich es gerne hätte. smile

Bin der Meinung das einfach nur eine Sortierung noch fehlt in der SQL Abfrage. smile

Danke dir jedenfalls erstmal für deine Bemühungen. smile

Offline

#7 13.11.2018 22:47:36

chap
Member

Re: [droplet] Die letzten X Artikel eines Users ausgeben

Hat sich gerade erledigt. smile 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;

Last edited by chap (13.11.2018 22:48:38)

Offline

#8 13.11.2018 22:57:50

chap
Member

Re: [droplet] Die letzten X Artikel eines Users ausgeben

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. smile

Offline

Liked by:

stefanek

#9 13.11.2018 23:42:15

stefanek
Developer

Re: [droplet] Die letzten X Artikel eines Users ausgeben

Ah, sehr gut. Du lernst Programmierung und ich habe mehr Freizeit.
So ist schön  angel

Gruß,
Christian


For any activity, creative or business oriented alike, always ask yourself what the ROI of your contribution will be?
And by the way: Appreciation is a valid form of exchange for help.

Offline

#10 Yesterday 01:07:03

chap
Member

Re: [droplet] Die letzten X Artikel eines Users ausgeben

Bisschen was grieg ich noch hin. Ist ja nicht so das ich nichts dazu lernen will. Lach.

Offline

Liked by:

stefanek

Board footer

Powered by FluxBB

up