Редактор TYPO3 CKE разрешает атрибут данных - PullRequest
1 голос
/ 15 марта 2020

Я добавил

- { name: "Data Test", element: "p", attributes: { 'data-test': "test" } }

в мою конфигурацию yaml. Я могу выбрать атрибут данных (и увидеть его правильно) в коде редактора. Но после сохранения содержимого элемент TYPO3 также удаляет data-tesst = "test" из кода.

Как я могу решить эту проблему? Спасибо за помощь! Мартин

buttons:
  link:
    relAttribute:
      enabled: true
    targetSelector:
      disabled: false
    properties:
      class:
        allowedClasses: 'button, button_hell'
      title:
        readOnly: false

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" }


editor:
  config:
    # css definitions for the editor
    contentsCss: "EXT:mw_theme/Resources/Public/Css/rte.css"
    # can be "default", but a custom stylesSet can be defined here, which fits TYPO3 best
    format_tags: "p;h1;h2;h3;h4;h5;h6;pre;address"

    stylesSet:
      # custom block level style
      - { name: "Button", element: "a", attributes: { 'class': "button" } }
      - { name: "Test", element: "p", attributes: { 'data-test': "test" } }

    toolbar:
      - [ 'Format', 'Styles' ]
      - [ 'Bold', 'Italic', 'Underline', 'Blockquote', 'Subscript', 'Superscript']
      - [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', 'HorizontalRule' ]
      - [ 'NumberedList', 'BulletedList']
      - [ 'Link', 'Unlink', 'Anchor', 'Table', 'SpecialChar', 'CodeSnippet', 'Youtube' ]
      - [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord' ]
      - [ 'Undo', 'Redo', 'RemoveFormat', 'ShowBlocks' ]
      - [ 'Source', 'Maximize', 'About']
    removePlugins:
      - image
    extraPlugins:
      - justify
    justifyClasses:
      - text-left
      - text-center
      - text-right
      - text-justify
Allow tags
processing:
  allowTags:
    - dl
    - dt
    - dd

стр. Ts:

RTE { default { preset = mw_theme } }`

Ответы [ 3 ]

0 голосов
/ 17 марта 2020

Я нашел решение:

    extraAllowedContent:
  p[data-test];
0 голосов
/ 08 апреля 2020

Чтобы разрешить сохранение атрибутов данных в дБ из полей RTE, необходимо убедиться, что:

1) RTE (CKEditor) не удалит атрибуты. Это настраивается с использованием extraAllowedContent. Ниже приведен пример того, как разрешить использование атрибутов id в дополнение к правилу по умолчанию, которое разрешает атрибуты и классы данных.

editor:
  config:
    extraAllowedContent:
      - "*(*)[data-*]"
      - "*[id]"

Если вам нужно только добавить атрибуты данных, вам не нужна указанная выше конфигурация и вы можете ретранслировать в конфигурации по умолчанию (из rte_ckeditor / Configuration / RTE / Editor / Base.yaml), поскольку там по умолчанию разрешены атрибуты данных.

Чтобы проверить эту часть конфигурации, go для вашего RTE, нажмите " кнопка «Просмотреть исходный код» переключиться назад и переключиться снова и посмотреть, исчез ли атрибут. Если он все еще там, это означает, что конфигурация RTE позволяет это.

2), тогда вам нужно настроить сторону PHP вещей - преобразование данных, которое происходит до того, как данные сохраняются в БД. См. Главу руководства: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Rte/Transformations/Process.html#transformations -процесс

Ниже приведен пример (взятый из предустановки yaml RTE) разрешения атрибута data-ab c в преобразовании (в дополнение к атрибутам, которые являются разрешено по умолчанию).

processing:
  allowAttributes: [class, id, title, dir, lang, xml:lang, itemscope, itemtype, itemprop, data-abc]

Таким образом, в вашем случае вам не хватало правильной конфигурации для части преобразования.

0 голосов
/ 17 марта 2020

Это зависит от целого ряда факторов и множества других ваших настроек, но вы, похоже, это делаете. Один из наиболее распространенных способов, который может сработать, состоит в определении extraAllowedContent в качестве дополнительного параметра конфигурации в вашем yaml, например:

editor:
  config:
    extraAllowedContent: '*(*)[data-*]'

Или, если я правильно понял другую строку, также разрешите dt / dd / dl :

editor:
  config:
    extraAllowedContent:
      - '*(*)[data-*]'
      - dd
      - dl
      - dt

Если это так, возможно, стоит EXT: rte_ckeditor_dl , чтобы получить кнопки для создания этого списка.

...