Ergebnis 1 bis 17 von 17

Thema: [Gelöst] Bei Seitenaufruf einen zufälligen Kommentar ausgeben

  1. #1
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard [Gelöst] Bei Seitenaufruf einen zufälligen Kommentar ausgeben

    Hallo,

    ich möchte gern in Contao 2.10.x bei Seitenaufruf einen zufälligen Kommentar (aus dem Gästebuch) ausgeben lassen und hab' Probleme damit. Ich hab' die folgende DB-Abfrage aus einer ähnlichen und funktionierenden Aufgabenstellung genommen und die sollte eigentlich auch funktionieren. Es wird aber außer ": " nichts ausgegeben. In der Tabelle stehen auch Kommentare drin, sie ist nicht leer.

    Das ORDER BY RAND() LIMIT 1 hab' ich hinzugefügt, um die Zeilen durchzumischen und dann nur die erste Zeile ausgeben zu lassen.

    PHP-Code:
    <?php
    $this
    ->import('Database'); 

    $objDatensatz $this->Database->prepare("SELECT * FROM tl_comments WHERE published=1 AND parent=? ORDER BY RAND() LIMIT 1")->execute($this->id); 

    echo 
    $objDatensatz->name ': ' $objDatensatz->comment '<br />';
    ?>
    Bin über Hinweise dankbar!

    EDIT:

    Wenn es auf der Website nur Kommentare einer Quelle (einer Seite wie ein Gästebuch) gibt und sonst keinerlei Kommentare für andere Seiten, funktioniert folgender Code meinen Tests nach. Das ist nicht elegant, funktioniert aber. Den Code kann man über ein Modul ins Seitenlayout einbinden.

    PHP-Code:
    $objDatensatz $this->Database->prepare("SELECT * FROM tl_comments WHERE published=1 ORDER BY RAND()")->limit(1)->execute($this->id);  

    echo 
    $objDatensatz->name ': ' $objDatensatz->comment '<br />'
    Danke an do_while und lindesb für ihre Hilfe.
    Geändert von Thorsten (29.02.2012 um 19:16 Uhr)
    Freundliche Grüße

    - Thorsten

  2. #2
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    probiers mal so :
    PHP-Code:
    $objDatensatz $this->Database->prepare("SELECT * FROM tl_comments WHERE published=1 AND parent=? ORDER BY RAND()")->limit(1)->execute($this->id);  

    if (
    $objDatensatz->numRows==1)
    echo 
    $objDatensatz->name ': ' $objDatensatz->comment '<br />'
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  3. #3
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard

    Zitat Zitat von lindesbs Beitrag anzeigen
    probiers mal so :
    PHP-Code:
    $objDatensatz $this->Database->prepare("SELECT * FROM tl_comments WHERE published=1 AND parent=? ORDER BY RAND()")->limit(1)->execute($this->id);  

    if (
    $objDatensatz->numRows==1)
    echo 
    $objDatensatz->name ': ' $objDatensatz->comment '<br />'
    Da wird leider gar nichts ausgegeben, also scheint die Bedingung nicht zu greifen, was für mich darauf hindeutet, dass nichts zurück gegeben wird. Ich hatte eine else-Anweisung mit Textausgabe ("Fehler") angehängt, die dann ausgegeben wurde.

    Hab auch nochmal im Adminer geschaut: es sind 8 Testkommentare vorhanden.
    Freundliche Grüße

    - Thorsten

  4. #4
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard

    Ich hab's gefunden,

    Ich hab' testweise das parent=? aus der Abfrage herausgenommen und nun funzioniert's!

    Paar Mal Seite neu geladen, jedesmal ein zufälliger Kommentar ausgegeben.
    Freundliche Grüße

    - Thorsten

  5. #5
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    schriebe in deinen else Zweig einfach mal ein

    PHP-Code:
    echo $objDatensatz->query
    Diesen SQL Query dann in deinem SQL Tool ausprobieren, ob da ueberhaupt eine richtige parent ID drin steht
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  6. #6
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.615
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn Du parent=? heraus läßt, listest Du ein Zufallsdatensatz aus ALLEN Kommentar-Quellen. Sicherlich möchtest Du aber nur Kommentare aus einer Quelle verwenden.
    Ich tippe mal darauf, dass ín $this->id nicht die richtige Eltern-ID drin steht.

  7. #7
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard

    Da wird in der Query parent=NULL angezeigt. Als Ausgabeergebnis erhalte ich in Adminer "Keine Daten".

    Code:
    SELECT * FROM tl_comments WHERE published=1 AND parent=NULL ORDER BY RAND() LIMIT 0,1
    Freundliche Grüße

    - Thorsten

  8. #8
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    QED.

    Damit waere das Problem geloest, Deine $this->id hat keinen Wert.

    Wo hast Du das Script eingebaut ?
    Ins Template?
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  9. #9
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard

    Ins Template eingefügt, funktioniert's leider auch nicht, parent=? ist in der Abfrage wieder drin.

    Code:
    SELECT * FROM tl_comments WHERE published=1 AND parent=NULL ORDER BY RAND() LIMIT 0,1
    Geändert von Thorsten (29.02.2012 um 16:00 Uhr)
    Freundliche Grüße

    - Thorsten

  10. #10
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard

    Ich hab' aus Versehen meine vorige Antwort überschrieben...

    Der Code stammt aus einer PHP-Datei, die ich in einem Modul "Eigener HTML-Code" aufrufe. Vor der Zufälligkeitsgeschichte kam ein statisches Zitat auch aus einem solchen Modul, deshalb ging ich denselben Weg nochmal.
    Freundliche Grüße

    - Thorsten

  11. #11
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Welches Template ?

    Du kannst auch versuchen, die ID aus der URL zu bekommen.

    PHP-Code:
    $this->Input->get("URL_PARAMETER"

    Ich kenn nun nicht das Kommentarmodul nicht.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  12. #12
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard

    Zitat Zitat von lindesbs Beitrag anzeigen
    Welches Template ?
    Das Haupttemplate fe_[name].xhtml. Der Zufallskommentar soll im Footer jeder Seite stehen. Eigentlich bräuchte ich es so, dass die Ausgabe des Zitats über die Einstellungen im Seitenlayout möglich ist (da der Footer so aus 3 Bereichen aufgebaut ist), würde den Footer aber auch umbauen, wenn nötig.

    Zitat Zitat von lindesbs Beitrag anzeigen
    Du kannst auch versuchen, die ID aus der URL zu bekommen.

    PHP-Code:
    $this->Input->get("URL_PARAMETER"
    Sorry, aber ich fühl' mich gerade etwas überfordert und müde. Ich brauche eine Pause. In diesem speziellen Fall kommen nur "Gästebuch"-Zitate aus der tl_comments, es gibt da keine weiteren Quellen. Insofern könnte die Abfrage ohne parent=? also reichen. Mir ist natürlich an einer möglichst sauberen Lösung gelegen, da bin ich dann morgen wieder dran. danke bisher für die Hilfe, die ich sehr zu schätzen weiß.

    Zitat Zitat von lindesbs Beitrag anzeigen
    Ich kenn nun nicht das Kommentarmodul nicht.
    Ich nutze die Kommentarfunktion von Contao, nichts Spezielles, falls Du das meinst.
    Freundliche Grüße

    - Thorsten

  13. #13
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Sorry, aber sowas kommt NICHT in die fe_page.
    Dafuer gibts die Module, welche ueber das Layout eingebunden werden.

    Wenn Du sowieso nur ein Gaestebuch hast, waere der parent wirklich egal.
    Dann kannst du es ueber ein eigenes Modul vom Typ HTML machen und via Seitenlayout einbinden.
    Geändert von lindesbs (29.02.2012 um 17:35 Uhr)
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  14. #14
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.615
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Thorsten,

    das erste Script (Count von Kommentaren von vor einigen Wochen) hast Du doch auf der Seite eingebaut, wo Du die Kommentare ausgeben läßt und hast daher auch die ID der Kommentar-Quelle im Template zur Verfügung. Wenn Du eine andere Seite wählst, wird die ID nicht zur Verfügung stehen.
    Du kannst hier nur manuell die ID eintragen, keine schöne Lösung, aber die Kommentarliste funktioniert nur richtig, wenn sie auf der Seite steht, wo auch die Kommentare verfasst werden.

  15. #15
    Contao-Nutzer Avatar von Thorsten
    Registriert seit
    21.06.2009.
    Ort
    Kiel
    Beiträge
    85

    Standard

    Hallo Hagen,

    Zitat Zitat von do_while Beitrag anzeigen
    das erste Script (Count von Kommentaren von vor einigen Wochen) hast Du doch auf der Seite eingebaut, wo Du die Kommentare ausgeben läßt und hast daher auch die ID der Kommentar-Quelle im Template zur Verfügung. Wenn Du eine andere Seite wählst, wird die ID nicht zur Verfügung stehen.
    Das damalige Script wurde über eine Template-Datei der Kommentare eingebunden und damit in meinem Fall nur im "Gästebuch", richtig.

    Zitat Zitat von do_while Beitrag anzeigen
    Du kannst hier nur manuell die ID eintragen, keine schöne Lösung, aber die Kommentarliste funktioniert nur richtig, wenn sie auf der Seite steht, wo auch die Kommentare verfasst werden.
    Okay. Wie ich auf Antwort zu lindesb schrieb, wird es in diesem Fall ausreichen parent=? herauszulassen, da es nur "Gästebuch-Kommentare" gibt und geben wird. Sofern muss ich dann auch keine manuelle ID eingeben.

    Ich danke Dir und lindesb für Eure Hilfe.
    Freundliche Grüße

    - Thorsten

  16. #16
    Contao-Nutzer Avatar von Futzie 2
    Registriert seit
    30.08.2012.
    Beiträge
    44

    Standard Zufällige Ausgabe eines Kommentares

    Hallo zusammen.
    Ich würde gerne unter C3.5.+ beim Inhaltselement "ce_comments.html5" nur einen zufällig ausgewählten und freigegebenen Kommentar ausgeben lassen wollen.

    Aktuell ist es ja so, dass alle abgegebenen Kommentare nach Freischaltung aufgelistet werden. Ich hätte gerne aber nur jeweils einen zufälligen, beim Seitenaufruf.

    Wie müsste ich das "ce_comments.html5" anpassen?

    Greetz
    Futzie

  17. #17
    Contao-Nutzer Avatar von Futzie 2
    Registriert seit
    30.08.2012.
    Beiträge
    44

    Standard Kommentar Einstellungen

    Hallo nochmal.
    Eine sehr elegante Möglichkeit wäre auch eine "Zufällige Sortierung" auswählen zu können in den Kommentar-Einstellungen des Kommentar-Moduls.

    kommentare_zufall.PNG

    Wie müsste das eingebunden werden?

    Greetz
    Futzie

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •