Powermail fieldset CSS Klassen erweitern oder ändern

Hier ein kleines Snippet um die Klassen in Powermail zu erweitern oder abzuändern (style1 etc).  Einfach den folgenden Code in die config Datei von TYPO3 packen und schon hat man die Klassen nach seinen Wünschen geändert.

TCEFORM {
  # change CSS dropdown for fieldset
  tx_powermail_fieldsets {
    class {
      removeItems = style1, style2, style3
      addItems.nolegend = Without Legend
      addItems.leftform = Left Fieldset
      addItems.rightform = Right Fieldset
    }
  }
  # Use the same settings for fields
  tx_powermail_fields {
    class < TCEFORM.tx_powermail_fieldsets.class
  }
}

Automatische Silbentrennung

Lange durfte/musste Kunden erklärt werden, dass der Textfluss in HTML nicht so schön flüssig sein kann wie in Word & Co, weil es keinen automatischen Zeilenumbruch gibt – entweder man setzt händisch Umbrüche (oder mögliche Umbruchsstellen) oder man überlässt es rein den Gegebenheiten. Zusätzlich verkompliziert hat diese Lage, dass Textbreiten von Browsern, Betriebsystemen, Schriftarten usw. abhängig waren, wodurch es nahezu unmöglich war, passende Umbrüche zu setzen.

CSS3 bringt nun endlich die lang ersehnte Lösung – zumindest weitgehend:

body {
	 -webkit-hyphens: auto;
	 -moz-hyphens: auto;
	 -ms-hyphens: auto;
	 hyphens: auto;
}

Damit wird – richtigen HTML-Language Code vorausgesetzt – die Silbentrennung des Browsers aktiv.

Leider haben Browser aber noch immer kein Gefühl für Schönes, für Harmonie, sodass die Trennungen oft sehr stur gesetzt wirken. Es wird getrennt, was trennbar ist – egal, ob es wirklich Sinn macht.
Rein mit Technik kommt man also weiterhin nicht aus. Auch in Zukunft braucht es Leute mit Gespür für Ästhetik, sodass automatische Trennungen nur in Bereichen mit umfangreichen Texten gesetzt werden, ansonsten aber doch lieber weiterhin von Hand an den richtigen, den schönen, den notwendigen Stellen.

Quellen

  1. http://kulturbanause.de/2012/02/silbentrennung-im-browser-css-eigenschaft-hyphens/
  2. http://scheible.eu/automatische-umbruche-mit-css3/

CSS-Stylesheets fehlen im Backend?

Ein seltsames Phänomen, das mich heute länger beschäftigte: Im TYPO3-Backend fehlen die Stylesheets. Als Folge sieht das Backend nicht nur seltsam aus, sondern ist unbedinbar.

Via versehentlich aktiven Firebug kam ich auf die Lösung: Die CSS-Dateien wurden aus irgendeinem Grund mit Mimetype „text/plaintext“ ausgeliefert, während „text/css“ erwartet wurde. Folglich wurden sie von Firefox 9 gar nicht eingebunden/interpretiert.

Ausweg:
Setzen des passenden Mimetypes am Server, z.B. via htaccess-Datei:

AddType text/css .css

Betroffen war konkret ein etwas älteres Web, das zunächst ein TYPO3 4.1.5, dann 4.1.12 und schließlich ein 4.3.14 war.

Update 22:45 Uhr

Nachdem mir das doch zu merkwürdig erschien und sich der beschriebene Ausweg nur kurzfristig als Lösung erwies, bin ich dem Ganzen weiter nachgegangen: es besteht ein Zusammenhang zwischen deaktiviertem Browsercache (via Webdeveloper Toolbar) und dem Phänomen. Bei aktiviertem Cache werden ca. 95 CSS-Dateien angefragt, bei deaktiviertem Cache listet Firebug nur ca. 55 angefragte CSS-Dateien. Seltsamerweise fehlen aber nicht immer diegleichen Dateien und ist die Anzahl der ingesamt abgerufenen Datein ziemlich konstant…

Umgang mit CSS/JS während der Entwicklung

Seit TYPO3 v4.4 werden Javascript- und CSS-Dateien standardmäßig komprimiert und konkateniert. Ein sehr praktisches Feature – außer für manchen Entwickler. Beispielsweise der CSSedit ermöglicht es, CSS-Dateien zu überschreiben, scheitert jedoch an den Versionnummern in den von TYPO3 erzeugten, neuen Dateinamen.

Eine Lösung hierfür:

$TYPO3_CONF_VARS['FE']['versionNumberInFilename'] = 0;

In der TSref leider noch nicht dokumentiert, aber es existieren wohl Schalter und Möglichkeiten:

1. Im Debug-Mode wird nichts concateniert und nichts kompremiert
2. Es sollte folgende Schalter im PAGE-Objekt geben, wenn ich class.t3lib_pagerenderer.php richtig verstehe:

compressJavascript = 0
compressCss = 0
concatenateFiles = 0
removeLineBreaksFromTemplate = 0