CKEditor добавляет дополнительные абзацы каждый раз, когда я сохраняю документ

Я использую CKEditor в Typo3, имея для него yaml-файл с конфигурацией.

Каждый раз, когда я сохраняю документ, CKEditor добавляет дополнительные абзацы и преобразует <br /> в <p>&nbsp;</p>.

Так это

<p>my paragraph</p>
<p>my paragraph with<br />a newline</p>

становится таким:

<p>my paragraph</p>
<p>&nbsp;</p>
<p>my paragraph with</p>
<p>a newline</p>

Я пытался использовать autoParagraph: false (который устарел и поэтому не работал) и enterMode: CKEDITOR.ENTER_BR // shiftEnterMode: CKEDITOR.ENTER_BR

Не помогло...

Любые идеи?

Вот как выглядит мой yaml-файл:

# Load default processing options
imports:
  - { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" }
  - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" }
  - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml" }
# Konfiguration
editor:

  externalPlugins:
    typo3link: { resource: "EXT:rte_ckeditor/Resources/Public/JavaScript/Plugins/typo3link.js", route: "rteckeditor_wizard_browse_links" }

  config:
  # height: 70 (2 Zeilen) +20 pro weitere jede Zeile
    height: 130
    width: "auto"
    fillEmtpyBlocks: false
    ignoreEmptyParagraph: false
    enterMode: CKEDITOR.ENTER_BR
    shiftEnterMode: CKEDITOR.ENTER_BR

    # Formatauswahl
    format_tags: "h2;h3;h4;h5;h6;p"

    # Stylesheet
    contentsCss: "EXT:upd_rte_extension/Resources/Public/Css/rte.css"

    # Styleauswahl
    stylesSet:
    # Blockstile
      - { name: "Disclaimer", element: "p", attributes: { 'class': 'disclaimer' } }
      - { name: "Wichtig", element: "span", attributes: { 'class': 'important' } }

    # Buttons
      - { name: "Wow-Button", element: "a", attributes: { 'class': 'wow-button' } }

    toolbar:
    - { name: 'basicstyles', items: [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat' ] }
    - { name: 'paragraph', items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote' ] }
    - { name: 'styles', items: [ 'Styles', 'Format' ] }
    - { name: 'about', items: [ 'About' ] }
    - '/'
    - { name: 'clipboard', items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ] }
    - { name: 'editing', items: [ 'Scayt' ] }
    - { name: 'links', items: [ 'Link', 'Unlink', 'Anchor' ] }
    - { name: 'insert', items: [ 'Image', 'Table', 'HorizontalRule', 'SpecialChar' ] }
    - { name: 'tools', items: [ 'Maximize' ] }
    - { name: 'document', items: [ 'Source' ] }

person Swissdude    schedule 24.11.2017    source источник


Ответы (4)


Есть проблема с потоком и RTE. Это уже исправлено в ветке dev, но если вам нужен мастер (как и нам), вы должны применить это исправление: https://github.com/dacostafilipe/flux/commit/e1e3b5d9f48b7c45bbae1494e30f7838c24cedeb

person Filipe Da Costa    schedule 24.11.2017

Та же проблема здесь, в 8.7.13 (и в текущей 9). Но ни одно из предложений не работает для меня!? Не используется флюс или dce. Просто плагин, использующий pi_flexform с такой гибкой формой:

<settings.bookingConfirmationEmailBody>
    <config>
        <type>text</type>
        <rows>5</rows>
        <cols>30</cols>
        <eval>trim,required</eval>
        <enableRichtext>1</enableRichtext>
        <richtextConfiguration>exhibitors_email</richtextConfiguration>
    </config>
</settings.bookingConfirmationEmailBody>

Я выяснил, что по направлению "от rte до db" все хранится правильно. Но «из db в rte» новые строки и <br> преобразуются в <p>&nbsp;</p>, которые умножаются при каждом сохранении. Уже час потратил на это :(

person JKB    schedule 07.06.2019

Была такая же проблема в предыдущем проекте. В моем случае это был баг FLUX… Я сделал так:

Flux/Classe/Form/Field/Text.php:61 добавлено `$configuration[‘enableRichtext’] = true; $configuration[‘richtextConfiguration’] = ‘полный’;

person Jürgen Pfusterschmied    schedule 24.11.2017

Сам решил.

Примечание: следующее относится к Typo3 8.7.7 и flux 8.2.1, не проверялось на других установках.

Проблема была в том, что я не использовал последнюю версию Flux с Github. В моем случае загрузка и замена следующего файла решила проблему (если вы не используете последнюю версию):

flux/Classes/Field/Text.php

Добавьте пользовательский RTE в GLOBALS вашего расширения (обычно это будет ваше расширение Flux-template)

$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['custom_rte'] = 'fileadmin/templates/mysite/css/custom_rte.yaml';

Затем на странице TSConfig:

RTE.default.preset = custom_rte
plugin.tx_flux.settings.flexform.richtextConfiguration = custom_rte

Первая строка предназначена для общего использования пользовательской RTE-конфигурации. Вторая строка указывает потоку также использовать пользовательскую RTE-конфигурацию (это важно).

Надеюсь, это поможет кому-то...

person Swissdude    schedule 24.11.2017