[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/libraries/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ -> Length.php (source)

   1  <?php
   2  
   3  /**
   4   * Represents a Length as defined by CSS.
   5   */
   6  class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef
   7  {
   8  
   9      protected $min, $max;
  10  
  11      /**
  12       * @param HTMLPurifier_Length $max Minimum length, or null for no bound. String is also acceptable.
  13       * @param HTMLPurifier_Length $max Maximum length, or null for no bound. String is also acceptable.
  14       */
  15      public function __construct($min = null, $max = null) {
  16          $this->min = $min !== null ? HTMLPurifier_Length::make($min) : null;
  17          $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null;
  18      }
  19  
  20      public function validate($string, $config, $context) {
  21          $string = $this->parseCDATA($string);
  22  
  23          // Optimizations
  24          if ($string === '') return false;
  25          if ($string === '0') return '0';
  26          if (strlen($string) === 1) return false;
  27  
  28          $length = HTMLPurifier_Length::make($string);
  29          if (!$length->isValid()) return false;
  30  
  31          if ($this->min) {
  32              $c = $length->compareTo($this->min);
  33              if ($c === false) return false;
  34              if ($c < 0) return false;
  35          }
  36          if ($this->max) {
  37              $c = $length->compareTo($this->max);
  38              if ($c === false) return false;
  39              if ($c > 0) return false;
  40          }
  41  
  42          return $length->toString();
  43      }
  44  
  45  }
  46  
  47  // vim: et sw=4 sts=4


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1