Viewing file: Ratio.php (1.2 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/** * Validates a ratio as defined by the CSS spec. */ class HTMLPurifier_AttrDef_CSS_Ratio extends HTMLPurifier_AttrDef { /** * @param string $ratio Ratio to validate * @param HTMLPurifier_Config $config Configuration options * @param HTMLPurifier_Context $context Context * * @return string|boolean * * @warning Some contexts do not pass $config, $context. These * variables should not be used without checking HTMLPurifier_Length */ public function validate($ratio, $config, $context) { $ratio = $this->parseCDATA($ratio);
$parts = explode('/', $ratio, 2); $length = count($parts);
if ($length < 1 || $length > 2) { return false; }
$num = new \HTMLPurifier_AttrDef_CSS_Number();
if ($length === 1) { return $num->validate($parts[0], $config, $context); }
$num1 = $num->validate($parts[0], $config, $context); $num2 = $num->validate($parts[1], $config, $context);
if ($num1 === false || $num2 === false) { return false; }
return $num1 . '/' . $num2; } }
// vim: et sw=4 sts=4
|