| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- <?php
 
- /**
 
-  * Validates the HTML type length (not to be confused with CSS's length).
 
-  *
 
-  * This accepts integer pixels or percentages as lengths for certain
 
-  * HTML attributes.
 
-  */
 
- class HTMLPurifier_AttrDef_HTML_Length extends HTMLPurifier_AttrDef_HTML_Pixels
 
- {
 
-     /**
 
-      * @param string $string
 
-      * @param HTMLPurifier_Config $config
 
-      * @param HTMLPurifier_Context $context
 
-      * @return bool|string
 
-      */
 
-     public function validate($string, $config, $context)
 
-     {
 
-         $string = trim($string);
 
-         if ($string === '') {
 
-             return false;
 
-         }
 
-         $parent_result = parent::validate($string, $config, $context);
 
-         if ($parent_result !== false) {
 
-             return $parent_result;
 
-         }
 
-         $length = strlen($string);
 
-         $last_char = $string[$length - 1];
 
-         if ($last_char !== '%') {
 
-             return false;
 
-         }
 
-         $points = substr($string, 0, $length - 1);
 
-         if (!is_numeric($points)) {
 
-             return false;
 
-         }
 
-         $points = (int)$points;
 
-         if ($points < 0) {
 
-             return '0%';
 
-         }
 
-         if ($points > 100) {
 
-             return '100%';
 
-         }
 
-         return ((string)$points) . '%';
 
-     }
 
- }
 
- // vim: et sw=4 sts=4
 
 
  |