Zum Inhalt springen

CSS in Extension festlegen, nicht in TypoScript

Erstellt am 22. Mai 2006 · 12 Antworten · letzte Antwort am 5. November 2007

Tags: Frage

Nick78 ·

hallo,

folgendes problem. ich habe ein fe-plugin in dem man per selectorbox einen datensatz aus einer extensiontabelle auswählen kann. in einer 2. selectorbox kann die auflösung für die darstellung gewählt werden. dafür habe ich entsprechende css-dateien angelegt. nachdem das formular gesendet wird, werden die daten in einem neuen fenster anstatt von markern in einem template dargestellt. je nach gewählter auflösung in der entsprechenden fenstergröße.

das mit den inhalten platzieren klappt schon, nur weiß ich noch nicht, wie ich in meiner extension die ausgewählte auflösung und somit die passende css-datei an das template hängen kann.

page.stylesheet = fileadmin/styles/styles1024.css

bindet ja nur eine bestimmte css-datei ein. kann ich nicht in typoscript eine variable für den css-pfad angeben, die in der extension anhand der selectorbox belegt wird? oder muss ich gar nicht den umweg über typoscript gehen und kann das direkt im extension-code erledigen?

wenn man mit

$this->cObj->fileResource('bla');

das template-file angeben kann, kann man dort doch auch sicher irgendwie die css-datei mit anhängen oder?

ich danke euch,
nick

steffenk ·

Du kannst in der Extension weitere css-Files angeben über

$GLOBALS['TSFE']->additionalHeaderData['special_css'] = '<link rel="stylesheet" href="'.t3lib_extMgm::extRelPath('tx_myextension_pi1').'css/special.css" type="text/css" media="screen" />';
Nick78 ·

danke!

übrigens auch nochmal danke für deine 5 tutorials. die haben mir vor einigen wochen sehr gehofen, mich in typo einzuarbeiten!!!

gruß,
nick

keztrel ·

kann man eigentlich auch für backend-Module eine extra Stylesheet Datei angeben? Ich würde z.B. gerne Registerblätter in einer Extension realisieren und müsste dazu die nötigen css-Eigenschaften definieren...

just2b ·
keztrel schrieb

kann man eigentlich auch für backend-Module eine extra Stylesheet Datei angeben? Ich würde z.B. gerne Registerblätter in einer Extension realisieren und müsste dazu die nötigen css-Eigenschaften definieren...

Einfach bei $this->doc->postCode dein CSS festlegen und dann ganz normal drauf zugreifen

georg

j.​bort ·

Hallo,

meine Frage knüpft an die CSS-Einbindung an.

Habe nachfolgenden Teil, wie hier im Thread beschrieben, in meine eigene Ext eingebunden:

$GLOBALS['TSFE']->additionalHeaderData['special_css'] = '<link rel="stylesheet" href="'.t3lib_extMgm::extRelPath('tx_myextension_pi1').'css/special.css" type="text/css" media="screen" />';

Allerdings wird der relative Pfad immer falsch ausgegeben.

Anstatt:

href="typo3conf/ext/......"

wird immer

href="../typo3conf/ext/......"

ausgegeben. Hier findet er die css-Datei aber natürlich nicht.

Wie/Wo kann ich den Main-Pfad festlegen?

j.​bort ·
steffenk schrieb

hast Du eine aktuelle Version ? Da sollte das behoben sein.

Was heißt bei dir "aktuell"?
Ich hab die letzte stabile Version 4.0.6 installiert?!

NickD ·

hab ich zwar schon 100 mal gepostet, aber vielleicht hilft es ja wieder 😉

function main()
{
 $includes .= $this->includeStylesheet('/css/','dateiname.css');

 $GLOBALS['TSFE']->additionalHeaderData[$this->extKey] = $includes;
}

function includeStylesheet($path,$file) 
{
    return "\t<link rel=\"stylesheet\" href=\"".t3lib_extMgm::siteRelPath($this->extKey).dirname($this->scriptRelPath).$path.$file."\" media=\"screen\">\n";
}