TYPO3: как добавить элемент в RTE, который позволяет пользователю использовать определенный класс CSS - PullRequest
2 голосов
/ 05 января 2012

Я хочу, чтобы у пользователя была возможность выбрать текстовый стиль в RTE, такой как Подробности, Важные, Имя человека и так далее.Поэтому я хотел бы определить CSS, и эта опция должна быть показана в RTE.Стиль CSS должен быть span и устанавливать только цвет.

В настоящее время у меня есть следующий код:

RTE.classes{
  highlight{
      name = test
      value = color:#0A8AD2;
  } 
}

RTE.default{
  ignoreMainStyleOverride = 1 
  useCSS = 1
  contentCSS = fileadmin/templates/css/rte_formats.css
  classesCharacter := addToList(highlight)
  classesParagraph := addToList(highlight)
  proc.allowedClasses := addToList(highlight)
}

Содержимое файла CSS:

span.highlight, p.highlight {
    color:#0A8AD2;
}

Но новый добавленный стиль не отображается в раскрывающемся списке (текстовый стиль).Я также включил «дополнительные встроенные элементы» в конфигурации th rtehtmlarea.Я также пытался установить showTagFreeClasses и так далее, но безуспешно.Затем я прочитал о проблемах кеширования.Я удалил кеш RTE, а также кеш браузера.По-прежнему нет результата.Что может быть не так?

1 Ответ

4 голосов
/ 05 января 2012

Вы в основном на правильном пути!

У меня возникли некоторые проблемы с использованием inlineStyle.Одним из них является то, что вам нужно явно отменить определение contentCSS, чтобы встроенные функции работали (только настройка ignoreMainStyleOverride = 0 не подходит!):

RTE.default.contentCSS >

Я лично предпочитаю выделенный внешний файл CSS.Важно знать, что TYPO3 RTE действительно анализирует этот CSS-файл и предлагает только те классы, которые на самом деле там находятся!
Так что вам нужно использовать параметр contentCSS для определения CSS, и этот CSS должен действительно содержатьклассы, которые вы хотите сделать доступными для пользователя.Вот как вы должны его определить:

# TS-Config
RTE.default.ignoreMainStyleOverride = 1
RTE.default.contentCSS = fileadmin/templates/css/rte_formats.css

Файл CSS должен существовать по указанному URL, и он должен содержать определение класса CSS, который выхочу предоставить (как уже было сказано, CSS-файл действительно анализируется, и отсутствующие классы не будут отображаться в выпадающем списке):

/* content of rte_formats.css */
/* span. needed for RTE.default.classesCharacter */
/* p.    needed for RTE.default.classesParagraph */
span.highlight, p.highlight{ color:#0A8AD2; }

И еще один совет:
Я рекомендую не перезаписывать разрешенные классываши собственные имена классов, но добавьте к ним:

RTE.default.proc.allowedClasses := addToList( highlight, myOtherClass, myThirdClass )

Удачи!

...