mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
Merge remote-tracking branch 'igorw/feature/ajax' into develop
This commit is contained in:
commit
013a8649a5
49 changed files with 1203 additions and 70 deletions
BIN
phpBB/adm/images/alert_close.png
Normal file
BIN
phpBB/adm/images/alert_close.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2 KiB |
|
@ -248,7 +248,7 @@
|
|||
<!-- ELSE --><br /><span>» {L_ALLOWED_IN_PM_POST}</span><!-- ENDIF -->
|
||||
</td>
|
||||
<td>{groups.CATEGORY}</td>
|
||||
<td align="center" valign="middle" style="white-space: nowrap;"> <a href="{groups.U_EDIT}">{ICON_EDIT}</a> <a href="{groups.U_DELETE}">{ICON_DELETE}</a> </td>
|
||||
<td align="center" valign="middle" style="white-space: nowrap;"> <a href="{groups.U_EDIT}">{ICON_EDIT}</a> <a href="{groups.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a> </td>
|
||||
</tr>
|
||||
<!-- END groups -->
|
||||
</tbody>
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
<!-- BEGIN bbcodes -->
|
||||
<!-- IF bbcodes.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
|
||||
<td style="text-align: center;">{bbcodes.BBCODE_TAG}</td>
|
||||
<td style="text-align: right; width: 40px;"><a href="{bbcodes.U_EDIT}">{ICON_EDIT}</a> <a href="{bbcodes.U_DELETE}">{ICON_DELETE}</a></td>
|
||||
<td style="text-align: right; width: 40px;"><a href="{bbcodes.U_EDIT}">{ICON_EDIT}</a> <a href="{bbcodes.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a></td>
|
||||
</tr>
|
||||
<!-- BEGINELSE -->
|
||||
<tr class="row3">
|
||||
|
|
|
@ -76,9 +76,9 @@
|
|||
<!-- IF bots.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
|
||||
<td style="width: 50%;">{bots.BOT_NAME}</td>
|
||||
<td style="width: 15%; white-space: nowrap;" align="center"> {bots.LAST_VISIT} </td>
|
||||
<td style="text-align: center;"> <a href="{bots.U_ACTIVATE_DEACTIVATE}">{bots.L_ACTIVATE_DEACTIVATE}</a> </td>
|
||||
<td style="text-align: center;"> <a href="{bots.U_ACTIVATE_DEACTIVATE}" data-ajax="activate_deactivate">{bots.L_ACTIVATE_DEACTIVATE}</a> </td>
|
||||
<td style="text-align: center;"> <a href="{bots.U_EDIT}">{L_EDIT}</a> </td>
|
||||
<td style="text-align: center;"> <a href="{bots.U_DELETE}">{L_DELETE}</a> </td>
|
||||
<td style="text-align: center;"> <a href="{bots.U_DELETE}" data-ajax="row_delete">{L_DELETE}</a> </td>
|
||||
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{bots.BOT_ID}" /></td>
|
||||
</tr>
|
||||
<!-- END bots -->
|
||||
|
|
|
@ -443,7 +443,7 @@
|
|||
<col class="row1" /><col class="row1" /><col class="row2" />
|
||||
<tbody>
|
||||
<!-- BEGIN forums -->
|
||||
<tr>
|
||||
<tr data-down="{forums.U_MOVE_DOWN}" data-up="{forums.U_MOVE_UP}">
|
||||
<td style="width: 5%; text-align: center;">{forums.FOLDER_IMAGE}</td>
|
||||
<td>
|
||||
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
|
||||
|
@ -453,17 +453,17 @@
|
|||
</td>
|
||||
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
||||
<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
|
||||
{ICON_MOVE_UP_DISABLED}
|
||||
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
||||
<span class="down"><a href="{forums.U_MOVE_DOWN}" data-ajax="forum_down">{ICON_MOVE_DOWN}</a></span>
|
||||
<!-- ELSEIF not forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
|
||||
<a href="{forums.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
||||
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
||||
<span class="up"><a href="{forums.U_MOVE_UP}" data-ajax="forum_up">{ICON_MOVE_UP}</a></span>
|
||||
<span class="down"><a href="{forums.U_MOVE_DOWN}" data-ajax="forum_down">{ICON_MOVE_DOWN}</a></span>
|
||||
<!-- ELSEIF forums.S_LAST_ROW && not forums.S_FIRST_ROW -->
|
||||
<a href="{forums.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
||||
{ICON_MOVE_DOWN_DISABLED}
|
||||
<span class="up"><a href="{forums.U_MOVE_UP}" data-ajax="forum_up">{ICON_MOVE_UP}</a></span>
|
||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
||||
<!-- ELSE -->
|
||||
{ICON_MOVE_UP_DISABLED}
|
||||
{ICON_MOVE_DOWN_DISABLED}
|
||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
||||
<!-- ENDIF -->
|
||||
<a href="{forums.U_EDIT}">{ICON_EDIT}</a>
|
||||
<!-- IF not forums.S_FORUM_LINK -->
|
||||
|
@ -500,6 +500,14 @@
|
|||
</fieldset>
|
||||
</form>
|
||||
|
||||
<div class="hidden">
|
||||
<a class="template-up-img" href="#">{ICON_MOVE_UP}</a>
|
||||
<span class="template-up-img-disabled">{ICON_MOVE_UP_DISABLED}</span>
|
||||
|
||||
<a class="template-down-img" href="#">{ICON_MOVE_DOWN}</a>
|
||||
<span class="template-down-img-disabled">{ICON_MOVE_DOWN_DISABLED}</span>
|
||||
</div>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
||||
|
|
|
@ -350,7 +350,7 @@
|
|||
<td style="text-align: center;">{groups.TOTAL_MEMBERS}</td>
|
||||
<td style="text-align: center;"><a href="{groups.U_EDIT}">{L_SETTINGS}</a></td>
|
||||
<td style="text-align: center;"><a href="{groups.U_LIST}">{L_MEMBERS}</a></td>
|
||||
<td style="text-align: center;"><!-- IF not groups.S_GROUP_SPECIAL and groups.U_DELETE --><a href="{groups.U_DELETE}">{L_DELETE}</a><!-- ELSE -->{L_DELETE}<!-- ENDIF --></td>
|
||||
<td style="text-align: center;"><!-- IF not groups.S_GROUP_SPECIAL and groups.U_DELETE --><a href="{groups.U_DELETE}" data-ajax="row_delete">{L_DELETE}</a><!-- ELSE -->{L_DELETE}<!-- ENDIF --></td>
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
<!-- END groups -->
|
||||
|
|
|
@ -245,7 +245,7 @@
|
|||
<td style="text-align: right; white-space: nowrap;">
|
||||
<!-- IF items.S_FIRST_ROW and not PREVIOUS_PAGE -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->
|
||||
<!-- IF items.S_LAST_ROW and not NEXT_PAGE -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
|
||||
<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}">{ICON_DELETE}</a>
|
||||
<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- BEGINELSE -->
|
||||
|
|
|
@ -152,35 +152,35 @@
|
|||
<fieldset>
|
||||
<legend>{L_STATISTIC_RESYNC_OPTIONS}</legend>
|
||||
|
||||
<form id="action_online_form" method="post" action="{U_ACTION}">
|
||||
<form id="action_online_form" method="post" action="{U_ACTION}" data-ajax="true">
|
||||
<dl>
|
||||
<dt><label for="action_online">{L_RESET_ONLINE}</label><br /><span> </span></dt>
|
||||
<dd><input type="hidden" name="action" value="online" /><input class="button2" type="submit" id="action_online" name="action_online" value="{L_RUN}" /></dd>
|
||||
</dl>
|
||||
</form>
|
||||
|
||||
<form id="action_date_form" method="post" action="{U_ACTION}">
|
||||
<form id="action_date_form" method="post" action="{U_ACTION}" data-ajax="true">
|
||||
<dl>
|
||||
<dt><label for="action_date">{L_RESET_DATE}</label><br /><span> </span></dt>
|
||||
<dd><input type="hidden" name="action" value="date" /><input class="button2" type="submit" id="action_date" name="action_date" value="{L_RUN}" /></dd>
|
||||
</dl>
|
||||
</form>
|
||||
|
||||
<form id="action_stats_form" method="post" action="{U_ACTION}">
|
||||
<form id="action_stats_form" method="post" action="{U_ACTION}" data-ajax="true">
|
||||
<dl>
|
||||
<dt><label for="action_stats">{L_RESYNC_STATS}</label><br /><span>{L_RESYNC_STATS_EXPLAIN}</span></dt>
|
||||
<dd><input type="hidden" name="action" value="stats" /><input class="button2" type="submit" id="action_stats" name="action_stats" value="{L_RUN}" /></dd>
|
||||
</dl>
|
||||
</form>
|
||||
|
||||
<form id="action_user_form" method="post" action="{U_ACTION}">
|
||||
<form id="action_user_form" method="post" action="{U_ACTION}" data-ajax="true">
|
||||
<dl>
|
||||
<dt><label for="action_user">{L_RESYNC_POSTCOUNTS}</label><br /><span>{L_RESYNC_POSTCOUNTS_EXPLAIN}</span></dt>
|
||||
<dd><input type="hidden" name="action" value="user" /><input class="button2" type="submit" id="action_user" name="action_user" value="{L_RUN}" /></dd>
|
||||
</dl>
|
||||
</form>
|
||||
|
||||
<form id="action_db_track_form" method="post" action="{U_ACTION}">
|
||||
<form id="action_db_track_form" method="post" action="{U_ACTION}" data-ajax="true">
|
||||
<dl>
|
||||
<dt><label for="action_db_track">{L_RESYNC_POST_MARKING}</label><br /><span>{L_RESYNC_POST_MARKING_EXPLAIN}</span></dt>
|
||||
<dd><input type="hidden" name="action" value="db_track" /><input class="button2" type="submit" id="action_db_track" name="action_db_track" value="{L_RUN}" /></dd>
|
||||
|
@ -188,7 +188,7 @@
|
|||
</form>
|
||||
|
||||
<!-- IF S_FOUNDER -->
|
||||
<form id="action_purge_sessions_form" method="post" action="{U_ACTION}">
|
||||
<form id="action_purge_sessions_form" method="post" action="{U_ACTION}" data-ajax="true">
|
||||
<dl>
|
||||
<dt><label for="action_purge_sessions">{L_PURGE_SESSIONS}</label><br /><span>{L_PURGE_SESSIONS_EXPLAIN}</span></dt>
|
||||
<dd><input type="hidden" name="action" value="purge_sessions" /><input class="button2" type="submit" id="action_purge_sessions" name="action_purge_sessions" value="{L_RUN}" /></dd>
|
||||
|
@ -196,7 +196,7 @@
|
|||
</form>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<form id="action_purge_cache_form" method="post" action="{U_ACTION}">
|
||||
<form id="action_purge_cache_form" method="post" action="{U_ACTION}" data-ajax="true">
|
||||
<dl>
|
||||
<dt><label for="action_purge_cache">{L_PURGE_CACHE}</label><br /><span>{L_PURGE_CACHE_EXPLAIN}</span></dt>
|
||||
<dd><input type="hidden" name="action" value="purge_cache" /><input class="button2" type="submit" id="action_purge_cache" name="action_purge_cache" value="{L_RUN}" /></dd>
|
||||
|
|
|
@ -164,7 +164,7 @@
|
|||
{ICON_MOVE_DOWN_DISABLED}
|
||||
<!-- ENDIF -->
|
||||
<a href="{modules.U_EDIT}">{ICON_EDIT}</a>
|
||||
<a href="{modules.U_DELETE}">{ICON_DELETE}</a>
|
||||
<a href="{modules.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END modules -->
|
||||
|
|
|
@ -174,7 +174,7 @@
|
|||
{ICON_MOVE_DOWN_DISABLED}
|
||||
<!-- ENDIF -->
|
||||
<a href="{roles.U_EDIT}" title="{L_EDIT_ROLE}">{ICON_EDIT}</a>
|
||||
<a href="{roles.U_REMOVE}" title="{L_REMOVE_ROLE}">{ICON_DELETE}</a>
|
||||
<a href="{roles.U_REMOVE}" title="{L_REMOVE_ROLE}" data-ajax="row_delete">{ICON_DELETE}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END roles -->
|
||||
|
|
|
@ -195,7 +195,7 @@
|
|||
|
||||
<td>{fields.FIELD_IDENT}</td>
|
||||
<td>{fields.FIELD_TYPE}</td>
|
||||
<td style="text-align: center;"><a href="{fields.U_ACTIVATE_DEACTIVATE}">{fields.L_ACTIVATE_DEACTIVATE}</a><!-- IF fields.S_NEED_EDIT --> | <a href="{fields.U_TRANSLATE}" style="color: red;">{L_TRANSLATE}</a><!-- ENDIF --></td>
|
||||
<td style="text-align: center;"><a href="{fields.U_ACTIVATE_DEACTIVATE}" data-ajax="activate_deactivate">{fields.L_ACTIVATE_DEACTIVATE}</a><!-- IF fields.S_NEED_EDIT --> | <a href="{fields.U_TRANSLATE}" style="color: red;">{L_TRANSLATE}</a><!-- ENDIF --></td>
|
||||
|
||||
<td style="width: 80px; text-align: right; white-space: nowrap;">
|
||||
<!-- IF fields.S_FIRST_ROW && not fields.S_LAST_ROW -->
|
||||
|
@ -213,7 +213,7 @@
|
|||
<!-- ELSE -->
|
||||
{ICON_EDIT_DISABLED}
|
||||
<!-- ENDIF -->
|
||||
<a href="{fields.U_DELETE}">{ICON_DELETE}</a>
|
||||
<a href="{fields.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" /><!-- ELSE --> - <!-- ENDIF --></td>
|
||||
<td style="text-align: center;">{ranks.RANK_TITLE}</td>
|
||||
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK --> - <!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td>
|
||||
<td style="text-align: center;"><a href="{ranks.U_EDIT}">{ICON_EDIT}</a> <a href="{ranks.U_DELETE}">{ICON_DELETE}</a></td>
|
||||
<td style="text-align: center;"><a href="{ranks.U_EDIT}">{ICON_EDIT}</a> <a href="{ranks.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a></td>
|
||||
</tr>
|
||||
<!-- END ranks -->
|
||||
</tbody>
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
<!-- ENDIF -->
|
||||
<a href="{reasons.U_EDIT}">{ICON_EDIT}</a>
|
||||
<!-- IF reasons.U_DELETE -->
|
||||
<a href="{reasons.U_DELETE}">{ICON_DELETE}</a>
|
||||
<a href="{reasons.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
|
||||
<!-- ELSE -->
|
||||
{ICON_DELETE_DISABLED}
|
||||
<!-- ENDIF -->
|
||||
|
|
|
@ -288,7 +288,7 @@
|
|||
</td>
|
||||
<td style="text-align: center;">
|
||||
<!-- IF S_STYLE -->
|
||||
<a href="{installed.U_STYLE_ACT_DEACT}">{installed.L_STYLE_ACT_DEACT}</a> |
|
||||
<a href="{installed.U_STYLE_ACT_DEACT}" data-ajax="activate_deactivate">{installed.L_STYLE_ACT_DEACT}</a> |
|
||||
<!-- ENDIF -->
|
||||
{installed.S_ACTIONS}
|
||||
<!-- IF S_STYLE -->
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<!-- IF words.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
|
||||
<td style="text-align: center;">{words.WORD}</td>
|
||||
<td style="text-align: center;">{words.REPLACEMENT}</td>
|
||||
<td> <a href="{words.U_EDIT}">{ICON_EDIT}</a> <a href="{words.U_DELETE}">{ICON_DELETE}</a> </td>
|
||||
<td> <a href="{words.U_EDIT}">{ICON_EDIT}</a> <a href="{words.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a> </td>
|
||||
</tr>
|
||||
<!-- BEGINELSE -->
|
||||
<tr class="row3">
|
||||
|
|
|
@ -101,6 +101,10 @@ hr {
|
|||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* General links */
|
||||
a:link, a:visited {
|
||||
color: #105289;
|
||||
|
@ -1070,6 +1074,56 @@ input.disabled {
|
|||
color: #666666;
|
||||
}
|
||||
|
||||
/* jQuery popups
|
||||
---------------------------------------- */
|
||||
.phpbb_alert {
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #999999;
|
||||
position: fixed;
|
||||
display: none;
|
||||
top: 100px;
|
||||
left: 35%;
|
||||
width: 30%;
|
||||
z-index: 50;
|
||||
padding: 25px;
|
||||
padding: 0 25px 20px 25px;
|
||||
}
|
||||
|
||||
.phpbb_alert .alert_close {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
text-decoration: none !important;
|
||||
background: transparent url("../images/alert_close.png") 0 0 no-repeat;
|
||||
margin-top: -7px;
|
||||
margin-right: -31px;
|
||||
}
|
||||
.phpbb_alert .alert_close:hover {
|
||||
background-position: 0 -16px;
|
||||
}
|
||||
|
||||
|
||||
.phpbb_alert p {
|
||||
margin: 8px 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
#darkenwrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#darken {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #000000;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Pagination
|
||||
---------------------------------------- */
|
||||
.pagination {
|
||||
|
|
135
phpBB/adm/style/ajax.js
Normal file
135
phpBB/adm/style/ajax.js
Normal file
|
@ -0,0 +1,135 @@
|
|||
(function($) { // Avoid conflicts with other libraries
|
||||
|
||||
"use strict";
|
||||
|
||||
var img_templates = {
|
||||
up: $('.template-up-img'),
|
||||
up_disabled: $('.template-up-img-disabled'),
|
||||
down: $('.template-down-img'),
|
||||
down_disabled: $('.template-down-img-disabled')
|
||||
};
|
||||
|
||||
/**
|
||||
* The following callbacks are for reording forums in acp_forums. forum_down
|
||||
* is triggered when a forum is moved down, and forum_up is triggered when
|
||||
* a forum is moved up. It moves the row up or down, and deactivates /
|
||||
* activates any up / down icons that require it (the ones at the top or bottom).
|
||||
*/
|
||||
phpbb.add_ajax_callback('forum_down', function() {
|
||||
var el = $(this),
|
||||
tr = el.parents('tr');
|
||||
|
||||
if (tr.is(':first-child'))
|
||||
{
|
||||
var up_img = img_templates.up.clone().attr('href', tr.attr('data-up'));
|
||||
el.parents('span').siblings('.up').html(up_img);
|
||||
|
||||
tr.next().find('.up').html(img_templates.up_disabled);
|
||||
|
||||
phpbb.ajaxify({
|
||||
selector: el.parents('span').siblings('.up').children('a'),
|
||||
callback: 'forum_up'
|
||||
});
|
||||
}
|
||||
|
||||
tr.insertAfter(tr.next());
|
||||
|
||||
if (tr.is(':last-child'))
|
||||
{
|
||||
el.replaceWith(img_templates.down_disabled);
|
||||
|
||||
var down_img = img_templates.down.clone().attr('href', tr.attr('data-down'));
|
||||
tr.prev().find('.down').html(down_img);
|
||||
|
||||
phpbb.ajaxify({
|
||||
selector: tr.prev().find('.down').children('a'),
|
||||
callback: 'forum_down'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
phpbb.add_ajax_callback('forum_up', function() {
|
||||
var el = $(this),
|
||||
tr = el.parents('tr');
|
||||
|
||||
if (tr.is(':last-child'))
|
||||
{
|
||||
var down_img = img_templates.down.clone().attr('href', tr.attr('data-down'));
|
||||
el.parents('span').siblings('.down').html(down_img);
|
||||
|
||||
tr.prev().find('.down').html(img_templates.down_disabled);
|
||||
|
||||
phpbb.ajaxify({
|
||||
selector: el.parents('span').siblings('.down').children('a'),
|
||||
callback: 'forum_down'
|
||||
});
|
||||
}
|
||||
|
||||
tr.insertBefore(tr.prev());
|
||||
|
||||
if (tr.is(':first-child'))
|
||||
{
|
||||
el.replaceWith(img_templates.up_disabled);
|
||||
|
||||
var up_img = img_templates.up.clone().attr('href', tr.attr('data-up'));
|
||||
tr.next().find('.up').html(up_img);
|
||||
|
||||
phpbb.ajaxify({
|
||||
selector: tr.next().find('.up').children('a'),
|
||||
callback: 'forum_up'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* This callback replaces activate links with deactivate links and vice versa.
|
||||
* It does this by replacing the text, and replacing all instances of "activate"
|
||||
* in the href with "deactivate", and vice versa.
|
||||
*/
|
||||
phpbb.add_ajax_callback('activate_deactivate', function(res) {
|
||||
var el = $(this),
|
||||
new_href = el.attr('href');
|
||||
|
||||
el.text(res.text);
|
||||
|
||||
if (new_href.indexOf('deactivate') !== -1)
|
||||
{
|
||||
new_href = new_href.replace('deactivate', 'activate')
|
||||
}
|
||||
else
|
||||
{
|
||||
new_href = new_href.replace('activate', 'deactivate')
|
||||
}
|
||||
|
||||
el.attr('href', new_href);
|
||||
});
|
||||
|
||||
/**
|
||||
* The removes the parent row of the link or form that triggered the callback,
|
||||
* and is good for stuff like the removal of forums.
|
||||
*/
|
||||
phpbb.add_ajax_callback('row_delete', function() {
|
||||
$(this).parents('tr').remove();
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('[data-ajax]').each(function() {
|
||||
var $this = $(this),
|
||||
ajax = $this.attr('data-ajax'),
|
||||
fn;
|
||||
|
||||
if (ajax !== 'false')
|
||||
{
|
||||
fn = (ajax !== 'true') ? ajax : null;
|
||||
phpbb.ajaxify({
|
||||
selector: this,
|
||||
refresh: $this.attr('data-refresh') !== undefined,
|
||||
callback: fn
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
})(jQuery); // Avoid conflicts with other libraries
|
|
@ -17,11 +17,29 @@
|
|||
<!-- IF S_COPYRIGHT_HTML --><br /><!-- ENDIF -->
|
||||
{DEBUG_OUTPUT}
|
||||
<!-- ENDIF -->
|
||||
|
||||
<div id="darkenwrapper" data-ajax-error-title="{L_AJAX_ERROR_TITLE}" data-ajax-error-text="{L_AJAX_ERROR_TEXT}">
|
||||
<div id="darken"> </div>
|
||||
<div class="jalert" id="loadingalert"><h3>{L_LOADING}</h3><p>{L_PLEASE_WAIT}</p></div>
|
||||
</div>
|
||||
|
||||
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
|
||||
<a href="#" class="alert_close"></a>
|
||||
<h3 class="alert_title"></h3><p class="alert_text"></p>
|
||||
</div>
|
||||
<div id="phpbb_confirm" class="phpbb_alert">
|
||||
<a href="#" class="alert_close"></a>
|
||||
<p class="alert_text"></p>
|
||||
<input type="button" class="button1" value="{L_YES}" />
|
||||
<input type="button" class="button2" value="{L_NO}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_JQUERY_FALLBACK --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->
|
||||
<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js"></script>
|
||||
<script type="text/javascript" src="style/ajax.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
445
phpBB/assets/javascript/core.js
Normal file
445
phpBB/assets/javascript/core.js
Normal file
|
@ -0,0 +1,445 @@
|
|||
var phpbb = {};
|
||||
phpbb.alert_time = 100;
|
||||
|
||||
(function($) { // Avoid conflicts with other libraries
|
||||
|
||||
"use strict";
|
||||
|
||||
// define a couple constants for keydown functions.
|
||||
var keymap = {
|
||||
ENTER: 13,
|
||||
ESC: 27
|
||||
};
|
||||
|
||||
var dark = $('#darkenwrapper');
|
||||
var loading_alert = $('#loadingalert');
|
||||
|
||||
|
||||
/**
|
||||
* Display a loading screen.
|
||||
*
|
||||
* @returns object Returns loading_alert.
|
||||
*/
|
||||
phpbb.loading_alert = function() {
|
||||
if (dark.is(':visible'))
|
||||
{
|
||||
loading_alert.fadeIn(phpbb.alert_time);
|
||||
}
|
||||
else
|
||||
{
|
||||
loading_alert.show();
|
||||
dark.fadeIn(phpbb.alert_time, function() {
|
||||
// Wait five seconds and display an error if nothing has been returned by then.
|
||||
setTimeout(function() {
|
||||
if (loading_alert.is(':visible'))
|
||||
{
|
||||
phpbb.alert($('#phpbb_alert').attr('data-l-err'), $('#phpbb_alert').attr('data-l-timeout-processing-req'));
|
||||
}
|
||||
}, 5000);
|
||||
});
|
||||
}
|
||||
|
||||
return loading_alert;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a simple alert similar to JSs native alert().
|
||||
*
|
||||
* You can only call one alert or confirm box at any one time.
|
||||
*
|
||||
* @param string title Title of the message, eg "Information" (HTML).
|
||||
* @param string msg Message to display (HTML).
|
||||
* @param bool fadedark Remove the dark background when done? Defaults
|
||||
* to yes.
|
||||
*
|
||||
* @returns object Returns the div created.
|
||||
*/
|
||||
phpbb.alert = function(title, msg, fadedark) {
|
||||
var div = $('#phpbb_alert');
|
||||
div.find('.alert_title').html(title);
|
||||
div.find('.alert_text').html(msg);
|
||||
|
||||
div.bind('click', function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
dark.one('click', function(e) {
|
||||
var fade;
|
||||
|
||||
div.find('.alert_close').unbind('click');
|
||||
fade = (typeof fadedark !== 'undefined' && !fadedark) ? div : dark;
|
||||
fade.fadeOut(phpbb.alert_time, function() {
|
||||
div.hide();
|
||||
});
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
$(document).bind('keydown', function(e) {
|
||||
if (e.keyCode === keymap.ENTER || e.keyCode === keymap.ESC) {
|
||||
dark.trigger('click');
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
|
||||
div.find('.alert_close').one('click', function(e) {
|
||||
dark.trigger('click');
|
||||
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
if (loading_alert.is(':visible'))
|
||||
{
|
||||
loading_alert.fadeOut(phpbb.alert_time, function() {
|
||||
dark.append(div);
|
||||
div.fadeIn(phpbb.alert_time);
|
||||
});
|
||||
}
|
||||
else if (dark.is(':visible'))
|
||||
{
|
||||
dark.append(div);
|
||||
div.fadeIn(phpbb.alert_time);
|
||||
}
|
||||
else
|
||||
{
|
||||
dark.append(div);
|
||||
div.show();
|
||||
dark.fadeIn(phpbb.alert_time);
|
||||
}
|
||||
|
||||
return div;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a simple yes / no box to the user.
|
||||
*
|
||||
* You can only call one alert or confirm box at any one time.
|
||||
*
|
||||
* @param string msg Message to display (HTML).
|
||||
* @param function callback Callback. Bool param, whether the user pressed
|
||||
* yes or no (or whatever their language is).
|
||||
* @param bool fadedark Remove the dark background when done? Defaults
|
||||
* to yes.
|
||||
*
|
||||
* @returns object Returns the div created.
|
||||
*/
|
||||
phpbb.confirm = function(msg, callback, fadedark) {
|
||||
var div = $('#phpbb_confirm');
|
||||
div.find('.alert_text').html(msg);
|
||||
|
||||
div.bind('click', function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
var click_handler = function(e) {
|
||||
var res = this.className === 'button1';
|
||||
var fade = (typeof fadedark !== 'undefined' && !fadedark && res) ? div : dark;
|
||||
fade.fadeOut(phpbb.alert_time, function() {
|
||||
div.hide();
|
||||
});
|
||||
div.find('input[type="button"]').unbind('click', click_handler);
|
||||
callback(res);
|
||||
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
};
|
||||
div.find('input[type="button"]').one('click', click_handler);
|
||||
|
||||
dark.one('click', function(e) {
|
||||
div.find('.alert_close').unbind('click');
|
||||
dark.fadeOut(phpbb.alert_time, function() {
|
||||
div.hide();
|
||||
});
|
||||
callback(false);
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
$(document).bind('keydown', function(e) {
|
||||
if (e.keyCode === keymap.ENTER) {
|
||||
$('input[type="button"].button1').trigger('click');
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
} else if (e.keyCode === keymap.ESC) {
|
||||
$('input[type="button"].button2').trigger('click');
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
|
||||
div.find('.alert_close').one('click', function(e) {
|
||||
var fade = (typeof fadedark !== 'undefined' && fadedark) ? div : dark;
|
||||
fade.fadeOut(phpbb.alert_time, function() {
|
||||
div.hide();
|
||||
});
|
||||
callback(false);
|
||||
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
if (loading_alert.is(':visible'))
|
||||
{
|
||||
loading_alert.fadeOut(phpbb.alert_time, function() {
|
||||
dark.append(div);
|
||||
div.fadeIn(phpbb.alert_time);
|
||||
});
|
||||
}
|
||||
else if (dark.is(':visible'))
|
||||
{
|
||||
dark.append(div);
|
||||
div.fadeIn(phpbb.alert_time);
|
||||
}
|
||||
else
|
||||
{
|
||||
dark.append(div);
|
||||
div.show();
|
||||
dark.fadeIn(phpbb.alert_time);
|
||||
}
|
||||
|
||||
return div;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turn a querystring into an array.
|
||||
*
|
||||
* @argument string string The querystring to parse.
|
||||
* @returns object The object created.
|
||||
*/
|
||||
phpbb.parse_querystring = function(string) {
|
||||
var params = {}, i, split;
|
||||
|
||||
string = string.split('&');
|
||||
for (i = 0; i < string.length; i++)
|
||||
{
|
||||
split = string[i].split('=');
|
||||
params[split[0]] = decodeURIComponent(split[1]);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Makes a link use AJAX instead of loading an entire page.
|
||||
*
|
||||
* This function will work for links (both standard links and links which
|
||||
* invoke confirm_box) and forms. It will be called automatically for links
|
||||
* and forms with the data-ajax attribute set, and will call the necessary
|
||||
* callback.
|
||||
*
|
||||
* For more info, view the following page on the phpBB wiki:
|
||||
* http://wiki.phpbb.com/JavaScript_Function.phpbb.ajaxify
|
||||
*
|
||||
* @param object options Options.
|
||||
* @param bool/function refresh If we are sent back a refresh, should it be
|
||||
* acted upon? This can either be true / false / a function.
|
||||
* @param function callback Callback to call on completion of event. Has
|
||||
* three parameters: the element that the event was evoked from, the JSON
|
||||
* that was returned and (if it is a form) the form action.
|
||||
*/
|
||||
phpbb.ajaxify = function(options) {
|
||||
var elements = $(options.selector),
|
||||
refresh = options.refresh,
|
||||
callback = options.callback,
|
||||
is_form = elements.is('form'),
|
||||
event_name = is_form ? 'submit' : 'click';
|
||||
|
||||
elements.bind(event_name, function(event) {
|
||||
var action, method, data, submit, that = this, $this = $(this);
|
||||
|
||||
if ($this.find('input[type="submit"][data-clicked]').attr('data-ajax') === 'false')
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a private function used to handle the callbacks, refreshes
|
||||
* and alert. It calls the callback, refreshes the page if necessary, and
|
||||
* displays an alert to the user and removes it after an amount of time.
|
||||
*
|
||||
* It cannot be called from outside this function, and is purely here to
|
||||
* avoid repetition of code.
|
||||
*
|
||||
* @param object res The object sent back by the server.
|
||||
*/
|
||||
function return_handler(res)
|
||||
{
|
||||
var alert;
|
||||
|
||||
// Is a confirmation required?
|
||||
if (typeof res.S_CONFIRM_ACTION === 'undefined')
|
||||
{
|
||||
// If a confirmation is not required, display an alert and call the
|
||||
// callbacks.
|
||||
if (typeof res.MESSAGE_TITLE !== 'undefined')
|
||||
{
|
||||
alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT);
|
||||
}
|
||||
else
|
||||
{
|
||||
dark.fadeOut(phpbb.alert_time);
|
||||
}
|
||||
|
||||
if (typeof phpbb.ajax_callbacks[callback] === 'function')
|
||||
{
|
||||
phpbb.ajax_callbacks[callback].call(that, res);
|
||||
}
|
||||
|
||||
// If the server says to refresh the page, check whether the page should
|
||||
// be refreshed and refresh page after specified time if required.
|
||||
if (res.REFRESH_DATA)
|
||||
{
|
||||
if (typeof refresh === 'function')
|
||||
{
|
||||
refresh = refresh(res.REFRESH_DATA.url);
|
||||
}
|
||||
else if (typeof refresh !== 'boolean')
|
||||
{
|
||||
refresh = false;
|
||||
}
|
||||
|
||||
setTimeout(function() {
|
||||
if (refresh)
|
||||
{
|
||||
window.location = res.REFRESH_DATA.url;
|
||||
}
|
||||
|
||||
// Hide the alert even if we refresh the page, in case the user
|
||||
// presses the back button.
|
||||
dark.fadeOut(phpbb.alert_time, function() {
|
||||
alert.hide();
|
||||
});
|
||||
}, res.REFRESH_DATA.time * 1000); // Server specifies time in seconds
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// If confirmation is required, display a diologue to the user.
|
||||
phpbb.confirm(res.MESSAGE_TEXT, function(del) {
|
||||
if (del)
|
||||
{
|
||||
phpbb.loading_alert();
|
||||
data = $('<form>' + res.S_HIDDEN_FIELDS + '</form>').serialize();
|
||||
$.ajax({
|
||||
url: res.S_CONFIRM_ACTION,
|
||||
type: 'POST',
|
||||
data: data + '&confirm=' + res.YES_VALUE,
|
||||
success: return_handler,
|
||||
error: error_handler
|
||||
});
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
}
|
||||
|
||||
function error_handler()
|
||||
{
|
||||
var alert;
|
||||
|
||||
alert = phpbb.alert(dark.attr('data-ajax-error-title'), dark.attr('data-ajax-error-text'));
|
||||
|
||||
setTimeout(function () {
|
||||
dark.fadeOut(phpbb.alert_time, function() {
|
||||
alert.hide();
|
||||
});
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
// If the element is a form, POST must be used and some extra data must
|
||||
// be taken from the form.
|
||||
var run_filter = (typeof options.filter === 'function');
|
||||
|
||||
if (is_form)
|
||||
{
|
||||
action = $this.attr('action').replace('&', '&');
|
||||
data = $this.serializeArray();
|
||||
method = $this.attr('method') || 'GET';
|
||||
|
||||
if ($this.find('input[type="submit"][data-clicked]'))
|
||||
{
|
||||
submit = $this.find('input[type="submit"][data-clicked]');
|
||||
data.push({
|
||||
name: submit.attr('name'),
|
||||
value: submit.val()
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
action = this.href;
|
||||
data = null;
|
||||
method = 'GET';
|
||||
}
|
||||
|
||||
// If filter function returns false, cancel the AJAX functionality,
|
||||
// and return true (meaning that the HTTP request will be sent normally).
|
||||
if (run_filter && !options.filter.call(this, data))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
phpbb.loading_alert();
|
||||
|
||||
$.ajax({
|
||||
url: action,
|
||||
type: method,
|
||||
data: data,
|
||||
success: return_handler,
|
||||
error: error_handler
|
||||
});
|
||||
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
if (is_form) {
|
||||
elements.find('input:submit').click(function () {
|
||||
var $this = $(this);
|
||||
|
||||
$this.siblings('[data-clicked]').removeAttr('data-clicked');
|
||||
$this.attr('data-clicked', 'true');
|
||||
});
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
phpbb.ajax_callbacks = {};
|
||||
|
||||
/**
|
||||
* Adds an AJAX callback to be used by phpbb.ajaxify.
|
||||
*
|
||||
* See the phpbb.ajaxify comments for information on stuff like parameters.
|
||||
*
|
||||
* @param string id The name of the callback.
|
||||
* @param function callback The callback to be called.
|
||||
*/
|
||||
phpbb.add_ajax_callback = function(id, callback)
|
||||
{
|
||||
if (typeof callback === 'function')
|
||||
{
|
||||
phpbb.ajax_callbacks[id] = callback;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This callback alternates text - it replaces the current text with the text in
|
||||
* the alt-text data attribute, and replaces the text in the attribute with the
|
||||
* current text so that the process can be repeated.
|
||||
*/
|
||||
phpbb.add_ajax_callback('alt_text', function(data) {
|
||||
var el = $(this),
|
||||
alt_text;
|
||||
|
||||
alt_text = el.attr('data-alt-text');
|
||||
el.attr('title', alt_text);
|
||||
el.text(alt_text);
|
||||
});
|
||||
|
||||
|
||||
})(jQuery); // Avoid conflicts with other libraries
|
|
@ -24,7 +24,7 @@ class acp_bbcodes
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $cache;
|
||||
global $db, $user, $auth, $template, $cache, $request;
|
||||
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
||||
|
||||
$user->add_lang('acp/posting');
|
||||
|
@ -272,6 +272,18 @@ class acp_bbcodes
|
|||
$db->sql_query('DELETE FROM ' . BBCODES_TABLE . " WHERE bbcode_id = $bbcode_id");
|
||||
$cache->destroy('sql', BBCODES_TABLE);
|
||||
add_log('admin', 'LOG_BBCODE_DELETE', $row['bbcode_tag']);
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||
'MESSAGE_TEXT' => $user->lang['BBCODE_DELETED'],
|
||||
'REFRESH_DATA' => array(
|
||||
'time' => 3
|
||||
)
|
||||
));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -24,7 +24,7 @@ class acp_bots
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $config, $db, $user, $auth, $template, $cache;
|
||||
global $config, $db, $user, $auth, $template, $cache, $request;
|
||||
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix;
|
||||
|
||||
$action = request_var('action', '');
|
||||
|
@ -353,6 +353,14 @@ class acp_bots
|
|||
break;
|
||||
}
|
||||
|
||||
if ($request->is_ajax() && ($action == 'activate' || $action == 'deactivate'))
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'text' => $user->lang['BOT_' . (($action == 'activate') ? 'DE' : '') . 'ACTIVATE'],
|
||||
));
|
||||
}
|
||||
|
||||
$s_options = '';
|
||||
$_options = array('activate' => 'BOT_ACTIVATE', 'deactivate' => 'BOT_DEACTIVATE', 'delete' => 'DELETE');
|
||||
foreach ($_options as $value => $lang)
|
||||
|
|
|
@ -25,7 +25,7 @@ class acp_forums
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $cache;
|
||||
global $db, $user, $auth, $template, $cache, $request;
|
||||
global $config, $phpbb_admin_path, $phpbb_root_path, $phpEx;
|
||||
|
||||
$user->add_lang('acp/forums');
|
||||
|
@ -256,6 +256,12 @@ class acp_forums
|
|||
$cache->destroy('sql', FORUMS_TABLE);
|
||||
}
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array('success' => ($move_forum_name !== false)));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'sync':
|
||||
|
|
|
@ -782,6 +782,18 @@ class acp_icons
|
|||
|
||||
$cache->destroy('_icons');
|
||||
$cache->destroy('sql', $table);
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||
'MESSAGE_TEXT' => $notice,
|
||||
'REFRESH_DATA' => array(
|
||||
'time' => 3
|
||||
)
|
||||
));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -24,7 +24,7 @@ class acp_main
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $config, $db, $user, $auth, $template;
|
||||
global $config, $db, $user, $auth, $template, $request;
|
||||
global $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
||||
|
||||
// Show restore permissions notice
|
||||
|
@ -129,6 +129,11 @@ class acp_main
|
|||
set_config('record_online_users', 1, true);
|
||||
set_config('record_online_date', time(), true);
|
||||
add_log('admin', 'LOG_RESET_ONLINE');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
trigger_error('RESET_ONLINE_SUCCESS');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'stats':
|
||||
|
@ -179,6 +184,11 @@ class acp_main
|
|||
update_last_username();
|
||||
|
||||
add_log('admin', 'LOG_RESYNC_STATS');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
trigger_error('RESYNC_STATS_SUCCESS');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'user':
|
||||
|
@ -242,6 +252,10 @@ class acp_main
|
|||
|
||||
add_log('admin', 'LOG_RESYNC_POSTCOUNTS');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
trigger_error('RESYNC_POSTCOUNTS_SUCCESS');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'date':
|
||||
|
@ -252,6 +266,11 @@ class acp_main
|
|||
|
||||
set_config('board_startdate', time() - 1);
|
||||
add_log('admin', 'LOG_RESET_DATE');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
trigger_error('RESET_DATE_SUCCESS');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'db_track':
|
||||
|
@ -327,6 +346,11 @@ class acp_main
|
|||
}
|
||||
|
||||
add_log('admin', 'LOG_RESYNC_POST_MARKING');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
trigger_error('RESYNC_POST_MARKING_SUCCESS');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'purge_cache':
|
||||
|
@ -338,6 +362,11 @@ class acp_main
|
|||
cache_moderators();
|
||||
|
||||
add_log('admin', 'LOG_PURGE_CACHE');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
trigger_error('PURGE_CACHE_SUCCESS');
|
||||
}
|
||||
break;
|
||||
|
||||
case 'purge_sessions':
|
||||
|
@ -384,6 +413,11 @@ class acp_main
|
|||
$db->sql_query($sql);
|
||||
|
||||
add_log('admin', 'LOG_PURGE_SESSIONS');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
trigger_error('PURGE_SESSIONS_SUCCESS');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ class acp_modules
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $module;
|
||||
global $db, $user, $auth, $template, $module, $request;
|
||||
global $config, $phpbb_admin_path, $phpbb_root_path, $phpEx;
|
||||
|
||||
// Set a global define for modules we might include (the author is able to prevent execution of code by checking this constant)
|
||||
|
@ -373,6 +373,15 @@ class acp_modules
|
|||
// Default management page
|
||||
if (sizeof($errors))
|
||||
{
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => $user->lang('ERROR'),
|
||||
'MESSAGE_TEXT' => implode('<br />', $errors),
|
||||
));
|
||||
}
|
||||
|
||||
$template->assign_vars(array(
|
||||
'S_ERROR' => true,
|
||||
'ERROR_MSG' => implode('<br />', $errors))
|
||||
|
|
|
@ -242,6 +242,15 @@ class acp_profile
|
|||
$db->sql_freeresult($result);
|
||||
|
||||
add_log('admin', 'LOG_PROFILE_FIELD_ACTIVATE', $field_ident);
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response();
|
||||
$json_response->send(array(
|
||||
'text' => $user->lang('DEACTIVATE'),
|
||||
));
|
||||
}
|
||||
|
||||
trigger_error($user->lang['PROFILE_FIELD_ACTIVATED'] . adm_back_link($this->u_action));
|
||||
|
||||
break;
|
||||
|
@ -266,7 +275,16 @@ class acp_profile
|
|||
$field_ident = (string) $db->sql_fetchfield('field_ident');
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response();
|
||||
$json_response->send(array(
|
||||
'text' => $user->lang('ACTIVATE'),
|
||||
));
|
||||
}
|
||||
|
||||
add_log('admin', 'LOG_PROFILE_FIELD_DEACTIVATE', $field_ident);
|
||||
|
||||
trigger_error($user->lang['PROFILE_FIELD_DEACTIVATED'] . adm_back_link($this->u_action));
|
||||
|
||||
break;
|
||||
|
|
|
@ -24,7 +24,7 @@ class acp_ranks
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $cache;
|
||||
global $db, $user, $auth, $template, $cache, $request;
|
||||
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
||||
|
||||
$user->add_lang('acp/posting');
|
||||
|
@ -122,6 +122,18 @@ class acp_ranks
|
|||
$cache->destroy('_ranks');
|
||||
|
||||
add_log('admin', 'LOG_RANK_REMOVED', $rank_title);
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||
'MESSAGE_TEXT' => $user->lang['RANK_REMOVED'],
|
||||
'REFRESH_DATA' => array(
|
||||
'time' => 3
|
||||
)
|
||||
));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ class acp_styles
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $cache;
|
||||
global $db, $user, $auth, $template, $cache, $request;
|
||||
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
||||
|
||||
// Hardcoded template bitfield to add for new templates
|
||||
|
@ -185,6 +185,19 @@ inherit_from = {INHERIT_FROM}
|
|||
WHERE forum_style = ' . $style_id;
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'text' => $user->lang['STYLE_' . (($action == 'activate') ? 'DE' : '') . 'ACTIVATE'],
|
||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||
'MESSAGE_TEXT' => $user->lang['STYLE_' . strtoupper($action) . 'D'],
|
||||
'REFRESH_DATA' => array(
|
||||
'time' => 3
|
||||
)
|
||||
));
|
||||
}
|
||||
}
|
||||
else if ($action == 'deactivate')
|
||||
{
|
||||
|
@ -335,7 +348,8 @@ inherit_from = {INHERIT_FROM}
|
|||
$s_actions = array();
|
||||
foreach ($actions as $option)
|
||||
{
|
||||
$s_actions[] = '<a href="' . $this->u_action . "&action=$option&id=" . $row[$mode . '_id'] . '">' . $user->lang[strtoupper($option)] . '</a>';
|
||||
$data_ajax = ($option == 'refresh') ? ' data-ajax="true"' : '';
|
||||
$s_actions[] = '<a href="' . $this->u_action . "&action=$option&id=" . $row[$mode . '_id'] . '"' . $data_ajax . '>' . $user->lang[strtoupper($option)] . '</a>';
|
||||
}
|
||||
|
||||
$template->assign_block_vars('installed', array(
|
||||
|
|
|
@ -2448,8 +2448,17 @@ function build_url($strip_vars = false)
|
|||
*/
|
||||
function meta_refresh($time, $url, $disable_cd_check = false)
|
||||
{
|
||||
global $template;
|
||||
global $template, $refresh_data, $request;
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$refresh_data = array(
|
||||
'time' => $time,
|
||||
'url' => str_replace('&', '&', $url)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$url = redirect($url, true, $disable_cd_check);
|
||||
$url = str_replace('&', '&', $url);
|
||||
|
||||
|
@ -2457,6 +2466,7 @@ function meta_refresh($time, $url, $disable_cd_check = false)
|
|||
$template->assign_vars(array(
|
||||
'META' => '<meta http-equiv="refresh" content="' . $time . ';url=' . $url . '" />')
|
||||
);
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
@ -2619,7 +2629,7 @@ function check_form_key($form_name, $timespan = false, $return_page = '', $trigg
|
|||
*/
|
||||
function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_body.html', $u_action = '')
|
||||
{
|
||||
global $user, $template, $db;
|
||||
global $user, $template, $db, $request;
|
||||
global $phpEx, $phpbb_root_path, $request;
|
||||
|
||||
if (isset($_POST['cancel']))
|
||||
|
@ -2699,6 +2709,21 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
|
|||
WHERE user_id = " . $user->data['user_id'];
|
||||
$db->sql_query($sql);
|
||||
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$u_action .= '&confirm_uid=' . $user->data['user_id'] . '&sess=' . $user->session_id . '&sid=' . $user->session_id;
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => (!isset($user->lang[$title])) ? $user->lang['CONFIRM'] : $user->lang[$title],
|
||||
'MESSAGE_TEXT' => (!isset($user->lang[$title . '_CONFIRM'])) ? $title : $user->lang[$title . '_CONFIRM'],
|
||||
|
||||
'YES_VALUE' => $user->lang['YES'],
|
||||
'S_CONFIRM_ACTION' => str_replace('&', '&', $u_action), //inefficient, rewrite whole function
|
||||
'S_HIDDEN_FIELDS' => $hidden . $s_hidden_fields
|
||||
));
|
||||
}
|
||||
|
||||
if (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin'])
|
||||
{
|
||||
adm_page_footer();
|
||||
|
@ -3723,7 +3748,7 @@ function phpbb_checkdnsrr($host, $type = 'MX')
|
|||
*/
|
||||
function msg_handler($errno, $msg_text, $errfile, $errline)
|
||||
{
|
||||
global $cache, $db, $auth, $template, $config, $user;
|
||||
global $cache, $db, $auth, $template, $config, $user, $request;
|
||||
global $phpEx, $phpbb_root_path, $msg_title, $msg_long_text;
|
||||
|
||||
// Do not display notices if we suppress them via @
|
||||
|
@ -3922,6 +3947,20 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
|
|||
'S_USER_NOTICE' => ($errno == E_USER_NOTICE) ? true : false)
|
||||
);
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
global $refresh_data;
|
||||
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => $msg_title,
|
||||
'MESSAGE_TEXT' => $msg_text,
|
||||
'S_USER_WARNING' => ($errno == E_USER_WARNING) ? true : false,
|
||||
'S_USER_NOTICE' => ($errno == E_USER_NOTICE) ? true : false,
|
||||
'REFRESH_DATA' => (!empty($refresh_data)) ? $refresh_data : null
|
||||
));
|
||||
}
|
||||
|
||||
// We do not want the cron script to be called on error messages
|
||||
define('IN_CRON', true);
|
||||
|
||||
|
|
|
@ -273,6 +273,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
|
|||
markread('topics', $forum_ids);
|
||||
$message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>');
|
||||
meta_refresh(3, $redirect);
|
||||
|
||||
trigger_error($user->lang['FORUMS_MARKED'] . '<br /><br />' . $message);
|
||||
}
|
||||
else
|
||||
|
|
41
phpBB/includes/json_response.php
Normal file
41
phpBB/includes/json_response.php
Normal file
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2011 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
if (!defined('IN_PHPBB'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* JSON class
|
||||
* @package phpBB3
|
||||
*/
|
||||
class phpbb_json_response
|
||||
{
|
||||
/**
|
||||
* Send the data to the client and exit the script.
|
||||
*
|
||||
* @param array $data Any additional data to send.
|
||||
* @param bool $exit Will exit the script if true.
|
||||
*/
|
||||
public function send($data, $exit = true)
|
||||
{
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode($data);
|
||||
|
||||
if ($exit)
|
||||
{
|
||||
garbage_collection();
|
||||
exit_handler();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -451,6 +451,7 @@ function approve_post($post_id_list, $id, $mode)
|
|||
{
|
||||
global $db, $template, $user, $config;
|
||||
global $phpEx, $phpbb_root_path;
|
||||
global $request;
|
||||
|
||||
if (!check_ids($post_id_list, POSTS_TABLE, 'post_id', array('m_approve')))
|
||||
{
|
||||
|
@ -709,7 +710,20 @@ function approve_post($post_id_list, $id, $mode)
|
|||
$add_message = '<br /><br />' . sprintf($user->lang['RETURN_POST'], '<a href="' . $post_url . '">', '</a>');
|
||||
}
|
||||
|
||||
trigger_error($user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], "<a href=\"$redirect\">", '</a>') . $add_message);
|
||||
$message = $user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], "<a href=\"$redirect\">", '</a>') . $add_message;
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||
'MESSAGE_TEXT' => $message,
|
||||
'REFRESH_DATA' => null,
|
||||
'approved' => true
|
||||
));
|
||||
}
|
||||
|
||||
trigger_error($message);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -968,7 +982,20 @@ function disapprove_post($post_id_list, $id, $mode)
|
|||
}
|
||||
else
|
||||
{
|
||||
$message = $user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], "<a href=\"$redirect\">", '</a>');
|
||||
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||
'MESSAGE_TEXT' => $message,
|
||||
'REFRESH_DATA' => null,
|
||||
'approved' => false
|
||||
));
|
||||
}
|
||||
|
||||
meta_refresh(3, $redirect);
|
||||
trigger_error($user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], "<a href=\"$redirect\">", '</a>'));
|
||||
trigger_error($message);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ class ucp_zebra
|
|||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;
|
||||
global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx, $request;
|
||||
|
||||
$submit = (isset($_POST['submit']) || isset($_GET['add']) || isset($_GET['remove'])) ? true : false;
|
||||
$s_hidden_fields = '';
|
||||
|
@ -199,7 +199,23 @@ class ucp_zebra
|
|||
}
|
||||
}
|
||||
|
||||
if ($updated)
|
||||
if ($request->is_ajax())
|
||||
{
|
||||
$message = ($updated) ? $user->lang[$l_mode . '_UPDATED'] : implode('<br />', $error);
|
||||
|
||||
$json_response = new phpbb_json_response;
|
||||
$json_response->send(array(
|
||||
'success' => $updated,
|
||||
|
||||
'MESSAGE_TITLE' => $user->lang['INFORMATION'],
|
||||
'MESSAGE_TEXT' => $message,
|
||||
'REFRESH_DATA' => array(
|
||||
'time' => 3,
|
||||
'url' => $this->u_action
|
||||
)
|
||||
));
|
||||
}
|
||||
else if ($updated)
|
||||
{
|
||||
meta_refresh(3, $this->u_action);
|
||||
$message = $user->lang[$l_mode . '_UPDATED'] . '<br />' . implode('<br />', $error) . ((sizeof($error)) ? '<br />' : '') . '<br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
|
||||
|
|
|
@ -368,25 +368,32 @@ $lang = array_merge($lang, array(
|
|||
'PURGE_CACHE' => 'Purge the cache',
|
||||
'PURGE_CACHE_CONFIRM' => 'Are you sure you wish to purge the cache?',
|
||||
'PURGE_CACHE_EXPLAIN' => 'Purge all cache related items, this includes any cached template files or queries.',
|
||||
'PURGE_CACHE_SUCCESS' => 'Cache successfully purged.',
|
||||
|
||||
'PURGE_SESSIONS' => 'Purge all sessions',
|
||||
'PURGE_SESSIONS_CONFIRM' => 'Are you sure you wish to purge all sessions? This will log out all users.',
|
||||
'PURGE_SESSIONS_EXPLAIN' => 'Purge all sessions. This will log out all users by truncating the session table.',
|
||||
'PURGE_SESSIONS_SUCCESS' => 'Sessions successfully purged.',
|
||||
|
||||
'RESET_DATE' => 'Reset board’s start date',
|
||||
'RESET_DATE_CONFIRM' => 'Are you sure you wish to reset the board’s start date?',
|
||||
'RESET_DATE_SUCCESS' => 'Board’s start date reset',
|
||||
'RESET_ONLINE' => 'Reset most users ever online',
|
||||
'RESET_ONLINE_CONFIRM' => 'Are you sure you wish to reset the most users ever online counter?',
|
||||
'RESET_ONLINE_SUCCESS' => 'Most users ever online reset',
|
||||
'RESYNC_FILES_STATS_CONFIRM' => 'Are you sure you wish to resynchronise files statistics?',
|
||||
'RESYNC_POSTCOUNTS' => 'Resynchronise post counts',
|
||||
'RESYNC_POSTCOUNTS_EXPLAIN' => 'Only existing posts will be taken into consideration. Pruned posts will not be counted.',
|
||||
'RESYNC_POSTCOUNTS_CONFIRM' => 'Are you sure you wish to resynchronise post counts?',
|
||||
'RESYNC_POSTCOUNTS_SUCCESS' => 'Resynchronised post counts',
|
||||
'RESYNC_POST_MARKING' => 'Resynchronise dotted topics',
|
||||
'RESYNC_POST_MARKING_CONFIRM' => 'Are you sure you wish to resynchronise dotted topics?',
|
||||
'RESYNC_POST_MARKING_EXPLAIN' => 'First unmarks all topics and then correctly marks topics that have seen any activity during the past six months.',
|
||||
'RESYNC_POST_MARKING_SUCCESS' => 'Resynchronised dotted topics',
|
||||
'RESYNC_STATS' => 'Resynchronise statistics',
|
||||
'RESYNC_STATS_CONFIRM' => 'Are you sure you wish to resynchronise statistics?',
|
||||
'RESYNC_STATS_EXPLAIN' => 'Recalculates the total number of posts, topics, users and files.',
|
||||
'RESYNC_STATS_SUCCESS' => 'Resynchronised statistics',
|
||||
'RUN' => 'Run now',
|
||||
|
||||
'STATISTIC' => 'Statistic',
|
||||
|
|
|
@ -45,6 +45,7 @@ $lang = array_merge($lang, array(
|
|||
|
||||
'BBCODE_ADDED' => 'BBCode added successfully.',
|
||||
'BBCODE_EDITED' => 'BBCode edited successfully.',
|
||||
'BBCODE_DELETED' => 'The BBCode has been removed successfully.',
|
||||
'BBCODE_NOT_EXIST' => 'The BBCode you selected does not exist.',
|
||||
'BBCODE_HELPLINE' => 'Help line',
|
||||
'BBCODE_HELPLINE_EXPLAIN' => 'This field contains the mouse over text of the BBCode.',
|
||||
|
|
|
@ -295,9 +295,11 @@ $lang = array_merge($lang, array(
|
|||
'SELECTED_THEME_FILE' => 'Selected theme file',
|
||||
'STORE_FILESYSTEM' => 'Filesystem',
|
||||
'STYLE_ACTIVATE' => 'Activate',
|
||||
'STYLE_ACTIVATED' => 'Style activated successfully',
|
||||
'STYLE_ACTIVE' => 'Active',
|
||||
'STYLE_ADDED' => 'Style added successfully.',
|
||||
'STYLE_DEACTIVATE' => 'Deactivate',
|
||||
'STYLE_DEACTIVATED' => 'Style deactivated successfully',
|
||||
'STYLE_DEFAULT' => 'Make default style',
|
||||
'STYLE_DELETED' => 'Style deleted successfully.',
|
||||
'STYLE_DETAILS_UPDATED' => 'Style edited successfully.',
|
||||
|
|
|
@ -67,6 +67,8 @@ $lang = array_merge($lang, array(
|
|||
'ADMINISTRATORS' => 'Administrators',
|
||||
'AGE' => 'Age',
|
||||
'AIM' => 'AIM',
|
||||
'AJAX_ERROR_TITLE' => 'AJAX error',
|
||||
'AJAX_ERROR_TEXT' => 'Something went wrong when processing your request.',
|
||||
'ALLOWED' => 'Allowed',
|
||||
'ALL_FILES' => 'All files',
|
||||
'ALL_FORUMS' => 'All forums',
|
||||
|
@ -183,6 +185,7 @@ $lang = array_merge($lang, array(
|
|||
'ERR_UNWATCHING' => 'An error occured while trying to unsubscribe.',
|
||||
'ERR_WATCHING' => 'An error occured while trying to subscribe.',
|
||||
'ERR_WRONG_PATH_TO_PHPBB' => 'The phpBB path specified appears to be invalid.',
|
||||
'ERROR' => 'Error',
|
||||
'EXPAND_VIEW' => 'Expand view',
|
||||
'EXTENSION' => 'Extension',
|
||||
'EXTENSION_CONTROLLER_MISSING' => 'The extension <strong>%s</strong> is missing a controller class and cannot be accessed through the front-end.',
|
||||
|
@ -314,6 +317,7 @@ $lang = array_merge($lang, array(
|
|||
'LDAP_NO_SERVER_CONNECTION' => 'Could not connect to LDAP server.',
|
||||
'LDAP_SEARCH_FAILED' => 'An error occured while searching the LDAP directory.',
|
||||
'LEGEND' => 'Legend',
|
||||
'LOADING' => 'Loading',
|
||||
'LOCATION' => 'Location',
|
||||
'LOCK_POST' => 'Lock post',
|
||||
'LOCK_POST_EXPLAIN' => 'Prevent editing',
|
||||
|
@ -451,6 +455,7 @@ $lang = array_merge($lang, array(
|
|||
2 => '%d pixels',
|
||||
),
|
||||
'PLAY_QUICKTIME_FILE' => 'Play Quicktime file',
|
||||
'PLEASE_WAIT' => 'Please wait.',
|
||||
'PM' => 'PM',
|
||||
'PM_REPORTED' => 'Click to view report',
|
||||
'POSTING_MESSAGE' => 'Posting message in %s',
|
||||
|
@ -476,7 +481,7 @@ $lang = array_merge($lang, array(
|
|||
'POST_SUBJECT' => 'Post subject',
|
||||
'POST_TIME' => 'Post time',
|
||||
'POST_TOPIC' => 'Post a new topic',
|
||||
'POST_UNAPPROVED' => 'This post is waiting for approval',
|
||||
'POST_UNAPPROVED' => 'Post awaiting approval:',
|
||||
'PREVIEW' => 'Preview',
|
||||
'PREVIOUS' => 'Previous', // Used in pagination
|
||||
'PREVIOUS_STEP' => 'Previous',
|
||||
|
@ -597,6 +602,7 @@ $lang = array_merge($lang, array(
|
|||
'TEST_CONNECTION' => 'Test connection',
|
||||
'THE_TEAM' => 'The team',
|
||||
'TIME' => 'Time',
|
||||
'TIMEOUT_PROCESSING_REQ' => 'Request timed out.',
|
||||
|
||||
'TOO_LARGE' => 'The value you entered is too large.',
|
||||
'TOO_LARGE_MAX_RECIPIENTS' => 'The value of <strong>Maximum number of allowed recipients per private message</strong> setting you entered is too large.',
|
||||
|
|
|
@ -35,6 +35,7 @@ if (empty($lang) || !is_array($lang))
|
|||
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
|
||||
|
||||
$lang = array_merge($lang, array(
|
||||
'APPROVE' => 'Approve',
|
||||
'ATTACHMENT' => 'Attachment',
|
||||
'ATTACHMENT_FUNCTIONALITY_DISABLED' => 'The attachments feature has been disabled.',
|
||||
|
||||
|
@ -49,6 +50,7 @@ $lang = array_merge($lang, array(
|
|||
'CODE' => 'Code',
|
||||
|
||||
'DELETE_TOPIC' => 'Delete topic',
|
||||
'DISAPPROVE' => 'Disapprove',
|
||||
'DOWNLOAD_NOTICE' => 'You do not have the required permissions to view the files attached to this post.',
|
||||
|
||||
'EDITED_TIMES_TOTAL' => array(
|
||||
|
|
100
phpBB/styles/prosilver/template/ajax.js
Normal file
100
phpBB/styles/prosilver/template/ajax.js
Normal file
|
@ -0,0 +1,100 @@
|
|||
(function($) { // Avoid conflicts with other libraries
|
||||
|
||||
"use strict";
|
||||
|
||||
// This callback finds the post from the delete link, and removes it.
|
||||
phpbb.add_ajax_callback('post_delete', function() {
|
||||
var el = $(this),
|
||||
post_id;
|
||||
|
||||
if (el.attr('data-refresh') === undefined)
|
||||
{
|
||||
post_id = el[0].href.split('&p=')[1];
|
||||
var post = el.parents('#p' + post_id).css('pointer-events', 'none');
|
||||
if (post.hasClass('bg1') || post.hasClass('bg2'))
|
||||
{
|
||||
var posts1 = post.nextAll('.bg1');
|
||||
post.nextAll('.bg2').removeClass('bg2').addClass('bg1');
|
||||
posts1.removeClass('bg1').addClass('bg2');
|
||||
}
|
||||
post.fadeOut(function() {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// This callback removes the approve / disapprove div or link.
|
||||
phpbb.add_ajax_callback('post_approve', function(res) {
|
||||
var remove = (res.approved) ? $(this) : $(this).parents('.post');
|
||||
$(remove).css('pointer-events', 'none').fadeOut(function() {
|
||||
$(this).remove();
|
||||
});
|
||||
});
|
||||
|
||||
// This removes the parent row of the link or form that fired the callback.
|
||||
phpbb.add_ajax_callback('row_delete', function() {
|
||||
$(this).parents('tr').remove();
|
||||
});
|
||||
|
||||
// This handles friend / foe additions removals.
|
||||
phpbb.add_ajax_callback('zebra', function(res) {
|
||||
var zebra;
|
||||
|
||||
if (res.success) {
|
||||
zebra = $('.zebra');
|
||||
zebra.first().html(res.MESSAGE_TEXT);
|
||||
zebra.not(':first').html(' ').prev().html(' ');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('[data-ajax]').each(function() {
|
||||
var $this = $(this),
|
||||
ajax = $this.attr('data-ajax'),
|
||||
fn;
|
||||
|
||||
if (ajax !== 'false')
|
||||
{
|
||||
fn = (ajax !== 'true') ? ajax : null;
|
||||
phpbb.ajaxify({
|
||||
selector: this,
|
||||
refresh: $this.attr('data-refresh') !== undefined,
|
||||
callback: fn
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* This AJAXifies the quick-mod tools. The reason it cannot be a standard
|
||||
* callback / data attribute is that it requires filtering - some of the options
|
||||
* can be ajaxified, while others cannot.
|
||||
*/
|
||||
phpbb.ajaxify({
|
||||
selector: '#quickmodform',
|
||||
refresh: true,
|
||||
filter: function (data) {
|
||||
var action = $('#quick-mod-select').val();
|
||||
|
||||
if (action === 'make_normal')
|
||||
{
|
||||
return $(this).find('select option[value="make_global"]').length > 0;
|
||||
}
|
||||
else if (action === 'lock' || action === 'unlock')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (action === 'delete_topic' || action === 'make_sticky' || action === 'make_announce' || action === 'make_global') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
})(jQuery); // Avoid conflicts with other libraries
|
|
@ -8,7 +8,7 @@
|
|||
<!-- IF S_DISPLAY_SEARCH -->
|
||||
<li><a href="{U_SEARCH_UNANSWERED}">{L_SEARCH_UNANSWERED}</a><!-- IF S_LOAD_UNREADS --> • <a href="{U_SEARCH_UNREAD}">{L_SEARCH_UNREAD}</a><!-- ENDIF --><!-- IF S_USER_LOGGED_IN --> • <a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a><!-- ENDIF --> • <a href="{U_SEARCH_ACTIVE_TOPICS}">{L_SEARCH_ACTIVE_TOPICS}</a></li>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not S_IS_BOT and U_MARK_FORUMS --><li class="rightside"><a href="{U_MARK_FORUMS}" accesskey="m">{L_MARK_FORUMS_READ}</a></li><!-- ENDIF -->
|
||||
<!-- IF not S_IS_BOT and U_MARK_FORUMS --><li class="rightside"><a href="{U_MARK_FORUMS}" accesskey="m" data-ajax="true">{L_MARK_FORUMS_READ}</a></li><!-- ENDIF -->
|
||||
</ul>
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
|
|
@ -35,15 +35,15 @@
|
|||
<!-- BEGIN custom_fields --><dt>{custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields.PROFILE_FIELD_VALUE}</dd><!-- END custom_fields -->
|
||||
<!-- IF S_USER_LOGGED_IN and S_ZEBRA -->
|
||||
<!-- IF U_REMOVE_FRIEND -->
|
||||
<dt> </dt> <dd><a href="{U_REMOVE_FRIEND}"><strong>{L_REMOVE_FRIEND}</strong></a></dd>
|
||||
<dt> </dt> <dd class="zebra"><a href="{U_REMOVE_FRIEND}" data-ajax="zebra"><strong>{L_REMOVE_FRIEND}</strong></a></dd>
|
||||
<!-- ELSEIF U_REMOVE_FOE -->
|
||||
<dt> </dt> <dd><a href="{U_REMOVE_FOE}"><strong>{L_REMOVE_FOE}</strong></a></dd>
|
||||
<dt> </dt> <dd class="zebra"><a href="{U_REMOVE_FOE}" data-ajax="zebra"><strong>{L_REMOVE_FOE}</strong></a></dd>
|
||||
<!-- ELSE -->
|
||||
<!-- IF U_ADD_FRIEND -->
|
||||
<dt> </dt> <dd><a href="{U_ADD_FRIEND}"><strong>{L_ADD_FRIEND}</strong></a></dd>
|
||||
<dt> </dt> <dd class="zebra"><a href="{U_ADD_FRIEND}" data-ajax="zebra"><strong>{L_ADD_FRIEND}</strong></a></dd>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF U_ADD_FOE -->
|
||||
<dt> </dt> <dd><a href="{U_ADD_FOE}"><strong>{L_ADD_FOE}</strong></a></dd>
|
||||
<dt> </dt> <dd class="zebra"><a href="{U_ADD_FOE}" data-ajax="zebra"><strong>{L_ADD_FOE}</strong></a></dd>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
<ul class="linklist">
|
||||
<li class="icon-home"><a href="{U_INDEX}" accesskey="h">{L_INDEX}</a></li>
|
||||
<!-- IF not S_IS_BOT -->
|
||||
<!-- IF S_WATCH_FORUM_LINK --><li <!-- IF S_WATCHING_FORUM -->class="icon-unsubscribe"<!-- ELSE -->class="icon-subscribe"<!-- ENDIF -->><a href="{S_WATCH_FORUM_LINK}" title="{S_WATCH_FORUM_TITLE}">{S_WATCH_FORUM_TITLE}</a></li><!-- ENDIF -->
|
||||
<!-- IF U_WATCH_TOPIC --><li <!-- IF S_WATCHING_TOPIC -->class="icon-unsubscribe"<!-- ELSE -->class="icon-subscribe"<!-- ENDIF -->><a href="{U_WATCH_TOPIC}" title="{L_WATCH_TOPIC}">{L_WATCH_TOPIC}</a></li><!-- ENDIF -->
|
||||
<!-- IF U_BOOKMARK_TOPIC --><li class="icon-bookmark"><a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}">{L_BOOKMARK_TOPIC}</a></li><!-- ENDIF -->
|
||||
<!-- IF U_BUMP_TOPIC --><li class="icon-bump"><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}">{L_BUMP_TOPIC}</a></li><!-- ENDIF -->
|
||||
<!-- IF S_WATCH_FORUM_LINK --><li <!-- IF S_WATCHING_FORUM -->class="icon-unsubscribe"<!-- ELSE -->class="icon-subscribe"<!-- ENDIF -->><a href="{S_WATCH_FORUM_LINK}" title="{S_WATCH_FORUM_TITLE}" data-ajax="alt_text" data-alt-text="<!-- IF S_WATCHING_FORUM -->{L_START_WATCHING_FORUM}<!-- ELSE -->{L_STOP_WATCHING_FORUM}<!-- ENDIF -->">{S_WATCH_FORUM_TITLE}</a></li><!-- ENDIF -->
|
||||
<!-- IF U_WATCH_TOPIC --><li <!-- IF S_WATCHING_TOPIC -->class="icon-unsubscribe"<!-- ELSE -->class="icon-subscribe"<!-- ENDIF -->><a href="{U_WATCH_TOPIC}" title="{L_WATCH_TOPIC}" data-ajax="alt_text" data-alt-text="<!-- IF S_WATCHING_TOPIC -->{L_START_WATCHING_TOPIC}<!-- ELSE -->{L_STOP_WATCHING_TOPIC}<!-- ENDIF -->">{L_WATCH_TOPIC}</a></li><!-- ENDIF -->
|
||||
<!-- IF U_BOOKMARK_TOPIC --><li class="icon-bookmark"><a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}" data-ajax="alt_text" data-alt-text="<!-- IF S_BOOKMARKED_TOPIC -->{L_BOOKMARK_TOPIC_REAL}<!-- ELSE -->{L_BOOKMARK_TOPIC_REMOVE}<!-- ENDIF -->">{L_BOOKMARK_TOPIC}</a></li><!-- ENDIF -->
|
||||
<!-- IF U_BUMP_TOPIC --><li class="icon-bump"><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}" data-ajax="true">{L_BUMP_TOPIC}</a></li><!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<li class="rightside"><!-- IF U_TEAM --><a href="{U_TEAM}">{L_THE_TEAM}</a> • <!-- ENDIF --><!-- IF not S_IS_BOT --><a href="{U_DELETE_COOKIES}">{L_DELETE_COOKIES}</a> • <!-- ENDIF -->{S_TIMEZONE}</li>
|
||||
<li class="rightside"><!-- IF U_TEAM --><a href="{U_TEAM}">{L_THE_TEAM}</a> • <!-- ENDIF --><!-- IF not S_IS_BOT --><a href="{U_DELETE_COOKIES}" data-ajax="true" data-refresh="true">{L_DELETE_COOKIES}</a> • <!-- ENDIF -->{S_TIMEZONE}</li>
|
||||
</ul>
|
||||
|
||||
<span class="corners-bottom"><span></span></span></div>
|
||||
|
@ -24,6 +24,22 @@
|
|||
<!-- IF DEBUG_OUTPUT --><br />{DEBUG_OUTPUT}<!-- ENDIF -->
|
||||
<!-- IF U_ACP --><br /><strong><a href="{U_ACP}">{L_ACP}</a></strong><!-- ENDIF -->
|
||||
</div>
|
||||
|
||||
<div id="darkenwrapper" data-ajax-error-title="{L_AJAX_ERROR_TITLE}" data-ajax-error-text="{L_AJAX_ERROR_TEXT}">
|
||||
<div id="darken"> </div>
|
||||
<div class="jalert" id="loadingalert"><h3>{L_LOADING}</h3><p>{L_PLEASE_WAIT}</p></div>
|
||||
</div>
|
||||
|
||||
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
|
||||
<a href="#" class="alert_close"></a>
|
||||
<h3 class="alert_title"></h3><p class="alert_text"></p>
|
||||
</div>
|
||||
<div id="phpbb_confirm" class="phpbb_alert">
|
||||
<a href="#" class="alert_close"></a>
|
||||
<p class="alert_text"></p>
|
||||
<input type="button" class="button1" value="{L_YES}" />
|
||||
<input type="button" class="button2" value="{L_NO}" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@ -35,6 +51,8 @@
|
|||
|
||||
<script type="text/javascript" src="{T_JQUERY_LINK}"></script>
|
||||
<!-- IF S_JQUERY_FALLBACK --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->
|
||||
<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js"></script>
|
||||
<script type="text/javascript" src="{T_TEMPLATE_PATH}/ajax.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
{S_FORM_TOKEN}
|
||||
{QR_HIDDEN_FIELDS}
|
||||
<input type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" class="button1" />
|
||||
<input type="submit" accesskey="f" tabindex="7" name="full_editor" value="{L_FULL_EDITOR}" class="button2" />
|
||||
<input type="submit" accesskey="f" tabindex="7" name="full_editor" value="{L_FULL_EDITOR}" class="button2" data-ajax="false" />
|
||||
</fieldset>
|
||||
<span class="corners-bottom"><span></span></span></div>
|
||||
</div>
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
|
||||
<!-- IF PAGINATION or TOTAL_POSTS or TOTAL_TOPICS -->
|
||||
<div class="pagination">
|
||||
<!-- IF not S_IS_BOT and U_MARK_TOPICS --><a href="{U_MARK_TOPICS}" accesskey="m">{L_MARK_TOPICS_READ}</a> • <!-- ENDIF --><!-- IF TOTAL_TOPICS -->{TOTAL_TOPICS}<!-- ENDIF -->
|
||||
<!-- IF not S_IS_BOT and U_MARK_TOPICS --><a href="{U_MARK_TOPICS}" accesskey="m" data-ajax="true">{L_MARK_TOPICS_READ}</a> • <!-- ENDIF --><!-- IF TOTAL_TOPICS -->{TOTAL_TOPICS}<!-- ENDIF -->
|
||||
<!-- IF PAGE_NUMBER -->
|
||||
<!-- IF PAGINATION --> • <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> • <span>{PAGINATION}</span><!-- ELSE --> • {PAGE_NUMBER}<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
<!-- IF postrow.U_EDIT or postrow.U_DELETE or postrow.U_REPORT or postrow.U_WARN or postrow.U_INFO or postrow.U_QUOTE -->
|
||||
<ul class="profile-icons">
|
||||
<!-- IF postrow.U_EDIT --><li class="edit-icon"><a href="{postrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->
|
||||
<!-- IF postrow.U_DELETE --><li class="delete-icon"><a href="{postrow.U_DELETE}" title="{L_DELETE_POST}"><span>{L_DELETE_POST}</span></a></li><!-- ENDIF -->
|
||||
<!-- IF postrow.U_DELETE --><li class="delete-icon"><a href="{postrow.U_DELETE}" title="{L_DELETE_POST}" data-ajax="post_delete"<!-- IF postrow.POST_NUMBER == 1 --> data-refresh="true"<!-- ENDIF -->><span>{L_DELETE_POST}</span></a></li><!-- ENDIF -->
|
||||
<!-- IF postrow.U_REPORT --><li class="report-icon"><a href="{postrow.U_REPORT}" title="{L_REPORT_POST}"><span>{L_REPORT_POST}</span></a></li><!-- ENDIF -->
|
||||
<!-- IF postrow.U_WARN --><li class="warn-icon"><a href="{postrow.U_WARN}" title="{L_WARN_USER}"><span>{L_WARN_USER}</span></a></li><!-- ENDIF -->
|
||||
<!-- IF postrow.U_INFO --><li class="info-icon"><a href="{postrow.U_INFO}" title="{L_INFORMATION}"><span>{L_INFORMATION}</span></a></li><!-- ENDIF -->
|
||||
|
@ -135,10 +135,18 @@
|
|||
<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> » {postrow.POST_DATE} </p>
|
||||
|
||||
<!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_REPORTED -->
|
||||
<form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}" data-ajax="post_approve">
|
||||
<p class="rules">
|
||||
<!-- IF postrow.S_POST_UNAPPROVED -->{UNAPPROVED_IMG} <a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_UNAPPROVED}</strong></a><br /><!-- ENDIF -->
|
||||
<!-- IF postrow.S_POST_UNAPPROVED -->
|
||||
{UNAPPROVED_IMG} <strong>{L_POST_UNAPPROVED}</strong>
|
||||
<input class="button2" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" />
|
||||
<input class="button1" type="submit" value="{L_APPROVE}" name="action[approve]" />
|
||||
<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>
|
||||
</form>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<div class="content">{postrow.MESSAGE}</div>
|
||||
|
@ -255,7 +263,7 @@
|
|||
<!-- INCLUDE jumpbox.html -->
|
||||
|
||||
<!-- IF .quickmod -->
|
||||
<form method="post" action="{S_MOD_ACTION}">
|
||||
<form method="post" action="{S_MOD_ACTION}" id="quickmodform" data-ajax="true">
|
||||
<fieldset class="quickmod">
|
||||
<label for="quick-mod-select">{L_QUICK_MOD}:</label>
|
||||
<select name="action" id="quick-mod-select">
|
||||
|
|
|
@ -1074,3 +1074,17 @@ input.search {
|
|||
input.disabled {
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
/* jQuery popups
|
||||
---------------------------------------- */
|
||||
.phpbb_alert {
|
||||
background-color: #FFFFFF;
|
||||
border-color: #999999;
|
||||
}
|
||||
.phpbb_alert .alert_close {
|
||||
background-image: url("./images/alert_close.png");
|
||||
}
|
||||
#darken {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
|
|
|
@ -580,6 +580,61 @@ li.pagination {
|
|||
background: none 0 50% no-repeat;
|
||||
}
|
||||
|
||||
.row .pagination span a, li.pagination span a {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.row .pagination span a:hover, li.pagination span a:hover {
|
||||
background-color: #d2d2d2;
|
||||
}
|
||||
|
||||
/* jQuery popups
|
||||
---------------------------------------- */
|
||||
.phpbb_alert {
|
||||
border: 1px solid transparent;
|
||||
position: fixed;
|
||||
display: none;
|
||||
top: 100px;
|
||||
left: 35%;
|
||||
width: 30%;
|
||||
z-index: 50;
|
||||
padding: 25px;
|
||||
padding: 0 25px 20px 25px;
|
||||
}
|
||||
|
||||
.phpbb_alert .alert_close {
|
||||
display: block;
|
||||
float: right;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
text-decoration: none !important;
|
||||
background: transparent none 0 0 no-repeat;
|
||||
margin-top: -7px;
|
||||
margin-right: -31px;
|
||||
}
|
||||
.phpbb_alert .alert_close:hover {
|
||||
background-position: 0 -16px;
|
||||
}
|
||||
|
||||
.phpbb_alert p {
|
||||
margin: 8px 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
#darkenwrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#darken {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Miscellaneous styles
|
||||
---------------------------------------- */
|
||||
#forum-permissions {
|
||||
|
@ -630,6 +685,10 @@ p.rules {
|
|||
|
||||
p.rules img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
p.rules strong {
|
||||
vertical-align: middle;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
|
@ -650,3 +709,7 @@ p.rules a {
|
|||
line-height: 1px;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
|
BIN
phpBB/styles/prosilver/theme/images/alert_close.png
Normal file
BIN
phpBB/styles/prosilver/theme/images/alert_close.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2 KiB |
|
@ -655,6 +655,8 @@ $template->assign_vars(array(
|
|||
|
||||
'U_BOOKMARK_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks']) ? $viewtopic_url . '&bookmark=1&hash=' . generate_link_hash("topic_$topic_id") : '',
|
||||
'L_BOOKMARK_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks'] && $topic_data['bookmarked']) ? $user->lang['BOOKMARK_TOPIC_REMOVE'] : $user->lang['BOOKMARK_TOPIC'],
|
||||
'L_BOOKMARK_TOPIC_REAL' => $user->lang['BOOKMARK_TOPIC'],
|
||||
'S_BOOKMARKED_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks'] && $topic_data['bookmarked']) ? true : false,
|
||||
|
||||
'U_POST_NEW_TOPIC' => ($auth->acl_get('f_post', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=post&f=$forum_id") : '',
|
||||
'U_POST_REPLY_TOPIC' => ($auth->acl_get('f_reply', $forum_id) || $user->data['user_id'] == ANONYMOUS) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=reply&f=$forum_id&t=$topic_id") : '',
|
||||
|
@ -1534,6 +1536,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
|
|||
'U_YIM' => $user_cache[$poster_id]['yim'],
|
||||
'U_JABBER' => $user_cache[$poster_id]['jabber'],
|
||||
|
||||
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&p={$row['post_id']}&f=$forum_id"),
|
||||
'U_REPORT' => ($auth->acl_get('f_report', $forum_id)) ? append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&p=' . $row['post_id']) : '',
|
||||
'U_MCP_REPORT' => ($auth->acl_get('m_report', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&mode=report_details&f=' . $forum_id . '&p=' . $row['post_id'], true, $user->session_id) : '',
|
||||
'U_MCP_APPROVE' => ($auth->acl_get('m_approve', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&mode=approve_details&f=' . $forum_id . '&p=' . $row['post_id'], true, $user->session_id) : '',
|
||||
|
|
Loading…
Add table
Reference in a new issue