forked from GNUsocial/gnu-social
HTMLPurifier defangs arbitrary submitted HTML. We're using it in the OStatus plugin, but it may be valuable for other parts of the codebase (I think OEmbed might benefit, for example).
43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?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
|