mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-07 01:06:48 +02:00
- 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
This commit is contained in:
@@ -40,15 +40,15 @@ class bbcode
|
||||
if ($bbcode_bitfield !== FALSE)
|
||||
{
|
||||
$this->bbcode_bitfield = $bbcode_bitfield;
|
||||
// Init those added with a new bbcode_bitfield (already stored codes will not get parsed again)
|
||||
$this->bbcode_cache_init();
|
||||
}
|
||||
|
||||
if (!$this->bbcode_bitfield)
|
||||
{
|
||||
return $message;
|
||||
}
|
||||
|
||||
// Init those added with a new bbcode_bitfield (already stored codes will not get parsed again)
|
||||
$this->bbcode_cache_init();
|
||||
|
||||
$str = array('search' => array(), 'replace' => array());
|
||||
$preg = array('search' => array(), 'replace' => array());
|
||||
|
||||
|
@@ -131,7 +131,7 @@ class sql_db
|
||||
if ($cache_ttl && method_exists($cache, 'sql_save'))
|
||||
{
|
||||
$cache->sql_save($query, $this->query_result, $cache_ttl);
|
||||
@mysql_free_result($this->query_result);
|
||||
// mysql_free_result happened within sql_save()
|
||||
}
|
||||
elseif (preg_match('/^SELECT/', $query))
|
||||
{
|
||||
|
@@ -117,6 +117,29 @@ function get_userdata($user)
|
||||
return ($row = $db->sql_fetchrow($result)) ? $row : false;
|
||||
}
|
||||
|
||||
// Create forum rules for given forum
|
||||
function generate_forum_rules($forum_data)
|
||||
{
|
||||
if (!$forum_data['forum_rules'] && !$forum_data['forum_rules_link'])
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
global $template, $phpbb_root_path, $phpEx;
|
||||
|
||||
if ($forum_data['forum_rules'])
|
||||
{
|
||||
include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
|
||||
$text_flags = explode(':', $forum_data['forum_rules_flags']);
|
||||
}
|
||||
|
||||
$template->assign_vars(array(
|
||||
'S_FORUM_RULES' => true,
|
||||
'U_FORUM_RULES' => $forum_data['forum_rules_link'],
|
||||
'FORUM_RULES' => (!$forum_data['forum_rules_link']) ? parse_text_display($forum_data['forum_rules'], $forum_data['forum_rules_flags']) : '')
|
||||
);
|
||||
}
|
||||
|
||||
// Create forum navigation links for given forum, create parent
|
||||
// list if currently null, assign basic forum info to template
|
||||
function generate_forum_nav(&$forum_data)
|
||||
@@ -235,7 +258,7 @@ function get_moderators(&$forum_moderators, $forum_id = false)
|
||||
}
|
||||
|
||||
// User authorisation levels output
|
||||
function gen_forum_rules($mode, &$forum_id)
|
||||
function gen_forum_auth_level($mode, &$forum_id)
|
||||
{
|
||||
global $SID, $template, $auth, $user;
|
||||
|
||||
@@ -1098,6 +1121,7 @@ function login_box($s_action, $s_hidden_fields = '', $login_explain = '', $ucp_l
|
||||
}
|
||||
|
||||
$s_hidden_fields .= ($ucp_login && !empty($_SERVER['HTTP_REFERER'])) ? '<input type="hidden" name="redirect" value="' . htmlspecialchars($_SERVER['HTTP_REFERER']) . '" />' : '<input type="hidden" name="redirect" value="' . $s_action . '" />';
|
||||
$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $SID . '" />';
|
||||
|
||||
$template->assign_vars(array(
|
||||
'LOGIN_ERROR' => $err,
|
||||
@@ -1285,7 +1309,7 @@ function extension_allowed($forum_id, $extension)
|
||||
function msg_handler($errno, $msg_text, $errfile, $errline)
|
||||
{
|
||||
global $cache, $db, $auth, $template, $config, $user;
|
||||
global $phpEx, $phpbb_root_path, $starttime, $display_header;
|
||||
global $phpEx, $phpbb_root_path, $starttime, $display_header, $show_prev_info;
|
||||
|
||||
switch ($errno)
|
||||
{
|
||||
@@ -1349,10 +1373,11 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
|
||||
$msg_text = (!empty($user->lang[$msg_text])) ? $user->lang[$msg_text] : $msg_text;
|
||||
$msg_title = (!isset($msg_title)) ? $user->lang['INFORMATION'] : ((!empty($user->lang[$msg_title])) ? $user->lang[$msg_title] : $msg_title);
|
||||
$display_header = (!isset($display_header)) ? false : (bool) $display_header;
|
||||
$show_prev_info = (!isset($show_prev_info)) ? true : (bool) $show_prev_info;
|
||||
|
||||
if (defined('IN_ADMIN'))
|
||||
{
|
||||
adm_page_message($msg_title, $msg_text, $display_header);
|
||||
adm_page_message($msg_title, $msg_text, $display_header, $show_prev_info);
|
||||
adm_page_footer();
|
||||
}
|
||||
else
|
||||
|
@@ -779,12 +779,20 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = FALSE,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!sizeof($where_ids))
|
||||
{
|
||||
return;
|
||||
}
|
||||
$where_sql = 'WHERE ' . $mode{0} . ".$where_type IN (" . implode(', ', $where_ids) . ')';
|
||||
$where_sql_and = $where_sql . "\n\tAND";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!sizeof($where_ids))
|
||||
{
|
||||
return;
|
||||
}
|
||||
$where_sql = 'WHERE ' . $mode{0} . ".$where_type IN (" . implode(', ', $where_ids) . ')';
|
||||
$where_sql_and = $where_sql . "\n\tAND";
|
||||
}
|
||||
@@ -807,7 +815,7 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = FALSE,
|
||||
FROM ' .TOPICS_TABLE . ' t1, ' . TOPICS_TABLE . " t2
|
||||
WHERE t1.topic_moved_id = t2.topic_id
|
||||
AND t1.forum_id = t2.forum_id";
|
||||
$result = $db->sql_query($result);
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
if ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
|
@@ -13,7 +13,7 @@
|
||||
|
||||
function display_forums($root_data = '', $display_moderators = TRUE)
|
||||
{
|
||||
global $config, $db, $template, $auth, $user, $phpEx, $SID, $forum_moderators;
|
||||
global $config, $db, $template, $auth, $user, $phpEx, $SID, $forum_moderators, $phpbb_root_path;
|
||||
|
||||
// Get posted/get info
|
||||
$mark_read = request_var('mark', '');
|
||||
@@ -300,11 +300,10 @@ function display_forums($root_data = '', $display_moderators = TRUE)
|
||||
'S_IS_CAT' => false,
|
||||
'S_IS_LINK' => ($row['forum_type'] != FORUM_LINK) ? false : true,
|
||||
|
||||
'FORUM_IMG' => $row['forum_image'],
|
||||
'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'),
|
||||
|
||||
'FORUM_ID' => $row['forum_id'],
|
||||
'FORUM_FOLDER_IMG' => $user->img($folder_image, $folder_alt),
|
||||
'FORUM_FOLDER_IMG' => ($row['forum_image']) ? '<img src="' . $phpbb_root_path . $row['forum_image'] . '" alt="' . $folder_alt . '" border="0" />' : $user->img($folder_image, $folder_alt),
|
||||
'FORUM_NAME' => $row['forum_name'],
|
||||
'FORUM_DESC' => $row['forum_desc'],
|
||||
$l_post_click_count => $post_click_count,
|
||||
|
@@ -101,7 +101,10 @@ function format_display(&$message, &$signature, $uid, $siguid, $enable_html, $en
|
||||
}
|
||||
|
||||
// Second parse bbcode here
|
||||
$bbcode->bbcode_second_pass($message, $uid);
|
||||
if ($enable_bbcode)
|
||||
{
|
||||
$bbcode->bbcode_second_pass($message, $uid);
|
||||
}
|
||||
|
||||
// If we allow users to disable display of emoticons we'll need an appropriate
|
||||
// check and preg_replace here
|
||||
@@ -128,6 +131,101 @@ function format_display(&$message, &$signature, $uid, $siguid, $enable_html, $en
|
||||
return $message;
|
||||
}
|
||||
|
||||
// Three simple functions we use for bbcode/smilie/url capable text
|
||||
|
||||
// prepare text to be inserted into db...
|
||||
function parse_text_insert($text, $allow_bbcode, $allow_smilies, $allow_magic_url, &$text_flags)
|
||||
{
|
||||
global $message_parser;
|
||||
|
||||
$text_flags += ($allow_bbcode) ? 1 : 0;
|
||||
$text_flags += ($allow_smilies) ? 2 : 0;
|
||||
$text_flags += ($allow_magic_url) ? 4 : 0;
|
||||
|
||||
$match = array('#\r\n?#', '#sid=[a-z0-9]*?&?#', "#([\n][\s]+){3,}#", '#&(\#[0-9]+;)#');
|
||||
$replace = array("\n", '', "\n\n", '&\1');
|
||||
$text = preg_replace($match, $replace, $text);
|
||||
|
||||
// Parse BBCode
|
||||
if (!method_exists('parse_message', 'parse_message') || !isset($message_parser))
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
include_once($phpbb_root_path . 'includes/message_parser.' . $phpEx);
|
||||
$message_parser = new parse_message();
|
||||
}
|
||||
|
||||
$message_parser->message = $text;
|
||||
|
||||
if ($allow_bbcode && strpos($text, '[') !== false)
|
||||
{
|
||||
$message_parser->bbcode_init();
|
||||
$message_parser->bbcode();
|
||||
}
|
||||
|
||||
// Parse Emoticons
|
||||
$message_parser->emoticons($allow_smilies);
|
||||
|
||||
// Parse URL's
|
||||
$message_parser->magic_url($allow_magic_url);
|
||||
|
||||
$text_flags = $text_flags . ':' . $message_parser->bbcode_uid . ':' . $message_parser->bbcode_bitfield;
|
||||
|
||||
return $message_parser->message;
|
||||
}
|
||||
|
||||
// prepare text to be displayed/previewed...
|
||||
function parse_text_display($text, $text_rules)
|
||||
{
|
||||
global $bbcode, $user;
|
||||
|
||||
$text_flags = explode(':', $text_rules);
|
||||
|
||||
$allow_bbcode = (int) $text_flags[0] & 1;
|
||||
$allow_smilies = (int) $text_flags[0] & 2;
|
||||
$allow_magic_url = (int) $text_flags[0] & 4;
|
||||
|
||||
$bbcode_uid = trim($text_flags[1]);
|
||||
$bbcode_bitfield = (int) $text_flags[2];
|
||||
|
||||
if (!$bbcode && $allow_bbcode)
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
include_once($phpbb_root_path . 'includes/bbcode.' . $phpEx);
|
||||
$bbcode = new bbcode();
|
||||
}
|
||||
|
||||
// Second parse bbcode here
|
||||
if ($allow_bbcode)
|
||||
{
|
||||
$bbcode->bbcode_second_pass($text, $bbcode_uid, $bbcode_bitfield);
|
||||
}
|
||||
|
||||
// If we allow users to disable display of emoticons we'll need an appropriate
|
||||
// check and preg_replace here
|
||||
if ($allow_smilies)
|
||||
{
|
||||
$text = smilie_text($text, !$allow_smilies);
|
||||
}
|
||||
|
||||
// Replace naughty words such as farty pants
|
||||
$text = str_replace("\n", '<br />', censor_text($text));
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
// prepare text to be displayed within a form (fetched from db)
|
||||
function parse_text_form_display($text, $text_rules)
|
||||
{
|
||||
// We use decode_text here...
|
||||
$text_rules = explode(':', $text_rules);
|
||||
$bbcode_uid = trim($text_rules[1]);
|
||||
|
||||
decode_text($text, $bbcode_uid);
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
// Update Last Post Informations
|
||||
function update_last_post_information($type, $id)
|
||||
{
|
||||
|
Reference in New Issue
Block a user