protected function getWyswigAllowedTags()
{
$allowedBecauseWysiwyg = ['div', 'p', 'br', 'pre', 'a', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'ul', 'ol', 'strong', 'em', 'i', 'b'];
if ($this->isWysiwygEnabled('images')) {
$allowedBecauseWysiwyg[] = 'img';
}
if ($this->isWysiwygEnabled('tables')) {
$allowedBecauseWysiwyg = array_merge($allowedBecauseWysiwyg, ['table', 'tbody', 'thead', 'tfoot', 'th', 'td', 'tr']);
}
if ($this->isWysiwygEnabled('fontcolor')) {
$allowedBecauseWysiwyg[] = 'span';
}
if ($this->isWysiwygEnabled('subsuper')) {
$allowedBecauseWysiwyg = array_merge($allowedBecauseWysiwyg, ['sub', 'sup']);
}
if ($this->isWysiwygEnabled('underline')) {
$allowedBecauseWysiwyg[] = 'u';
}
if ($this->isWysiwygEnabled('embed')) {
// Note: Only <iframe>. Not <script>, <embed> or <object>.
$allowedBecauseWysiwyg[] = 'iframe';
// We also need to add a few attributes as well.
$this->setAllowedAttributes(array_unique(array_merge($this->getAllowedAttributes(), ['src', 'width', 'height', 'frameborder', 'allowfullscreen', 'scrolling'])));
}
if ($this->isWysiwygEnabled('ruler')) {
$allowedBecauseWysiwyg[] = 'hr';
}
if ($this->isWysiwygEnabled('strike')) {
$allowedBecauseWysiwyg[] = 's';
}
if ($this->isWysiwygEnabled('blockquote')) {
$allowedBecauseWysiwyg[] = 'blockquote';
}
if ($this->isWysiwygEnabled('codesnippet')) {
$allowedBecauseWysiwyg = array_merge($allowedBecauseWysiwyg, ['code', 'pre', 'tt']);
}
return array_unique(array_merge($this->getAllowedTags(), $allowedBecauseWysiwyg));
}