Я использую TYPO v12.4. На определенной странице моего веб-сайта, когда я редактирую поле «Page TSconfig» всего одной строкой:
RTE.default.proc.allowedClasses := addToList(custom, rowmax25, btn, btn-sm)
Но это не имеет никакого эффекта: когда я добавляю класс (например: <p class = "custom">
) и сохраняю, атрибут класса всегда удаляется из абзаца. Я не понимаю, что я делаю не так.
Моя конфигурация кажется активной на странице:
Я что-то упускаю? Я прочитал документацию, но не могу найти ничего, что могло бы мне помочь в дальнейшем.
Для настройки RTE рекомендуется использовать конфигурацию YAML.
https://docs.typo3.org/c/typo3/cms-rte-ckeditor/main/en-us/Configuration/Reference.html#page-tsconfig
Лучше всего скопировать следующий файл в пакет вашего сайта:
Копия:
вендор/typo3/cms-rte-ckeditor/Configuration/RTE/Default.yaml
Кому:
EXT:your_sitepackage/Configuration/RTE/Default.yaml
А затем добавьте конфигурацию:
EXT: ваш_сайтпакет/ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'EXT:your_sitepackage/Configuration/RTE/Default.yaml';
В файле Default.yaml есть следующий раздел:
editor:
config:
contentsCss: 'EXT:your_sitpackage/Resources/Public/Css/rte.css'
style:
definitions:
- { name: "Custom", element: "p", classes: [ 'custom' ] }
- { name: "Rowmax25", element: "small", classes: [ 'rowmax25' ] }
- { name: "Btn", element: "span", classes: [ 'btn' ] }
Там вы можете добавить свои собственные классы стилей. А также немного CSS для стилизации текста в RTE.
Для получения дополнительной информации читайте:
https://docs.typo3.org/c/typo3/cms-rte-ckeditor/main/en-us/Configuration/QuickStart.html#configuration-quickstart
РЕДАКТИРОВАТЬ 1:
Предположим, вы хотите иметь возможность добавить класс в таблицу, как вы описали в своем первом комментарии. Тогда вам просто нужно добавить следующее к определениям стилей:
editor:
config:
style:
definitions:
- { element: 'table', classes: ['my-custom-class'] }
Теперь вы можете добавить class = "my-custom-class"
к тегу таблицы. Если имя не добавлено в определение, оно не будет отображаться в раскрывающемся списке стилей.
Обновлено еще раз:
EXT:fluid_styled_content поставляется с анализатором HTML, который отображает классы для таблиц.
EXT:fluid_styled_content/Configuration/TypoScript/Helper/ParseFunc.typoscript
Итак, чтобы ваш пользовательский класс отображался в теге table, вы должны добавить следующее в настройки TypoScript:
lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list = contenttable, my-custom-class
Теперь класс должен отображаться так, как установлено в RTE.
Обновил мой ответ
Привет @Mogens, это работает! Идеальный. Тем не менее, он сохраняет класс, но когда я смотрю результат во внешнем интерфейсе, класс был заменен другим (например: <table class = "contenttable">
). Что это за обработка?
Это из-за анализатора HTML EXT:fluid_styled_content. Обновил свой ответ.
Спасибо за ваше второе обновление. К сожалению, это не работает
Извини. Была опечатка в TypoScript. Пропустил stdWrap. Теперь это должно работать. ;-)
Все еще не работает. Я очистил все кеши, перезагрузил серверную часть, единственный класс во внешнем интерфейсе — «contenttable». Я проверил TSconfig страницы, lib.parseFunc_RTE [...]
установлен, но не влияет на внешний интерфейс. Кстати, я ценю помощь!
Typoscript не установлен в Page TsConfig. Вам необходимо установить его в настройках TypoScript. EXT:your_sitepackage/Configuration/TypoScript/setup.typoscript или, если у вас нет собственного TypoScript, вы также можете установить его в настройках TypoScript шаблона страницы.
Теперь это работает! Еще раз большое спасибо за вашу помощь.
Привет, я не хочу добавлять собственное определение стиля, но я хочу, чтобы участник мог добавлять определенный класс CSS в <table>, если он этого захочет. Я уже прочитал документ, но то, что вы объяснили, полезно для добавления нового стиля в раскрывающийся список стилей, чтобы не допустить удаления класса CSS при сохранении контента?