[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/libraries/htmlpurifier/library/HTMLPurifier/ChildDef/ -> Chameleon.php (source)

   1  <?php
   2  
   3  /**
   4   * Definition that uses different definitions depending on context.
   5   *
   6   * The del and ins tags are notable because they allow different types of
   7   * elements depending on whether or not they're in a block or inline context.
   8   * Chameleon allows this behavior to happen by using two different
   9   * definitions depending on context.  While this somewhat generalized,
  10   * it is specifically intended for those two tags.
  11   */
  12  class HTMLPurifier_ChildDef_Chameleon extends HTMLPurifier_ChildDef
  13  {
  14  
  15      /**
  16       * Instance of the definition object to use when inline. Usually stricter.
  17       */
  18      public $inline;
  19  
  20      /**
  21       * Instance of the definition object to use when block.
  22       */
  23      public $block;
  24  
  25      public $type = 'chameleon';
  26  
  27      /**
  28       * @param $inline List of elements to allow when inline.
  29       * @param $block List of elements to allow when block.
  30       */
  31      public function __construct($inline, $block) {
  32          $this->inline = new HTMLPurifier_ChildDef_Optional($inline);
  33          $this->block  = new HTMLPurifier_ChildDef_Optional($block);
  34          $this->elements = $this->block->elements;
  35      }
  36  
  37      public function validateChildren($tokens_of_children, $config, $context) {
  38          if ($context->get('IsInline') === false) {
  39              return $this->block->validateChildren(
  40                  $tokens_of_children, $config, $context);
  41          } else {
  42              return $this->inline->validateChildren(
  43                  $tokens_of_children, $config, $context);
  44          }
  45      }
  46  }
  47  
  48  // vim: et sw=4 sts=4


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