1, 'aria-*' => 1, 'type' => 1, 'value' => 1, 'class' => 1, 'id' => 1, 'for' => 1, 'style' => 1, 'src' => 1, 'alt' => 1, 'title' => 1, 'placeholder' => 1, 'href' => 1, 'rel' => 1, 'target' => 1, 'novalidate' => 1, 'name' => 1, 'tabindex' => 1, 'action' => 1, 'method' => 1, 'width' => 1, 'height' => 1, 'selected' => 1, 'checked' => 1, 'readonly' => 1, 'disabled' => 1, 'required' => 1, 'autocomplete' => 1, 'min' => 1, 'max' => 1, 'step' => 1, 'cols' => 1, 'rows' => 1, 'lang' => 1, 'dir' => 1, 'enctype' => 1, 'multiple' => 1, 'frameborder' => 1, 'allow' => 1, 'allowfullscreen' => 1, 'label' => 1, 'align' => 1, 'accept-charset' => 1, 'itemtype' => 1, 'itemscope' => 1, 'itemprop' => 1, 'content' => 1, 'onclick' => 1, 'onsubmit' => 1, 'onchange' => 1, 'xmlns' => 1, 'viewbox' => 1, 'd' => 1, 'transform' => 1, 'fill' => 1, 'enable-background' => 1, 'version' => 1, 'xml:space' => 1, 'xmlns:xlink' => 1, 'onkeydown' => 1, ); public function __construct() { } public static function full($html) { if(is_null($html)) return ''; if(is_null(self::$allowed_html_full)) { $allowed = wp_kses_allowed_html('post'); self::$allowed_html_full = apply_filters('mec_kses_tags', $allowed, 'full'); } if(defined('MEC_NO_JS_CSS_IN_HTML') && MEC_NO_JS_CSS_IN_HTML) return wp_kses($html, self::$allowed_html_full); else return $html; } public static function page($html) { if(is_null($html)) return ''; if(is_null(self::$allowed_html_page)) { $allowed = wp_kses_allowed_html('post'); self::$allowed_html_page = apply_filters('mec_kses_tags', $allowed, 'page'); } return wp_kses($html, self::$allowed_html_page); } public static function form($html) { if(is_null($html)) return ''; if(is_null(self::$allowed_html_form)) { $allowed = wp_kses_allowed_html('post'); self::$allowed_html_form = apply_filters('mec_kses_tags', $allowed, 'form'); } return wp_kses($html, self::$allowed_html_form); } public static function element($html) { if(is_null($html)) return ''; if(is_null(self::$allowed_html_element)) { $allowed = wp_kses_allowed_html('post'); self::$allowed_html_element = apply_filters('mec_kses_tags', $allowed, 'element'); } return wp_kses($html, self::$allowed_html_element); } /** * Element + Embed * @param $html * @return string */ public static function rich($html) { if(is_null($html)) return ''; if(is_null(self::$allowed_html_rich)) { $allowed = wp_kses_allowed_html('post'); self::$allowed_html_rich = apply_filters('mec_kses_tags', $allowed, 'rich'); } return wp_kses($html, self::$allowed_html_rich); } /** * Only Embed * @param $html * @return string */ public static function embed($html) { if(is_null($html)) return ''; if(is_null(self::$allowed_html_embed)) { self::$allowed_html_embed = apply_filters('mec_kses_tags', array(), 'embed'); } return wp_kses($html, self::$allowed_html_embed); } public static function tags($tags, $context) { foreach(array( 'svg', 'path', 'div', 'span', 'ul', 'li', 'a', 'button', 'progress', 'dt', 'dl', ) as $tag) { $tags[$tag] = self::$allowed_attrs; } if(in_array($context, array('form', 'page', 'full'))) { $tags['form'] = self::$allowed_attrs; $tags['label'] = self::$allowed_attrs; $tags['input'] = self::$allowed_attrs; $tags['select'] = self::$allowed_attrs; $tags['option'] = self::$allowed_attrs; $tags['optgroup'] = self::$allowed_attrs; $tags['textarea'] = self::$allowed_attrs; $tags['button'] = self::$allowed_attrs; $tags['fieldset'] = self::$allowed_attrs; $tags['output'] = self::$allowed_attrs; } if(in_array($context, array('embed', 'rich', 'full'))) { if(!isset($tags['iframe'])) $tags['iframe'] = self::$allowed_attrs; if(!isset($tags['canvas'])) $tags['canvas'] = self::$allowed_attrs; } if($context === 'full') { if(!isset($tags['script'])) $tags['script'] = self::$allowed_attrs; if(!isset($tags['style'])) $tags['style'] = self::$allowed_attrs; } return $tags; } public static function styles($styles) { $styles[] = 'display'; $styles[] = 'opacity'; return $styles; } }