diff options
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php')
-rwxr-xr-x | lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php b/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php new file mode 100755 index 000000000..25c9403c2 --- /dev/null +++ b/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php @@ -0,0 +1,42 @@ +<?php + +// must be called POST validation + +/** + * Transform that supplies default values for the src and alt attributes + * in img tags, as well as prevents the img tag from being removed + * because of a missing alt tag. This needs to be registered as both + * a pre and post attribute transform. + */ +class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform +{ + + public function transform($attr, $config, $context) { + + $src = true; + if (!isset($attr['src'])) { + if ($config->get('Core', 'RemoveInvalidImg')) return $attr; + $attr['src'] = $config->get('Attr', 'DefaultInvalidImage'); + $src = false; + } + + if (!isset($attr['alt'])) { + if ($src) { + $alt = $config->get('Attr', 'DefaultImageAlt'); + if ($alt === null) { + $attr['alt'] = basename($attr['src']); + } else { + $attr['alt'] = $alt; + } + } else { + $attr['alt'] = $config->get('Attr', 'DefaultInvalidImageAlt'); + } + } + + return $attr; + + } + +} + +// vim: et sw=4 sts=4 |