impressum
Oliver Weiß - Typo3 Programmierung Consulting

Internet für alle

Typo3 Extensions

TypoScript Programmierung 

Typo3 Consulting

Oliver Weiß
Rigaer Straße 15
10247 Berlin
030-41 725 718

Valid XHTML 1.0 Transitional Valid CSS!
© 2006-2011 Oliver Weiß

tags in RTE-Listen oder -überschriften

Problem:

Hat man css_styled_content installiert und verwendet den RTE, so wird als transformation filter ts_css ausgewählt (im TCA). Das ist prinzipiell kein Problem, aber leider werden dann die proc-Optionen, die man in der TSConfig einstellen kann (z.B: allowTags) nicht verwenden, da diese nur für ts_transform (oder ts) gelten. Vor allem werden font-Tags beim Import aus Word innerhalb von p- oder div-tags entfernt, nicht aber aus Listen.

Lösung:

  • Man kann proc.overruleMode = ts_transform einstellen und damit die proc-Optionen ansprechbar machen. Da css_styled_content aber nur parseFunc.tags.links besitzt, werden die Listen dann aber nicht richtig geparst. Für dieses Problem gibt es zwei Lösungen: 
  • Im TSSetup parseFunc.tags.typolist definieren und dadurch die Listen parsen.
  • im TSConfig proc.typolist = 0 einstellen, dadurch werden die Listen auch in der Datenbank als ul/ol gespeichert.
  • proc.overruleMode = ts_transform,css_transform

 

Schriftformatierungen verhindern

Vor allem bei Copy-Paste von Word-Dateien passiert es immer wieder, dass font-Tags in den RTE übertragen werden. Man kann verhindern, dass diese Tags akzeptiert werden.

Im TSConfig:

RTE.default.proc.denyTags=font

Verschachtelte Listen zulassen

Hierfür muss zunächst in der TSConfig das typolist-Parsing ausgeschaltet werden:

RTE.default.proc.typolist=0

Der Parser wird deshalb allerdings ohne RTE den tag <typolist> auch nicht mehr verstehen, d.h. man muss die normalen HTML-Tags (<ol> oder <ul>) verwenden.

Außerdem muss man nach der Liste eine Leerzeile einfügen, sonst fehlt ein <p>.

RTE-Konfiguration in eigener Extension

Wenn man eine eigene Extension mit dem Kickstarter geschrieben hat, möchte man manchmal, dass sich die RTE-Felder genauso verhalten, wie z.B. die tt_content-Felder.

Im Template (setup):

plugin.tx_deineextension_pi {
  general_stdWrap.parseFunc < tt_content.text.20.parseFunc
}

im php-script:

$ausgabe = $this->formatStr($variableMitDeinemFeldDrin);

function formatStr($str) {
  if (is_array($this->conf["general_stdWrap."])) {
    $str = $this->cObj->stdWrap($str,$this->conf["general_stdWrap."]);
  }
  return $str;
}

Save as PDF