makeFromSerial() public static method

Unserializes the default ConfigSchema.
public static makeFromSerial ( ) : HTMLPurifier_ConfigSchema
return HTMLPurifier_ConfigSchema
コード例 #1
0
 /**
  * Retrieves an instance of the application-wide configuration definition.
  */
 public static function instance($prototype = null)
 {
     if ($prototype !== null) {
         HTMLPurifier_ConfigSchema::$singleton = $prototype;
     } elseif (HTMLPurifier_ConfigSchema::$singleton === null || $prototype === true) {
         HTMLPurifier_ConfigSchema::$singleton = HTMLPurifier_ConfigSchema::makeFromSerial();
     }
     return HTMLPurifier_ConfigSchema::$singleton;
 }
コード例 #2
0
 /**
  * @param  string|array|HTMLPurifier_Config $config
  * @param  HTMLPurifier_ConfigSchema $schema
  * @return HTMLPurifier_Config
  */
 public static function create($config = null, HTMLPurifier_ConfigSchema $schema = null)
 {
     if (!$schema instanceof HTMLPurifier_ConfigSchema) {
         $schema = HTMLPurifier_ConfigSchema::makeFromSerial();
     }
     if ($config instanceof HTMLPurifier_Config) {
         $configObj = $config;
     } else {
         $configObj = new HTMLPurifier_Config($schema);
         $configObj->set('Core.Encoding', 'UTF-8');
         $configObj->set('HTML.Doctype', 'HTML 4.01 Transitional');
         if (is_string($config)) {
             $configObj->loadIni($config);
         } elseif (is_array($config)) {
             $configObj->loadArray($config);
         }
     }
     $def = $configObj->getHTMLDefinition(true);
     // this finalizes config
     HTMLPurifier_HTML5Definition::setup($def);
     return $configObj;
 }
コード例 #3
0
 /**
  * use html purifier to remove 'bad' tags/attributes from html body
  *
  * @param string $_content
  * @param string $messageId
  * @return string
  */
 protected function _purifyBodyContent($_content, $messageId)
 {
     if (!defined('HTMLPURIFIER_PREFIX')) {
         define('HTMLPURIFIER_PREFIX', realpath(dirname(__FILE__) . '/../../library/HTMLPurifier'));
     }
     $config = Tinebase_Core::getConfig();
     $path = $config->caching && $config->caching->active && $config->caching->path ? $config->caching->path : Tinebase_Core::getTempDir();
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Purifying html body. (cache path: ' . $path . ')');
     }
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Current mem usage before purify: ' . memory_get_usage() / 1024 / 1024);
     }
     // add custom schema for passing message id to URIScheme
     $configSchema = HTMLPurifier_ConfigSchema::makeFromSerial();
     $configSchema->add('Felamimail.messageId', NULL, 'string', TRUE);
     $config = HTMLPurifier_Config::create(NULL, $configSchema);
     $config->set('HTML.DefinitionID', 'purify message body contents');
     $config->set('HTML.DefinitionRev', 1);
     // @see: http://htmlpurifier.org/live/configdoc/plain.html#Attr.EnableID
     $config->set('Attr.EnableID', TRUE);
     $config->set('Attr.IDPrefix', 'felamimail_inline_');
     // @see: http://htmlpurifier.org/live/configdoc/plain.html#HTML.TidyLevel
     $config->set('HTML.TidyLevel', 'heavy');
     // some config values to consider
     /*
     $config->set('Attr.EnableID', true);
     $config->set('Attr.ClassUseCDATA', true);
     $config->set('CSS.AllowTricky', true);
     */
     $config->set('Cache.SerializerPath', $path);
     $config->set('URI.AllowedSchemes', array('http' => true, 'https' => true, 'mailto' => true, 'data' => true, 'cid' => true));
     $config->set('Felamimail.messageId', $messageId);
     $this->_transformBodyTags($config);
     // add uri filter
     $uri = $config->getDefinition('URI');
     $uri->addFilter(new Felamimail_HTMLPurifier_URIFilter_TransformURI(), $config);
     // add cid uri scheme
     require_once dirname(dirname(__FILE__)) . '/HTMLPurifier/URIScheme/cid.php';
     $purifier = new HTMLPurifier($config);
     $content = $purifier->purify($_content);
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Current mem usage after purify: ' . memory_get_usage() / 1024 / 1024);
     }
     return $content;
 }
コード例 #4
0
<?php

chdir(dirname(__FILE__));
//require_once '../library/HTMLPurifier.path.php';
shell_exec('php ../maintenance/generate-schema-cache.php');
require_once '../library/HTMLPurifier.path.php';
require_once 'HTMLPurifier.includes.php';
$begin = xdebug_memory_usage();
$schema = HTMLPurifier_ConfigSchema::makeFromSerial();
echo xdebug_memory_usage() - $begin;
// vim: et sw=4 sts=4