На самом деле не так сложно и сумбурно как я написал- попробую более структурированно.
Получается что-то типа слоеного пирога (в квадратных скобках указал те этапы которые могут не использоваться в цепочке в зависимости от настроек):
-
Основа - это то, какой парсер выбран для сайта в целом и его частей, т.к. для некоторых разделов (например для страниц) его можно независимо изменить →
-
в зависимости от парсера будет использован тот или иной редактор, привязанный в настройках к этому парсеру (см.настройки соотв. парсера HTML или BBCODE) →
-
[редактор в зависимости от раздела сайта может грузить разный набор плагинов-инструментов и «давать доступ» на вставку кода видео или нет] →
-
от редактора зависит какой код будет сформирован для вставки объекта (например для видео это может быть «object» или «iframe») →
-
после добавления страницы/комментария данные обрабатываются соответствующим парсером (см. выще HTML или BBCODE) →
-
[парсер Html использует HtmlPurifier, который в зависимости от прав пользователя может «отрезать» недопустимые с его точки зрения элементы (теги)] →
-
[опять же HtmlPurifier (см.уровеньTidy) пытается поправить «битую» html разметку, и если таковая создается (по каким либо причинам) редактором, то тоже может «исправить или отрезать».
На базе это и получается финальный результат.