0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-09-18 18:25:18 +00:00

[3.1.1] construct() to setup() in HTMLModules

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1760 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
Edward Z. Yang 2008-05-22 04:34:19 +00:00
parent 80f59206d7
commit 8d0d0d1a03
6 changed files with 22 additions and 10 deletions

3
NEWS
View File

@ -23,6 +23,9 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
to __construct($min, $max). __construct(true) is equivalent to
__construct('0').
. Added HTMLPurifier_AttrDef_Switch class
. Rename HTMLPurifier_HTMLModule_Tidy->construct() to setup(), and bubble
up inheritance hierarchy to HTMLPurifier_HTMLModule. All HTMLModules
get this called with the configuration object.
3.1.0, released 2008-05-18
# Unnecessary references to objects (vestiges of PHP4) removed from method

1
TODO
View File

@ -15,6 +15,7 @@ afraid to cast your vote for the next feature to be implemented!
two separate directives due to our architecture.)
- Investigate how early internal structures can be accessed; this would
prevent structures from being parsed and serialized multiple times.
- Figure out how to simultaneously set %CSS.Trusted and %HTML.Trusted (?)
FUTURE VERSIONS
---------------

View File

@ -222,5 +222,14 @@ class HTMLPurifier_HTMLModule
}
return $ret;
}
/**
* Lazy load construction of the module after determining whether
* or not it's needed, and also when a finalized configuration object
* is available.
* @param $config Instance of HTMLPurifier_Config
*/
public function setup($config) {}
}

View File

@ -35,7 +35,7 @@ class HTMLPurifier_HTMLModule_Tidy extends HTMLPurifier_HTMLModule
* @todo Wildcard matching and error reporting when an added or
* subtracted fix has no effect.
*/
public function construct($config) {
public function setup($config) {
// create fixes, initialize fixesForLevel
$fixes = $this->makeFixes();

View File

@ -223,13 +223,12 @@ class HTMLPurifier_HTMLModuleManager
foreach ($modules as $module) {
$this->processModule($module);
$this->modules[$module]->setup($config);
}
foreach ($this->doctype->tidyModules as $module) {
$this->processModule($module);
if (method_exists($this->modules[$module], 'construct')) {
$this->modules[$module]->construct($config);
}
$this->modules[$module]->setup($config);
}
// setup lookup table based on all valid modules

View File

@ -38,7 +38,7 @@ class HTMLPurifier_HTMLModule_TidyTest extends HTMLPurifier_Harness
}
function test_construct() {
function test_setup() {
$i = 0; // counter, helps us isolate expectations
@ -63,7 +63,7 @@ class HTMLPurifier_HTMLModule_TidyTest extends HTMLPurifier_Harness
'HTML.TidyLevel' => 'none'
));
$module->expectAt($i++, 'populate', array(array()));
$module->construct($config);
$module->setup($config);
// basic levels
@ -74,7 +74,7 @@ class HTMLPurifier_HTMLModule_TidyTest extends HTMLPurifier_Harness
'light-fix-1' => $lf1,
'light-fix-2' => $lf2
)));
$module->construct($config);
$module->setup($config);
$config = HTMLPurifier_Config::create(array(
'HTML.TidyLevel' => 'heavy'
@ -87,7 +87,7 @@ class HTMLPurifier_HTMLModule_TidyTest extends HTMLPurifier_Harness
'heavy-fix-1' => $hf1,
'heavy-fix-2' => $hf2
)));
$module->construct($config);
$module->setup($config);
// fine grained tuning
@ -99,7 +99,7 @@ class HTMLPurifier_HTMLModule_TidyTest extends HTMLPurifier_Harness
'light-fix-1' => $lf1,
'medium-fix-1' => $mf1
)));
$module->construct($config);
$module->setup($config);
$config = HTMLPurifier_Config::create(array(
'HTML.TidyLevel' => 'medium',
@ -109,7 +109,7 @@ class HTMLPurifier_HTMLModule_TidyTest extends HTMLPurifier_Harness
'light-fix-2' => $lf2,
'medium-fix-2' => $mf2
)));
$module->construct($config);
$module->setup($config);
}