root/afridex/plugins/Flutter/purifier_lib/HTMLPurifier/AttrDef/CSS/Border.php

Revision 21, 1.3 kB (checked in by admin, 18 years ago)
Line 
1<?php
2
3/**
4 * Validates the border property as defined by CSS.
5 */
6class HTMLPurifier_AttrDef_CSS_Border extends HTMLPurifier_AttrDef
7{
8   
9    /**
10     * Local copy of properties this property is shorthand for.
11     */
12    protected $info = array();
13   
14    public function __construct($config) {
15        $def = $config->getCSSDefinition();
16        $this->info['border-width'] = $def->info['border-width'];
17        $this->info['border-style'] = $def->info['border-style'];
18        $this->info['border-top-color'] = $def->info['border-top-color'];
19    }
20   
21    public function validate($string, $config, $context) {
22        $string = $this->parseCDATA($string);
23        $string = $this->mungeRgb($string);
24        $bits = explode(' ', $string);
25        $done = array(); // segments we've finished
26        $ret = ''; // return value
27        foreach ($bits as $bit) {
28            foreach ($this->info as $propname => $validator) {
29                if (isset($done[$propname])) continue;
30                $r = $validator->validate($bit, $config, $context);
31                if ($r !== false) {
32                    $ret .= $r . ' ';
33                    $done[$propname] = true;
34                    break;
35                }
36            }
37        }
38        return rtrim($ret);
39    }
40   
41}
42
Note: See TracBrowser for help on using the browser.