Есть ли способ предотвратить применение определенных пользовательских стилей wysiwyg к определенным элементам HTML?
Предположим, у меня есть два стиля, называемых «красный» и «в рамке». Один цвет текста красный, а последний помещает рамку вокруг фотографии.
Могу ли я контролировать, какие стили доступны при выделении текста или изображения? Например, я хочу, чтобы стиль «рамка» не был доступен при выделении текста, а стиль «красный» не отображается в раскрывающемся меню стилей при выделении изображения.
Конфигурация Tinymce довольно сложна в Silverstripe, хотя она выглядит легко, как только вы ее запустите.
Йоном записал несколько конфигов и положил их на Github, назвал tinytidy модуль, там вы можете найти возможное решение. Поэтому лучше всего попробовать этот модуль, так как он добавляет некоторые пользовательские CSS в редактор.
Скопировать оттуда, положить в свой /mysite/_config.php:
$formats = array(
// Define the styles that will be available in TinyMCE's dropdown style menu
// * Use 'selector' to specify which elements a style can be applied to
// * See Headings example below for explanation of different settings
// * Using 'classes' allows a class to be combined with others while 'attributes'=>'style' removes other classes before applying
// Text styles
array(
'title' => 'Selected text'
),
array(
'title' => 'highlight red',
'classes' => 'red',
'inline' => 'span',
'selector' => 'i,em,b,strong,a'
),
array(
'title' => 'Images',
),
array(
'title' => 'Put a frame around a photo',
'attributes' => array('class'=>'framed'),
'selector' => 'img'
)
);
//Set the dropdown menu options
HtmlEditorConfig::get('cms')->setOption('style_formats',$formats);
надеюсь, что помогает, WMK
Других решений пока нет …