aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/extras
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/extras')
-rw-r--r--lib/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php86
-rw-r--r--lib/htmlpurifier/extras/FSTools.php157
-rw-r--r--lib/htmlpurifier/extras/FSTools/File.php126
-rw-r--r--lib/htmlpurifier/extras/HTMLPurifierExtras.auto.php11
-rw-r--r--lib/htmlpurifier/extras/HTMLPurifierExtras.autoload.php25
-rw-r--r--lib/htmlpurifier/extras/HTMLPurifierExtras.php29
-rw-r--r--lib/htmlpurifier/extras/README32
7 files changed, 0 insertions, 466 deletions
diff --git a/lib/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php b/lib/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php
deleted file mode 100644
index f7095285b..000000000
--- a/lib/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-
-/**
- * Decorator/extender XSLT processor specifically for HTML documents.
- */
-class ConfigDoc_HTMLXSLTProcessor
-{
-
- /**
- * Instance of XSLTProcessor
- */
- protected $xsltProcessor;
-
- public function __construct($proc = false) {
- if ($proc === false) $proc = new XSLTProcessor();
- $this->xsltProcessor = $proc;
- }
-
- /**
- * @note Allows a string $xsl filename to be passed
- */
- public function importStylesheet($xsl) {
- if (is_string($xsl)) {
- $xsl_file = $xsl;
- $xsl = new DOMDocument();
- $xsl->load($xsl_file);
- }
- return $this->xsltProcessor->importStylesheet($xsl);
- }
-
- /**
- * Transforms an XML file into compatible XHTML based on the stylesheet
- * @param $xml XML DOM tree, or string filename
- * @return string HTML output
- * @todo Rename to transformToXHTML, as transformToHTML is misleading
- */
- public function transformToHTML($xml) {
- if (is_string($xml)) {
- $dom = new DOMDocument();
- $dom->load($xml);
- } else {
- $dom = $xml;
- }
- $out = $this->xsltProcessor->transformToXML($dom);
-
- // fudges for HTML backwards compatibility
- // assumes that document is XHTML
- $out = str_replace('/>', ' />', $out); // <br /> not <br/>
- $out = str_replace(' xmlns=""', '', $out); // rm unnecessary xmlns
-
- if (class_exists('Tidy')) {
- // cleanup output
- $config = array(
- 'indent' => true,
- 'output-xhtml' => true,
- 'wrap' => 80
- );
- $tidy = new Tidy;
- $tidy->parseString($out, $config, 'utf8');
- $tidy->cleanRepair();
- $out = (string) $tidy;
- }
-
- return $out;
- }
-
- /**
- * Bulk sets parameters for the XSL stylesheet
- * @param array $options Associative array of options to set
- */
- public function setParameters($options) {
- foreach ($options as $name => $value) {
- $this->xsltProcessor->setParameter('', $name, $value);
- }
- }
-
- /**
- * Forward any other calls to the XSLT processor
- */
- public function __call($name, $arguments) {
- call_user_func_array(array($this->xsltProcessor, $name), $arguments);
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/extras/FSTools.php b/lib/htmlpurifier/extras/FSTools.php
deleted file mode 100644
index 17c35ee6d..000000000
--- a/lib/htmlpurifier/extras/FSTools.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-
-/**
- * Filesystem tools not provided by default; can recursively create, copy
- * and delete folders. Some template methods are provided for extensibility.
- *
- * @note This class must be instantiated to be used, although it does
- * not maintain state.
- */
-class FSTools
-{
-
- private static $singleton;
-
- /**
- * Returns a global instance of FSTools
- */
- static public function singleton() {
- if (empty(FSTools::$singleton)) FSTools::$singleton = new FSTools();
- return FSTools::$singleton;
- }
-
- /**
- * Sets our global singleton to something else; useful for overloading
- * functions.
- */
- static public function setSingleton($singleton) {
- FSTools::$singleton = $singleton;
- }
-
- /**
- * Recursively creates a directory
- * @param string $folder Name of folder to create
- * @note Adapted from the PHP manual comment 76612
- */
- public function mkdirr($folder) {
- $folders = preg_split("#[\\\\/]#", $folder);
- $base = '';
- for($i = 0, $c = count($folders); $i < $c; $i++) {
- if(empty($folders[$i])) {
- if (!$i) {
- // special case for root level
- $base .= DIRECTORY_SEPARATOR;
- }
- continue;
- }
- $base .= $folders[$i];
- if(!is_dir($base)){
- $this->mkdir($base);
- }
- $base .= DIRECTORY_SEPARATOR;
- }
- }
-
- /**
- * Copy a file, or recursively copy a folder and its contents; modified
- * so that copied files, if PHP, have includes removed
- * @note Adapted from http://aidanlister.com/repos/v/function.copyr.php
- */
- public function copyr($source, $dest) {
- // Simple copy for a file
- if (is_file($source)) {
- return $this->copy($source, $dest);
- }
- // Make destination directory
- if (!is_dir($dest)) {
- $this->mkdir($dest);
- }
- // Loop through the folder
- $dir = $this->dir($source);
- while ( false !== ($entry = $dir->read()) ) {
- // Skip pointers
- if ($entry == '.' || $entry == '..') {
- continue;
- }
- if (!$this->copyable($entry)) {
- continue;
- }
- // Deep copy directories
- if ($dest !== "$source/$entry") {
- $this->copyr("$source/$entry", "$dest/$entry");
- }
- }
- // Clean up
- $dir->close();
- return true;
- }
-
- /**
- * Overloadable function that tests a filename for copyability. By
- * default, everything should be copied; you can restrict things to
- * ignore hidden files, unreadable files, etc. This function
- * applies to copyr().
- */
- public function copyable($file) {
- return true;
- }
-
- /**
- * Delete a file, or a folder and its contents
- * @note Adapted from http://aidanlister.com/repos/v/function.rmdirr.php
- */
- public function rmdirr($dirname)
- {
- // Sanity check
- if (!$this->file_exists($dirname)) {
- return false;
- }
-
- // Simple delete for a file
- if ($this->is_file($dirname) || $this->is_link($dirname)) {
- return $this->unlink($dirname);
- }
-
- // Loop through the folder
- $dir = $this->dir($dirname);
- while (false !== $entry = $dir->read()) {
- // Skip pointers
- if ($entry == '.' || $entry == '..') {
- continue;
- }
- // Recurse
- $this->rmdirr($dirname . DIRECTORY_SEPARATOR . $entry);
- }
-
- // Clean up
- $dir->close();
- return $this->rmdir($dirname);
- }
-
- /**
- * Recursively globs a directory.
- */
- public function globr($dir, $pattern, $flags = NULL) {
- $files = $this->glob("$dir/$pattern", $flags);
- if ($files === false) $files = array();
- $sub_dirs = $this->glob("$dir/*", GLOB_ONLYDIR);
- if ($sub_dirs === false) $sub_dirs = array();
- foreach ($sub_dirs as $sub_dir) {
- $sub_files = $this->globr($sub_dir, $pattern, $flags);
- $files = array_merge($files, $sub_files);
- }
- return $files;
- }
-
- /**
- * Allows for PHP functions to be called and be stubbed.
- * @warning This function will not work for functions that need
- * to pass references; manually define a stub function for those.
- */
- public function __call($name, $args) {
- return call_user_func_array($name, $args);
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/extras/FSTools/File.php b/lib/htmlpurifier/extras/FSTools/File.php
deleted file mode 100644
index 1c76705d6..000000000
--- a/lib/htmlpurifier/extras/FSTools/File.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/**
- * Represents a file in the filesystem
- *
- * @warning Be sure to distinguish between get() and write() versus
- * read() and put(), the former operates on the entire file, while
- * the latter operates on a handle.
- */
-class FSTools_File
-{
-
- /** Filename of file this object represents */
- protected $name;
-
- /** Handle for the file */
- protected $handle = false;
-
- /** Instance of FSTools for interfacing with filesystem */
- protected $fs;
-
- /**
- * Filename of file you wish to instantiate.
- * @note This file need not exist
- */
- public function __construct($name, $fs = false) {
- $this->name = $name;
- $this->fs = $fs ? $fs : FSTools::singleton();
- }
-
- /** Returns the filename of the file. */
- public function getName() {return $this->name;}
-
- /** Returns directory of the file without trailing slash */
- public function getDirectory() {return $this->fs->dirname($this->name);}
-
- /**
- * Retrieves the contents of a file
- * @todo Throw an exception if file doesn't exist
- */
- public function get() {
- return $this->fs->file_get_contents($this->name);
- }
-
- /** Writes contents to a file, creates new file if necessary */
- public function write($contents) {
- return $this->fs->file_put_contents($this->name, $contents);
- }
-
- /** Deletes the file */
- public function delete() {
- return $this->fs->unlink($this->name);
- }
-
- /** Returns true if file exists and is a file. */
- public function exists() {
- return $this->fs->is_file($this->name);
- }
-
- /** Returns last file modification time */
- public function getMTime() {
- return $this->fs->filemtime($this->name);
- }
-
- /**
- * Chmod a file
- * @note We ignore errors because of some weird owner trickery due
- * to SVN duality
- */
- public function chmod($octal_code) {
- return @$this->fs->chmod($this->name, $octal_code);
- }
-
- /** Opens file's handle */
- public function open($mode) {
- if ($this->handle) $this->close();
- $this->handle = $this->fs->fopen($this->name, $mode);
- return true;
- }
-
- /** Closes file's handle */
- public function close() {
- if (!$this->handle) return false;
- $status = $this->fs->fclose($this->handle);
- $this->handle = false;
- return $status;
- }
-
- /** Retrieves a line from an open file, with optional max length $length */
- public function getLine($length = null) {
- if (!$this->handle) $this->open('r');
- if ($length === null) return $this->fs->fgets($this->handle);
- else return $this->fs->fgets($this->handle, $length);
- }
-
- /** Retrieves a character from an open file */
- public function getChar() {
- if (!$this->handle) $this->open('r');
- return $this->fs->fgetc($this->handle);
- }
-
- /** Retrieves an $length bytes of data from an open data */
- public function read($length) {
- if (!$this->handle) $this->open('r');
- return $this->fs->fread($this->handle, $length);
- }
-
- /** Writes to an open file */
- public function put($string) {
- if (!$this->handle) $this->open('a');
- return $this->fs->fwrite($this->handle, $string);
- }
-
- /** Returns TRUE if the end of the file has been reached */
- public function eof() {
- if (!$this->handle) return true;
- return $this->fs->feof($this->handle);
- }
-
- public function __destruct() {
- if ($this->handle) $this->close();
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/extras/HTMLPurifierExtras.auto.php b/lib/htmlpurifier/extras/HTMLPurifierExtras.auto.php
deleted file mode 100644
index 4016d8afd..000000000
--- a/lib/htmlpurifier/extras/HTMLPurifierExtras.auto.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * This is a stub include that automatically configures the include path.
- */
-
-set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path() );
-require_once 'HTMLPurifierExtras.php';
-require_once 'HTMLPurifierExtras.autoload.php';
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/extras/HTMLPurifierExtras.autoload.php b/lib/htmlpurifier/extras/HTMLPurifierExtras.autoload.php
deleted file mode 100644
index 4285d62d1..000000000
--- a/lib/htmlpurifier/extras/HTMLPurifierExtras.autoload.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @file
- * Convenience file that registers autoload handler for HTML Purifier.
- *
- * @warning
- * This autoloader does not contain the compatibility code seen in
- * HTMLPurifier_Bootstrap; the user is expected to make any necessary
- * changes to use this library.
- */
-
-if (function_exists('spl_autoload_register')) {
- spl_autoload_register(array('HTMLPurifierExtras', 'autoload'));
- if (function_exists('__autoload')) {
- // Be polite and ensure that userland autoload gets retained
- spl_autoload_register('__autoload');
- }
-} elseif (!function_exists('__autoload')) {
- function __autoload($class) {
- return HTMLPurifierExtras::autoload($class);
- }
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/extras/HTMLPurifierExtras.php b/lib/htmlpurifier/extras/HTMLPurifierExtras.php
deleted file mode 100644
index 2a0c4d12d..000000000
--- a/lib/htmlpurifier/extras/HTMLPurifierExtras.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * Meta-class for HTML Purifier's extra class hierarchies, similar to
- * HTMLPurifier_Bootstrap.
- */
-class HTMLPurifierExtras
-{
-
- public static function autoload($class) {
- $path = HTMLPurifierExtras::getPath($class);
- if (!$path) return false;
- require $path;
- return true;
- }
-
- public static function getPath($class) {
- if (
- strncmp('FSTools', $class, 7) !== 0 &&
- strncmp('ConfigDoc', $class, 9) !== 0
- ) return false;
- // Custom implementations can go here
- // Standard implementation:
- return str_replace('_', '/', $class) . '.php';
- }
-
-}
-
-// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/extras/README b/lib/htmlpurifier/extras/README
deleted file mode 100644
index 4bfece79e..000000000
--- a/lib/htmlpurifier/extras/README
+++ /dev/null
@@ -1,32 +0,0 @@
-
-HTML Purifier Extras
- The Method Behind The Madness!
-
-The extras/ folder in HTML Purifier contains--you guessed it--extra things
-for HTML Purifier. Specifically, these are two extra libraries called
-FSTools and ConfigSchema. They're extra for a reason: you don't need them
-if you're using HTML Purifier for normal usage: filtering HTML. However,
-if you're a developer, and would like to test HTML Purifier, or need to
-use one of HTML Purifier's maintenance scripts, chances are they'll need
-these libraries. Who knows: maybe you'll find them useful too!
-
-Here are the libraries:
-
-
-FSTools
--------
-
-Short for File System Tools, this is a poor-man's object-oriented wrapper for
-the filesystem. It currently consists of two classes:
-
-- FSTools: This is a singleton that contains a manner of useful functions
- such as recursive glob, directory removal, etc, as well as the ability
- to call arbitrary native PHP functions through it like $FS->fopen(...).
- This makes it a lot simpler to mock these filesystem calls for unit testing.
-
-- FSTools_File: This object represents a single file, and has almost any
- method imaginable one would need.
-
-Check the files themselves for more information.
-
- vim: et sw=4 sts=4