[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/includes/library/HTMLPurifier/AttrDef/CSS/ -> Percentage.php (source)

   1  <?php
   2  
   3  /**
   4   * Validates a Percentage as defined by the CSS spec.
   5   */
   6  class HTMLPurifier_AttrDef_CSS_Percentage extends HTMLPurifier_AttrDef
   7  {
   8  
   9      /**
  10       * Instance to defer number validation to.
  11       * @type HTMLPurifier_AttrDef_CSS_Number
  12       */
  13      protected $number_def;
  14  
  15      /**
  16       * @param bool $non_negative Whether to forbid negative values
  17       */
  18      public function __construct($non_negative = false)
  19      {
  20          $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
  21      }
  22  
  23      /**
  24       * @param string $string
  25       * @param HTMLPurifier_Config $config
  26       * @param HTMLPurifier_Context $context
  27       * @return bool|string
  28       */
  29      public function validate($string, $config, $context)
  30      {
  31          $string = $this->parseCDATA($string);
  32  
  33          if ($string === '') {
  34              return false;
  35          }
  36          $length = strlen($string);
  37          if ($length === 1) {
  38              return false;
  39          }
  40          if ($string[$length - 1] !== '%') {
  41              return false;
  42          }
  43  
  44          $number = substr($string, 0, $length - 1);
  45          $number = $this->number_def->validate($number, $config, $context);
  46  
  47          if ($number === false) {
  48              return false;
  49          }
  50          return "$number%";
  51      }
  52  }
  53  
  54  // vim: et sw=4 sts=4


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1