О пользе RTE

Уже не первый раз такое встречаю, вот решил и вам показать, насколько весело жить с Rich Text Editor:

Это, если непонятно, вписанный прямо в ТВ параметр вызов левых скриптов с загрузкой рекламы в iFrame.

Делает это вирусня на компьютере редактора сайта. Редактор спокойно себе пишет заметки и даже не знает, что к ним что-то добавляется, так как RTE это молча скрывает. В итоге, на сайте вылезает вот такое

Оно может быть не только в текстовых ТВ, но и в контенте документа. А может и в шаблонах — кто его знает?

В общем, имейте в виду. Лично я использую редактор Ace, который от меня ничего не прячет, и вывожу тексты через Markdown или Jevix.
Василий Наумкин
20 мая 2016, 10:49
modx.pro
4
3 373
+2

Комментарии: 10

Alexander V
20 мая 2016, 14:12
0
Потому и не даём клиентам доступ в админку. Насмотрелись их wysiwyg художеств.
    Сергей
    20 мая 2016, 17:07
    0
    Надо плагин, который будет использовать pQuery и при событии сохранения документа в TV — полях проверять наличие «запрещенных тегов» типа script ну и вырезать их. Добавить возможность исключения определенных TV из списка.
      Максим Кузнецов
      21 мая 2016, 00:14
      3
      +4
      Можно решить стандартным jevix'ом примерно так:

      <?php
      	if ($modx->event->name == 'OnDocFormSave') {
      		$template = $resource->get('template');
      		
      		if ($template != 0) {
      			$id = $resource->get('id');
      
      			//В наборе параметров отключены неугодные теги аля script, iframe и прочие
      			$jevixParams = $modx->getObject('modPropertySet',array('name'=>'Ticket'));
      			$jevixOptions = $jevixParams->getProperties();
      
      			//content
      			if (strlen($content = $resource->getContent()) > 0) {
      				$jevixOptions['input'] = $content;
      				$content = $modx->runSnippet('jevix', $jevixOptions);
      				$resource->setContent($content);
      				
      			}
      			
      			switch ($template) {
      				//Шаблон с доп. тв, которое нужно обработать
      				case 7:
      					if (strlen($custom_tv = $resource->getTVValue('custom_tv')) > 0) {
      						$jevixOptions['input'] = $custom_tv;
      						$custom_tv = $modx->runSnippet('jevix', $jevixOptions);
      						
      						$resource->setTVValue('custom_tv', $custom_tv);
      					}
      					
      				break;
      				
      			}
      		}
      	
      		
      		$resource->save();
      	}
      Алексей
      20 мая 2016, 21:03
      +3
      вот средство для сносного внедрения RTE www.bioinformatics.org/phplabware/internal_utilities/htmLawed/
      после чистки ничего не оставит лишнего
        Alexander V
        20 мая 2016, 23:13
        0
        Пусть HTML лучше учат. Не переломятся, выучить 10 тегов.
          Роман Садоян
          21 мая 2016, 01:44
          0
          Плюсую, всерьез изучил htmLawed, гибкие настройки, малый расход памяти, работает по принципу белого списка, выдает валидный HTML код, сам преобразует устаревшие тэги в современные и много, много всего.
            Алексей
            21 мая 2016, 08:03
            +1
            если не затруднит — делитесь опытом внедрения htmLawed в MODX -) я до этого использовал htmlpurifier.org/ — но он тяжеловат, + около 200 файлов кода. если есть желающие — приведу пример реализации в плагине для чистки контента от всяких ненужных вещей
          Владимир
          21 мая 2016, 14:21
          0
          Скорее, заголовок мог бы быть «О безграмотности контент менеджеров и владельцев сайтов». ))) Но безграмотным и Ace с Markdown будут в тягость. Остается Jevix!
            Василий тыкни носом, где посмотреть как организовать это хозяйство…
            Все стоит и редактор Ace и Markdown и Jevix но так и не смог разобраться как навести красоту.
              Денис Дыранов
              23 мая 2016, 10:35
              0
              Мой пока что кривой и недоделанный Builder решает проблему отображая все script в виде блока codemirror рядом с rte: modx.pro/solutions/7881-content-editor-tools-0-8-and-subject-to-adminki/. Кроме того, насколько мне помнится и в TinyMCE и в CKEditor можно указать список возможных тегов.
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                10