Zum Inhalt springen

Extensions und Templates

Erstellt am 19. November 2004 · 13 Antworten · letzte Antwort am 22. November 2004

Tags: Frage

GtS ·

Inzwischen sind auf meiner Seite diverse Extensions installiert, von denen viele schonmal grundsätzlich Code in jede erzeugte HTML-Seite schreiben, meistens CSS Code.

Um aufzuräumen und auch das Template Setup nicht zu groß zu haben, will ich jetzt extra Templates für die Seiten mit den Extensions erstellen und dachte also an +EXT Templates.

Den Setup Text so aufzuteilen ist kein Problem, aber wie kriege ich eine Extension dazu, sich dem neuen Template zugehörig zu fühlen und somit die CSS Codes auch nur in die Seiten auf denen die Extension laufen soll zu schreiben?

Fragend...
Guido

mstuebner ·
GtS schrieb

Den Setup Text so aufzuteilen ist kein Problem, aber wie kriege ich eine Extension dazu, sich dem neuen Template zugehörig zu fühlen und somit die CSS Codes auch nur in die Seiten auf denen die Extension laufen soll zu schreiben?

Entweder Du bringst hier was durcheinander, oder ich habs nichtverstanden.

Wie Du ein EXT Template anlegst ist denke ich mal klar. Welchen Code Du aus dem Hauptemplate in selbieg übertragen musst scheinbar auch.

Und "kriege ich eine Extension dazu, sich dem neuen Template zugehörig zu fühlen"? Weil Du sie doch wohl nur dort einbindest (marks.MARKER < plugin.name). Oder Du sollest erklären was Du meinst, wenn ich es nicht verstanden habe.

GtS ·

Hab sowas schon befürchtet 😉
Im Moment habe ich das Gefühl, als wenn ich irgendeine grundlegende, total einfache Sache nicht verstanden habe.

Ich versuche es mit einem Beispiel:

Ich habe ein +EXT Template auf der Seite angelegt, auf der ich, sagen wir, CHC Forum im Content habe.
Also lasse ich alles im Hauptsetup weg, was CHC Forum auf meine Wünsche einstellt, wie vereinzelne CSSs und Übersetzungen und schreibe sie statt dessen in das Setup des +EXT Templates.

Im Template Analyser sieht man aber, dass das Plugin CHC Forum zum Root Template gehört und somit schreibt CHC Forum (ob es nun auf einer Seite eingebunden ist oder nicht) den HTML Code jeder Seite voll mit CSS Einträgen. Das gleiche machen auch newloginbox, tx_calendar, guestbook etc. und schon hat jede Seite ein paar Hundert Zeilen Quellcode ohne das auch nur etwas dargestellt wird.

Ich hätte gerne, dass meine Seiten nur aus dem Quellcode bestehen, der wirklich gebraucht wird.

Ich hoffe, dass ich diesmal etwas dichter am Erklärungsziel bin. 🙂

Guido

mstuebner ·
GtS schrieb

Im Template Analyser sieht man aber, dass das Plugin CHC Forum zum Root Template gehört

Dann tät ich vermuten, dass Du weiterhin irgendwo das Plugin im Root-Code eingebunden hast. Ich habe z.B. tt_news auf meiner privaten Site und gerade mal schnell für genau DIE Seite ein EXT-Template angelegt und den Code aus dem Root in dieses EXT kopiert Und seitdem steht im Analyzer ein neues EXT template und in diesem wird auch das Plugin konfiguriert.

Woran siehst Du denn im Analyzer, dass das Plugin "zum Root Template gehört"?

GtS ·

Woran siehst Du denn im Analyzer, dass das Plugin "zum Root Template gehört"?

In der Template Hierarchy sind die Plugins dem Roottemplate untergeordnet.
Deshalb folgende Frage: Wie kopierst Du denn den Code von Plugins bei denen Du weder bei Constants noch bei Setup irgendetwas eintragen musst?
Muss ich vielleicht im Object Browser eintragen, zu welchem Template ein Plugin gehört?

Ist es denn bei Dir so, dass bei tt_news folgender Code nur im HTML-Quelltext der Seite auftaucht, zu der das Template gehört?

/* default styles for extension "tt_news" */
  /* example styles for the pagebrowser */
    .tx-ttnews-browsebox TD { font-size: 10px; }
    .tx-ttnews-browsebox-strong, .tx-ttnews-browsebox-SCell { font-weight: bold; }
    .tx-ttnews-browsebox-SCell { background-color: #EEE; }

Guido

mic_jan ·

Wenn es dir hauptsächlich um die CSS-Sachen geht: Da gibt es eine Extension, die die alle auslagert! Ich habe leider den Namen vergessen... Such doch doch einfach mal auf typo3.org.

Gruss

Michael

mstuebner ·
GtS schrieb

Deshalb folgende Frage: Wie kopierst Du denn den Code von Plugins bei denen Du weder bei Constants noch bei Setup irgendetwas eintragen musst?

DAS verstehe ich nicht ganz. Wenn Du also weder im Setup, noch in den Constants, etwas das Plugin betreffend eingetragen hast, welchen Code willst Du dann kopieren? Das kann ich jetzt nicht wirklich nachvollziehen.

GtS schrieb

Ist es denn bei Dir so, dass bei tt_news folgender Code nur im HTML-Quelltext der Seite auftaucht, zu der das Template gehört?

Ja, definitiv, gerade noch einmal nachgeschaut.

Du kannst Dich auch gern selbst überzeugen: stuebner.de

GtS ·

Ich hab's raus.

Also den ganzen CSS Code von den Extension kriegt man z.B. so raus:

plugin {
tx_lzgallery_pi1._CSS_DEFAULT_STYLE >
tx_lzgallery_pi1_simple._CSS_DEFAULT_STYLE >
tx_dearticles_pi1._CSS_DEFAULT_STYLE >
tx_mocfilemanager_pi1._CSS_DEFAULT_STYLE >
tx_mocfilemanager_pi2._CSS_DEFAULT_STYLE >
tx_newloginbox_pi3._CSS_DEFAULT_STYLE >
tx_eeblog_pi1._CSS_DEFAULT_STYLE >
}

Und so als externe Stylesheets mit den +EXT Templates wieder in die Seiten in denen man ihn braucht:

page.includeCSS {
file1 = fileadmin/styles/extensions.css
}

Ausprobiert hab ich's noch nicht, aber sieht logisch aus.

Guido

mstuebner ·
GtS schrieb

Ausprobiert hab ich's noch nicht, aber sieht logisch aus.

Aber warum steht er bei mir nicht in den anderen Seiten drinnen, bei Dir aber doch? Da muss doch was anders sein.

GtS ·

Hm, gute Frage.

Wie hast Du das denn bei tt_news gemacht?
Selbst wenn man alles was bei Constants steht ins +EXT kopiert (im Setup muss ja nichts stehen), bewegt sich doch das Plugin nicht.

Oder kann man bei Dir in der Template Hierarchy sehen, dass tt_news Deinem +EXT Template untergeordnet ist?

Wenn ich bei mir in der Template Hierarchy tt_news anklicke steht unten über dem Code groß und in grün
[GLOBAL]

Vielleicht hat es damit zu tun?

Die Geschichte mit dem DEFAULT_CSS löschen habe ich aus dem List Archiv, also scheint das wohl doch nicht so ungewöhnlich zu sein?

Guido

mstuebner ·
GtS schrieb

Wie hast Du das denn bei tt_news gemacht?
Selbst wenn man alles was bei Constants steht ins +EXT kopiert (im Setup muss ja nichts stehen), bewegt sich doch das Plugin nicht.

Muss es ja auch nicht, denn es ist ja schon auf der Unterseite für die Du das EXT Template erstellen willst.

Ich habe das tt_news also ganz "normal" als Content element in eine seite eingebunden und dann für selbige Seite ein EXT Template erstellt und abschliessend in den Constants und Setup Bereichen den notwendigen Code eingegeben.

GtS schrieb

Oder kann man bei Dir in der Template Hierarchy sehen, dass tt_news Deinem +EXT Template untergeordnet ist?

Jepp.

GtS ·

Wenn ich bei mir eine Extension installiere wird sie in der Template Hierarchy sofort dem Root Template untergeordnet, auch wenn ich sie noch auf keiner Seite in den Content integriert habe.

Guido

mstuebner ·
GtS schrieb

Wenn ich bei mir eine Extension installiere wird sie in der Template Hierarchy sofort dem Root Template untergeordnet, auch wenn ich sie noch auf keiner Seite in den Content integriert habe.

Ich glaube dass wir irgendwie verschiedenes meinen.

Wie meinst Du das mit dem "installieren" und dann im Roottemplate erscheinen?

Installieren heisst für mich Extensionmanager, jepp? Und anschliessend binde ich das Plugin als Contentelement "Plugin" ein.

Also wie meinst Du das mit "installieren, aber noch nicht integriert"?

GtS ·

Ich glaube, ich habe die Antwort.
Allerdings nur, wenn Du tt_news > 2.0 installiert hast.

Ich habe nämlich gestern upgedated und siehe da:

In der tt_news Anleitung steht, dass das Plugin jetzt so geändert wurde, dass man es im Template unter "Include static (from Extension)" einbindet. Der Grund dafür ist, dass der CSS Code dann nicht mehr auf allen Seiten steht.
Daraus schließe ich, dass es normal ist, dass der CSS Code auf allen Seiten steht.

Wenn ich das neue tt_news so in mein +EXT einbinde taucht es bei mir im Template Analyser auch als Unterpunkt vom +EXT auf und nicht mehr als Unterpunkt vom Root Template so wie alle anderen Plugins.

Ansonsten funktioniert es jetzt wunderbar den CSS Code im Root Template zu löschen und ein externes CSS im +EXT wieder einzubinden.

Einziges neues Problem:
Wenn ein externes CSS im Setup eingebunden wird, dass Variabeln enthält, die in Constants festgelegt werden (z.B. Farben) dann funktioniert das nicht, spricht diese Variabeln scheinen nicht ausgelesen zu werden. Aber das ist wohl ein neues Thema oder weißt Du gerade die Antwort.

Guido