Source for file URIDefinition.php

Documentation is available at URIDefinition.php

  1. <?php
  2.  
  3. {
  4.     
  5.     public $type = 'URI';
  6.     protected $filters = array();
  7.     protected $postFilters = array();
  8.     protected $registeredFilters = array();
  9.     
  10.     /**
  11.      * HTMLPurifier_URI object of the base specified at %URI.Base
  12.      */
  13.     public $base;
  14.     
  15.     /**
  16.      * String host to consider "home" base, derived off of $base
  17.      */
  18.     public $host;
  19.     
  20.     /**
  21.      * Name of default scheme based on %URI.DefaultScheme and %URI.Base
  22.      */
  23.     public $defaultScheme;
  24.     
  25.     public function __construct({
  26.         $this->registerFilter(new HTMLPurifier_URIFilter_MakeAbsolute());
  27.         $this->registerFilter(new HTMLPurifier_URIFilter_Munge());
  28.     }
  29.     
  30.     public function registerFilter($filter{
  31.         $this->registeredFilters[$filter->name$filter;
  32.     }
  33.     
  34.     public function addFilter($filter$config{
  35.         $r $filter->prepare($config);
  36.         if ($r === falsereturn// null is ok, for backwards compat
  37.         if ($filter->post{
  38.             $this->postFilters[$filter->name$filter;
  39.         else {
  40.             $this->filters[$filter->name$filter;
  41.         }
  42.     }
  43.     
  44.     protected function doSetup($config{
  45.         $this->setupMemberVariables($config);
  46.         $this->setupFilters($config);
  47.     }
  48.     
  49.     protected function setupFilters($config{
  50.         foreach ($this->registeredFilters as $name => $filter{
  51.             $conf $config->get('URI'$name);
  52.             if ($conf !== false && $conf !== null{
  53.                 $this->addFilter($filter$config);
  54.             }
  55.         }
  56.         unset($this->registeredFilters);
  57.     }
  58.     
  59.     protected function setupMemberVariables($config{
  60.         $this->host = $config->get('URI''Host');
  61.         $base_uri $config->get('URI''Base');
  62.         if (!is_null($base_uri)) {
  63.             $parser new HTMLPurifier_URIParser();
  64.             $this->base = $parser->parse($base_uri);
  65.             $this->defaultScheme = $this->base->scheme;
  66.             if (is_null($this->host)) $this->host = $this->base->host;
  67.         }
  68.         if (is_null($this->defaultScheme)) $this->defaultScheme = $config->get('URI''DefaultScheme');
  69.     }
  70.     
  71.     public function filter(&$uri$config$context{
  72.         foreach ($this->filters as $name => $f{
  73.             $result $f->filter($uri$config$context);
  74.             if (!$resultreturn false;
  75.         }
  76.         return true;
  77.     }
  78.     
  79.     public function postFilter(&$uri$config$context{
  80.         foreach ($this->postFilters as $name => $f{
  81.             $result $f->filter($uri$config$context);
  82.             if (!$resultreturn false;
  83.         }
  84.         return true;
  85.     }
  86.     
  87. }

Documentation generated on Thu, 19 Jun 2008 18:50:29 -0400 by phpDocumentor 1.4.2