Обнаружил не очень приятную особенность у основного редактора Joomla -
TinyMCE.
Если компонент в форме имеет поле
типа JForm Editor, то в его параметрах можно задать
ширину и
высоту:
<field
name="text"
type="editor"
label="Введите текст"
filter="JComponentHelper::filterText"
height="200"
/>
Естественно у большинства пользователей используется редактор по умолчанию - тот самый TinyMCE.
Все редакторы реализованы в виде плагинов, а у плагинов есть настройки. Плагин TinyMCE имеет достаточно обширные настройки.
Кроме прочего там тоже есть настройка
ширины и
высоты поля. А еще есть параметр -
режим (упрощенный/стандартный/расширенный).
И вот тут начинается грустная часть:
+ Если выбран
упрощенный режим, то размеры поля берутся из настроек поля компонента (или из параметров вызова редактора
JFactory::getEditor()->display($name, $html, $width, $height, $pk, $row, $buttons, $id, $asset, $author);
)
-Если выбран
стандартный или расширенный режим, то размеры поля берутся из настроек плагина
Происходит так потому, что для разных режимов ширина и высота задаются при разных событиях. В общем-то в обоих случаях эти параметры задаются при событии
onDisplay и в обоих случаях используются параметры заданные в настройках поля.
Но для стандартного режима при инициализации
onInit создается JS скрипт, в котором тоже задаются ширина и высота поля, но уже из параметров плагина.
И после построения страницы эти параметры "перекрывают" значения заданные для HTML элементов поля.
Повлиять на режим работы редактора из компонента нет возможности, и конечно у большинства включен стандартный режим.
Т.е. при планировании дизайна страницы с формой имеющей поле редактора надо учитывать, что его размеры могут отличатся при разных настройках.