SVG Icons mit Farbauswahl im Templatestil ohne Overrides

  • Hallo alle zusammen,


    folgendes Problem: Meine Icons für Drucken, E-Mail und so weiter bestehen zur Zeit noch aus PNGs. Ich möchte aber gerne SVG-Dateien einsetzen und im Template Stil des Templates die Farbe und Größe der Icons festlegen. Zur Zeit binde ich die Icons über die CSS-Datei so ein:


    Code
    .icon-print:before {  content: url(../images/printButton.png);  margin-right: 3px;}


    Dieses habe ich schon in der templateDetails.xml eingebunden:


    Code
    <config>        <fields name="params">            <fieldset name="advanced">                <field name="iconcolor" class="" type="color" default="#5c5c5c"                    label="Icon Farbe"                    description="Hier kann die Icon-Farbe definiert werden." />            </fieldset>        </fields>    </config>


    Das ist meine SVG-Datei:



    Und da verließen sie mich. Ich habe schon eine Menge undefinierbares Zeug probiert, besonders mit der Klasse "fil0" (in die CSS-Datei geschrieben und definiert, in der SVG-Datei die CSS-Datei geladen und so weiter).


    Was muss ich machen, damit der Farbwert in der SVG-Datei übernommen wird?


    Danke und Gruß
    Markus

  • Wie willst du die SVG-Datei einbinden?


    Wenn du sie über ein Layout, also nicht in der CSS-Datei einbindest, könntest du den Farbwert mit dem Wert im Parameter ersetzten.


    Den Wert des Parameters kannst du so abfragen:




    Code
    $app = JFactory::getApplication();
    
    
    $params = $app->getTemplate(true)->params;
    
    
    $this->params->get('iconcolor')
  • Hallo astrid,


    Habe gerade gelesen: SVG-Dateien, die in einer CSS-Datei geladen werden (oder direkt im <img>-Tag in HTML) können nicht nachträglich mit Klassen konfiguriert oder JS-Dateien animiert werden.


    Ist das richtig?


    Dann bleibt mir nur übrig die Farbwerte und Größen direkt in die SVG-Datei zu schreiben. Na ja, geht auf jeden Fall schon mal schneller als alle Icons umzufärben und jedes einzelne aus dem Grafik-Programm zu exportieren.


    Gruß
    Markus

  • Hallo Markus,


    Habe gerade gelesen: SVG-Dateien, die in einer CSS-Datei geladen werden (oder direkt im <img>-Tag in HTML) können nicht nachträglich mit Klassen konfiguriert oder JS-Dateien animiert werden.


    Ich habe keine Idee, wie du das einfach umsetzten könntest.



    Aber da du den Parameter schon hast, willst du ihn ja sicher auch nutzen. Und wenn du die SVG sofort im HTML einbindest (in einer Layoutdatei), dann kannst du per PHP den Farbwert schreiben.


    Hier steht auf welche Art du SVG-Dateien einbinden kannst: https://www.mediaevent.de/svg-in-html-seiten/