Exemplo n.º 1
0
 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'));
 }
Exemplo n.º 2
0
 /**
  * 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.
 }
Exemplo n.º 3
0
 public function hookInitialize()
 {
     $purifier = Omeka_Filter_HtmlPurifier::getHtmlPurifier();
     $purifier->config->set('Attr.EnableID', true);
 }