Zum Inhalt springen

Externe Funktion einbinden (CSS über PHP-Script hinzufügen)

Erstellt am 16. Januar 2006 · 2 Antworten · letzte Antwort am 17. Januar 2006

Tags: PHP, HTML & CSS, Frage

tracer ·

Folgendes Problem:
ich habe ein Script, dass mir in Abhängigkeit von einer Datenbankabfrage ein Link zu einer CSS-Datei liefert.

<?php

class user_functions {

    function get_css_filename () {

        (...)
        
        if ($val['Matches'] == 0) {
            $css = 'fileadmin/css/3cols.css';
        } else {
            $css = 'fileadmin/css/4cols.css';
        }
        
        $GLOBALS['TSFE']->tmpl->setup['page.']['includeCSS.'][99] = $css;

        return $css;
    }
}
?>

Nun habe ich versucht die auf diese Art gelieferte CSS-Datei einzufügen:

(...)
page.includeCSS {
     10 = fileadmin/css/ypMenu.css
     20 = fileadmin/css/default.css
     30 = USER
     30.userFunc = user_functions->get_css_filename
}
(...)

funktioniert leider nicht :-( Die Varibale:
$GLOBALS['TSFE']->tmpl->setup['page.']['includeCSS.']
beinhaltet:

Array
(
    [10] => fileadmin/css/ypMenu.css
    [20] => fileadmin/css/default.css
    [30] => USER
    [30.] => Array
        (
            [userFunc] => user_functions->get_css_filename
        )

    [99] => fileadmin/css/4cols.css
)

Das letzte Element im Array [99] ist ein weiterer Versuch die CSS zu integrieren, funktioniert nur leider auch nicht (siehe erstes PHP-Script).

Füge ich den Inhalt der Funktion in ein "MARKS"-Element als Content ein wird es gewrappt, und es erscheint korrekterweise "fileadmin/css/4cols.css"

Kann mir hier jemand einen Tipp geben?

woida ·

Wenn du deine Fallunterscheidung mit TypoScript (=> Conditions) lösen kannst, wär das evtl. auch eine Möglichkeit.
Ansonsten:
Deine TypoScript Anweisung löschen und Zeile 15 in deinm PHP-Skript ersetzen durch:

$GLOBALS['TSFE']->pSetup['headerData.']['99'] = 'TEXT';
$GLOBALS['TSFE']->pSetup['headerData.']['99.']['value'] = '<link rel="stylesheet" type="text/css" href="'.$css.'" media="screen" />';

Das "return $css" muß auch raus.

tracer ·

Super, funktioniert einwandfrei! Über Conditions konnte ich es nicht lösen, dazu gab es schon einen Thread o.O
Mit den Variablen habe ich wohl an der falschen Stelle gesucht, muss mich noch tiefer in die T3-Materie einarbeiten...