Vereinfachter Override der Article-Ausgabe

  • Hallo,


    ich befasse mich seit längerer Zeit nun wieder intensiver mit Joomla (Version 3.8.5 läuft lokal) und erstelle gerade ein eigenes Template. Bisher läuft alles wie gewünscht, stehe aber bei der Anpassung der Ausgabe eines Artikels an. Den benötigten Override habe ich angelegt, funktioniert auch mit den Grundfunktionen bereits. Anbei der aktuelle Quellcode:



    Der Titel, der Inhalt sowie der Autor werden bereits sauber angezeigt. Mit dem "Publish Date" habe ich allerdings Probleme.
    Aus dem alten default.php werde ich nicht wirklich schlau wo bzw. wie das Datum ausgegeben wird.


    Kann mir da jemand helfen wie der Parameter heißt bzw. wie ich den in meine Ausgabe bekomme?


    Besten Dank im Voraus!


    Lg Philip

  • Vielen Dank für die schnelle Antwort!
    Das mit dem Info-Block erklärt mir einiges! :)


    Leider funktioniert die Ausgabe im Override noch nicht. Kann ich das einfach mittels folgendem Code anzeigen?

    PHP
    <?php if ($params->get('show_publish_date')) : ?>
    	<div class="publish_date">
    		 <?php echo $this->escape($this->item->published); ?>
    	</div>
    	<?php endif; ?>
  • Du kannst - falls der Parameter gesetzt ist - aber die Ausgabe wird dir nicht gefallen, es ist das in der Datenbank gespeicherte Datumsformat.
    Was heiss "funktioniert nicht"?


    schau dir an, was im $this->item drin steht:
    z.b. mit echo '<pre>'; print_r($this->item,true); echo '</pre>';


    Wie du im layout siehst ist die Ausgabe umgeformt:


    PHP
    <?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE_ON', JHtml::_('date', $this->item->publish_up, JText::_('DATE_FORMAT_LC3'))); ?>
  • Anscheinend steht im $this->item nichts drinnen, der <pre> Tag bleibt leer.
    Komischerweise wird auch nichts ausgegeben wenn ich es beim Autor ausgebe, allerdings funktioniert dort die Ausgabe mit dem eingangs geposteten Code.


    Generell müsste das Datum schon gesetzt sein, wenn ich es ohne Override anzeigen lasse, wird ein Datum angezeigt.


    Laut Fehlermeldung kennt Joomla die property "stdClass::$published" nicht.

    Zitat

    Notice: Undefined property: stdClass::$published in C:\Xampp\htdocs\templates\z-mobile\html\com_content\article\default.phpon line 40


    Wenn ich es richtig verstehe, im default.php (override für article Ausgabe) müsste die Funktion im Layout aufgerufen werden, wordurch das Datum formatiert wird.
    Stimmt das?

  • Da war ich zu hastig: echo print_r($this->item,true); Du kannst auch danach ein exit; machen.
    Dann siehst du welche Felder es gibt - und ja ich habe nachgeschaut, es heisst created, nicht published. Du wilst aber das published_up, so wie es aussieht?


    Created ist das Erstellungsdatum. published_up das Veröffentlichungsdatum


    Ob du das Layout verwendest oder nicht, das ist deine Entscheidung. Und ja, ich würde es verwenden, das erspart eine Menge Arbeit. Aber natürlich kannst du auch was ganz eigenes machen und auf die Verwendung dieser Layouts verzichten.

  • Hallo!


    Bin jetzt wieder ein paar Tage nicht dazu gekommen, mir ist nun aber etwas klarer wie das Ganze funktioniert.


    Die Ausgabe der der Parameter funktioniert mit:

    Code
    echo print_r($this->item,true);


    Auch die Anzeige des unformatierten Datums funktioniert, der Parameter heißt publish_up:

    Code
    echo $this->escape($this->item->publish_up);


    Wie du bereits empfohlen hast, werde ich aber die Layouts verwenden.
    Falls jemand ähnliches mal machen möchte, anbei mein neues default.php.