function phorum_htmlpurifier_show_form() { if (phorum_htmlpurifier_config_file_exists()) { phorum_htmlpurifier_show_config_info(); return; } global $PHORUM; $config = phorum_htmlpurifier_get_config(); $frm = new PhorumInputForm("", "post", "Save"); $frm->hidden("module", "modsettings"); $frm->hidden("mod", "htmlpurifier"); // this is the directory name that the Settings file lives in if (!empty($error)) { echo "{$error}<br />"; } $frm->addbreak("Edit settings for the HTML Purifier module"); $frm->addMessage('<p>The box below sets <code>$PHORUM[\'mod_htmlpurifier\'][\'wysiwyg\']</code>. When checked, contents sent for edit are now purified and the informative message is disabled. If your WYSIWYG editor is disabled for admin edits, you can safely keep this unchecked.</p>'); $frm->addRow('Use WYSIWYG?', $frm->checkbox('wysiwyg', '1', '', $PHORUM['mod_htmlpurifier']['wysiwyg'])); $frm->addMessage('<p>The box below sets <code>$PHORUM[\'mod_htmlpurifier\'][\'suppress_message\']</code>, which removes the big how-to use HTML Purifier message.</p>'); $frm->addRow('Suppress information?', $frm->checkbox('suppress_message', '1', '', $PHORUM['mod_htmlpurifier']['suppress_message'])); $frm->addMessage('<p>Click on directive links to read what each option does (links do not open in new windows).</p> <p>For more flexibility (for instance, you want to edit the full range of configuration directives), you can create a <tt>config.php</tt> file in your <tt>mods/htmlpurifier/</tt> directory. Doing so will, however, make the web configuration interface unavailable.</p>'); require_once 'HTMLPurifier/Printer/ConfigForm.php'; $htmlpurifier_form = new HTMLPurifier_Printer_ConfigForm('config', 'http://htmlpurifier.org/live/configdoc/plain.html#%s'); $htmlpurifier_form->setTextareaDimensions(23, 7); // widen a little, since we have space $frm->addMessage($htmlpurifier_form->render($config, $PHORUM['mod_htmlpurifier']['directives'], false)); $frm->addMessage("<strong>Warning: Changing HTML Purifier's configuration will invalidate\r\n the cache. Expect to see a flurry of database activity after you change\r\n any of these settings.</strong>"); $frm->addrow('Reset to defaults:', $frm->checkbox("reset", "1", "", false)); // hack to include extra styling echo '<style type="text/css">' . $htmlpurifier_form->getCSS() . ' .hp-config {margin-left:auto;margin-right:auto;} </style>'; $js = $htmlpurifier_form->getJavaScript(); echo '<script type="text/javascript">' . "<!--\n{$js}\n//-->" . '</script>'; $frm->show(); }
function phorum_htmlpurifier_save_settings() { global $PHORUM; if (phorum_htmlpurifier_config_file_exists()) { echo "Cannot update settings, <code>mods/htmlpurifier/config.php</code> already exists. To change\r\n settings, edit that file. To use the web form, delete that file.<br />"; } else { $config = phorum_htmlpurifier_get_config(); if (!isset($_POST['reset'])) { $config->mergeArrayFromForm($_POST, 'config', $PHORUM['mod_htmlpurifier']['directives']); } $PHORUM['mod_htmlpurifier']['config'] = $config->getAll(); if (!phorum_htmlpurifier_commit_settings()) { $error = "Database error while updating settings."; } else { echo "Settings Updated<br />"; } } }
/** * Ensure that our format hook is processed last. Also, loads the library. * @credits <http://secretsauce.phorum.org/snippets/make_bbcode_last_formatter.php.txt> */ function phorum_htmlpurifier_common() { require_once dirname(__FILE__) . '/htmlpurifier/HTMLPurifier.auto.php'; require dirname(__FILE__) . '/init-config.php'; $config = phorum_htmlpurifier_get_config(); HTMLPurifier::getInstance($config); // increment revision.txt if you want to invalidate the cache $GLOBALS['PHORUM']['mod_htmlpurifier']['body_cache_serial'] = $config->getSerial(); // load migration if (file_exists(dirname(__FILE__) . '/migrate.php')) { include dirname(__FILE__) . '/migrate.php'; } else { echo '<strong>Error:</strong> No migration path specified for HTML Purifier, please check <tt>modes/htmlpurifier/migrate.bbcode.php</tt> for instructions on how to migrate from your previous markup language.'; exit; } if (!function_exists('phorum_htmlpurifier_migrate')) { // Dummy function function phorum_htmlpurifier_migrate($data) { return $data; } } }