Diese Seite enthält ein paar kleine Codesnippets und Notizen für Typo3. Es handelt sich nicht um hochwissenschaftliche Ergüsse, sondern eher um ein ausgelagertes Gedächtnis.
Wenn man z.B. mit Gruppen arbeitet, kommt es immer wieder vor, dass neu angelegte Seiten nicht von anderen bearbeitet werden können, weil nur der Eigentümer die passenden Rechte hat, aber keine Gruppe zugewiesen ist. Das lässt sich durch ein paar Zeilen in der Seiten-TSConfig der Root-Seite anpassen:
TCEMAIN { permissions{ groupid = 6 user = show, editcontent, edit, new, delete group = show, editcontent, edit, new everybody = show } }
Bei o.g. Beispiel würde einer neuen Seite automatisch die Gruppe mit der ID 6 zugewiesen und die drei Zugriffsrechte würden vergeben werden.
Wenn man einem BE-Benutzer nicht gleich den Admin geben will, gibt es gelegentlich das Problem, dass dieser dann nicht in der Lage ist, den Cache zu löschen (seitenweise oder komplett).
Dafür kann man im TSConfig des Benutzers oder, falls er Mitglied einer Gruppe ist und die ganze Gruppe das Recht bekommen soll, der Gruppe folgendes eintragen:
options.clearCache.pages=1 options.clearCache.all=1
Der Benutzer muss sich dann noch mal neu anmelden, dann hat er die beiden Icons zum Cache-Löschen zur Verfügung.
Um weitere Textstile im RTE verwenden zu können, genügen wenige Zeilen im Root-TSConfig. Hier z.B. für einen orangefarbenen Text mit 16px Größe:
RTE.default { contentCSS = fileadmin/templates/rte_formate.css proc.allowedClasses := addToList(orangetext) buttons.textstyle.tags.span.allowedClasses := addToList(orangetext) }
RTE.classes { orangetext { name = Orange Text value = color: #f18421; font-size: 16px; } }
Zusätzlich muss die oben definierte CSS-Datei angelegt werden und eine passende CSS-Definition enthalten, die dann für das Beispiel so aussieht:
span.orangetext { color: #f18421; font-size: 16px; }
Die gleiche Definition muss dann auch die CSS-Datei enthalten, die für das Frontend benutzt wird, sonst wird da zwar der Textstil mit im HTML-Code verankert, aber es hat natürlich keine Auswirkungen auf die Darstellung, da der Browser damit nichts anfangen kann.
Für einen neuen Blockstil sieht das im Wesentlichen gleich aus. Wollen wir z.B. einer Tabelle einen bestimmten class-Namen zuweisen:
RTE.default { contentCSS = fileadmin/templates/rte_formate.css proc.allowedClasses := addToList(meinetabelle) buttons.blockstyle.tags.table.allowedClasses := addToList(meintabelle) }
RTE.classes { meinetabelle { name = Meine Tabelle value = border: 1px solid red; } }
Und in den CSS-Dateien dann z.B. diese Zeilen:
table.meinetabelle { border: 1px solid red; }
In diesem speziellen Fall wird die Auswahl dann bei den "Tabelleneigenschaften" unter "CSS-Stil" - "Tabelle" zur Verfügung gestellt.
Allerdings wird hierbei (das betrifft aber IMHO nur class-Namen für Tabellen) dann auffallen, dass im Frontend der class-Name, der im Backend so schön einstellbar war, einfach weg ist - da steht im HTML jetzt einfach nur noch "<table class="">". Das lässt sich verhindern, indem man im Setup des Templates diese Zeile einfügt:
lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list >
Wenn man beispielsweise abweichend von den Haupt-CSS-Definitionen für einzelne Seiten andere CSS festlegen will und nicht per Hand eine eigene CSS-Datei dafür schreiben will, kann man auch im Typoscript (im Setup-Bereich z.B. eines ergänzenden seitenspezifischen Templates) mit "cssInline" ein Inline-CSS definieren.
Anders als man beim Namen "cssInline" vermuten könnte, wird die Definition dann aber NICHT mit im HTML-Code verewigt, sondern Typo3 erzeugt selber eine CSS-Datei in typo3temp und bindet diese dann als externe CSS-Definition (mit 'link rel="stylesheet"')in die Seite ein.
Der wesentliche Vorteil gegenüber der selbstgeschriebenen CSS-Datei besteht darin, dass der CSS-Code hier direkt per Typoscript manipuliert werden kann.
page.cssInline { 10 = TEXT 10.value ( div.mainwin { margin: 4px; border: 1px solid grey; } ) }
|