1: <?php
2:
3: // must be called POST validation
4:
5: /**
6: * Transform that supplies default values for the src and alt attributes
7: * in img tags, as well as prevents the img tag from being removed
8: * because of a missing alt tag. This needs to be registered as both
9: * a pre and post attribute transform.
10: */
11: class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform
12: {
13:
14: /**
15: * @param array $attr
16: * @param HTMLPurifier_Config $config
17: * @param HTMLPurifier_Context $context
18: * @return array
19: */
20: public function transform($attr, $config, $context)
21: {
22: $src = true;
23: if (!isset($attr['src'])) {
24: if ($config->get('Core.RemoveInvalidImg')) {
25: return $attr;
26: }
27: $attr['src'] = $config->get('Attr.DefaultInvalidImage');
28: $src = false;
29: }
30:
31: if (!isset($attr['alt'])) {
32: if ($src) {
33: $alt = $config->get('Attr.DefaultImageAlt');
34: if ($alt === null) {
35: $attr['alt'] = basename($attr['src']);
36: } else {
37: $attr['alt'] = $alt;
38: }
39: } else {
40: $attr['alt'] = $config->get('Attr.DefaultInvalidImageAlt');
41: }
42: }
43: return $attr;
44: }
45: }
46:
47: // vim: et sw=4 sts=4
48: