Beitragsinfo: Wie kann ich einen Override erstellen?

  • Hallo,


    ich würde gerne die Beitragsinfo, bestehend aus Autor, Veröffentlichungsdatum usw. per Override verändern. Das Problem ist allerdings, ich finde das passende Template nicht. In "com_component/views/article/tmpl" finde ich zwar eine default.php, und dort auch den Bereich um die Zeile 41 herum, wo folgendes steht:


    PHP
    1. <?php $useDefList = ($params->get('show_modify_date') || $params->get('show_publish_date') || $params->get('show_create_date')
    2. || $params->get('show_hits') || $params->get('show_category') || $params->get('show_parent_category') || $params->get('show_author') || $assocParam); ?>

    jedoch hilft mir das nix, weil die einzelnen Parameter, sprich "Autor", "Veröffentlichungsdatum" usw. dort auch nur referenziert werden. Wo, d.h. in welcher Datei, werden diese Elemente eigentlich zusammengebaut?


    Was will ich überhaupt erreichen?

    - bspw. das Wort "Veröffentlicht" will ich löschen

    - ebenso soll "article-info-term" geändert werden (da steht standardmäßig "Details" drin)


    Könnt ihr mir hierbei einen guten Tipp geben? Wäre super. ;)



    Cheers

    Tom


    P.S. Mir kam gerade die Idee, mittels Sprachoverride das o.g. Wort "Veröffentlicht" quasi zu löschen, indem ich es als im Override lösche. Aber ich weiß nicht... scheint mir keine allzu feine Lösung. Das andere Problem ließe sich notfalls durch Ausblenden per CSS lösen. Aber auch keine saubere Lösung, denke ich. Am liebsten würde ich ein Template-Override verwenden.

  • Wannimmer du was in der Art

    Code
    1. JLayoutHelper::render('joomla.content.info_block.block'

    siehst, bedeutet das, dass JLayouts aus dem Joomla-Ordner /layouts/ verwendet werden. An diesem Beispiel

    /layouts/joomla/content/info_blocl/block.php

    (Punkte zu / umdenken)


    Überschreiben kannst, indem du das in deinem Template im html/-Ordner genauso anlegst.

    html/layouts/joomla/content/info_blocl/block.php


    Da auch Komponenten JLayouts überschreiben können, siehe bspw. /components/com'_contact/layouts/ muss man da dann härtere Geschütze auffahren und man muss seine Overrides in

    html/layouts/com_contact/usw. ablegen

    Betrifft dich aber für dein Problem nicht, da com_contact eine andere Datei überschreibt.


    Bzw. abgeleitet: Wenn du nur einen Override spezifisch für eine Komponente anlegen willst, musst noch den /com_xaz/-Ordner in deinem Template zwischenschieben.


    Weiters kann so ein JLayout weitere JLayouts aufrufen, aber das Schema ist dann wie oben. Jetzt hast aber ein blöden Fall, weil die block.php veraltet ist (siehe Hinweis in der block.php) und dich weiterschickt nach 'joomla.content.info_block' und die arbeitet dann mit Sublayouts, damit man wirklich blöde wird

    Code
    1. echo $this->sublayout('author', $displayData)

    Das ist dann z.B. die Datei author.php im Ordner /info_block/. Woher das JLayout weiß, dass es sich um diesen Ordner handelt? Hab ich aus dem Stegreif keine Ahnung ;-)


    So hat man eine teils eh schon (aus Nutzersicht) extrem verquaste Geschichte noch verquaster gemacht ;-) Juhuu ;-)

  • Halt vorher erst mal die Datei-Zusammenhänge sichten, damit du dann nur die nötigen Dateien überschreibst und nicht das ganze Durcheinander in dein Template kopierst.

    Für bspw. die author.php reicht dann final diese 1 Datei im richtigen Pfad zu overriden. Hoffe ich mal ;-)

    Ui... danke für deine Ausführungen. Da werd ich mich mal noch weiter vertiefen müssen. ;)