verifyPermission( 'p_admin' ); $htmlPurifier = [ 'htmlpure_escape_bad' => [ 'label' => 'Escape invalid HTML', 'note' => ' Escapes invlid HTML as text. Otherwise invalid HTML is silently dropped. See this and this for more information.', 'default' => 'y', ], 'htmlpure_disable_extern' => [ 'label' => 'Disable External Links', 'note' => 'Disables links to external websites which is effective against spam. See this for more information.', 'default' => 'n', ], 'htmlpure_disable_extern_res' => [ 'label' => 'Disable External Resounces', 'note' => 'Disables the embedding of external resource like images from other hosts. See this for more information.', 'default' => 'y', ], 'htmlpure_disable_res' => [ 'label' => 'Disable All Resources', 'note' => 'Disables the embedding of all resources preventing users from including pictures at all. See this for more information.', 'default' => 'n', ], 'htmlpure_disable_uri' => [ 'label' => 'Disable all URIs', 'note' => 'Disables all URIs in all forms within submitted content. See this for more information.', 'default' => 'n', ], 'htmlpure_use_redirect' => [ 'label' => 'Use Redirect', 'note' => 'Uses the redirect service in the Redirect URI. This can be handy to track clicks out and prevent leacks of PageRank. See this for more information.', 'default' => 'n', ], 'htmlpure_strict_html' => [ 'label' => 'Force Strict', 'note' => 'Determines if the purification matches the Transitional or Strict rule sets. See this for more information.', 'default' => 'y', ], 'htmlpure_xhtml' => [ 'label' => 'Force XHTML', 'note' => 'Determine if purification forces only XHTML tags or if it allows standard HTML.', 'default' => 'y', ], // TODO: We should parse the plugins directory to generate these // so that new plugins just have to be dropped in the dir and turned on. 'htmlpure_allow_youtube' => [ 'label' => 'Allow YouTube', 'note' => 'Allow YouTube videos to be passed through.', 'default' => 'n', ], 'htmlpure_allow_cnbc' => [ 'label' => 'Allow CNBC', 'note' => 'Allow CNBC videos to be passed through.', 'default' => 'n', ], 'htmlpure_force_nofollow' => [ 'label' => 'Force No Follow', 'note' => 'Force all anchor tags to have rel=nofollow in them. Many search engines respect this in order to give sites a way to try to avoid link spammers.', 'default' => 'y', ], ]; $gBitSmarty->assign( 'htmlPurifier', $htmlPurifier ); if( !empty( $_REQUEST['apply'] )) { $formFeatures = array_merge( $htmlPurifier ); foreach( $formFeatures as $item => $data ) { simple_set_toggle( $item, LIBERTY_PKG_NAME ); } $errors = []; if( !empty($_REQUEST['blacklisted_html_tags'] )) { $tags = preg_replace( '/\s/', '', $_REQUEST['blacklisted_html_tags'] ); if( strlen( $tags ) > 250 ) { $tags = substr( $tags, 0, 250 ); $errors['blacklist'] = 'The blacklisted tags list has been shortened. You can only have 250 characters for blacklisted tags.'; } $gBitSystem->storeConfig('blacklisted_html_tags', $tags , LIBERTY_PKG_NAME ); } $gBitSmarty->assign($errors); } $gBitSystem->display( 'bitpackage:liberty/plugins/filter_htmlpurifier_admin.tpl', 'HTML Purifier' , [ 'display_mode' => 'admin' ]);