xml config, component.php

  • Hallo an alle,


    ich erstelle grad ein eigenes Template und komme nun langsam an die Grenzen des Selbststudiums. Vielleicht kann mir ja der eine oder die andere helfen :)


    Fangen wir mir der templateDetails.xml an: ich habe sie soweit angepasst, dass sie funktioniert, verstehe aber den config-Bereich nicht. Machen wir es konkret, in Datei steht bspw.


    <field name="googleFont"type="radio"class="btn-group btn-group-yesno"default="1"label="FONT_LABEL"description="FONT_DESC"><option value="1">JYES</option><option value="0">JNO</option></field>

    <field name="googleFontName" class="" type="text" default="Open+Sans"label="FONT_NAME_LABEL"description=FONT_NAME_DESC" />


    und das erscheint auch im backend unter Templates: Stil bearbeiten -> Erweitert.


    So weit, so gut. Aber dadurch ist die Standard-Schrift im frontend noch lange nicht Open Sans, sprich ich muss diese font-family wie gehabt in der css-Datei einbinden. Also was ist der Vorteil der xml-Definition bzw. wie binde ich die über die xml-Datei definierten Parameter konkret auf der Webseite ein? Gibt es dafür Code in der css-Datei oder für die index.php?
    Welche anderen Parameter lassen sich möglicherweise auf diese Weise gut einbinden?


    Meine zweite Frage betrifft die component.php. Die index.php und die error.php habe ich bereits für meine Erfordernisse angepasst, aber aus der component.php werde ich nicht schlau. Was genau tut sie bzw. wann genau wird sie vom System aufgerufen? Sprich, wie wird sie konkret z.B. über links angesprochen (bei der error.php sind dies ja fehlerhafte links)? Das was ich bisher dazu gefunden habe, war leider nicht wirklich aussagekräftig.


    soweit erstmal, vielen Dank


    buja


    ps: ich hatte eigentlich den Inline-Code-Bereich auch leserlich gestaltet, aber das ist irgendwie nicht angekommen.

  • Zitat

    Also was ist der Vorteil der xml-Definition


    Dass man Parameter einfach setzen kann, ohne was im Code zu ändern.

    Zitat

    wie binde ich die über die xml-Datei definierten Parameter konkret auf der Webseite ein?


    zum Beispiel so:

    Code
    JHtml::_('stylesheet', 'https://fonts.googleapis.com/css?family=' . $this->params->get('googleFontName'));


    Zitat

    Welche anderen Parameter lassen sich möglicherweise auf diese Weise gut einbinden?


    Alles, was dir als Parameter einfällt - es kommt nur drauf an, wie du dann mir den Daten arbeitest.



    Die component.php gibt den Content ohne das Drumherum aus (Module, template). Das verwendet man z.B. für print oder in iframes

  • erstmal herzlichen Dank für die Antworten, das mit der xml-Datei ist nun klar :)


    Die component.php habe ich auch soweit verstanden, sie wird auf jedenfall aufgerufen, wenn man "Drucken" aktiviert hat.


    Jetzt würde ich gern wahlweise die Druckfunktion ändern können (also den Linktext ändern und vielleicht auch das popup abschalten) oder eine eigene Funktion einbinden, die auf die component.php zugreift?


    buja

  • (also den Linktext ändern und vielleicht auch das popup abschalten) oder eine eigene Funktion einbinden,


    Linktext änderst Du über einen Sprachoverride.
    https://www.j-over.de/de/newst…in-sprachoverride-an.html
    Das Bootsrap-Pulldown entfernst Du so.
    https://www.j-over.de/de/templ…/icons-ohne-pulldown.html
    Was für eine andere Funktion für die components.php?
    Ich rufe sie manchmal auf um Inhalte aus Joomla in einer Modalbox auszugeben.
    ?tmpl=component

  • Als Tipp, wegen "eigene Funktion": Man kann im selben Ordner auch eine kokolores.php (beliebige Benennung) anlegen, die dann mit ?tmpl=kokolores gezogen wird. So spart man sich "Kompromiss-Codes" in einer einzelnen Datei für mehrere "Funktionen".


    Es kann sein, dass die component.php auch von anderen Erweiterungen genutzt wird, die dann mit deinen Änderungen ggf. "sonderliche" Ausgaben anzeigen.

  • vielen Dank auch für diesen Tipp!
    ich dachte aber, dass die component.php ohnehin individuell auszugestalten ist oder sollte man da besser den Standard benutzen mit:

    Code
    <body>
    	<jdoc:include type="message" />
    	<jdoc:include type="component" />
    </body>


    ??


    viele Grüße
    buja

  • Wie gesagt, es kann eben auch Einsatz-Szenarien geben, die du momentan nicht im Fokus hast. Bspw. wird component öfter mal verwendet, um PopUps anzuzeigen, gelegentlich in verkleinerten Fenster, die vielleicht sogar nicht "resizeable" sind. Als Erweiterungsbastler würde ich halt davon ausgehen, dass die component schlicht und ohne großes Kokolores ist, wenn ich sie verwende/anspreche. Es gibt sie in Joomla immer. Wenn nicht im verwendeten Template, dann zieht sich Joomla die aus templates/system/


    Deshalb der Tipp. Musst auf niemanden Rücksicht nehmen. Falls du Einfluss auf den aufrufenden Link hast, natürlich, un dein eigenes tmpl= setzen kannst.