|
-
- MODx Plugin
-
- MODx <http://www.modxcms.com/> is an open source PHP application framework.
- I first came across them in my referrer logs when tillda asked if anyone
- could implement an HTML Purifier plugin. This forum thread
- <http://modxcms.com/forums/index.php/topic,6604.0.html> eventually resulted
- in the fruition of this plugin that davidm says, "is on top of my favorite
- list." HTML Purifier goes great with WYSIWYG editors!
-
-
-
- 1. Credits
-
- PaulGregory wrote the overall structure of the code. I added the
- slashes hack.
-
-
-
- 2. Install
-
- First, you need to place HTML Purifier library somewhere. The code here
- assumes that you've placed in MODx's assets/plugins/htmlpurifier (no version
- number).
-
- Log into the manager, and navigate:
-
- Resources > Manage Resources > Plugins tab > New Plugin
-
- Type in a name (probably HTML Purifier), and copy paste this code into the
- textarea:
-
- --------------------------------------------------------------------------------
- $e = &$modx->Event;
- if ($e->name == 'OnBeforeDocFormSave') {
- global $content;
-
- include_once '../assets/plugins/htmlpurifier/library/HTMLPurifier.auto.php';
- $purifier = new HTMLPurifier();
-
- static $magic_quotes = null;
- if ($magic_quotes === null) {
- // this is an ugly hack because this hook hasn't
- // had the backslashes removed yet when magic_quotes_gpc is on,
- // but HTMLPurifier must not have the quotes slashed.
- $magic_quotes = get_magic_quotes_gpc();
- }
-
- if ($magic_quotes) $content = stripslashes($content);
- $content = $purifier->purify($content);
- if ($magic_quotes) $content = addslashes($content);
- }
- --------------------------------------------------------------------------------
-
- Then navigate to the System Events tab and check "OnBeforeDocFormSave".
- Save the plugin. HTML Purifier now is integrated!
-
-
-
- 3. Making sure it works
-
- You can test HTML Purifier by deliberately putting in crappy HTML and seeing
- whether or not it gets fixed. A better way is to put in something like this:
-
- <p lang="fr">Il est bon</p>
-
- ...and seeing whether or not the content comes out as:
-
- <p lang="fr" xml:lang="fr">Il est bon</p>
-
- (lang to xml:lang synchronization is one of the many features HTML Purifier
- has).
-
-
-
- 4. Caveat Emptor
-
- This code does not intercept save requests from the QuickEdit plugin, this may
- be added in a later version. It also modifies things on save, so there's a
- slight chance that HTML Purifier may make a boo-boo and accidently mess things
- up (the original version is not saved).
-
- Finally, make sure that MODx is using UTF-8. If you are using, say, a French
- localisation, you may be using Latin-1, if that's the case, configure
- HTML Purifier properly like this:
-
- $config = HTMLPurifier_Config::createDefault();
- $config->set('Core', 'Encoding', 'ISO-8859-1'); // or whatever encoding
- $purifier = new HTMLPurifier($config);
-
-
-
- 5. Known Bugs
-
- 'rn' characters sometimes mysteriously appear after purification. We are
- currently investigating this issue. See: <http://htmlpurifier.org/phorum/read.php?3,1866>
-
-
-
- 6. See Also
-
- A modified version of Jot 1.1.3 is available, which integrates with HTML
- Purifier. You can check it out here: <http://modxcms.com/forums/index.php/topic,25621.msg161970.html>
-
-
- X. Changelog
-
- 2008-06-16
- - Updated code to work with 3.1.0 and later
- - Add Known Bugs and See Also section
-
- vim: et sw=4 sts=4
|