| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							
- 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
 
 
  |