summaryrefslogtreecommitdiff
path: root/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-07-03 12:56:29 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-07-03 12:56:29 -0700
commitb6e5bf6eaade677187f99182e7face7c4b711bec (patch)
tree41c31bb904d42f358bc09fc78aa063c3e875ab04 /modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php
parentcf279fc315841836f92c8a81935db00bb3a919ff (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/ImgSpace.php')
-rw-r--r--modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php b/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php
new file mode 100644
index 00000000..fd84c10c
--- /dev/null
+++ b/modules/gallery/libraries/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * Pre-transform that changes deprecated hspace and vspace attributes to CSS
+ */
+class HTMLPurifier_AttrTransform_ImgSpace extends HTMLPurifier_AttrTransform {
+
+ protected $attr;
+ protected $css = array(
+ 'hspace' => array('left', 'right'),
+ 'vspace' => array('top', 'bottom')
+ );
+
+ public function __construct($attr) {
+ $this->attr = $attr;
+ if (!isset($this->css[$attr])) {
+ trigger_error(htmlspecialchars($attr) . ' is not valid space attribute');
+ }
+ }
+
+ public function transform($attr, $config, $context) {
+
+ if (!isset($attr[$this->attr])) return $attr;
+
+ $width = $this->confiscateAttr($attr, $this->attr);
+ // some validation could happen here
+
+ if (!isset($this->css[$this->attr])) return $attr;
+
+ $style = '';
+ foreach ($this->css[$this->attr] as $suffix) {
+ $property = "margin-$suffix";
+ $style .= "$property:{$width}px;";
+ }
+
+ $this->prependCSS($attr, $style);
+
+ return $attr;
+
+ }
+
+}
+
+// vim: et sw=4 sts=4