mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 14:00:31 +02:00
Merge branch 'develop-olympus' into develop
* develop-olympus: (21 commits) [feature/notify_status] Define'd constants for notify_status [ticket/7782] Send 404 HTTP code when a nonexistent user/forum/topic is requested. [ticket/9530] The prosilver problem in #9531 exists in subsilver2 editor.js [ticket/9530] Subsilver2 is missing BBCode-less quotes fallback-option when bbcodes are disabled. [ticket/9531] BBCode-less quotes fallback-option is missing "Author wrote:" line when quoting from topic-review. [ticket/9547] Use separate constants for display/enable active topics. [ticket/9535] Also fix the margin in the install_update.html [ticket/9535] Fix some more rtl margin issues. [ticket/9535] Correctly set margin of textarea in ACP > Users signature for RTL languages. [ticket/9524] IPv6 regex does not match all valid IPv6 addresses starting with :: [ticket/9510] Unable to copy permissions from and to forums you cannot see [ticket/9510] Unable to copy permissions from and to forums you cannot see [ticket/9545] Initial forum should display active topics by default. [ticket/9546] Also delete bookmarks, when a topic is deleted. [ticket/9529] Topic review is not showing all selected posts. [ticket/9528] Also fall back to bbcode-less quotes for PMs, when bbcodes are disabled. [ticket/9146] Fix double occurring tabindex="6" in prosilver's QR [ticket/9119] Respect language selection on automated update. [ticket/8894] Fix JavaScript-Error and hide Quote-Button on topic review if BBCodes are not allowed. [ticket/9567] Newly registered users group description rewording. ...
This commit is contained in:
@@ -169,7 +169,7 @@ class acp_forums
|
||||
$forum_data['forum_status'] = ITEM_UNLOCKED;
|
||||
}
|
||||
|
||||
$forum_data['show_active'] = ($forum_data['forum_type'] == FORUM_POST) ? request_var('display_recent', true) : request_var('display_active', true);
|
||||
$forum_data['show_active'] = ($forum_data['forum_type'] == FORUM_POST) ? request_var('display_recent', true) : request_var('display_active', false);
|
||||
|
||||
// Get data for forum rules if specified...
|
||||
if ($forum_data['forum_rules'])
|
||||
@@ -407,7 +407,7 @@ class acp_forums
|
||||
$exclude_forums[] = $row['forum_id'];
|
||||
}
|
||||
|
||||
$parents_list = make_forum_select($forum_data['parent_id'], $exclude_forums, true, false, false);
|
||||
$parents_list = make_forum_select($forum_data['parent_id'], $exclude_forums, false, false, false);
|
||||
|
||||
$forum_data['forum_password_confirm'] = $forum_data['forum_password'];
|
||||
}
|
||||
@@ -416,7 +416,7 @@ class acp_forums
|
||||
$this->page_title = 'CREATE_FORUM';
|
||||
|
||||
$forum_id = $this->parent_id;
|
||||
$parents_list = make_forum_select($this->parent_id, false, true, false, false);
|
||||
$parents_list = make_forum_select($this->parent_id, false, false, false, false);
|
||||
|
||||
// Fill forum data with default values
|
||||
if (!$update)
|
||||
@@ -639,7 +639,8 @@ class acp_forums
|
||||
'S_PRUNE_OLD_POLLS' => ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_POLL) ? true : false,
|
||||
'S_PRUNE_ANNOUNCE' => ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_ANNOUNCE) ? true : false,
|
||||
'S_PRUNE_STICKY' => ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_STICKY) ? true : false,
|
||||
'S_DISPLAY_ACTIVE_TOPICS' => ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) ? true : false,
|
||||
'S_DISPLAY_ACTIVE_TOPICS' => ($forum_data['forum_type'] == FORUM_POST) ? ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) : true,
|
||||
'S_ENABLE_ACTIVE_TOPICS' => ($forum_data['forum_type'] == FORUM_CAT) ? ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) : false,
|
||||
'S_ENABLE_POST_REVIEW' => ($forum_data['forum_flags'] & FORUM_FLAG_POST_REVIEW) ? true : false,
|
||||
'S_ENABLE_QUICK_REPLY' => ($forum_data['forum_flags'] & FORUM_FLAG_QUICK_REPLY) ? true : false,
|
||||
'S_CAN_COPY_PERMISSIONS' => ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false,
|
||||
|
@@ -191,24 +191,31 @@ class acp_users
|
||||
trigger_error($user->lang['CANNOT_REMOVE_YOURSELF'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);
|
||||
}
|
||||
|
||||
if (confirm_box(true))
|
||||
if ($delete_type)
|
||||
{
|
||||
user_delete($delete_type, $user_id, $user_row['username']);
|
||||
if (confirm_box(true))
|
||||
{
|
||||
user_delete($delete_type, $user_id, $user_row['username']);
|
||||
|
||||
add_log('admin', 'LOG_USER_DELETED', $user_row['username']);
|
||||
trigger_error($user->lang['USER_DELETED'] . adm_back_link($this->u_action));
|
||||
add_log('admin', 'LOG_USER_DELETED', $user_row['username']);
|
||||
trigger_error($user->lang['USER_DELETED'] . adm_back_link($this->u_action));
|
||||
}
|
||||
else
|
||||
{
|
||||
confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
|
||||
'u' => $user_id,
|
||||
'i' => $id,
|
||||
'mode' => $mode,
|
||||
'action' => $action,
|
||||
'update' => true,
|
||||
'delete' => 1,
|
||||
'delete_type' => $delete_type))
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
|
||||
'u' => $user_id,
|
||||
'i' => $id,
|
||||
'mode' => $mode,
|
||||
'action' => $action,
|
||||
'update' => true,
|
||||
'delete' => 1,
|
||||
'delete_type' => $delete_type))
|
||||
);
|
||||
trigger_error($user->lang['NO_MODE'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -117,6 +117,11 @@ define('NOTIFY_EMAIL', 0);
|
||||
define('NOTIFY_IM', 1);
|
||||
define('NOTIFY_BOTH', 2);
|
||||
|
||||
// Notify status
|
||||
define('NOTIFY_YES', 0);
|
||||
define('NOTIFY_NO', 1);
|
||||
|
||||
|
||||
// Email Priority Settings
|
||||
define('MAIL_LOW_PRIORITY', 4);
|
||||
define('MAIL_NORMAL_PRIORITY', 3);
|
||||
|
@@ -3335,7 +3335,7 @@ function get_preg_expression($mode)
|
||||
break;
|
||||
|
||||
case 'ipv6':
|
||||
return '#^(?:(?:(?:[\dA-F]{1,4}:){6}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:::(?:[\dA-F]{1,4}:){5}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:):(?:[\dA-F]{1,4}:){4}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,2}:(?:[\dA-F]{1,4}:){3}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,3}:(?:[\dA-F]{1,4}:){2}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,4}:(?:[\dA-F]{1,4}:)(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,5}:(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,6}:[\dA-F]{1,4})|(?:(?:[\dA-F]{1,4}:){1,7}:))$#i';
|
||||
return '#^(?:(?:(?:[\dA-F]{1,4}:){6}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:::(?:[\dA-F]{1,4}:){0,5}(?:[\dA-F]{1,4}(?::[\dA-F]{1,4})?|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:):(?:[\dA-F]{1,4}:){4}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,2}:(?:[\dA-F]{1,4}:){3}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,3}:(?:[\dA-F]{1,4}:){2}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,4}:(?:[\dA-F]{1,4}:)(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,5}:(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,6}:[\dA-F]{1,4})|(?:(?:[\dA-F]{1,4}:){1,7}:)|(?:::))$#i';
|
||||
break;
|
||||
|
||||
case 'url':
|
||||
@@ -3621,6 +3621,11 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
|
||||
$user->setup();
|
||||
}
|
||||
|
||||
if ($msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER')
|
||||
{
|
||||
header("HTTP/1.x 404 Not Found");
|
||||
}
|
||||
|
||||
$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);
|
||||
|
||||
|
@@ -96,16 +96,12 @@ function make_forum_select($select_id = false, $ignore_id = false, $ignore_acl =
|
||||
$right = $row['right_id'];
|
||||
$disabled = false;
|
||||
|
||||
if (!$ignore_acl && $auth->acl_get('f_list', $row['forum_id']))
|
||||
if (!$ignore_acl && $auth->acl_gets(array('f_list', 'a_forum', 'a_forumadd', 'a_forumdel'), $row['forum_id']))
|
||||
{
|
||||
if ($only_acl_post && !$auth->acl_get('f_post', $row['forum_id']) || (!$auth->acl_get('m_approve', $row['forum_id']) && !$auth->acl_get('f_noapprove', $row['forum_id'])))
|
||||
{
|
||||
$disabled = true;
|
||||
}
|
||||
else if (!$only_acl_post && !$auth->acl_gets(array('f_list', 'a_forum', 'a_forumadd', 'a_forumdel'), $row['forum_id']))
|
||||
{
|
||||
$disabled = true;
|
||||
}
|
||||
}
|
||||
else if (!$ignore_acl)
|
||||
{
|
||||
@@ -675,7 +671,7 @@ function delete_topics($where_type, $where_ids, $auto_sync = true, $post_count_s
|
||||
|
||||
$db->sql_transaction('begin');
|
||||
|
||||
$table_ary = array(TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, POLL_VOTES_TABLE, POLL_OPTIONS_TABLE, TOPICS_WATCH_TABLE, TOPICS_TABLE);
|
||||
$table_ary = array(BOOKMARKS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, POLL_VOTES_TABLE, POLL_OPTIONS_TABLE, TOPICS_WATCH_TABLE, TOPICS_TABLE);
|
||||
|
||||
foreach ($table_ary as $table)
|
||||
{
|
||||
|
@@ -1112,10 +1112,10 @@ function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id,
|
||||
{
|
||||
$is_watching = true;
|
||||
|
||||
if ($notify_status)
|
||||
if ($notify_status != NOTIFY_YES)
|
||||
{
|
||||
$sql = 'UPDATE ' . $table_sql . "
|
||||
SET notify_status = 0
|
||||
SET notify_status = " . NOTIFY_YES . "
|
||||
WHERE $where_sql = $match_id
|
||||
AND user_id = $user_id";
|
||||
$db->sql_query($sql);
|
||||
@@ -1134,7 +1134,7 @@ function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id,
|
||||
$is_watching = true;
|
||||
|
||||
$sql = 'INSERT INTO ' . $table_sql . " (user_id, $where_sql, notify_status)
|
||||
VALUES ($user_id, $match_id, 0)";
|
||||
VALUES ($user_id, $match_id, " . NOTIFY_YES . ')';
|
||||
$db->sql_query($sql);
|
||||
$message = $user->lang['ARE_WATCHING_' . strtoupper($mode)] . '<br /><br />' . sprintf($user->lang['RETURN_' . strtoupper($mode)], '<a href="' . $redirect_url . '">', '</a>');
|
||||
}
|
||||
|
@@ -1146,7 +1146,7 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id
|
||||
}
|
||||
}
|
||||
|
||||
unset($rowset[$i]);
|
||||
unset($rowset[$post_list[$i]]);
|
||||
}
|
||||
|
||||
if ($mode == 'topic_review')
|
||||
@@ -1201,8 +1201,8 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
|
||||
FROM ' . (($topic_notification) ? TOPICS_WATCH_TABLE : FORUMS_WATCH_TABLE) . ' w, ' . USERS_TABLE . ' u
|
||||
WHERE w.' . (($topic_notification) ? 'topic_id' : 'forum_id') . ' = ' . (($topic_notification) ? $topic_id : $forum_id) . "
|
||||
AND w.user_id NOT IN ($sql_ignore_users)
|
||||
AND w.notify_status = 0
|
||||
AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')
|
||||
AND w.notify_status = " . NOTIFY_YES . '
|
||||
AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')
|
||||
AND u.user_id = w.user_id';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
@@ -1234,8 +1234,8 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
|
||||
FROM ' . FORUMS_WATCH_TABLE . ' fw, ' . USERS_TABLE . " u
|
||||
WHERE fw.forum_id = $forum_id
|
||||
AND fw.user_id NOT IN ($sql_ignore_users)
|
||||
AND fw.notify_status = 0
|
||||
AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')
|
||||
AND fw.notify_status = " . NOTIFY_YES . '
|
||||
AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')
|
||||
AND u.user_id = fw.user_id';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
@@ -1344,8 +1344,8 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
|
||||
|
||||
if (!empty($update_notification['topic']))
|
||||
{
|
||||
$sql = 'UPDATE ' . TOPICS_WATCH_TABLE . "
|
||||
SET notify_status = 1
|
||||
$sql = 'UPDATE ' . TOPICS_WATCH_TABLE . '
|
||||
SET notify_status = ' . NOTIFY_NO . "
|
||||
WHERE topic_id = $topic_id
|
||||
AND " . $db->sql_in_set('user_id', $update_notification['topic']);
|
||||
$db->sql_query($sql);
|
||||
@@ -1353,8 +1353,8 @@ function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id
|
||||
|
||||
if (!empty($update_notification['forum']))
|
||||
{
|
||||
$sql = 'UPDATE ' . FORUMS_WATCH_TABLE . "
|
||||
SET notify_status = 1
|
||||
$sql = 'UPDATE ' . FORUMS_WATCH_TABLE . '
|
||||
SET notify_status = ' . NOTIFY_NO . "
|
||||
WHERE forum_id = $forum_id
|
||||
AND " . $db->sql_in_set('user_id', $update_notification['forum']);
|
||||
$db->sql_query($sql);
|
||||
|
@@ -1054,7 +1054,7 @@ function compose_pm($id, $mode, $action)
|
||||
'S_COMPOSE_PM' => true,
|
||||
'S_EDIT_POST' => ($action == 'edit'),
|
||||
'S_SHOW_PM_ICONS' => $s_pm_icons,
|
||||
'S_BBCODE_ALLOWED' => $bbcode_status,
|
||||
'S_BBCODE_ALLOWED' => ($bbcode_status) ? 1 : 0,
|
||||
'S_BBCODE_CHECKED' => ($bbcode_checked) ? ' checked="checked"' : '',
|
||||
'S_SMILIES_ALLOWED' => $smilies_status,
|
||||
'S_SMILIES_CHECKED' => ($smilies_checked) ? ' checked="checked"' : '',
|
||||
|
Reference in New Issue
Block a user