[Frage] abgespeckter RTE für einzelne Felder in einer Extension [Gelöst] TYPO3-Version: 4.5.27

  • maik maik
    Jedi-General
    0 x
    1194 Beiträge
    1 Hilfreiche Beiträge
    05. 08. 2013, 18:36

    Hallo zusammen,

    ich würde gerne in meiner Extension einige Eingabefelder, die mit dem RTE ausgestattet sind etwas vereinfachen. Meine aktuelle TCA-Config schaut wie folgt aus:

    1. 'config' => array(
    2. 'type' => 'text',
    3. 'cols' => 40,
    4. 'rows' => 15,
    5. 'eval' => 'trim',
    6. 'wizards' => array(
    7. 'RTE' => array(
    8. 'icon' => 'wizard_rte2.gif',
    9. 'notNewRecords'=> 1,
    10. 'RTEonly' => 1,
    11. 'script' => 'wizard_rte.php',
    12. 'title' => 'LLL:EXT:cms/locallang_ttc.xml:bodytext.W.RTE',
    13. 'type' => 'script'
    14. )
    15. )
    16. ),
    17. 'defaultExtras' => 'richtext:rte_transform[flag=rte_enabled|mode=ts]',

    Ich hätte nun gerne den RTE kleiner. cols und cows haben leider keinen einfluss, sobald der RTE aktiviert ist. Außerdem würde ich gerne eine andere Config (mit weniger Icons) in der Extension laden.

    Der "normale" RTE für Content Elemente soll davon nicht berührt sein.
    Ich möchte nur den RTE zum editieren der Datensätze meiner EXT anpassen.

    Hat jemand ne Idee, wie das zu bewerkstelligen ist?

    Gruß
    Maik

    http://www.caroonline.de

    Tags: RTE , Tca
  • maik maik
    Jedi-General
    0 x
    1194 Beiträge
    1 Hilfreiche Beiträge
    12. 08. 2013, 08:46 - Lösung

    Super, vielen Dank, das funktioniert bestens.

    mit

    1. RTE.config.[tablename].[field]. ...

    hab ich die Felder individuell angepasst.

    Das ganze hab ich dann per

    1. addPageTSConfig

    ausgelagert und so sauber in die Verzeichnisstruktur der EXT abgelegt.

    http://www.caroonline.de


  • 1

  • 0 x
    07. 08. 2013, 09:40

    Hallo Maik,

    ich habe hier mal der einfachheit beide Wege beschrieben.
    Für deine Frage ist vor allem Part 2 wichtig (aus Part 1 - Musst du ggf. 1. und 3. verwenden) :

    htmlArea konfigurieren
    Beispiel: Fügt die Textstyle „orange“ hinzu und löscht nicht benötigte Buttons

    ######## PART 1 - den RTE über das SeitenTS konfigurieren ###########

    1.) Spezielle CSS-Datei anlegen mit den gewünschen Textstyleklassen:

    1. span.highlight-orange {
    2. color: #ed7902;
    3. }

    WICHTIG!: Die CSS-Datei mit dem HTML-Tag (span.<classe> bzw. span#<id> ) muss vorhanden sein! Sonst werden die Klassen im RTE nicht angezeigt!!!

    2.) RTE via TypoScript (Seiten TScript) konfigurieren:

    Web → Page → <root_page> → Edit Page → Ressourcen

    Feld: Seiten-TSConfig

    1. # RTE-Anpassungen (eigene Stile)
    2. RTE.default {
    3. showButtons (
    4. blockstylelabel, blockstyle, textstylelabel, textstyle, bold, italic, orderedlist, unorderedlist, textindicator, link, chMode, removeformat, undo, redo, pastetoggle
    5. )
    6. showStatusBar = 1
    7.  
    8. # RTE soll CSS verwenden
    9. useCSS = 1
    10. # und zwar genau diese Datei (natürlich müsst ihr die Datei erst anlegen ;)
    11. contentCSS = fileadmin/templates/css/rte-styles.css
    12.  
    13. # Diese Klasse soll im Textstyle verfügbar sein:
    14. buttons.textstyle.tags.span.allowedClasses = (highlight-orange)
    15.  
    16. # add pastetoggle button to RTE toolbar
    17. buttons.pastetoggle.setActiveOnRteOpen = 1
    18.  
    19. # Set default link target
    20. buttons.link.properties.target.default = _self
    21.  
    22. # hier muss diese Klasse ebenfalls definiert werden, damit der RTE diese zulässt
    23. proc.allowedClasses := addToList(highlight-orange)
    24.  
    25. buttons.bold.hotKey = b
    26. buttons.italic.hotKey = i
    27.  
    28. setup.default.edit_RTE = 1
    29. }
    30.  
    31.  
    32. # Hier definieren wir den Namen und das Layout im Backend!
    33. RTE.classes {
    34. highlight-orange {
    35. # angezeigter Name in der Auswahlbox beim Blockstil
    36. name = Schrift: Orange
    37.  
    38. # Aussehen der Klasse, wie sie im Backend erscheinen soll
    39. value = color: #ed7902;
    40. }
    41. }

    3.) TYPO3 Cache löschen

    Offizielle Doku zu htmlArea: [url]http://typo3.org/extension-manuals/rtehtmlarea_manual/[/url]

    ##### PART2 - RTE für Extionsion konfigurieren ##############
    In /typo3conf/ext/myExtension/ext_localconf.php muss folgendes hinzugefügt werden

    1. $tsConfig = '
    2. # RTE-Anpassungen (eigene Stile)
    3. RTE.default {
    4. showButtons (
    5. blockstylelabel, blockstyle, textstylelabel, textstyle, bold, italic, orderedlist, unorderedlist, textindicator, link, chMode, removeformat, undo, redo, pastetoggle
    6. )
    7. showStatusBar = 1
    8.  
    9. # RTE soll CSS verwenden
    10. useCSS = 1
    11. # und zwar genau diese Datei (natürlich müsst ihr die Datei erst anlegen ;)
    12. contentCSS = fileadmin/templates/css/rte-styles.css
    13.  
    14. # Diese Klasse soll im Textstyle verfügbar sein:
    15. buttons.textstyle.tags.span.allowedClasses = (highlight-orange)
    16.  
    17. # add pastetoggle button to RTE toolbar
    18. buttons.pastetoggle.setActiveOnRteOpen = 1
    19.  
    20. # Set default link target
    21. buttons.link.properties.target.default = _self
    22.  
    23. # hier muss diese Klasse ebenfalls definiert werden, damit der RTE diese zulässt
    24. proc.allowedClasses := addToList(highlight-orange)
    25.  
    26. buttons.bold.hotKey = b
    27. buttons.italic.hotKey = i
    28.  
    29. setup.default.edit_RTE = 1
    30. }
    31.  
    32.  
    33. # Hier definieren wir den Namen und das Layout im Backend!
    34. RTE.classes {
    35. highlight-orange {
    36. # angezeigter Name in der Auswahlbox beim Blockstil
    37. name = Schrift: Orange
    38.  
    39. # Aussehen der Klasse, wie sie im Backend erscheinen soll
    40. value = color: #ed7902;
    41. }
    42. }
    43. ';
    44.  
    45. \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig($tsConfig);

    Damit kannst du die Konfiguration direkt in eine Extension legen und wird automatisch bei der Installation mit verwendet. Der Teil des SeitenTS von PART 1 entfällt hier.

    Wie immer gilt: Cache leeren nicht vergessen!

    Hoffe ich konnte dir damit helfen.

    Beste Grüße,
    kapale

  • jank jank
    Sternenflotten-Admiral
    0 x
    158 Beiträge
    0 Hilfreiche Beiträge
    07. 08. 2013, 12:08

    So ändert er aber die RTE Default config was er ja durch seine Extension nicht möchte!
    Aber:
    Anstatt das mit RTE.default zu konfigurieren kannst Du auch per RTE.config.[tablename].[field]explizit die config für ein Feld vornehmen.
    [url]http://docs.typo3.org/typo3cms/extensions/rtehtmlarea/latest/Configuration/PageTsconfig/interfaceConfiguration/Index.html[/url]
    Ansonsten würde ich das Page TS in eine Datei auslagern z.B. /Configuration/TSconfig/Page/RTE.txt und diese dann einbinden

    1. t3lib_extMgm::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/TSconfig/Page/RTE.txt">');

    Siehe hierzu [url]http://wiki.typo3.org/Extension_Development,_add_Page_TSconfig,_User_TSconfig_and_TS[/url]

  • maik maik
    Jedi-General
    0 x
    1194 Beiträge
    1 Hilfreiche Beiträge
    12. 08. 2013, 08:46

    Super, vielen Dank, das funktioniert bestens.

    mit

    1. RTE.config.[tablename].[field]. ...

    hab ich die Felder individuell angepasst.

    Das ganze hab ich dann per

    1. addPageTSConfig

    ausgelagert und so sauber in die Verzeichnisstruktur der EXT abgelegt.

    http://www.caroonline.de

  • 1