Danke für ein interessantes Contao Camp am 03. & 04. November 2018 & Contao College am 02. November 2018 im Basislager Leipzig, Deutschland
Ergebnis 1 bis 13 von 13

Thema: FAQ: tstamp im Reader ausgeben

  1. #1
    Contao-Nutzer
    Registriert seit
    22.07.2012.
    Beiträge
    15

    Standard FAQ: tstamp im Reader ausgeben

    Hallo,

    Ich habe bei einem Contao-Projekt sowohl eine FAQ Liste, als auch einen zugehörigen Reader.
    Leider wird die Ausgabe von $this->tstamp bei den beiden Modulen unterschiedlich berechnet.

    In der DB steht als tstamp 1544105471 (= 3. Dezember).
    In meinem Listenmodul wird auch dieser Wert ausgegeben.

    Anders hingegen im Reader-Modul. Hier wird nach wie vor der tstamp 1520336719 (vor ca. 9 Monaten) ausgegeben.
    Der tstamp im Reader-Modul ist das Erstellungsdatum des FAQ-Eintrags, nicht der tstamp aus der Datenbank.

    Bildschirmfoto 2018-12-06 um 15.40.42.png
    Bildschirmfoto 2018-12-06 um 15.40.31.png

    Der Code der Ausgabe ist in beiden Templates (Reader und Liste) für Demozwecke einfach
    PHP-Code:
    <?= $this->tstamp ' | ' $this->info ;?>
    Die Berechnung des tstamp für die Info (rechts im Bild) scheint hingegen zu funktionieren…

    Ich ging zuerst von einem Caching Problem aus, aber auch beim Aufruf über die app_dev.php (die ja eigentlich den Cache umgehen sollte) bleiben die Timestamps unterschiedlich.

    Hat jemand eine Idee?

    Vielen Dank


    Contao 4.6.10, PHP 7.2
    Geändert von lrech (07.12.2018 um 13:00 Uhr)

  2. #2
    Contao-Nutzer
    Registriert seit
    22.07.2012.
    Beiträge
    15

    Standard

    Eine Lösungsmöglichkeit ist natürlich, die Language files anzupassen und nur den Update-Zeitpunkt ausgeben.
    PHP-Code:
    $GLOBALS['TL_LANG']['MSC']['faqCreatedBy'] = '%s'
    Ich glaube trotzdem, dass hier eher ein Core-Problem vorliegt.

  3. #3
    Community-Moderator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    12.432
    User beschenken
    Wunschliste

    Standard

    Lässt sich das in der Online Demo reproduzieren?
    Gruß, xchs
    Contao Community-Moderator
    [Unterstützungsmöglichkeiten]

  4. #4
    Contao-Nutzer
    Registriert seit
    22.07.2012.
    Beiträge
    15

    Standard

    Naja, dort kann ich ja keine Templates bearbeiten, um den $this->tstamp auszugeben…

    In der Demo wird der tstamp nicht angezeigt, hier wird nur die info (aus Änderungszeitpunkt und Autor) dargestellt.

  5. #5
    Community-Moderator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    12.432
    User beschenken
    Wunschliste

    Standard

    Okay, dann anders ausgedrückt: Kannst Du das Verhalten auch in einer Contao Official Demo reproduzieren?
    Gruß, xchs
    Contao Community-Moderator
    [Unterstützungsmöglichkeiten]

  6. #6
    Contao-Nutzer
    Registriert seit
    22.07.2012.
    Beiträge
    15

    Standard

    Ich weiß jetzt, woher der andere tstamp kommt:

    Ein Var-Dump der Liste führt die einzelnen FAQ-Einträge mit dem eigenem, richtigen tstamp wie in der DB auf.
    Der FAQ-Reader allerdings zeigt hier nicht den tstamp der FAQ Items, sondern den des Reader-Moduls.

    Somit ist die Ausgabe im Reader-Template von
    PHP-Code:
    $this->tstamp 
    immer gleich dem Bearbeitungszeitpunkt des darstellenden Moduls, nicht der des darzustellenden Inhalts.

    Jetzt wäre natürlich gut zu wissen, ob das gewünschtes Verhalten ist…

  7. #7
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    390

    Standard

    Ich gehe schon davon aus, dass das gewollt ist. Eine Änderung am Reader nimmst Du ja nicht vor, sondern an einem Element des Readers. Das wäre zumindest logisch.

  8. #8
    Contao-Nutzer
    Registriert seit
    22.07.2012.
    Beiträge
    15

    Standard

    Davon würde ich eben auch ausgehen, aber so ist es ja nicht.
    Das Datum ist ja bei den FAQ im Reader immer das des Readers, nicht des Inhalts.

    Beim Newsreader wäre das ja analog total absurd. Ich erstelle eine News und in der Readeransicht wird mir das Datum des Readers angezeigt, statt des Newsbeitrages selbst.

    Deswegen mein Wunsch: der FAQ tstamp müsste durchgereicht werden an den Reader, damit das Datum auch außerhalb des $this->info dargestellt werden kann.

    Kann das Problem jemand nachvollziehen? Dann würde ich ein Core-Ticket aufnehmen.

    LG

  9. #9
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    1.945

    Standard

    Ich denke, es ist nicht so einfach, wie es auf den ersten Blick erscheint.

    Beispiel: wir hätten die Folgenden Einträge mit den jeweiligen Timestamps(ts)

    Code:
    A, ts 1
    B, ts 3
    C, ts 2
    Dann sollte als Timestamp 3 angezeigt werden, weil das der aktiuellste (numerisch größte) ist.

    Jetzt deaktivierst (oder löschst) Du Eintrag B:

    Code:
    A, ts 1
    B, ts 3
    C, ts 2
    dann wäre nach der von Dir gewünschen Logik der Timestamp der von C also 2. Das Datum der letzten Änderung läge also vor den, der vorletzten Änderungen. Das klingt für mich auch nicht besonders plausibel.
    Stammtisch Contao Bayern: http://www.contao-bayern.de

  10. #10
    Contao-Nutzer
    Registriert seit
    22.07.2012.
    Beiträge
    15

    Standard

    Hi, danke für die Antwort.

    Die Logik des FAQ Moduls macht momentan ja auch nichts anderes, als den tstamp des Beitrags in den info-Key zu geben (s. ModuleFaqReader.php#L152).
    PHP-Code:
    \Date::parse($objPage->dateFormat$objFaq->tstamp
    Genau das gleiche möchte ich auch ausgeben, einfach den tstamp so wie er in der tl_faq Tabelle steht.

    Ich habe um das Problem zu verdeutlichen nochmal die News Komponente angeschaut:
    Wenn ich im ReaderModul (zB. mod_newsreader.html5) $this->tstamp ausgebe, erhalte ich auch den tstamp des Moduls.
    Im News-Template (zB. news_full.html5) bekomme ich mit $this->tstamp hingegen den Änderungszeitpunkt des Beitrags.

    Analog würde ich deswegen gerne auch im FAQ Reader den Zeitstempel des Beitrags ausgeben lassen.
    Ich verstehe nach wie vor nicht, wieso für die Darstellung eines einzelnen FAQ Beitrags das Datum des Moduls interessant sein sollte.

    Deswegen ja die Frage, warum nicht analog zum Newsreader der tstamp des Beitrags ausgegeben wird.

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    18.196
    User beschenken
    Wunschliste

    Standard

    Öffne dazu ein Ticket auf Github. Dann könnte man das für Contao 4.7 oder 4.8 ändern.

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    18.196
    User beschenken
    Wunschliste

    Standard

    Der Unterschied zu den News ist, dass es bei den News kein eigenes Template für einen einzeln FAQ Beitrag gibt - sondern nur das Modul Template. Und in das Modul Template werden praktisch keine Daten des FAQ Objekts übergeben (außer das unbedingt notwendige).

    Du kannst aber im Modul Template auf eigene Faust den FAQ Eintrag holen:
    PHP-Code:
    $objFaq = \FaqModel::findPublishedByParentAndIdOrAlias(\Input::get('items'), $this->faq_categories);
    echo 
    $objFaq->tstamp

  13. #13
    Contao-Nutzer
    Registriert seit
    22.07.2012.
    Beiträge
    15

    Standard

    Vielen Dank, Spooky.

    Ich habe dennoch mal ein Ticket erstellt: https://github.com/contao/contao/issues/221

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
  •