本文整理汇总了PHP中PhorumInputForm::addhelp方法的典型用法代码示例。如果您正苦于以下问题:PHP PhorumInputForm::addhelp方法的具体用法?PHP PhorumInputForm::addhelp怎么用?PHP PhorumInputForm::addhelp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PhorumInputForm
的用法示例。
在下文中一共展示了PhorumInputForm::addhelp方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: PhorumInputForm
$smileydata = $PHORUM["mod_smileys"]["smileys"][$smiley_id];
$search = $smileydata["search"];
$smiley = $smileydata["smiley"];
$alt = $smileydata["alt"];
$uses = $smileydata["uses"];
}
}
$frm = new PhorumInputForm("", "post", $submit);
$frm->hidden("module", "modsettings");
$frm->hidden("mod", "smileys");
$frm->hidden("smiley_id", $smiley_id);
$frm->hidden("action", "edit_smiley");
$frm->addbreak($title);
$frm->addrow("Smiley string to match", $frm->text_box("search", $search, 20));
$row = $frm->addrow("Image to replace the string with", $frm->select_tag("smiley", array_merge(array('' => 'Select smiley ...'), $available_smileys), $smiley, "onChange=\"change_image(this.options[this.selectedIndex].value);\"") . " <div style=\"display:none;margin-top:5px\" id=\"preview_div\"><strong>Preview: </strong><img src=\"images/trans.gif\" id=\"preview_image\" /></div>");
$frm->addhelp($row, "Smiley replacement image", "The drop down list shows all images that were found in your\n smiley prefix path. If you want to add your own smileys, simply place\n them in \"" . htmlspecialchars($PHORUM["mod_smileys"]["prefix"]) . "\"\n and reload this page.");
$frm->addrow("ALT attribute for the image", $frm->text_box("alt", $alt, 40));
$frm->addrow("Used for", $frm->select_tag("uses", $PHORUM_MOD_SMILEY_USES, $uses));
$frm->show();
// Make the preview image visible in case a $smiley is set.
if (!empty($smiley)) {
?>
<script type="text/javascript">
change_image('<?php
print addslashes($smiley);
?>
');
</script><?php
}
// Show the configured list of smileys.
if ($smiley_id == "NEW") {
示例2: isset
$PHORUM["mod_announcements"]["disable_autodisplay"] = isset($_POST["disable_autodisplay"]) ? 1 : 0;
$PHORUM["mod_announcements"]["only_show_unread"] = isset($_POST["only_show_unread"]) ? 1 : 0;
$PHORUM["mod_announcements"]["number_to_show"] = (int) $_POST["number_to_show"];
$PHORUM["mod_announcements"]["days_to_show"] = (int) $_POST["days_to_show"];
phorum_db_update_settings(array("mod_announcements" => $PHORUM["mod_announcements"]));
phorum_admin_okmsg("Announcement settings updated");
}
include_once "./include/admin/PhorumInputForm.php";
$frm = new PhorumInputForm("", "post", "Save");
$frm->hidden("module", "modsettings");
$frm->hidden("mod", "announcements");
$frm->addbreak("Announcement Settings");
$page_list = $frm->checkbox("pages[home]", 1, "Home page, root level forum list (index.php)", $PHORUM["mod_announcements"]["pages"]["home"]) . "<br/>" . $frm->checkbox("pages[index]", 1, "Any forum List (index.php)", $PHORUM["mod_announcements"]["pages"]["index"]) . "<br/>" . $frm->checkbox("pages[list]", 1, "Message List (list.php)", $PHORUM["mod_announcements"]["pages"]["list"]) . "<br/>" . $frm->checkbox("pages[read]", 1, "Read Message (read.php)", $PHORUM["mod_announcements"]["pages"]["read"]);
$frm->addrow("Announcements Appear On", $page_list);
$row = $frm->addrow("Disable automatic displaying of announcements?", $frm->checkbox("disable_autodisplay", 1, "Disable automatic displaying", $PHORUM["mod_announcements"]["disable_autodisplay"]));
$frm->addhelp($row, "Disable automatic displaying", "By default, the announcements will be displayed after the page header automatically. If you need more control over the exact placement, then enable this option. Then you can specify where you want the announcements to appear yourself by placing the code {MOD_ANNOUNCEMENTS} in your templates.");
$frm->addrow("Show only unread messages to the user?", $frm->checkbox("only_show_unread", 1, "Show only unread", $PHORUM["mod_announcements"]["only_show_unread"]));
$frm->addrow("Number To Show", $frm->text_box("number_to_show", $PHORUM["mod_announcements"]["number_to_show"], 10));
$frm->addrow("Maximum Days To Show", $frm->text_box("days_to_show", $PHORUM["mod_announcements"]["days_to_show"], 10) . " (0 = forever)");
$forum_list_global = phorum_get_forum_info(1, 0);
$frm->addrow("Announcement Forum", $frm->select_tag("forum_id", $forum_list_global, $PHORUM["mod_announcements"]["forum_id"]));
//$vroot_folders = phorum_db_get_forums(0, NULL, '\'forum_id\'');
$vroot_folders = phorum_get_forum_info(3, -1);
if (count($vroot_folders)) {
$frm->addbreak("Announcement Forums for Virtual Root Folders");
foreach ($vroot_folders as $vroot_folder_id => $vroot_path) {
$forum_list_vroot = phorum_get_forum_info(1, $vroot_folder_id);
$forum_list_vroot[0] = 'No Announcements for this Virtual Root';
asort($forum_list_vroot);
$frm->addrow('VROOT "' . $vroot_path . '"', $frm->select_tag("vroot_forum_id[{$vroot_folder_id}]", $forum_list_vroot, isset($PHORUM["mod_announcements"]["vroot"][$vroot_folder_id]) ? $PHORUM["mod_announcements"]["vroot"][$vroot_folder_id] : 0));
}
示例3: PhorumInputForm
<?php
} else {
// load bad-words-list
$banlists = phorum_db_get_banlists();
$bad_words = $banlists[PHORUM_BAD_WORDS];
include_once "./include/admin/PhorumInputForm.php";
$frm = new PhorumInputForm("", "post", $submit);
$frm->hidden("module", "badwords");
$frm->hidden("curr", "{$curr}");
$row = $frm->addbreak($title);
if ($curr == 'NEW') {
$frm->addmessage("This feature can be used to mask bad words in forum messages\n with \"" . PHORUM_BADWORD_REPLACE . "\". All bad words will\n automatically be replaced by that string. If you want to use\n a different string (e.g. \"CENSORED\" or \"*****\"), then you\n can change the definition of the constant\n \"PHORUM_BADWORD_REPLACE\" in the Phorum file\n include/constants.php.");
}
$row = $frm->addrow("Bad Word", $frm->text_box("string", $string, 50));
$frm->addhelp($row, "Bad Word", "The word that you want to mask in forum messages.\n Rules that apply to the matching are:\n <ul>\n <li><b>Only the full word</b> is matched, so \"foo\" would\n not mask (part of) \"foobar\";</li>\n <li>The match is <b>case insensitive</b>, so \"foo\" would also\n mask \"FoO\".</li>\n </ul>");
$frm->addrow("Valid for Forum", $frm->select_tag("forum_id", $forum_list, $forum_id));
$row = $frm->addrow('Comments', $frm->textarea('comments', $comments, 50, 7));
$frm->addhelp($row, "Comments", "This field can be used to add some comments to the ban (why you\n created it, when you did this, when the ban can be deleted, etc.)\n These comments will only be shown on this page and are meant as\n a means for the administrator to do some bookkeeping.");
$frm->show();
echo "<hr class=\"PhorumAdminHR\" />";
if (count($bad_words)) {
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\" class=\"PhorumAdminTable\" width=\"100%\">\n";
echo "<tr>\n";
echo " <td class=\"PhorumAdminTableHead\">Word</td>\n";
echo " <td class=\"PhorumAdminTableHead\">Valid for Forum</td>\n";
echo " <td class=\"PhorumAdminTableHead\"> </td>\n";
echo "</tr>\n";
foreach ($bad_words as $key => $item) {
$edit_url = phorum_admin_build_url(array('module=badwords', 'edit=1', "curr={$key}"));
$delete_url = phorum_admin_build_url(array('module=badwords', 'delete=1', "curr={$key}"));
示例4: elseif
} elseif (isset($_GET['message']) && $_GET['message'] == 'success') {
$okmsg = "Settings updated";
phorum_admin_okmsg($okmsg);
}
// create the time zone drop down array
for ($x = -23; $x <= 23; $x++) {
$tz_range[$x] = $x;
}
require_once './include/admin/PhorumInputForm.php';
$frm = new PhorumInputForm("", "post");
$frm->addbreak("Phorum General Settings");
$frm->hidden("module", "settings");
$row = $frm->addrow("Phorum Title", $frm->text_box("title", $PHORUM["title"], 50));
$row = $frm->addrow("Phorum Description", $frm->textarea("description", $PHORUM["description"], 30, 5, "style='width: 100%'"));
$row = $frm->addrow("DNS Lookups", $frm->select_tag("dns_lookup", array("No", "Yes"), $PHORUM["dns_lookup"]));
$frm->addhelp($row, "DNS Lookups", "DNS is the system that (amongsts other things) is responsible for\n translating host names into IP addresses and vice versa.\n If DNS lookups are enabled, phorum will use DNS lookups for:\n <ul>\n <li>logging the hostname from which a message was posted, instead of\n the plain IP address;</li>\n <li>being able to create IP ban items based on host and domain names;</li>\n <li>checking the email address that is for user registrations.</li>\n </ul>\n If Phorum keeps reporting illegal email addresses during signup or\n if you are suffering from massive delays during posting messages,\n then there might be DNS problems on your server. In that case, disable\n DNS lookups as a work around.");
$row = $frm->addrow("Hide inaccessible Forums on the Index Page", $frm->select_tag("hide_forums", array("No", "Yes"), $PHORUM["hide_forums"]));
$frm->addhelp($row, "Hide inaccessible Forums on the Index Page", "By setting this to Yes, forums that users are not allowed to read will be hidden from them in the forums list.");
$row = $frm->addrow("Show New Counts for Forums on the Index Page", $frm->select_tag("show_new_on_index", array(PHORUM_NEWFLAGS_NOCOUNT => "No", PHORUM_NEWFLAGS_COUNT => "Yes", PHORUM_NEWFLAGS_CHECK => "No count, just indicator"), $PHORUM["show_new_on_index"]));
$frm->addhelp($row, "Show New Counts for Forums on the Index Page", "This feature will show registered users how many new messages and threads there are in each forum on the forum index page. If you have a large number of posts, a large number of forums, a large number of users or some combination of the three, this setting could cause some performance issues. If you see performance issues, try setting it to \"No count, just indicator\" or \"No\"");
$row = $frm->addrow("How to Display Forums and Folders on the Index Page", $frm->select_tag("index_style", array(PHORUM_INDEX_DIRECTORY => 'Directory Structure', PHORUM_INDEX_FLAT => 'Flat Structure'), $PHORUM["index_style"]));
$frm->addhelp($row, "How to Display Forums and Folders on the Index Page", "Forum has multiple displaying styles available for the index page:\n <ul>\n <li><b>Directory Structure:</b><br/>\n <br/>\n <em>This style resembles the way in which you normally would browse a\n filesystem directory structure, hence the name.</em><br/>\n <br/>\n When using this style, the index page will show a list of folders\n and a list of forums that are available in the folder for which the\n index page is shown. The user can either go to a forum or traverse\n the folder tree by going to one of the deeper folders.<br/><br/></li>\n <li><b>Flat Structure</b><br/>\n <br/>\n <em>This style will present the user a flat list of category sections\n with forums (and possibly folders) in them. This is the style\n that most forums use nowadays.</em><br/>\n <br/>\n When using this style, the root index page will show category\n sections with forums and folders in them. Each section is a folder\n that is directly below the root. The folders and forums that are\n in those folders are shown in the corresponding sections.<br/>\n Forums that are placed directly in the root folder, will be\n shown in a generic \"Forums\" section.<br/>\n <br/>\n When visiting a subfolder, then the folders and forums inside that\n subfolder are shown. For a subfolder, No sections are displayed.\n This means that browsing subfolders in the flat structure works\n a bit like browsing them in the directory structure.</li>\n </ul>");
$row = $frm->addrow("Go To Forum if only One Forum is Visible on the Index", $frm->select_tag("jump_on_single_forum", array("No", "Yes"), $PHORUM['jump_on_single_forum']));
$frm->addhelp($row, "Go To Forum if only One Forum is Visible on the Index", "By setting this to Yes, Phorum will automatically jump to a forum if that is the only forum visible on the index page. This can be useful in case you are running a forum site with only one forum (or where visitors see only one forum due to permission settings), so visitors do not have to do an additional click to get from the index to the forum.");
$row = $frm->addrow("Enable Moderator Notifications", $frm->select_tag("enable_moderator_notifications", array("No", "Yes"), $PHORUM["enable_moderator_notifications"]));
$frm->addhelp($row, "Enable Moderator Notifications", "By setting this to Yes, Phorum will display notice to the various kinds of moderators when they have a new item that requires their attention. For example, message moderators will see a notice whenever there is an unapproved message.");
$row = $frm->addrow("User Post Edit Time Limit (minutes)", $frm->text_box("user_edit_timelimit", $PHORUM["user_edit_timelimit"], 10));
$frm->addhelp($row, "User Post Edit Time Limit (minutes)", "If set to a value larger then 0, this acts as a time limit for post editing. Users will only be able to edit their own posts within this time limit. This only applies if a user has the necessary permissions to edit their post, and does not affect moderators.");
$row = $frm->addrow("Track Edit Changes", $frm->select_tag("track_edits", array("No", "Yes", "Yes, Moderator Only"), $PHORUM["track_edits"]));
$frm->addhelp($row, "Track Edit Changes", "When enabled, the changes made to a message will be stored and viewed by users. It can optionaly only be viewed by moderators.");
$row = $frm->addrow("Reply form appears", $frm->select_tag("reply_on_read_page", array("1" => "On the read page", "0" => "On a separate page"), $PHORUM["reply_on_read_page"]));
示例5: extract
if($inherit_id=="" && $inherit_id!==0) $inherit_id="NULL";
$row=$frm->addrow("Inherit Settings from Forum", $frm->select_tag("inherit_id", $forum_list, $inherit_id, $disabled_form_input_inherit));
// Set Settings from inherit forum
if( $forum_settings_inherit ) {
$forum_settings =$forum_settings_inherit;
extract($forum_settings[$inherit_id]);
}
}
$frm->addbreak("Moderation / Permissions");
$row=$frm->addrow("Moderate Messages", $frm->select_tag("moderation", array(PHORUM_MODERATE_OFF=>"Disabled", PHORUM_MODERATE_ON=>"Enabled"), $moderation, $disabled_form_input));
$frm->addhelp($row, "Moderate Messages", "This setting determines whether messages are visible to users immediately after they are posted. If enabled, all messages will remain hidden until approved by a moderator.");
$frm->addrow("Email Messages To Moderators", $frm->select_tag("email_moderators", array(PHORUM_EMAIL_MODERATOR_OFF=>"Disabled", PHORUM_EMAIL_MODERATOR_ON=>"Enabled"), $email_moderators, $disabled_form_input));
$pub_perm_frm = $frm->checkbox("pub_perms[".PHORUM_USER_ALLOW_READ."]", 1, "Read", $pub_perms & PHORUM_USER_ALLOW_READ, $disabled_form_input)." ".
$frm->checkbox("pub_perms[".PHORUM_USER_ALLOW_REPLY."]", 1, "Reply", $pub_perms & PHORUM_USER_ALLOW_REPLY, $disabled_form_input)." ".
$frm->checkbox("pub_perms[".PHORUM_USER_ALLOW_NEW_TOPIC."]", 1, "Create New Topics", $pub_perms & PHORUM_USER_ALLOW_NEW_TOPIC, $disabled_form_input)."<br />".
$frm->checkbox("pub_perms[".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files", $pub_perms & PHORUM_USER_ALLOW_ATTACH, $disabled_form_input);
$frm->addrow("Public Users", $pub_perm_frm);
$reg_perm_frm = $frm->checkbox("reg_perms[".PHORUM_USER_ALLOW_READ."]", 1, "Read", $reg_perms & PHORUM_USER_ALLOW_READ, $disabled_form_input)." ".
$frm->checkbox("reg_perms[".PHORUM_USER_ALLOW_REPLY."]", 1, "Reply", $reg_perms & PHORUM_USER_ALLOW_REPLY, $disabled_form_input)." ".
$frm->checkbox("reg_perms[".PHORUM_USER_ALLOW_NEW_TOPIC."]", 1, "Create New Topics", $reg_perms & PHORUM_USER_ALLOW_NEW_TOPIC, $disabled_form_input)."<br />".
$frm->checkbox("reg_perms[".PHORUM_USER_ALLOW_EDIT."]", 1, "Edit Their Posts", $reg_perms & PHORUM_USER_ALLOW_EDIT, $disabled_form_input)." ".
$frm->checkbox("reg_perms[".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files", $reg_perms & PHORUM_USER_ALLOW_ATTACH, $disabled_form_input);
示例6: array
if (!defined("PHORUM_DEFAULT_OPTIONS")) {
$frm->addrow("Forum Title", $frm->text_box("name", $name, 30, 50));
$frm->addrow("Forum Description", $frm->textarea("description", $description, $cols = 60, $rows = 10, "style=\"width: 100%;\""), "top");
$parent_id_options = phorum_api_forums_get_parent_id_options($forum_id);
$frm->addrow("Put this forum below folder", $frm->select_tag('parent_id', $parent_id_options, $parent_id));
if ($vroot > 0) {
$frm->addrow("This forum is in the Virtual Root of:", $folder_list[$vroot]);
}
$row = $frm->addrow("Make this forum visible in the forum index?", $frm->select_tag("active", array("No", "Yes"), $active));
$frm->addhelp($row, "Make this forum visible in the forum index?", 'If this option is set to "No", then this forum will not be visible
in the forum index. This is mainly an option for temporarily keeping
a forum hidden to your users (e.g. while you are creating and
configuring a forum or for testing out features).<br/>
<br/>
<b>This is not a security option!</b><br/>
<br/>
A forum that is not visible is still accessible by all users
that have at least read access for it. If you need a forum that is
only accessible by some of your users, then use the permission system
for that. Revoke all rights from both public and registered users in
the forum settings and use group or user permissions to grant access
to the users.');
// If we're inheriting settings from a different forum,
// then disable the inherited fields in the input.
$disabled_form_input = '';
if ($inherit_id != -1) {
$disabled_form_input = 'disabled="disabled"';
}
$frm->addbreak("Inherit Forum Settings");
// First check if the settings for this forum are inherited by one or
// more other forums and/or folders. Inherited inheritance is not
示例7: PhorumInputForm
// ----------------------------------------------------------------------
require_once './include/admin/PhorumInputForm.php';
$frm = new PhorumInputForm("", "post", $filter_mode ? "Apply filter" : "Refresh page");
$frm->hidden("module", "modsettings");
$frm->hidden("mod", "event_logging");
$frm->hidden("curpage", $page);
$frm->hidden("el_action", $filter_mode ? "filter" : "logviewer");
$frm->addrow("<span style=\"float:right;margin-right:10px\">" . $frm->select_tag("pagelength", $pagelengths, $pagelength, 'onchange="this.form.submit()"') . "  \n <input type=\"submit\" name=\"prevpage\" value=\"<<\"/>\n page " . $frm->select_tag("page", $pagelist, $page, 'onchange="this.form.submit()"') . " of {$pages}\n <input type=\"submit\" name=\"nextpage\" value=\">>\"/>\n </span>Number of entries: {$logcount}");
if ($filter_mode) {
$frm->hidden("filter_mode", 1);
$loglevel_checkboxes = '';
foreach ($strings["LOGLEVELS"] as $l => $s) {
$loglevel_checkboxes .= '<span style="white-space: nowrap">' . $frm->checkbox("show_loglevel[{$l}]", "1", "", isset($show_loglevel[$l]) ? 1 : 0, "id=\"llcb_{$l}\"") . ' <label for="llcb_' . $l . '"><img align="absmiddle" src="' . $PHORUM["http_path"] . '/mods/event_logging/images/loglevels/' . $l . '.png"/> ' . $s . '</label></span> ';
}
$row = $frm->addrow("Log levels to display", $loglevel_checkboxes);
$frm->addhelp($row, "Log levels to display", "By using these checkboxes, you can limit the log levels that are displayed. If you do not check any of them, then no filtering will be applied and all log levels will be displayed.");
$category_checkboxes = '';
foreach ($strings["CATEGORIES"] as $l => $s) {
$category_checkboxes .= '<span style="white-space: nowrap">' . $frm->checkbox("show_category[{$l}]", "1", "", isset($show_category[$l]) ? 1 : 0, "id=\"cacb_{$l}\"") . ' <label for="cacb_' . $l . '">' . $s . '</label></span> ';
}
$row = $frm->addrow("Categories to display", $category_checkboxes);
$frm->addhelp($row, "Categories to display", "By using these checkboxes, you can limit the log categories that are displayed. If you do not check any of them, then no filtering will be applied and all log categories will be displayed.");
$sources = array("" => "");
$sources = array_merge($sources, event_logging_getsources());
$row = $frm->addrow("Source to display", $frm->select_tag("source", $sources, isset($_POST["source"]) ? $_POST["source"] : ""));
$row = $frm->addrow("Filter by user", "User ID " . $frm->text_box("user_id", isset($_POST["user_id"]) ? $_POST["user_id"] : "", 10) . " Username " . $frm->text_box("username", isset($_POST["username"]) ? $_POST["username"] : "", 20));
$frm->addhelp($row, "Filter by user", "Using these fields, you can specify for what user you want to display the event logs.<br/><br/>The User ID must be the exact numeric id for the user.<br/><br/>In the username field, you can use the \"*\" wildcard (e.g. searching for \"john*\" would find both the users \"johndoe\" and \"johnny\").");
$row = $frm->addrow("Filter by IP address", $frm->text_box("ip", isset($_POST["ip"]) ? $_POST["ip"] : "", 20));
$frm->addhelp($row, "Filter by IP address", "Using this field, you can specify for what IP address you want to display the event logs.<br/><br/>In the field, you can use the \"*\" wildcard (e.g. searching for \"172.16.12.*\" will find both the IP addresses \"172.16.12.1\" and \"172.16.12.211\").");
$row = $frm->addrow("Filter by message", $frm->text_box("message", isset($_POST["message"]) ? htmlspecialchars($_POST["message"]) : "", 40));
$frm->addhelp($row, "Filter by message", "Filter all events where the message matches the specified text.<br/><br/>In the field, you can use the \"*\" wildcard (e.g. searching for \"fail*\" would find both entries with \"failure\" and \"failacity\").");
示例8: PhorumInputForm
return;
}
// ========================================================================
// Build the sanity checking admin page.
// ========================================================================
include_once "./include/admin/PhorumInputForm.php";
$frm = new PhorumInputForm("", "post", "Restart sanity checks");
$frm->hidden("module", "sanity_checks");
$frm->addbreak("Phorum System Sanity Checks");
$frm->addmessage("Below you will find the results for a number of sanity checks\n that have been performed on your system. If you see any\n warnings or errors, then read the comments for them and \n try to resolve the issues.");
// Show sanity check results.
foreach ($PHORUM["SANITY_CHECKS"]["CHECKS"] as $check) {
if ($check["status"] != PHORUM_SANITY_SKIP) {
if (isset($check["error"])) {
$check["error"] = str_replace("\n", " ", $check["error"]);
}
if (isset($check["solution"])) {
$check["solution"] = str_replace("\n", " ", $check["solution"]);
}
$display = $status2display[$check["status"]];
$block = "<div style=\"color:{$display[1]};background-color:{$display[0]};text-align:center;border:1px solid black;\">{$display[2]}</div>";
$row = $frm->addrow($check['description'], $block);
if (!empty($check["error"])) {
if (!empty($check["solution"])) {
$check["error"] .= "<br/><br/>" . "<strong>Possible solution:</strong>" . "<br/><br/>" . $check["solution"];
}
$frm->addhelp($row, "Sanity check failed", $check["error"]);
}
}
}
$frm->show();
示例9: PhorumInputForm
</form>
</div>
<?php
} else {
include_once "./include/admin/PhorumInputForm.php";
$frm = new PhorumInputForm("", "post", $submit);
$frm->hidden("module", "banlist");
$frm->hidden("curr", "{$curr}");
$frm->addbreak($title);
if ($curr == "NEW") {
$frm->addmessage("Ban items can be used to deny new user registrations and\n posting of (private) messages, based on various criteria.\n If a ban item applies to a user action, then this action\n will be fully blocked by Phorum. This can for example be used\n to block user registrations and postings from certain IP\n addresses or to prevent certain words from being used in\n forum messages.<br />\n <br />\n If you want to fully ban a user, then it's best to\n set \"Active\" to \"No\" for the user in the\n \"Edit Users\" interface.");
}
$frm->addrow("String To Match", $frm->text_box("string", $string, 50));
$row = $frm->addrow("Field To Match", $frm->select_tag("type", $ban_types, $type));
$frm->addhelp($row, "Field To Match", "\n Below, you will find an overview of what\n ban items are used by what Phorum actions:<br/>\n <br/>\n <b>User registration</b>:<br/>\n \"Name/User Name\" checks the new username<br/>\n \"Email Address\" checks the new email address<br/>\n \"IP Address/Hostname\" checks the visitor's IP<br/>\n <br/>\n <b>Posting forum messages by anonymous users</b><br/>\n \"Name/User Name\" checks the author's name<br/>\n \"Email Address\" checks the author's email address<br/>\n \"Illegal Words (SPAM)\" checks the subject and body<br/>\n \"IP Address/Hostname\" checks the author's IP<br/>\n <br/>\n <b>Posting forum messages by registered users</b><br/>\n \"Name/User Name\" checks the author's username<br/>\n \"User-Id (registered User)\" checks the author's user id<br/>\n \"Email Address\" checks the author's email address<br/>\n \"IP Address/Hostname\" checks the author's IP<br/>\n \"Illegal Words (SPAM)\" checks the subject and body<br/>\n <br/>\n <b>Posting private messages</b><br/>\n \"Name/User Name\" checks the sender's username<br/>\n \"User-Id (registered User)\" checks the sender's user id<br/>\n \"Email Address\" checks the sender's email address<br/>\n \"IP Address/Hostname\" checks the sender's IP\n ");
$row = $frm->addrow("Compare As", $frm->select_tag("pcre", $match_types, $pcre) . "<div style=\"font-size:x-small\">If using PCRE for comparison, \"String To Match\" should be a valid PCRE expression.<br/>See <a href=\"http://php.net/pcre\" target=\"_blank\">the PHP manual</a> for more information about PCRE.</div>");
$frm->addhelp($row, "Compare As", "\n This setting can be used to specify the matching method\n that has to be used for the ban item. There are two options:<br/>\n <br/>\n <ul>\n <li><b>String</b><br/>\n The exact string from the \"String To Match\" field\n will be used for matching. Wildcards are not available\n for the String field type.<br/><br/></li>\n\n <li><b>PCRE</b><br/>\n The \"String To Match\" field will be treated as\n a <a href=\"http://www.php.net/pcre\">Perl Compatible\n Regular Expression</a>.</li>\n </ul>\n ");
$frm->addrow("Valid for Forum", $frm->select_tag("forum_id", $forum_list, $forum_id));
$row = $frm->addrow('Comments', $frm->textarea('comments', $comments, 50, 7));
$frm->addhelp($row, "Comments", "This field can be used to add some comments to the ban (why you\n created it, when you did this, when the ban can be deleted, etc.)\n These comments will only be shown on this page and are meant as\n a means for the administrator to do some bookkeeping.");
$frm->show();
if ($curr == "NEW") {
$PHORUM['banlists'] = phorum_db_get_banlists(true);
unset($PHORUM['banlists'][PHORUM_BAD_WORDS]);
echo "<hr class=\"PhorumAdminHR\" />";
if (count($PHORUM['banlists'])) {
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\" class=\"PhorumAdminTable\" width=\"100%\">\n";
echo "<tr>\n";
echo " <td class=\"PhorumAdminTableHead\">String</td>\n";
echo " <td class=\"PhorumAdminTableHead\">Field</td>\n";
示例10: elseif
if (!file_exists('./mods/event_logging')) {
$check = '<span style="color:red">The Event Logging module ' . 'is currently not installed; logging cannot ' . 'be enabled</span>';
$disabled = 'disabled="disabled"';
$PHORUM["mod_spamhurdles"]["log_events"] = 0;
} elseif (empty($PHORUM['mods']['event_logging'])) {
$check = '<span style="color:red">The Event Logging module ' . 'is currently not activated; logging cannot ' . 'be enabled</span>';
$disabled = 'disabled="disabled"';
$PHORUM["mod_spamhurdles"]["log_events"] = 0;
} else {
$check = '<span style="color:darkgreen">The Event Logging module ' . 'is activated; events can be logged by enabling the ' . 'feature below</span>';
$disabled = '';
}
$frm->addrow($check, '');
$row = $frm->addrow('Log blocked form posts to the Event Logging module?', $frm->checkbox("log_events", 1, "Yes", $PHORUM["mod_spamhurdles"]["log_events"], $disabled));
$url = phorum_admin_build_url(array('module=modsettings', 'mod=event_logging', 'el_action=logviewer'));
$frm->addhelp($row, "Log blocked form posts to the Event Logging module?", "When both this feature and the Event Logging module are enabled,\n then the Spam Hurdles module will log information about blocked\n form posts to the Phorum Event Log. To view this log, go to\n <a href=\"{$url}\">the Event Log viewer</a>");
// ----------------------------------------------------------------------
// Configure spam hurdles for posting messages
// ----------------------------------------------------------------------
$frm->addbreak("Spam Hurdles for posting new messages");
$row = $frm->addrow('What action has to be taken when a spam message is suspected?', $frm->select_tag('posting_block_action', array('blockerror' => 'Fully block and show an error', 'unapprove' => 'Accept, but make unapproved'), $PHORUM['mod_spamhurdles']['posting']['block_action']));
$frm->addhelp($row, "Action when a spam message is suspected", "You can choose whether you want to fully block suspected spam messages\n or that you want to have them posted in a moderated state, so they\n will need approval by a moderator.<br/>\n <br/>\n A message is suspicious if it fails one of the spam hurdles:<br/>\n <ul>\n <li>Block forms that are submitted multiple times</li>\n <li>Check if an HTML commented form field is submitted</li>\n <li>Let the browser sign the form using JavaScript</li>\n </ul>\n For the remaining hurdles, an error state might be resolved by\n the user (e.g. by filling in the correct CAPTCHA code or by\n resubmitting a too quickly posted form). For those errors,\n there will always be an error message and a chance for the\n user to fix the issue to make posting possible.");
create_spamhurdle_options($frm, 'posting', array('posting.tpl', 'posting_messageform.tpl'), 'tpl_editor_before_textarea', array("none" => "Disable hurdle", "anonymous" => "Enable for anonymous users", "all" => "Enable for all users"));
// ----------------------------------------------------------------------
// Configure spam hurdles for user registration
// ----------------------------------------------------------------------
$frm->addbreak("Spam Hurdles for user registration");
create_spamhurdle_options($frm, 'register', array('register.tpl'), 'tpl_register_form', array("none" => "Disable hurdle", "all" => "Enable hurdle"));
// ----------------------------------------------------------------------
// Configure spam hurdles for PM
// ----------------------------------------------------------------------
示例11: elseif
$error = "Database error while updating settings.";
}
}
}
if ($error) {
phorum_admin_error($error);
} elseif ($okmsg) {
phorum_admin_okmsg($okmsg);
}
require_once './include/admin/PhorumInputForm.php';
$frm = new PhorumInputForm("", "post");
$frm->hidden("module", "cache");
$frm->addbreak("Phorum Cache Settings");
$frm->addbreak("Which template data to cache (uses cache directory)");
$row = $frm->addrow("Enable Caching stylesheet data (CSS):", $frm->select_tag("cache_css", array("No", "Yes"), $PHORUM["cache_css"]));
$frm->addhelp($row, "Cache stylesheet", "Phorum uses a system where modules can add data to the main stylesheet\r\n for the pages. By enabling this feature, Phorum can cache the dynamically\r\n generated data and improve caching of the stylesheet data in the browsers\r\n of your visitors. Enabling this feature is highly recommended. Only\r\n disable it if you are having problems with it.");
$row = $frm->addrow("Enable Caching JavaScript code:", $frm->select_tag("cache_javascript", array("No", "Yes"), $PHORUM["cache_javascript"]));
$frm->addhelp($row, "Cache JavaScript", "Phorum uses a system where modules can provide JavaScript code for the\r\n pages. By enabling this feature, Phorum can cache the dynamically\r\n generated data and improve caching of the JavaScript data in the browsers\r\n of your visitors. Enabling this feature is highly recommended. Only\r\n disable it if you are having problems with it.");
$frm->addbreak("Which data to cache (uses selected cache layer)");
$row = $frm->addrow("Enable Caching Userdata:", $frm->select_tag("cache_users", array("No", "Yes"), $PHORUM["cache_users"]));
$row = $frm->addrow("Enable Caching Newflags:", $frm->select_tag("cache_newflags", array("No", "Yes"), $PHORUM["cache_newflags"]));
$row = $frm->addrow("Enable Caching Messages:", $frm->select_tag("cache_messages", array("No", "Yes"), $PHORUM["cache_messages"]));
$row = $frm->addrow("Enable Caching Banlists:", $frm->select_tag("cache_banlists", array("No", "Yes"), $PHORUM["cache_banlists"]));
$row = $frm->addrow("Enable Caching RSS-Feeds:", $frm->select_tag("cache_rss", array("No", "Yes"), $PHORUM["cache_rss"]));
$frm->addbreak("Settings that are set from include/config/cache.php");
$row = $frm->addrow("Cache Directory", $PHORUM['CACHECONFIG']['directory']);
$frm->addhelp($row, "Cache Directory", "Caching is used to take some load off the database and web server.\r\n The cache directory is used for caching preprocessed Phorum templates\r\n and for caching data in case \"file\" is set as the cache layer.<br/>\r\n <br/>\r\n For most installations, it will be fine to use the default temp directory\r\n for the server (/tmp on UNIX systems and C:\\Windows\\Temp for Windows\r\n systems).<br/>\r\n <br/>\r\n If your server has PHP Safe Mode enabled, you will need to create a\r\n directory under your Phorum directory and make it writable by the web\r\n server (you can use the directory \"./cache\" which was included in the\r\n Phorum distribution for this purpose).");
$frm->addrow("Cache-Layer", $PHORUM['CACHECONFIG']['type']);
// calling mods
$frm = phorum_api_hook("admin_cache", $frm);
$frm->show();
示例12: PhorumInputForm
include_once "./include/admin/PhorumInputForm.php";
$frm = new PhorumInputForm ( "", "post" );
$frm->addbreak( "Phorum General Settings" );
$frm->hidden( "module", "settings" );
$row=$frm->addrow( "Phorum Title", $frm->text_box( "title", $PHORUM["title"], 50 ) );
$row=$frm->addrow( "DNS Lookups", $frm->select_tag( "dns_lookup", array( "No", "Yes" ), $PHORUM["dns_lookup"] ) );
$row=$frm->addrow( "Use Cookies", $frm->select_tag( "use_cookies", array( "No", "Yes" ), $PHORUM["SETTINGS"]["use_cookies"] ) );
$row=$frm->addrow( "Hide Forums", $frm->select_tag( "hide_forums", array( "No", "Yes" ), $PHORUM["hide_forums"] ) );
$frm->addhelp($row, "Hide Forums", "By setting this to Yes, forums that users are not allowed to read will be hidden from them in the forums list." );
$row=$frm->addrow( "Show New Count in Forum List", $frm->select_tag( "show_new_on_index", array( "No", "Yes" ), $PHORUM["show_new_on_index"] ) );
$row=$frm->addrow( "Folder/Forum display style", $frm->select_tag( "use_new_folder_style", array( "Classic", "New" ), $PHORUM["use_new_folder_style"] ) );
$frm->addhelp($row, "Folder/Forum display style", "Since version 3, Phorum has included folders. Until version 5.1, forums inside folders did not show until you clicked on the folder. In 5.1, the list of forums in a folder can now be shown under that folder in the forum list. This allows admins to organize a large list of forums all on one page." );
$row=$frm->addrow( "Enable Moderator Notifications", $frm->select_tag( "enable_moderator_notifications", array( "No", "Yes" ), $PHORUM["enable_moderator_notifications"] ) );
$frm->addhelp($row, "Enable Moderator Notifications", "By setting this to Yes, Phorum will display notice to the various kinds of moderators when they have a new item that requires their attention. For example, message moderators will see a notice whenever there is an unapproved message." );
$row=$frm->addrow( "User Post Edit Time Limit (minutes)", $frm->text_box( "user_edit_timelimit", $PHORUM["user_edit_timelimit"], 10) );
$frm->addhelp($row, "User Post Edit Time Limit (minutes)", "If set to a value larger then 0, this acts as a time limit for post editing. Users will only be able to edit their own posts within this time limit. This only applies if a user has the necessary permissions to edit their post, and does not affect moderators." );
$row=$frm->addrow( "Reply form appears", $frm->select_tag( "reply_on_read_page", array( "1"=>"On the read page", "0"=>"On a separate page" ), $PHORUM["reply_on_read_page"] ) );
$row=$frm->addrow( "After posting goto", $frm->select_tag( "redirect_after_post", array( "list"=>"Message List Page", "read"=>"Message Read Page" ), $PHORUM["redirect_after_post"] ) );
示例13: list
// to return an array containing the following elements:
//
// [1] A status, which can be one of
// PHORUM_SANITY_OK No problem found
// PHORUM_SANITY_WARN Problem found, but no fatal one
// PHORUM_SANITY_CRIT Critical problem found
//
// [2] A description of the problem that was found or NULL.
//
// [3] A solution for the problem or NULL.
//
list($status, $error, $solution) = call_user_func($check["function"]);
if (isset($error)) $error = str_replace("\n", " ", $error);
if (isset($solution)) $solution = str_replace("\n", " ", $solution);
$display = $status2display[$status];
$block = "<div style=\"color:{$display[1]};background-color:{$display[0]};text-align:center;border:1px solid black;\">{$display[2]}</div>";
$row = $frm->addrow($check['description'], $block);
if (! empty($error)) {
if (! empty($solution))
$error .= "<br/><br/>" .
"<strong>Possible solution:</strong>" .
"<br/><br/>" .
$solution;
$frm->addhelp($row,"Sanity check failed",$error);
}
}
$frm->show();
?>
示例14: interactive
both interactive (CAPTCHA) and non-interactive anti-spam methods
to keep away spam bots. On this page, you can control exactly
what spam hurdles to enable.
<br style="clear:both" />
<?php
include_once "./include/admin/PhorumInputForm.php";
$frm = new PhorumInputForm("", "post", "Save");
$frm->hidden("module", "modsettings");
$frm->hidden("mod", "spamhurdles");
$frm->addbreak("Non interactive spam blocking methods for posting messages");
$userspec = array("none" => "Disable hurdle", "anonymous" => "Enable for anonymous users", "all" => "Enable for all users");
$blockspec = array("blockerror" => "Fully block and show an error", "unapprove" => "Accept, but make unapproved");
$row = $frm->addrow("What action has to be taken when blocking a message?", $frm->select_tag("blockaction", $blockspec, $PHORUM["mod_spamhurdles"]["blockaction"]));
$row = $frm->addrow("Block message forms that are submitted multiple times", $frm->select_tag("blockmultipost", $userspec, $PHORUM["mod_spamhurdles"]["blockmultipost"]));
$frm->addhelp($row, "Block multiple submits", "If this option is enabled, then a unique key will be generated for each new message. As soon as the message is posted, this key will be invalidated for posting. This effectively prevents people from going back in the browser and resubmitting a (slightly changed) message (flooding) as well as spammers who directly submit posting forms to Phorum's post.php, without fetching a fresh unique key first.<br/><br/><b>User impact:</b><br/>This does not affect the way in which people can use Phorum, so the recommended value for this option is \"Enable for all users\".");
$row = $frm->addrow("Block message forms that are submitted too quickly", $frm->select_tag("blockquickpost", $userspec, $PHORUM["mod_spamhurdles"]["blockquickpost"]));
$frm->addhelp($row, "Block quick message submits", "If this option is enabled, Phorum will check how much time there is between starting a new message and actually posting it. If a message is posted too quickly, then it's considered to come from a posting robot. To prevent users from accidentally posting the message too quickly themselves (For example by typing only \"yes\" in the body and hitting the submit button), the posting button is disabled as long as the server would block the message. On the button, a countdown is shown to display how many seconds the user has to wait before posting.<br/><br/><b>User impact:</b><br/>This option does work for all browsers, only for the posting button to be disabled, JavaScript support is required.");
$row = $frm->addrow("Check if an HTML commented form field is submitted", $frm->select_tag("commentfieldcheck", $userspec, $PHORUM["mod_spamhurdles"]["commentfieldcheck"]));
$frm->addhelp($row, "Comment form field check", "If this option is enabled, then an extra form field is added to the posting form. However, this form field is embedded within an HTML comment block. Because of that, normal web browsers will fully ignore this extra field. On the other hand, some badly written spam bots will recognize the code as a form field. If such a spam bot posts a message including this extra form field, the message will be blocked.<br/><br/><b>User impact:</b><br/>This does not affect the way in which people can use Phorum, so the recommended value for this option is \"Enable for all users\".");
$row = $frm->addrow("Let the browser sign the message using JavaScript", $frm->select_tag("jsmd5check", $userspec, $PHORUM["mod_spamhurdles"]["jsmd5check"]));
$frm->addhelp($row, "Let the browser sign the message", "If this option is enabled, then the browser will retrieve two pieces of data from the server. The browser will have to create a signature for this data (using MD5) and does so by running some JavaScript. The signing JavaScript code is put in the message editor in a scrambled way (using iScramble) and the browser will have to descramble it using JavaScript to be able to run the signing code.<br/><br/>Functionally, this is all done to force the use of JavaScript when posting a message. This can block those spambots that do not interpret JavaScript, but only try to post the unmodified form information that is found on the message posting page.<br/><br/><b>User impact:</b><br/>This option requires JavaScript support in the browser. If a user does not have JavaScript (enabled), then posting is not possible.");
$frm->addbreak("Interactive CAPTCHA");
$row = $frm->addrow("Let visitors solve a CAPTCHA when registering a new account?", $frm->checkbox("register_captcha", 1, "Yes", $PHORUM["mod_spamhurdles"]["register_captcha"]));
$frm->addhelp($row, "Registering CAPTCHA", "If this option is enabled, a CAPTCHA (Completely Automated Public Turing-test to tell Computers and Humans Apart) will be used when visitors are registering a new user account. A check is added to the registering process, where the user has to prove that he/she is a human, by solving a simple puzzle. Below you can specify which type of CAPTCHA to use for this.<br/><br/><b>User impact:</b><br/>The user will have to solve the CAPTCHA before a new account can be registered. So this will require an extra action by the user. The exact user impact depends on the type of CAPTCHA that is used.");
$row = $frm->addrow("Let visitors solve a CAPTCHA when posting a new message", $frm->select_tag("posting_captcha", $userspec, $PHORUM["mod_spamhurdles"]["posting_captcha"]));
$frm->addhelp($row, "Posting CAPTCHA", "If this option is enabled, a CAPTCHA (Completely Automated Public Turing-test to tell Computers and Humans Apart) will be used when posting a new message. A check is added to the posting process, where the user has to prove that he/she is a human, by solving a simple puzzle. Below you can specify which type of CAPTCHA to use for this.<br/><br/><b>User impact:</b><br/>The user will have to solve the CAPTCHA before a message can be posted. So this will require an extra action by the user. The exact user impact depends on the type of CAPTCHA that is used.");
$captchaspec = array('javascript' => 'Code, drawn using JavaScript', 'image' => 'Code, drawn using a GIF image', 'asciiart' => 'Code, drawn using ASCII art', 'plaintext' => 'Code, plain text format', 'maptcha' => 'Solve a simple math question', 'recaptcha' => 'Code, using the reCAPTCHA service');
$row = $frm->addrow("Which type of CAPTCHA?", $frm->select_tag("captcha_type", $captchaspec, $PHORUM["mod_spamhurdles"]["captcha_type"], "id=\"captcha_select\" onchange=\"handle_captcha_select()\""));
$frm->addhelp($row, "Type of CAPTCHA", "This module supports a wide range of CAPTCHA types. See the README that was bundled with this module for detailed information on these types and for deciding which one you want to use for your site.");
$row = $frm->addrow("Enable spoken CAPTCHA? You will need the program \"Flite\" for this.", $frm->checkbox("spoken_captcha", 1, "Yes", $PHORUM["mod_spamhurdles"]["spoken_captcha"]));
示例15: array
// for getting back to the edit-page
$frm->hidden('edit', '1');
$frm->hidden("group_id", $_GET["group_id"]);
$open_options = array(PHORUM_GROUP_CLOSED => "No", PHORUM_GROUP_OPEN => "Yes", PHORUM_GROUP_REQUIRE_APPROVAL => "Yes (require Group Moderator approval)");
$frm->addrow("Name:", $frm->text_box("name", $group["name"], 50));
$frm->addrow("Allow Membership Requests:", $frm->select_tag("open", $open_options, $group["open"], ""));
$frm->show();
echo "<br /><hr class=\"PhorumAdminHR\" /><br />";
$frm = new PhorumInputForm("", "post", "Update");
$frm->hidden("module", "groups");
$frm->hidden("section", "forums");
// for getting back to the edit-page
$frm->hidden('edit', '1');
$frm->hidden("group_id", $_GET["group_id"]);
$row = $frm->addbreak("Edit Forum Permissions");
$frm->addhelp($row, "Forum Permissions", "Permissions given to groups overwrite any permissions granted by the forum properties. Also, if a user is granted permissions directly to a forum in the user admin, any group permissions he has for that forum will be ignored. If the user is a member of two or more groups that have permissions in the same forum, the permissions will be combined. (eg. If group A allows read and reply and group B allows create and moderate, the user will receive all four permissions.)");
$forumpaths = phorum_get_forum_info(1);
$perm_frm = $frm->checkbox("new_permissions[" . PHORUM_USER_ALLOW_READ . "]", 1, "Read", $new_forum_permission & PHORUM_USER_ALLOW_READ) . " " . $frm->checkbox("new_permissions[" . PHORUM_USER_ALLOW_REPLY . "]", 1, "Reply", $new_forum_permission & PHORUM_USER_ALLOW_REPLY) . " " . $frm->checkbox("new_permissions[" . PHORUM_USER_ALLOW_NEW_TOPIC . "]", 1, "Create New Topics", $new_forum_permission & PHORUM_USER_ALLOW_NEW_TOPIC) . " " . $frm->checkbox("new_permissions[" . PHORUM_USER_ALLOW_EDIT . "]", 1, "Edit Their Posts", $new_forum_permission & PHORUM_USER_ALLOW_EDIT) . "<br />" . $frm->checkbox("new_permissions[" . PHORUM_USER_ALLOW_ATTACH . "]", 1, "Attach Files", $new_forum_permission & PHORUM_USER_ALLOW_ATTACH) . "<br />" . $frm->checkbox("new_permissions[" . PHORUM_USER_ALLOW_MODERATE_MESSAGES . "]", 1, "Moderate Messages", $new_forum_permission & PHORUM_USER_ALLOW_MODERATE_MESSAGES) . " " . $frm->checkbox("new_permissions[" . PHORUM_USER_ALLOW_MODERATE_USERS . "]", 1, "Moderate Users", $new_forum_permission & PHORUM_USER_ALLOW_MODERATE_USERS) . " ";
$arr[] = "Add A Forum...";
foreach ($forumpaths as $forum_id => $forumname) {
if (empty($group["permissions"][$forum_id]) && $forums[$forum_id]['folder_flag'] == 0) {
$arr[$forum_id] = $forumname;
}
}
if (count($arr) > 1) {
$frm->addrow($frm->select_tag("new_forum", $arr), $perm_frm);
}
ksort($group["permissions"]);
if (is_array($group["permissions"])) {
foreach ($group["permissions"] as $forum_id => $perms) {
$perm_frm = $frm->checkbox("permissions[{$forum_id}][" . PHORUM_USER_ALLOW_READ . "]", 1, "Read", $perms & PHORUM_USER_ALLOW_READ) . " " . $frm->checkbox("permissions[{$forum_id}][" . PHORUM_USER_ALLOW_REPLY . "]", 1, "Reply", $perms & PHORUM_USER_ALLOW_REPLY) . " " . $frm->checkbox("permissions[{$forum_id}][" . PHORUM_USER_ALLOW_NEW_TOPIC . "]", 1, "Create New Topics", $perms & PHORUM_USER_ALLOW_NEW_TOPIC) . " " . $frm->checkbox("permissions[{$forum_id}][" . PHORUM_USER_ALLOW_EDIT . "]", 1, "Edit Their Posts", $perms & PHORUM_USER_ALLOW_EDIT) . "<br />" . $frm->checkbox("permissions[{$forum_id}][" . PHORUM_USER_ALLOW_ATTACH . "]", 1, "Attach Files", $perms & PHORUM_USER_ALLOW_ATTACH) . "<br />" . $frm->checkbox("permissions[{$forum_id}][" . PHORUM_USER_ALLOW_MODERATE_MESSAGES . "]", 1, "Moderate Messages", $perms & PHORUM_USER_ALLOW_MODERATE_MESSAGES) . " " . $frm->checkbox("permissions[{$forum_id}][" . PHORUM_USER_ALLOW_MODERATE_USERS . "]", 1, "Moderate Users", $perms & PHORUM_USER_ALLOW_MODERATE_USERS) . " " . $frm->hidden("forums[{$forum_id}]", $forum_id);