From 6aa42b69abe798388aad4f7e6bf943dfb608e896 Mon Sep 17 00:00:00 2001 From: Meik Sievertsen Date: Sun, 30 May 2004 19:24:53 +0000 Subject: - forum rules + link to forum rules - three new (tiny) functions added to functions_posting responsible for handling text with bbcode/smilies/urls, use them at items all over across phpbb... - some bugfixes within admin_forums and other files - new admin_board layout (much safer, security wise) git-svn-id: file:///svn/phpbb/trunk@4903 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/adm/admin_forums.php | 115 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 99 insertions(+), 16 deletions(-) (limited to 'phpBB/adm/admin_forums.php') diff --git a/phpBB/adm/admin_forums.php b/phpBB/adm/admin_forums.php index 4da3de90f4..712c87ca45 100644 --- a/phpBB/adm/admin_forums.php +++ b/phpBB/adm/admin_forums.php @@ -78,6 +78,7 @@ if ($update) // $auth->acl_clear_prefetch(); + $show_prev_info = false; trigger_error($user->lang['FORUM_DELETED']); break; @@ -97,6 +98,11 @@ if ($update) 'forum_link' => request_var('forum_link', ''), 'forum_link_track' => request_var('forum_link_track', FALSE), 'forum_desc' => str_replace("\n", '
', request_var('forum_desc', '')), + 'forum_rules' => request_var('forum_rules', ''), + 'forum_rules_link' => request_var('forum_rules_link', ''), + 'rules_allow_bbcode' => request_var('parse_bbcode', false), + 'rules_allow_smilies' => request_var('parse_smilies', false), + 'rules_allow_urls' => request_var('parse_urls', false), 'forum_image' => request_var('forum_image', ''), 'forum_style' => request_var('forum_style', 0), 'display_on_index' => request_var('display_on_index', FALSE), @@ -127,6 +133,7 @@ if ($update) // Redirect to permissions $message = ($mode == 'add') ? $user->lang['FORUM_CREATED'] : $user->lang['FORUM_UPDATED']; $message .= '

' . sprintf($user->lang['REDIRECT_ACL'], "', ''); + $show_prev_info = ($mode == 'edit') ? true : false; trigger_error($message); break; @@ -150,10 +157,17 @@ switch ($mode) $forum_status = request_var('forum_status', ITEM_UNLOCKED); $forum_desc = request_var('forum_desc', ''); $forum_name = request_var('forum_name', ''); + $forum_rules_link = request_var('forum_rules_link', ''); + $forum_rules = request_var('forum_rules', ''); $forum_password = request_var('forum_password', ''); $forum_password_confirm = request_var('forum_password_confirm', ''); - } + $forum_rules_flags = 0; + $forum_rules_flags += (request_var('parse_bbcode', false)) ? 1 : 0; + $forum_rules_flags += (request_var('parse_smilies', false)) ? 2 : 0; + $forum_rules_flags += (request_var('parse_urls', false)) ? 4 : 0; + } + // Show form to create/modify a forum if ($mode == 'edit') { @@ -174,6 +188,13 @@ switch ($mode) $forums_list = make_forum_select($parent_id, $forum_id, false, true, false); $forum_password_confirm = $forum_password; + + $flags = explode(':', $forum_rules_flags); + + $bbcode_checked = ((int) $flags[0] & 1) ? ' checked="checked"' : ''; + $smilies_checked = ((int) $flags[0] & 2) ? ' checked="checked"' : ''; + $urls_checked = ((int) $flags[0] & 4) ? ' checked="checked"' : ''; + unset($flags); } else { @@ -186,16 +207,36 @@ switch ($mode) { $temp_forum_desc = $forum_desc; $temp_forum_name = $forum_name; + $temp_forum_rules = $forum_rules; + $temp_forum_rules_link = $forum_rules_link; $temp_forum_type = $forum_type; extract(get_forum_info($parent_id)); $forum_type = $temp_forum_type; $forum_name = $temp_forum_name; $forum_desc = $temp_forum_desc; + $forum_rules = $temp_forum_rules; + $forum_rules_link = $temp_forum_rules_link; $forum_password_confirm = $forum_password; } } + // Forum Rules + if ($forum_rules) + { + include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx); + + // Split text rules (we saved the status and bbcode codes here) + if (!strstr($forum_rules_flags, ':') && is_numeric($forum_rules_flags)) + { + // text not parsed yet... a hard time for us... + $forum_rules_flags = 0; + $forum_rules = parse_text_insert($forum_rules, request_var('parse_bbcode', false), request_var('parse_smilies', false), request_var('parse_urls', false), $forum_rules_flags); + } + + $forum_rules_preview = parse_text_display($forum_rules, $forum_rules_flags); + } + $forum_type_options = ''; $forum_type_ary = array(FORUM_CAT => 'CAT', FORUM_POST => 'FORUM', FORUM_LINK => 'LINK'); foreach ($forum_type_ary as $value => $lang) @@ -231,7 +272,7 @@ switch ($mode) $forums_nav = get_forum_branch($forum_id, 'parents', 'descending'); foreach ($forums_nav as $row) { - $navigation .= ($row['forum_id'] == $forum_id) ? ' -> ' . $row['forum_name'] : ' -> ' . $row['forum_name'] . ''; + $navigation .= ($row['forum_id'] == $forum_id) ? ' -> ' . $row['forum_name'] : ' -> ' . $row['forum_name'] . ''; } adm_page_header($l_title); @@ -269,7 +310,7 @@ switch ($mode) ?> - lang['FORUM_TYPE'] ?>: + lang['FORUM_TYPE'] ?>: lang['FORUM_LINK'] ?>:
lang['FORUM_LINK_EXPLAIN']; ?> - + lang['FORUM_LINK_TRACK'] ?>:
lang['FORUM_LINK_TRACK_EXPLAIN']; ?> @@ -334,19 +375,47 @@ switch ($mode) ?> lang['FORUM_NAME']; ?>: - + lang['FORUM_DESC'] ?>:
lang['FORUM_DESC_EXPLAIN']; ?> + + + lang['FORUM_RULES_LINK']; ?>:
lang['FORUM_RULES_LINK_EXPLAIN']; ?> + + + + + lang['FORUM_RULES_PREVIEW'] ?>: + + + + + lang['FORUM_RULES'] ?>:
lang['FORUM_RULES_EXPLAIN']; ?> + +
/>lang['PARSE_BBCODE']; ?> />lang['PARSE_SMILIES']; ?> />lang['PARSE_URLS']; ?>
+ + + lang['FORUM_IMAGE']; ?>:
lang['FORUM_IMAGE_EXPLAIN']; ?> -

'; + echo ''; } ?> @@ -740,18 +809,18 @@ while ($row = $db->sql_fetchrow($result)) if ($row['forum_status'] == ITEM_LOCKED) { - $folder_image = '' . $user->lang['LOCKED'] . ''; + $folder_image = '' . $user->lang['LOCKED'] . ''; } else { switch ($forum_type) { case FORUM_LINK: - $folder_image = '' . $user->lang['LINK'] . ''; + $folder_image = '' . $user->lang['LINK'] . ''; break; default: - $folder_image = ($row['left_id'] + 1 != $row['right_id']) ? '' . $user->lang['SUBFORUM'] . '' : '' . $user->lang['FOLDER'] . ''; + $folder_image = ($row['left_id'] + 1 != $row['right_id']) ? '' . $user->lang['SUBFORUM'] . '' : '' . $user->lang['FOLDER'] . ''; } } @@ -812,9 +881,9 @@ while ($row = $db->sql_fetchrow($result)) -
+
- +
lang['SELECT_FORUM']; ?>: lang['SELECT_FORUM']; ?>:
sql_query($sql); } + $cache->destroy('extensions'); $log_action = implode('_', array($log_action_posts, $log_action_forums)); @@ -1335,8 +1420,6 @@ function delete_forum_content($forum_id) switch (SQL_LAYER) { case 'mysql4': - // Use delete_attachments('topic', $ids, false) here... - // Select then delete all attachments $sql = 'SELECT a.topic_id FROM ' . POSTS_TABLE . ' p, ' . ATTACHMENTS_TABLE . " a -- cgit v1.2.1