diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-07-03 12:56:29 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-07-03 12:56:29 -0700 |
commit | b6e5bf6eaade677187f99182e7face7c4b711bec (patch) | |
tree | 41c31bb904d42f358bc09fc78aa063c3e875ab04 /modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php | |
parent | cf279fc315841836f92c8a81935db00bb3a919ff (diff) |
Fix for ticket #400: Add HTMLPurifier to gallery3 and change p::clean() to call HTMLPurifier->purify()
Diffstat (limited to 'modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php')
-rw-r--r-- | modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php b/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php new file mode 100644 index 00000000..a219479a --- /dev/null +++ b/modules/gallery/libraries/HTMLPurifier/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 |