public function testSetHtmlPurifier() { $htmlPurifier = $this->_getHtmlPurifier(); Omeka_Filter_HtmlPurifier::setHtmlPurifier($htmlPurifier); $this->assertEquals($htmlPurifier, Omeka_Filter_HtmlPurifier::getHtmlPurifier()); $this->assertEquals($htmlPurifier, Zend_Registry::get('html_purifier')); $htmlPurifier = $this->_getHtmlPurifier(array('p', 'strong')); Omeka_Filter_HtmlPurifier::setHtmlPurifier($htmlPurifier); $this->assertEquals($htmlPurifier, Omeka_Filter_HtmlPurifier::getHtmlPurifier()); $this->assertEquals($htmlPurifier, Zend_Registry::get('html_purifier')); $htmlPurifier = $this->_getHtmlPurifier(null, array('*.class')); Omeka_Filter_HtmlPurifier::setHtmlPurifier($htmlPurifier); $this->assertEquals($htmlPurifier, Omeka_Filter_HtmlPurifier::getHtmlPurifier()); $this->assertEquals($htmlPurifier, Zend_Registry::get('html_purifier')); $htmlPurifier = $this->_getHtmlPurifier(array('p', 'strong'), array('*.class')); Omeka_Filter_HtmlPurifier::setHtmlPurifier($htmlPurifier); $this->assertEquals($htmlPurifier, Omeka_Filter_HtmlPurifier::getHtmlPurifier()); $this->assertEquals($htmlPurifier, Zend_Registry::get('html_purifier')); }
/** * Determine whether or not to filter form submissions for various controllers. * * @param Zend_Controller_Request_Abstract $request * @return void **/ public function preDispatch(Zend_Controller_Request_Abstract $request) { // Don't purify if the request is not a post if (!$request->isPost()) { return; } // Don't purify if the post is empty $post = $request->getPost(); if (empty($post)) { return; } // Don't purify if the purifier is not enabled if (get_option('html_purifier_is_enabled') != '1') { return; } // Don't purify if there is no purifier $htmlPurifierFilter = new Omeka_Filter_HtmlPurifier(); $purifier = Omeka_Filter_HtmlPurifier::getHtmlPurifier(); if (!$purifier) { return; } // To process the items form, implement a 'filterItemsForm' method if ($this->isFormSubmission($request)) { $controllerName = $request->getControllerName(); $filterMethodName = 'filter' . ucwords($controllerName) . 'Form'; if (method_exists($this, $filterMethodName)) { $this->{$filterMethodName}($request, $htmlPurifierFilter); } } // Let plugins hook into this to process form submissions in their own way. fire_plugin_hook('html_purifier_form_submission', array('purifier' => $purifier)); // No processing for users form, since it's already properly filtered by // User::filterPostData(). No processing for tags form, none of the tags // should be HTML. The only input on the tags form is the 'new_tag' // field on the edit page. No processing on the item-types form since // there are no HTML fields. }
public function hookInitialize() { $purifier = Omeka_Filter_HtmlPurifier::getHtmlPurifier(); $purifier->config->set('Attr.EnableID', true); }