Merge branch 'develop' of git://github.com/phpbb/phpbb3 into feature/oauth

This commit is contained in:
Joseph Warner 2013-09-10 16:19:39 -04:00
commit 18f6a16101
21 changed files with 253 additions and 169 deletions

View file

@ -20,7 +20,7 @@ if (!is_writable($schema_path))
define('IN_PHPBB', true); define('IN_PHPBB', true);
require(dirname(__FILE__) . '/../phpbb/db/schema_data.php'); require(dirname(__FILE__) . '/../includes/db/schema_data.php');
require(dirname(__FILE__) . '/../phpbb/db/tools.php'); require(dirname(__FILE__) . '/../phpbb/db/tools.php');
$dbms_type_map = phpbb_db_tools::get_dbms_type_map(); $dbms_type_map = phpbb_db_tools::get_dbms_type_map();

View file

@ -56,7 +56,7 @@ echo "USE $dbname;$newline$newline";
@set_time_limit(0); @set_time_limit(0);
require($phpbb_root_path . 'phpbb/db/schema_data.' . $phpEx); require($phpbb_root_path . 'includes/db/schema_data.' . $phpEx);
require($phpbb_root_path . 'phpbb/db/tools.' . $phpEx); require($phpbb_root_path . 'phpbb/db/tools.' . $phpEx);
$dbms_type_map = phpbb_db_tools::get_dbms_type_map(); $dbms_type_map = phpbb_db_tools::get_dbms_type_map();

View file

@ -145,7 +145,6 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11265">PHPBB3-11265</a>] - Functional tests do not assert that board installation succeeded</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11265">PHPBB3-11265</a>] - Functional tests do not assert that board installation succeeded</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11269">PHPBB3-11269</a>] - Travis functional test case errors</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11269">PHPBB3-11269</a>] - Travis functional test case errors</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11278">PHPBB3-11278</a>] - Firebird tables are not removed correctly on 3.0.9-rc1 update</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11278">PHPBB3-11278</a>] - Firebird tables are not removed correctly on 3.0.9-rc1 update</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11288">PHPBB3-11288</a>] - Search fooled by hyphens</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11291">PHPBB3-11291</a>] - &quot;Could not open input file: ../composer.phar&quot; error during phing's create-package</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11291">PHPBB3-11291</a>] - &quot;Could not open input file: ../composer.phar&quot; error during phing's create-package</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11292">PHPBB3-11292</a>] - Newlines removed in display of PM reports, no clickable links in PM reports</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11292">PHPBB3-11292</a>] - Newlines removed in display of PM reports, no clickable links in PM reports</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11301">PHPBB3-11301</a>] - &quot;String offset cast occured&quot; error on PHP 5.4</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11301">PHPBB3-11301</a>] - &quot;String offset cast occured&quot; error on PHP 5.4</li>
@ -185,6 +184,9 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11674">PHPBB3-11674</a>] - Do not include vendor folder if there are no dependencies.</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11674">PHPBB3-11674</a>] - Do not include vendor folder if there are no dependencies.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11524">PHPBB3-11524</a>] - MySQL Upgrader throws warnings on PHP 5.4</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11524">PHPBB3-11524</a>] - MySQL Upgrader throws warnings on PHP 5.4</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11720">PHPBB3-11720</a>] - Reporting posts leads to white page error</li> <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11720">PHPBB3-11720</a>] - Reporting posts leads to white page error</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11769">PHPBB3-11769</a>] - Wrong poster in subscription email when poster is using the Quote button</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11775">PHPBB3-11775</a>] - Error while moving posts to a new topic</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11802">PHPBB3-11802</a>] - Undefined variable $browser in /download/file.php</li>
</ul> </ul>
<h4>Improvement</h4> <h4>Improvement</h4>
<ul> <ul>

View file

@ -179,6 +179,66 @@ ucp_pm_viewmessage_print_head_append
* Location: styles/prosilver/template/ucp_pm_viewmessage_print.html * Location: styles/prosilver/template/ucp_pm_viewmessage_print.html
* Purpose: Add asset calls directly before the `</head>` tag of the Print PM screen * Purpose: Add asset calls directly before the `</head>` tag of the Print PM screen
ucp_prefs_personal_prepend
===
* Locations:
+ styles/prosilver/template/ucp_prefs_personal.html
+ styles/subsilver2/template/ucp_prefs_personal.html
* Purpose: Add user options to the top of the Edit Global Settings block
ucp_prefs_personal_append
===
* Locations:
+ styles/prosilver/template/ucp_prefs_personal.html
+ styles/subsilver2/template/ucp_prefs_personal.html
* Purpose: Add user options to the bottom of the Edit Global Settings block
ucp_prefs_post_prepend
===
* Locations:
+ styles/prosilver/template/ucp_prefs_post.html
+ styles/subsilver2/template/ucp_prefs_post.html
* Purpose: Add user options to the top of the Edit Posting Defaults block
ucp_prefs_post_append
===
* Locations:
+ styles/prosilver/template/ucp_prefs_post.html
+ styles/subsilver2/template/ucp_prefs_post.html
* Purpose: Add user options to the bottom of the Edit Posting Defaults block
ucp_prefs_view_radio_buttons_prepend
===
* Locations:
+ styles/prosilver/template/ucp_prefs_view.html
+ styles/subsilver2/template/ucp_prefs_view.html
* Purpose: Add options to the top of the radio buttons block of the Edit
Display Options screen
ucp_prefs_view_radio_buttons_append
===
* Locations:
+ styles/prosilver/template/ucp_prefs_view.html
+ styles/subsilver2/template/ucp_prefs_view.html
* Purpose: Add options to the bottom of the radio buttons block of the Edit
Display Options screen
ucp_prefs_view_select_menu_prepend
===
* Locations:
+ styles/prosilver/template/ucp_prefs_view.html
+ styles/subsilver2/template/ucp_prefs_view.html
* Purpose: Add options to the top of the drop-down lists block of the Edit
Display Options screen
ucp_prefs_view_select_menu_append
===
* Locations:
+ styles/prosilver/template/ucp_prefs_view.html
+ styles/subsilver2/template/ucp_prefs_view.html
* Purpose: Add options to the bottom of the drop-down lists block of the Edit
Display Options screen
viewtopic_print_head_append viewtopic_print_head_append
=== ===
* Location: styles/prosilver/template/viewtopic_print.html * Location: styles/prosilver/template/viewtopic_print.html

View file

@ -5756,6 +5756,8 @@ function phpbb_create_symfony_request(phpbb_request $request)
*/ */
function phpbb_get_web_root_path(Request $symfony_request, $phpbb_root_path = '') function phpbb_get_web_root_path(Request $symfony_request, $phpbb_root_path = '')
{ {
global $phpbb_container;
static $path; static $path;
if (null !== $path) if (null !== $path)
{ {
@ -5769,7 +5771,11 @@ function phpbb_get_web_root_path(Request $symfony_request, $phpbb_root_path = ''
return $path; return $path;
} }
$corrections = substr_count($path_info, '/'); $filesystem = $phpbb_container->get('filesystem');
$path_info = $filesystem->clean_path($path_info);
// Do not count / at start of path
$corrections = substr_count(substr($path_info, 1), '/');
// When URL Rewriting is enabled, app.php is optional. We have to // When URL Rewriting is enabled, app.php is optional. We have to
// correct for it not being there // correct for it not being there

View file

@ -26,7 +26,7 @@ class ucp_prefs
function main($id, $mode) function main($id, $mode)
{ {
global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx; global $config, $db, $user, $auth, $template, $phpbb_dispatcher, $phpbb_root_path, $phpEx;
$submit = (isset($_POST['submit'])) ? true : false; $submit = (isset($_POST['submit'])) ? true : false;
$error = $data = array(); $error = $data = array();
@ -55,6 +55,20 @@ class ucp_prefs
$data['notifymethod'] = NOTIFY_BOTH; $data['notifymethod'] = NOTIFY_BOTH;
} }
/**
* Add UCP edit global settings data before they are assigned to the template or submitted
*
* To assign data to the template, use $template->assign_vars()
*
* @event core.ucp_prefs_personal_data
* @var bool submit Do we display the form only
* or did the user press submit
* @var array data Array with current ucp options data
* @since 3.1-A1
*/
$vars = array('submit', 'data');
extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_personal_data', compact($vars)));
if ($submit) if ($submit)
{ {
if ($config['override_user_style']) if ($config['override_user_style'])
@ -93,6 +107,17 @@ class ucp_prefs
'user_style' => $data['style'], 'user_style' => $data['style'],
); );
/**
* Update UCP edit global settings data on form submit
*
* @event core.ucp_prefs_personal_update_data
* @var array data Submitted display options data
* @var array sql_ary Display options data we udpate
* @since 3.1-A1
*/
$vars = array('data', 'sql_ary');
extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_personal_update_data', compact($vars)));
$sql = 'UPDATE ' . USERS_TABLE . ' $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id']; WHERE user_id = ' . $user->data['user_id'];
@ -209,6 +234,20 @@ class ucp_prefs
'wordcensor' => request_var('wordcensor', (bool) $user->optionget('viewcensors')), 'wordcensor' => request_var('wordcensor', (bool) $user->optionget('viewcensors')),
); );
/**
* Add UCP edit display options data before they are assigned to the template or submitted
*
* To assign data to the template, use $template->assign_vars()
*
* @event core.ucp_prefs_view_data
* @var bool submit Do we display the form only
* or did the user press submit
* @var array data Array with current ucp options data
* @since 3.1-A1
*/
$vars = array('submit', 'data');
extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_view_data', compact($vars)));
if ($submit) if ($submit)
{ {
$error = validate_data($data, array( $error = validate_data($data, array(
@ -247,6 +286,17 @@ class ucp_prefs
'user_post_show_days' => $data['post_st'], 'user_post_show_days' => $data['post_st'],
); );
/**
* Update UCP edit display options data on form submit
*
* @event core.ucp_prefs_view_update_data
* @var array data Submitted display options data
* @var array sql_ary Display options data we udpate
* @since 3.1-A1
*/
$vars = array('data', 'sql_ary');
extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_view_update_data', compact($vars)));
$sql = 'UPDATE ' . USERS_TABLE . ' $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id']; WHERE user_id = ' . $user->data['user_id'];
@ -335,6 +385,20 @@ class ucp_prefs
); );
add_form_key('ucp_prefs_post'); add_form_key('ucp_prefs_post');
/**
* Add UCP edit posting defaults data before they are assigned to the template or submitted
*
* To assign data to the template, use $template->assign_vars()
*
* @event core.ucp_prefs_post_data
* @var bool submit Do we display the form only
* or did the user press submit
* @var array data Array with current ucp options data
* @since 3.1-A1
*/
$vars = array('submit', 'data');
extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_post_data', compact($vars)));
if ($submit) if ($submit)
{ {
if (check_form_key('ucp_prefs_post')) if (check_form_key('ucp_prefs_post'))
@ -348,6 +412,17 @@ class ucp_prefs
'user_notify' => $data['notify'], 'user_notify' => $data['notify'],
); );
/**
* Update UCP edit posting defaults data on form submit
*
* @event core.ucp_prefs_post_update_data
* @var array data Submitted display options data
* @var array sql_ary Display options data we udpate
* @since 3.1-A1
*/
$vars = array('data', 'sql_ary');
extract($phpbb_dispatcher->trigger_event('core.ucp_prefs_post_update_data', compact($vars)));
$sql = 'UPDATE ' . USERS_TABLE . ' $sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id']; WHERE user_id = ' . $user->data['user_id'];

View file

@ -42,19 +42,12 @@ function jumpto() {
* id = ID of parent container, name = name prefix, state = state [true/false] * id = ID of parent container, name = name prefix, state = state [true/false]
*/ */
function marklist(id, name, state) { function marklist(id, name, state) {
var parent = document.getElementById(id) || document[id]; jQuery('#' + id + ' input[type=checkbox][name]').each(function() {
var $this = jQuery(this);
if (!parent) { if ($this.attr('name').substr(0, name.length) == name) {
return; $this.prop('checked', state);
}
var rb = parent.getElementsByTagName('input');
for (var r = 0; r < rb.length; r++) {
if (rb[r].name.substr(0, name.length) === name) {
rb[r].checked = state;
} }
} });
} }
/** /**
@ -124,29 +117,15 @@ jQuery(document).ready(function() {
} }
function subPanels(p) { function subPanels(p) {
var i, e, t; var i;
if (typeof(p) === 'string') { if (typeof(p) === 'string') {
show_panel = p; show_panel = p;
} }
for (i = 0; i < panels.length; i++) { for (i = 0; i < panels.length; i++) {
e = document.getElementById(panels[i]); jQuery('#' + panels[i]).css('display', panels[i] === show_panel ? 'block' : 'none');
t = document.getElementById(panels[i] + '-tab'); jQuery('#' + panels[i] + '-tab').toggleClass('activetab', panels[i] === show_panel);
if (e) {
if (panels[i] === show_panel) {
e.style.display = 'block';
if (t) {
t.className = 'activetab';
}
} else {
e.style.display = 'none';
if (t) {
t.className = '';
}
}
}
} }
} }
}); });
@ -255,57 +234,6 @@ function play_qt_file(obj) {
obj.Play(); obj.Play();
} }
/**
* Check if the nodeName of elem is name
* @author jQuery
*/
function is_node_name(elem, name) {
return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
}
/**
* Check if elem is in array, return position
* @author jQuery
*/
function is_in_array(elem, array) {
for (var i = 0, length = array.length; i < length; i++) {
// === is correct (IE)
if (array[i] === elem) {
return i;
}
}
return -1;
}
/**
* Find Element, type and class in tree
* Not used, but may come in handy for those not using JQuery
* @author jQuery.find, Meik Sievertsen
*/
function find_in_tree(node, tag, type, class_name) {
var result, element, i = 0, length = node.childNodes.length;
for (element = node.childNodes[0]; i < length; element = node.childNodes[++i]) {
if (!element || element.nodeType !== 1) {
continue;
}
if ((!tag || is_node_name(element, tag)) && (!type || element.type === type)
&& (!class_name || is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1)) {
return element;
}
if (element.childNodes.length) {
result = find_in_tree(element, tag, type, class_name);
}
if (result) {
return result;
}
}
}
var in_autocomplete = false; var in_autocomplete = false;
var last_key_entered = ''; var last_key_entered = '';
@ -336,47 +264,6 @@ function phpbb_check_key(event) {
return false; return false;
} }
/**
* Usually used for onkeypress event, to submit a form on enter
*/
function submit_default_button(event, selector, class_name) {
// Add which for key events
if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) {
event.which = event.charCode || event.keyCode;
}
if (phpbb_check_key(event)) {
return true;
}
var current = selector.parentNode;
// Search parent form element
while (current && (!current.nodeName || current.nodeType !== 1 || !is_node_name(current, 'form')) && current !== document) {
current = current.parentNode;
}
// Find the input submit button with the class name
//current = find_in_tree(current, 'input', 'submit', class_name);
var input_tags = current.getElementsByTagName('input');
current = false;
for (var i = 0, element = input_tags[0]; i < input_tags.length; element = input_tags[++i]) {
if (element.type === 'submit' && is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1) {
current = element;
}
}
if (!current) {
return true;
}
// Submit form
current.focus();
current.click();
return false;
}
/** /**
* Apply onkeypress event for forcing default submit button on ENTER key press * Apply onkeypress event for forcing default submit button on ENTER key press
* The jQuery snippet used is based on http://greatwebguy.com/programming/dom/default-html-button-submit-on-enter-with-jquery/ * The jQuery snippet used is based on http://greatwebguy.com/programming/dom/default-html-button-submit-on-enter-with-jquery/

View file

@ -14,7 +14,7 @@
<h3>{L_REPORT_REASON}{L_COLON} {REPORT_REASON_TITLE}</h3> <h3>{L_REPORT_REASON}{L_COLON} {REPORT_REASON_TITLE}</h3>
<p class="author">{L_REPORTED} {L_POST_BY_AUTHOR} {REPORTER_FULL} &laquo; {REPORT_DATE}</p> <p class="author">{L_REPORTED} {L_POST_BY_AUTHOR} {REPORTER_FULL} &laquo; {REPORT_DATE}</p>
<!-- IF not S_POST_REPORTED --> <!-- IF not S_POST_REPORTED -->
<p class="rules">{L_REPORT_CLOSED}</p> <p class="post-notice reported">{L_REPORT_CLOSED}</p>
<!-- ENDIF --> <!-- ENDIF -->
<div class="content"> <div class="content">
<!-- IF REPORT_TEXT --> <!-- IF REPORT_TEXT -->
@ -71,7 +71,7 @@
<!-- IF S_POST_UNAPPROVED --> <!-- IF S_POST_UNAPPROVED -->
<form method="post" id="mcp_approve" action="{U_APPROVE_ACTION}"> <form method="post" id="mcp_approve" action="{U_APPROVE_ACTION}">
<p class="rules"> <p class="post-notice unapproved">
<input class="button2" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" /> &nbsp; <input class="button2" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" /> &nbsp;
<input class="button1" type="submit" value="{L_APPROVE}" name="action[approve]" /> <input class="button1" type="submit" value="{L_APPROVE}" name="action[approve]" />
<!-- IF not S_FIRST_POST --><input type="hidden" name="mode" value="unapproved_posts" /><!-- ENDIF --> <!-- IF not S_FIRST_POST --><input type="hidden" name="mode" value="unapproved_posts" /><!-- ENDIF -->
@ -82,7 +82,7 @@
<!-- ELSEIF S_POST_DELETED --> <!-- ELSEIF S_POST_DELETED -->
<form method="post" id="mcp_approve" action="{U_APPROVE_ACTION}"> <form method="post" id="mcp_approve" action="{U_APPROVE_ACTION}">
<p class="rules"> <p class="post-notice deleted">
<input class="button2" type="submit" value="{L_DELETE}" name="action[disapprove]" /> &nbsp; <input class="button2" type="submit" value="{L_DELETE}" name="action[disapprove]" /> &nbsp;
<input class="button1" type="submit" value="{L_RESTORE}" name="action[restore]" /> <input class="button1" type="submit" value="{L_RESTORE}" name="action[restore]" />
<!-- IF not S_FIRST_POST --><input type="hidden" name="mode" value="unapproved_posts" /><!-- ENDIF --> <!-- IF not S_FIRST_POST --><input type="hidden" name="mode" value="unapproved_posts" /><!-- ENDIF -->
@ -93,7 +93,7 @@
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_MESSAGE_REPORTED --> <!-- IF S_MESSAGE_REPORTED -->
<p class="rules"> <p class="post-notice reported">
{REPORTED_IMG} <a href="{U_MCP_REPORT}"><strong>{L_MESSAGE_REPORTED}</strong></a> {REPORTED_IMG} <a href="{U_MCP_REPORT}"><strong>{L_MESSAGE_REPORTED}</strong></a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -101,11 +101,21 @@
<h3><a href="{postrow.U_POST_DETAILS}">{postrow.POST_SUBJECT}</a></h3> <h3><a href="{postrow.U_POST_DETAILS}">{postrow.POST_SUBJECT}</a></h3>
<p class="author"><a href="#pr{postrow.POST_ID}">{postrow.MINI_POST_IMG}</a> {L_POSTED} {postrow.POST_DATE} {L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong><!-- IF postrow.U_MCP_DETAILS --> [ <a href="{postrow.U_MCP_DETAILS}">{L_POST_DETAILS}</a> ]<!-- ENDIF --></p> <p class="author"><a href="#pr{postrow.POST_ID}">{postrow.MINI_POST_IMG}</a> {L_POSTED} {postrow.POST_DATE} {L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong><!-- IF postrow.U_MCP_DETAILS --> [ <a href="{postrow.U_MCP_DETAILS}">{L_POST_DETAILS}</a> ]<!-- ENDIF --></p>
<!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_DELETED or postrow.S_POST_REPORTED --> <!-- IF postrow.S_POST_UNAPPROVED -->
<p class="rules"> <p class="post-notice unapproved">
<!-- IF postrow.S_POST_UNAPPROVED -->{UNAPPROVED_IMG} <a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_UNAPPROVED}</strong></a><br /><!-- ENDIF --> <a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_UNAPPROVED}</strong></a>
<!-- IF postrow.S_POST_DELETED -->{DELETED_IMG} <a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_DELETED}</strong></a><br /><!-- ENDIF --> </p>
<!-- IF postrow.S_POST_REPORTED -->{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a><!-- ENDIF --> <!-- ENDIF -->
<!-- IF postrow.S_POST_DELETED -->
<p class="post-notice deleted">
<a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_DELETED}</strong></a>
</p>
<!-- ENDIF -->
<!-- IF postrow.S_POST_REPORTED -->
<p class="post-notice reported">
<a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -62,7 +62,7 @@
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_DISPLAY_NOTICE --> <!-- IF S_DISPLAY_NOTICE -->
<div class="rules">{L_DOWNLOAD_NOTICE}</div> <div class="post-notice error">{L_DOWNLOAD_NOTICE}</div>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF EDITED_MESSAGE or EDIT_REASON --> <!-- IF EDITED_MESSAGE or EDIT_REASON -->

View file

@ -9,6 +9,7 @@
<fieldset> <fieldset>
<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF --> <!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF -->
<!-- EVENT ucp_prefs_personal_prepend -->
<dl> <dl>
<dt><label for="viewemail0">{L_SHOW_EMAIL}{L_COLON}</label></dt> <dt><label for="viewemail0">{L_SHOW_EMAIL}{L_COLON}</label></dt>
<dd> <dd>
@ -71,6 +72,7 @@
</dd> </dd>
<dd id="custom_date" style="display:none;"><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" maxlength="30" class="inputbox narrow" style="margin-top: 3px;" /></dd> <dd id="custom_date" style="display:none;"><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" maxlength="30" class="inputbox narrow" style="margin-top: 3px;" /></dd>
</dl> </dl>
<!-- EVENT ucp_prefs_personal_append -->
</fieldset> </fieldset>
</div> </div>

View file

@ -8,6 +8,7 @@
<fieldset> <fieldset>
<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF --> <!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF -->
<!-- EVENT ucp_prefs_post_prepend -->
<dl> <dl>
<dt><label for="bbcode1">{L_DEFAULT_BBCODE}{L_COLON}</label></dt> <dt><label for="bbcode1">{L_DEFAULT_BBCODE}{L_COLON}</label></dt>
<dd> <dd>
@ -36,6 +37,7 @@
<label for="notify0"><input type="radio" name="notify" id="notify0" value="0"<!-- IF not S_NOTIFY --> checked="checked"<!-- ENDIF --> /> {L_NO}</label> <label for="notify0"><input type="radio" name="notify" id="notify0" value="0"<!-- IF not S_NOTIFY --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd> </dd>
</dl> </dl>
<!-- EVENT ucp_prefs_post_append -->
</fieldset> </fieldset>
</div> </div>

View file

@ -9,6 +9,7 @@
<fieldset> <fieldset>
<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF --> <!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF -->
<!-- EVENT ucp_prefs_view_radio_buttons_prepend -->
<dl> <dl>
<dt><label for="images1">{L_VIEW_IMAGES}{L_COLON}</label></dt> <dt><label for="images1">{L_VIEW_IMAGES}{L_COLON}</label></dt>
<dd> <dd>
@ -53,7 +54,9 @@
</dd> </dd>
</dl> </dl>
<!-- ENDIF --> <!-- ENDIF -->
<!-- EVENT ucp_prefs_view_radio_buttons_append -->
<hr /> <hr />
<!-- EVENT ucp_prefs_view_select_menu_prepend -->
<dl> <dl>
<dt><label>{L_VIEW_TOPICS_DAYS}{L_COLON}</label></dt> <dt><label>{L_VIEW_TOPICS_DAYS}{L_COLON}</label></dt>
<dd>{S_TOPIC_SORT_DAYS}</dd> <dd>{S_TOPIC_SORT_DAYS}</dd>
@ -79,6 +82,7 @@
<dt><label>{L_VIEW_POSTS_DIR}{L_COLON}</label></dt> <dt><label>{L_VIEW_POSTS_DIR}{L_COLON}</label></dt>
<dd>{S_POST_SORT_DIR}</dd> <dd>{S_POST_SORT_DIR}</dd>
</dl> </dl>
<!-- EVENT ucp_prefs_view_select_menu_append -->
</fieldset> </fieldset>
</div> </div>

View file

@ -151,29 +151,32 @@
<h3 <!-- IF postrow.S_FIRST_ROW -->class="first"<!-- ENDIF -->><!-- IF postrow.POST_ICON_IMG --><img src="{T_ICONS_PATH}{postrow.POST_ICON_IMG}" width="{postrow.POST_ICON_IMG_WIDTH}" height="{postrow.POST_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="#p{postrow.POST_ID}">{postrow.POST_SUBJECT}</a></h3> <h3 <!-- IF postrow.S_FIRST_ROW -->class="first"<!-- ENDIF -->><!-- IF postrow.POST_ICON_IMG --><img src="{T_ICONS_PATH}{postrow.POST_ICON_IMG}" width="{postrow.POST_ICON_IMG_WIDTH}" height="{postrow.POST_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="#p{postrow.POST_ID}">{postrow.POST_SUBJECT}</a></h3>
<p class="author"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF -->{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; {postrow.POST_DATE} </p> <p class="author"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF -->{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; {postrow.POST_DATE} </p>
<!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_DELETED or postrow.S_POST_REPORTED --> <!-- IF postrow.S_POST_UNAPPROVED -->
<form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}"> <form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}">
<p class="rules"> <p class="post-notice unapproved">
<!-- IF postrow.S_POST_UNAPPROVED --> <strong>{L_POST_UNAPPROVED}</strong>
{UNAPPROVED_IMG} <strong>{L_POST_UNAPPROVED}</strong> <input class="button2" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" />
<input class="button2" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" /> <input class="button1" type="submit" value="{L_APPROVE}" name="action[approve]" />
<input class="button1" type="submit" value="{L_APPROVE}" name="action[approve]" /> <input type="hidden" name="post_id_list[]" value="{postrow.POST_ID}" />
<input type="hidden" name="post_id_list[]" value="{postrow.POST_ID}" /> {S_FORM_TOKEN}
{S_FORM_TOKEN}
<br />
<!-- ELSEIF postrow.S_POST_DELETED -->
{DELETED_IMG} <strong>{L_POST_DELETED}</strong>
<input class="button2" type="submit" value="{L_DELETE}" name="action[disapprove]" />
<input class="button1" type="submit" value="{L_RESTORE}" name="action[restore]" />
<input type="hidden" name="post_id_list[]" value="{postrow.POST_ID}" />
{S_FORM_TOKEN}
<br />
<!-- ENDIF -->
<!-- IF postrow.S_POST_REPORTED -->
{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a>
<!-- ENDIF -->
</p> </p>
</form> </form>
<!-- ELSEIF postrow.S_POST_DELETED -->
<form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}">
<p class="post-notice deleted">
<strong>{L_POST_DELETED}</strong>
<input class="button2" type="submit" value="{L_DELETE}" name="action[disapprove]" />
<input class="button1" type="submit" value="{L_RESTORE}" name="action[restore]" />
<input type="hidden" name="post_id_list[]" value="{postrow.POST_ID}" />
{S_FORM_TOKEN}
</p>
</form>
<!-- ENDIF -->
<!-- IF postrow.S_POST_REPORTED -->
<p class="post-notice reported">
<a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a>
</p>
<!-- ENDIF --> <!-- ENDIF -->
<div class="content">{postrow.MESSAGE}</div> <div class="content">{postrow.MESSAGE}</div>

View file

@ -371,6 +371,13 @@
float: right; float: right;
} }
.rtl p.post-notice:before {
left: auto;
right: 0;
padding-left: 5px;
padding-right: 26px;
}
/* Topic review panel /* Topic review panel
----------------------------------------*/ ----------------------------------------*/
.rtl #topicreview { .rtl #topicreview {

View file

@ -214,11 +214,24 @@ div.rules {
color: #BC2A4D; color: #BC2A4D;
} }
p.rules { p.post-notice {
background-color: #ECD5D8; background-color: #ECD5D8;
background-image: none; background-image: none;
} }
p.post-notice.deleted:before {
background-image: url("./images/icon_topic_deleted.png");
}
p.post-notice.unapproved:before {
background-image: url("./images/icon_topic_unapproved.gif");
}
p.post-notice.reported:before, p.post-notice.error:before {
background-image: url("./images/icon_topic_reported.gif");
}
/* /*
-------------------------------------------------------------- --------------------------------------------------------------
Colours and backgrounds for links.css Colours and backgrounds for links.css

View file

@ -685,23 +685,28 @@ div.rules ul, div.rules ol {
margin-left: 20px; margin-left: 20px;
} }
p.rules { p.post-notice {
background-image: none; position: relative;
padding: 5px; padding: 5px;
padding-left: 26px;
min-height: 14px;
margin-bottom: 1em;
} }
p.rules img { p.post-notice:before {
vertical-align: middle; content: '';
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 28px;
background: transparent none 50% 50% no-repeat;
pointer-events: none;
} }
p.rules strong { form > p.post-notice strong {
vertical-align: middle; line-height: 20px;
padding-top: 5px;
}
p.rules a {
vertical-align: middle;
clear: both;
} }
#top { #top {

View file

@ -29,6 +29,7 @@
<td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td> <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- EVENT ucp_prefs_personal_prepend -->
<tr> <tr>
<td class="row1" width="50%"><b class="genmed">{L_SHOW_EMAIL}{L_COLON}</b></td> <td class="row1" width="50%"><b class="genmed">{L_SHOW_EMAIL}{L_COLON}</b></td>
<td class="row2"><input type="radio" class="radio" name="viewemail" value="1"<!-- IF S_VIEW_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="viewemail" value="0"<!-- IF not S_VIEW_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td> <td class="row2"><input type="radio" class="radio" name="viewemail" value="1"<!-- IF S_VIEW_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_YES}</span>&nbsp;&nbsp;<input type="radio" class="radio" name="viewemail" value="0"<!-- IF not S_VIEW_EMAIL --> checked="checked"<!-- ENDIF --> /><span class="genmed">{L_NO}</span></td>
@ -75,6 +76,7 @@
<div id="custom_date"<!-- IF not S_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" maxlength="30" class="post" style="margin-top: 3px;" /></div> <div id="custom_date"<!-- IF not S_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" maxlength="30" class="post" style="margin-top: 3px;" /></div>
</td> </td>
</tr> </tr>
<!-- EVENT ucp_prefs_personal_append -->
<tr> <tr>
<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td> <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
</tr> </tr>

View file

@ -9,6 +9,7 @@
<td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td> <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- EVENT ucp_prefs_post_prepend -->
<tr> <tr>
<td class="row1" width="50%"><b class="genmed">{L_DEFAULT_BBCODE}{L_COLON}</b></td> <td class="row1" width="50%"><b class="genmed">{L_DEFAULT_BBCODE}{L_COLON}</b></td>
<td class="row2"><input type="radio" class="radio" name="bbcode" value="1"<!-- IF S_BBCODE --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="bbcode" value="0"<!-- IF not S_BBCODE --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td> <td class="row2"><input type="radio" class="radio" name="bbcode" value="1"<!-- IF S_BBCODE --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="bbcode" value="0"<!-- IF not S_BBCODE --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
@ -25,6 +26,7 @@
<td class="row1" width="50%"><b class="genmed">{L_DEFAULT_NOTIFY}{L_COLON}</b></td> <td class="row1" width="50%"><b class="genmed">{L_DEFAULT_NOTIFY}{L_COLON}</b></td>
<td class="row2"><input type="radio" class="radio" name="notify" value="1"<!-- IF S_NOTIFY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="notify" value="0"<!-- IF not S_NOTIFY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td> <td class="row2"><input type="radio" class="radio" name="notify" value="1"<!-- IF S_NOTIFY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="notify" value="0"<!-- IF not S_NOTIFY --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr> </tr>
<!-- EVENT ucp_prefs_post_append -->
<tr> <tr>
<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td> <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
</tr> </tr>

View file

@ -9,6 +9,7 @@
<td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td> <td class="row3" colspan="2" align="center"><span class="gensmall error">{ERROR}</span></td>
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- EVENT ucp_prefs_view_radio_buttons_prepend -->
<tr> <tr>
<td class="row1" width="50%"><b class="genmed">{L_VIEW_IMAGES}{L_COLON}</b></td> <td class="row1" width="50%"><b class="genmed">{L_VIEW_IMAGES}{L_COLON}</b></td>
<td class="row2"><input type="radio" class="radio" name="images" value="1"<!-- IF S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="images" value="0"<!-- IF not S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td> <td class="row2"><input type="radio" class="radio" name="images" value="1"<!-- IF S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="images" value="0"<!-- IF not S_IMAGES --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
@ -35,9 +36,11 @@
<td class="row2"><input type="radio" class="radio" name="wordcensor" value="1"<!-- IF S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="wordcensor" value="0"<!-- IF not S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td> <td class="row2"><input type="radio" class="radio" name="wordcensor" value="1"<!-- IF S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_YES}</span>&nbsp; &nbsp;<input type="radio" class="radio" name="wordcensor" value="0"<!-- IF not S_DISABLE_CENSORS --> checked="checked"<!-- ENDIF --> /><span class="gen">{L_NO}</span></td>
</tr> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- EVENT ucp_prefs_view_radio_buttons_append -->
<tr> <tr>
<td colspan="2" class="spacer"></td> <td colspan="2" class="spacer"></td>
</tr> </tr>
<!-- EVENT ucp_prefs_view_select_menu_prepend -->
<tr> <tr>
<td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_DAYS}{L_COLON}</b></td> <td class="row1" width="50%"><b class="genmed">{L_VIEW_TOPICS_DAYS}{L_COLON}</b></td>
<td class="row2">{S_TOPIC_SORT_DAYS}</td> <td class="row2">{S_TOPIC_SORT_DAYS}</td>
@ -65,6 +68,7 @@
<td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_DIR}{L_COLON}</b></td> <td class="row1" width="50%"><b class="genmed">{L_VIEW_POSTS_DIR}{L_COLON}</b></td>
<td class="row2">{S_POST_SORT_DIR}</td> <td class="row2">{S_POST_SORT_DIR}</td>
</tr> </tr>
<!-- EVENT ucp_prefs_view_select_menu_append -->
<tr> <tr>
<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td> <td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
</tr> </tr>