Merge remote-tracking branch 'igorw/feature/ajax' into develop

This commit is contained in:
David King 2012-03-30 20:16:00 -04:00
commit 013a8649a5
49 changed files with 1203 additions and 70 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -248,7 +248,7 @@
<!-- ELSE --><br /><span>&raquo; {L_ALLOWED_IN_PM_POST}</span><!-- ENDIF --> <!-- ELSE --><br /><span>&raquo; {L_ALLOWED_IN_PM_POST}</span><!-- ENDIF -->
</td> </td>
<td>{groups.CATEGORY}</td> <td>{groups.CATEGORY}</td>
<td align="center" valign="middle" style="white-space: nowrap;">&nbsp;<a href="{groups.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{groups.U_DELETE}">{ICON_DELETE}</a>&nbsp;</td> <td align="center" valign="middle" style="white-space: nowrap;">&nbsp;<a href="{groups.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{groups.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>&nbsp;</td>
</tr> </tr>
<!-- END groups --> <!-- END groups -->
</tbody> </tbody>

View file

@ -101,7 +101,7 @@
<!-- BEGIN bbcodes --> <!-- BEGIN bbcodes -->
<!-- IF bbcodes.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF --> <!-- 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: 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> </tr>
<!-- BEGINELSE --> <!-- BEGINELSE -->
<tr class="row3"> <tr class="row3">

View file

@ -76,9 +76,9 @@
<!-- IF bots.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF --> <!-- 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: 50%;">{bots.BOT_NAME}</td>
<td style="width: 15%; white-space: nowrap;" align="center">&nbsp;{bots.LAST_VISIT}&nbsp;</td> <td style="width: 15%; white-space: nowrap;" align="center">&nbsp;{bots.LAST_VISIT}&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_ACTIVATE_DEACTIVATE}">{bots.L_ACTIVATE_DEACTIVATE}</a>&nbsp;</td> <td style="text-align: center;">&nbsp;<a href="{bots.U_ACTIVATE_DEACTIVATE}" data-ajax="activate_deactivate">{bots.L_ACTIVATE_DEACTIVATE}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_EDIT}">{L_EDIT}</a>&nbsp;</td> <td style="text-align: center;">&nbsp;<a href="{bots.U_EDIT}">{L_EDIT}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_DELETE}">{L_DELETE}</a>&nbsp;</td> <td style="text-align: center;">&nbsp;<a href="{bots.U_DELETE}" data-ajax="row_delete">{L_DELETE}</a>&nbsp;</td>
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{bots.BOT_ID}" /></td> <td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{bots.BOT_ID}" /></td>
</tr> </tr>
<!-- END bots --> <!-- END bots -->

View file

@ -443,7 +443,7 @@
<col class="row1" /><col class="row1" /><col class="row2" /> <col class="row1" /><col class="row1" /><col class="row2" />
<tbody> <tbody>
<!-- BEGIN forums --> <!-- 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 style="width: 5%; text-align: center;">{forums.FOLDER_IMAGE}</td>
<td> <td>
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF --> <!-- 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>
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;"> <td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW --> <!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED} <span class="up">{ICON_MOVE_UP_DISABLED}</span>
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> <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 --> <!-- ELSEIF not forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
<a href="{forums.U_MOVE_UP}">{ICON_MOVE_UP}</a> <span class="up"><a href="{forums.U_MOVE_UP}" data-ajax="forum_up">{ICON_MOVE_UP}</a></span>
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> <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 --> <!-- ELSEIF forums.S_LAST_ROW && not forums.S_FIRST_ROW -->
<a href="{forums.U_MOVE_UP}">{ICON_MOVE_UP}</a> <span class="up"><a href="{forums.U_MOVE_UP}" data-ajax="forum_up">{ICON_MOVE_UP}</a></span>
{ICON_MOVE_DOWN_DISABLED} <span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
<!-- ELSE --> <!-- ELSE -->
{ICON_MOVE_UP_DISABLED} <span class="up">{ICON_MOVE_UP_DISABLED}</span>
{ICON_MOVE_DOWN_DISABLED} <span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
<!-- ENDIF --> <!-- ENDIF -->
<a href="{forums.U_EDIT}">{ICON_EDIT}</a> <a href="{forums.U_EDIT}">{ICON_EDIT}</a>
<!-- IF not forums.S_FORUM_LINK --> <!-- IF not forums.S_FORUM_LINK -->
@ -500,6 +500,14 @@
</fieldset> </fieldset>
</form> </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 --> <!-- ENDIF -->
<!-- INCLUDE overall_footer.html --> <!-- INCLUDE overall_footer.html -->

View file

@ -350,7 +350,7 @@
<td style="text-align: center;">{groups.TOTAL_MEMBERS}</td> <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_EDIT}">{L_SETTINGS}</a></td>
<td style="text-align: center;"><a href="{groups.U_LIST}">{L_MEMBERS}</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> </tr>
<!-- ENDIF --> <!-- ENDIF -->
<!-- END groups --> <!-- END groups -->

View file

@ -245,7 +245,7 @@
<td style="text-align: right; white-space: nowrap;"> <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 -->&nbsp; <!-- 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 -->&nbsp;
<!-- 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 --> <!-- 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 -->
&nbsp;<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}">{ICON_DELETE}</a> &nbsp;<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
</td> </td>
</tr> </tr>
<!-- BEGINELSE --> <!-- BEGINELSE -->

View file

@ -152,35 +152,35 @@
<fieldset> <fieldset>
<legend>{L_STATISTIC_RESYNC_OPTIONS}</legend> <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> <dl>
<dt><label for="action_online">{L_RESET_ONLINE}</label><br /><span>&nbsp;</span></dt> <dt><label for="action_online">{L_RESET_ONLINE}</label><br /><span>&nbsp;</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> <dd><input type="hidden" name="action" value="online" /><input class="button2" type="submit" id="action_online" name="action_online" value="{L_RUN}" /></dd>
</dl> </dl>
</form> </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> <dl>
<dt><label for="action_date">{L_RESET_DATE}</label><br /><span>&nbsp;</span></dt> <dt><label for="action_date">{L_RESET_DATE}</label><br /><span>&nbsp;</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> <dd><input type="hidden" name="action" value="date" /><input class="button2" type="submit" id="action_date" name="action_date" value="{L_RUN}" /></dd>
</dl> </dl>
</form> </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> <dl>
<dt><label for="action_stats">{L_RESYNC_STATS}</label><br /><span>{L_RESYNC_STATS_EXPLAIN}</span></dt> <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> <dd><input type="hidden" name="action" value="stats" /><input class="button2" type="submit" id="action_stats" name="action_stats" value="{L_RUN}" /></dd>
</dl> </dl>
</form> </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> <dl>
<dt><label for="action_user">{L_RESYNC_POSTCOUNTS}</label><br /><span>{L_RESYNC_POSTCOUNTS_EXPLAIN}</span></dt> <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> <dd><input type="hidden" name="action" value="user" /><input class="button2" type="submit" id="action_user" name="action_user" value="{L_RUN}" /></dd>
</dl> </dl>
</form> </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> <dl>
<dt><label for="action_db_track">{L_RESYNC_POST_MARKING}</label><br /><span>{L_RESYNC_POST_MARKING_EXPLAIN}</span></dt> <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> <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> </form>
<!-- IF S_FOUNDER --> <!-- 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> <dl>
<dt><label for="action_purge_sessions">{L_PURGE_SESSIONS}</label><br /><span>{L_PURGE_SESSIONS_EXPLAIN}</span></dt> <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> <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> </form>
<!-- ENDIF --> <!-- 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> <dl>
<dt><label for="action_purge_cache">{L_PURGE_CACHE}</label><br /><span>{L_PURGE_CACHE_EXPLAIN}</span></dt> <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> <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>

View file

@ -164,7 +164,7 @@
{ICON_MOVE_DOWN_DISABLED} {ICON_MOVE_DOWN_DISABLED}
<!-- ENDIF --> <!-- ENDIF -->
<a href="{modules.U_EDIT}">{ICON_EDIT}</a> <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> </td>
</tr> </tr>
<!-- END modules --> <!-- END modules -->

View file

@ -174,7 +174,7 @@
{ICON_MOVE_DOWN_DISABLED} {ICON_MOVE_DOWN_DISABLED}
<!-- ENDIF --> <!-- ENDIF -->
<a href="{roles.U_EDIT}" title="{L_EDIT_ROLE}">{ICON_EDIT}</a> <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> </td>
</tr> </tr>
<!-- END roles --> <!-- END roles -->

View file

@ -195,7 +195,7 @@
<td>{fields.FIELD_IDENT}</td> <td>{fields.FIELD_IDENT}</td>
<td>{fields.FIELD_TYPE}</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;"> <td style="width: 80px; text-align: right; white-space: nowrap;">
<!-- IF fields.S_FIRST_ROW && not fields.S_LAST_ROW --> <!-- IF fields.S_FIRST_ROW && not fields.S_LAST_ROW -->
@ -213,7 +213,7 @@
<!-- ELSE --> <!-- ELSE -->
{ICON_EDIT_DISABLED} {ICON_EDIT_DISABLED}
<!-- ENDIF --> <!-- ENDIF -->
<a href="{fields.U_DELETE}">{ICON_DELETE}</a> <a href="{fields.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
</td> </td>
</tr> </tr>

View file

@ -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 -->&nbsp; - &nbsp;<!-- ENDIF --></td> <td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" /><!-- ELSE -->&nbsp; - &nbsp;<!-- ENDIF --></td>
<td style="text-align: center;">{ranks.RANK_TITLE}</td> <td style="text-align: center;">{ranks.RANK_TITLE}</td>
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK -->&nbsp; - &nbsp;<!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td> <td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK -->&nbsp; - &nbsp;<!-- 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> </tr>
<!-- END ranks --> <!-- END ranks -->
</tbody> </tbody>

View file

@ -99,7 +99,7 @@
<!-- ENDIF --> <!-- ENDIF -->
<a href="{reasons.U_EDIT}">{ICON_EDIT}</a> <a href="{reasons.U_EDIT}">{ICON_EDIT}</a>
<!-- IF reasons.U_DELETE --> <!-- 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 --> <!-- ELSE -->
{ICON_DELETE_DISABLED} {ICON_DELETE_DISABLED}
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -288,7 +288,7 @@
</td> </td>
<td style="text-align: center;"> <td style="text-align: center;">
<!-- IF S_STYLE --> <!-- 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 --> <!-- ENDIF -->
{installed.S_ACTIONS} {installed.S_ACTIONS}
<!-- IF S_STYLE --> <!-- IF S_STYLE -->

View file

@ -60,7 +60,7 @@
<!-- IF words.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF --> <!-- 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.WORD}</td>
<td style="text-align: center;">{words.REPLACEMENT}</td> <td style="text-align: center;">{words.REPLACEMENT}</td>
<td>&nbsp;<a href="{words.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{words.U_DELETE}">{ICON_DELETE}</a>&nbsp;</td> <td>&nbsp;<a href="{words.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{words.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>&nbsp;</td>
</tr> </tr>
<!-- BEGINELSE --> <!-- BEGINELSE -->
<tr class="row3"> <tr class="row3">

View file

@ -101,6 +101,10 @@ hr {
font-size: 0.85em; font-size: 0.85em;
} }
.hidden {
display: none;
}
/* General links */ /* General links */
a:link, a:visited { a:link, a:visited {
color: #105289; color: #105289;
@ -1070,6 +1074,56 @@ input.disabled {
color: #666666; 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
---------------------------------------- */ ---------------------------------------- */
.pagination { .pagination {

135
phpBB/adm/style/ajax.js Normal file
View 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

View file

@ -17,11 +17,29 @@
<!-- IF S_COPYRIGHT_HTML --><br /><!-- ENDIF --> <!-- IF S_COPYRIGHT_HTML --><br /><!-- ENDIF -->
{DEBUG_OUTPUT} {DEBUG_OUTPUT}
<!-- ENDIF --> <!-- ENDIF -->
<div id="darkenwrapper" data-ajax-error-title="{L_AJAX_ERROR_TITLE}" data-ajax-error-text="{L_AJAX_ERROR_TEXT}">
<div id="darken">&nbsp;</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}" />&nbsp;
<input type="button" class="button2" value="{L_NO}" />
</div>
</div> </div>
</div> </div>
<script type="text/javascript" src="{T_JQUERY_LINK}"></script> <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 --> <!-- 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> </body>
</html> </html>

View 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('&amp;', '&');
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

View file

@ -24,7 +24,7 @@ class acp_bbcodes
function main($id, $mode) 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; global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
$user->add_lang('acp/posting'); $user->add_lang('acp/posting');
@ -272,6 +272,18 @@ class acp_bbcodes
$db->sql_query('DELETE FROM ' . BBCODES_TABLE . " WHERE bbcode_id = $bbcode_id"); $db->sql_query('DELETE FROM ' . BBCODES_TABLE . " WHERE bbcode_id = $bbcode_id");
$cache->destroy('sql', BBCODES_TABLE); $cache->destroy('sql', BBCODES_TABLE);
add_log('admin', 'LOG_BBCODE_DELETE', $row['bbcode_tag']); 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 else
{ {

View file

@ -24,7 +24,7 @@ class acp_bots
function main($id, $mode) 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; global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix;
$action = request_var('action', ''); $action = request_var('action', '');
@ -352,6 +352,14 @@ class acp_bots
break; 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 = ''; $s_options = '';
$_options = array('activate' => 'BOT_ACTIVATE', 'deactivate' => 'BOT_DEACTIVATE', 'delete' => 'DELETE'); $_options = array('activate' => 'BOT_ACTIVATE', 'deactivate' => 'BOT_DEACTIVATE', 'delete' => 'DELETE');

View file

@ -25,7 +25,7 @@ class acp_forums
function main($id, $mode) 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; global $config, $phpbb_admin_path, $phpbb_root_path, $phpEx;
$user->add_lang('acp/forums'); $user->add_lang('acp/forums');
@ -255,6 +255,12 @@ class acp_forums
add_log('admin', 'LOG_FORUM_' . strtoupper($action), $row['forum_name'], $move_forum_name); add_log('admin', 'LOG_FORUM_' . strtoupper($action), $row['forum_name'], $move_forum_name);
$cache->destroy('sql', FORUMS_TABLE); $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; break;

View file

@ -782,6 +782,18 @@ class acp_icons
$cache->destroy('_icons'); $cache->destroy('_icons');
$cache->destroy('sql', $table); $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 else
{ {

View file

@ -24,7 +24,7 @@ class acp_main
function main($id, $mode) 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; global $phpbb_root_path, $phpbb_admin_path, $phpEx;
// Show restore permissions notice // Show restore permissions notice
@ -129,6 +129,11 @@ class acp_main
set_config('record_online_users', 1, true); set_config('record_online_users', 1, true);
set_config('record_online_date', time(), true); set_config('record_online_date', time(), true);
add_log('admin', 'LOG_RESET_ONLINE'); add_log('admin', 'LOG_RESET_ONLINE');
if ($request->is_ajax())
{
trigger_error('RESET_ONLINE_SUCCESS');
}
break; break;
case 'stats': case 'stats':
@ -179,6 +184,11 @@ class acp_main
update_last_username(); update_last_username();
add_log('admin', 'LOG_RESYNC_STATS'); add_log('admin', 'LOG_RESYNC_STATS');
if ($request->is_ajax())
{
trigger_error('RESYNC_STATS_SUCCESS');
}
break; break;
case 'user': case 'user':
@ -241,7 +251,11 @@ class acp_main
} }
add_log('admin', 'LOG_RESYNC_POSTCOUNTS'); add_log('admin', 'LOG_RESYNC_POSTCOUNTS');
if ($request->is_ajax())
{
trigger_error('RESYNC_POSTCOUNTS_SUCCESS');
}
break; break;
case 'date': case 'date':
@ -252,6 +266,11 @@ class acp_main
set_config('board_startdate', time() - 1); set_config('board_startdate', time() - 1);
add_log('admin', 'LOG_RESET_DATE'); add_log('admin', 'LOG_RESET_DATE');
if ($request->is_ajax())
{
trigger_error('RESET_DATE_SUCCESS');
}
break; break;
case 'db_track': case 'db_track':
@ -327,6 +346,11 @@ class acp_main
} }
add_log('admin', 'LOG_RESYNC_POST_MARKING'); add_log('admin', 'LOG_RESYNC_POST_MARKING');
if ($request->is_ajax())
{
trigger_error('RESYNC_POST_MARKING_SUCCESS');
}
break; break;
case 'purge_cache': case 'purge_cache':
@ -338,6 +362,11 @@ class acp_main
cache_moderators(); cache_moderators();
add_log('admin', 'LOG_PURGE_CACHE'); add_log('admin', 'LOG_PURGE_CACHE');
if ($request->is_ajax())
{
trigger_error('PURGE_CACHE_SUCCESS');
}
break; break;
case 'purge_sessions': case 'purge_sessions':
@ -384,6 +413,11 @@ class acp_main
$db->sql_query($sql); $db->sql_query($sql);
add_log('admin', 'LOG_PURGE_SESSIONS'); add_log('admin', 'LOG_PURGE_SESSIONS');
if ($request->is_ajax())
{
trigger_error('PURGE_SESSIONS_SUCCESS');
}
break; break;
} }
} }

View file

@ -36,7 +36,7 @@ class acp_modules
function main($id, $mode) 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; 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) // 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 // Default management page
if (sizeof($errors)) 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( $template->assign_vars(array(
'S_ERROR' => true, 'S_ERROR' => true,
'ERROR_MSG' => implode('<br />', $errors)) 'ERROR_MSG' => implode('<br />', $errors))

View file

@ -242,6 +242,15 @@ class acp_profile
$db->sql_freeresult($result); $db->sql_freeresult($result);
add_log('admin', 'LOG_PROFILE_FIELD_ACTIVATE', $field_ident); 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)); trigger_error($user->lang['PROFILE_FIELD_ACTIVATED'] . adm_back_link($this->u_action));
break; break;
@ -266,7 +275,16 @@ class acp_profile
$field_ident = (string) $db->sql_fetchfield('field_ident'); $field_ident = (string) $db->sql_fetchfield('field_ident');
$db->sql_freeresult($result); $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); add_log('admin', 'LOG_PROFILE_FIELD_DEACTIVATE', $field_ident);
trigger_error($user->lang['PROFILE_FIELD_DEACTIVATED'] . adm_back_link($this->u_action)); trigger_error($user->lang['PROFILE_FIELD_DEACTIVATED'] . adm_back_link($this->u_action));
break; break;

View file

@ -24,7 +24,7 @@ class acp_ranks
function main($id, $mode) 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; global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
$user->add_lang('acp/posting'); $user->add_lang('acp/posting');
@ -122,6 +122,18 @@ class acp_ranks
$cache->destroy('_ranks'); $cache->destroy('_ranks');
add_log('admin', 'LOG_RANK_REMOVED', $rank_title); 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 else
{ {

View file

@ -28,7 +28,7 @@ class acp_styles
function main($id, $mode) 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; global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
// Hardcoded template bitfield to add for new templates // Hardcoded template bitfield to add for new templates
@ -185,6 +185,19 @@ inherit_from = {INHERIT_FROM}
WHERE forum_style = ' . $style_id; WHERE forum_style = ' . $style_id;
$db->sql_query($sql); $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') else if ($action == 'deactivate')
{ {
@ -335,7 +348,8 @@ inherit_from = {INHERIT_FROM}
$s_actions = array(); $s_actions = array();
foreach ($actions as $option) foreach ($actions as $option)
{ {
$s_actions[] = '<a href="' . $this->u_action . "&amp;action=$option&amp;id=" . $row[$mode . '_id'] . '">' . $user->lang[strtoupper($option)] . '</a>'; $data_ajax = ($option == 'refresh') ? ' data-ajax="true"' : '';
$s_actions[] = '<a href="' . $this->u_action . "&amp;action=$option&amp;id=" . $row[$mode . '_id'] . '"' . $data_ajax . '>' . $user->lang[strtoupper($option)] . '</a>';
} }
$template->assign_block_vars('installed', array( $template->assign_block_vars('installed', array(

View file

@ -2448,15 +2448,25 @@ function build_url($strip_vars = false)
*/ */
function meta_refresh($time, $url, $disable_cd_check = false) function meta_refresh($time, $url, $disable_cd_check = false)
{ {
global $template; global $template, $refresh_data, $request;
$url = redirect($url, true, $disable_cd_check); if ($request->is_ajax())
$url = str_replace('&', '&amp;', $url); {
$refresh_data = array(
'time' => $time,
'url' => str_replace('&amp;', '&', $url)
);
}
else
{
$url = redirect($url, true, $disable_cd_check);
$url = str_replace('&', '&amp;', $url);
// For XHTML compatibility we change back & to &amp; // For XHTML compatibility we change back & to &amp;
$template->assign_vars(array( $template->assign_vars(array(
'META' => '<meta http-equiv="refresh" content="' . $time . ';url=' . $url . '" />') 'META' => '<meta http-equiv="refresh" content="' . $time . ';url=' . $url . '" />')
); );
}
return $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 = '') 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; global $phpEx, $phpbb_root_path, $request;
if (isset($_POST['cancel'])) 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']; WHERE user_id = " . $user->data['user_id'];
$db->sql_query($sql); $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('&amp;', '&', $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']) if (defined('IN_ADMIN') && isset($user->data['session_admin']) && $user->data['session_admin'])
{ {
adm_page_footer(); adm_page_footer();
@ -3723,7 +3748,7 @@ function phpbb_checkdnsrr($host, $type = 'MX')
*/ */
function msg_handler($errno, $msg_text, $errfile, $errline) 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; global $phpEx, $phpbb_root_path, $msg_title, $msg_long_text;
// Do not display notices if we suppress them via @ // 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) '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 // We do not want the cron script to be called on error messages
define('IN_CRON', true); define('IN_CRON', true);

View file

@ -273,6 +273,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod
markread('topics', $forum_ids); markread('topics', $forum_ids);
$message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>'); $message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>');
meta_refresh(3, $redirect); meta_refresh(3, $redirect);
trigger_error($user->lang['FORUMS_MARKED'] . '<br /><br />' . $message); trigger_error($user->lang['FORUMS_MARKED'] . '<br /><br />' . $message);
} }
else else

View 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();
}
}
}

View file

@ -451,6 +451,7 @@ function approve_post($post_id_list, $id, $mode)
{ {
global $db, $template, $user, $config; global $db, $template, $user, $config;
global $phpEx, $phpbb_root_path; global $phpEx, $phpbb_root_path;
global $request;
if (!check_ids($post_id_list, POSTS_TABLE, 'post_id', array('m_approve'))) 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>'); $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 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); meta_refresh(3, $redirect);
trigger_error($user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], "<a href=\"$redirect\">", '</a>')); trigger_error($message);
} }
} }

View file

@ -25,7 +25,7 @@ class ucp_zebra
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_root_path, $phpEx, $request;
$submit = (isset($_POST['submit']) || isset($_GET['add']) || isset($_GET['remove'])) ? true : false; $submit = (isset($_POST['submit']) || isset($_GET['add']) || isset($_GET['remove'])) ? true : false;
$s_hidden_fields = ''; $s_hidden_fields = '';
@ -198,8 +198,24 @@ 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); 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>'); $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>');

View file

@ -368,25 +368,32 @@ $lang = array_merge($lang, array(
'PURGE_CACHE' => 'Purge the cache', 'PURGE_CACHE' => 'Purge the cache',
'PURGE_CACHE_CONFIRM' => 'Are you sure you wish to 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_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' => 'Purge all sessions',
'PURGE_SESSIONS_CONFIRM' => 'Are you sure you wish to purge all sessions? This will log out all users.', '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_EXPLAIN' => 'Purge all sessions. This will log out all users by truncating the session table.',
'PURGE_SESSIONS_SUCCESS' => 'Sessions successfully purged.',
'RESET_DATE' => 'Reset boards start date', 'RESET_DATE' => 'Reset boards start date',
'RESET_DATE_CONFIRM' => 'Are you sure you wish to reset the boards start date?', 'RESET_DATE_CONFIRM' => 'Are you sure you wish to reset the boards start date?',
'RESET_DATE_SUCCESS' => 'Boards start date reset',
'RESET_ONLINE' => 'Reset most users ever online', '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_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_FILES_STATS_CONFIRM' => 'Are you sure you wish to resynchronise files statistics?',
'RESYNC_POSTCOUNTS' => 'Resynchronise post counts', 'RESYNC_POSTCOUNTS' => 'Resynchronise post counts',
'RESYNC_POSTCOUNTS_EXPLAIN' => 'Only existing posts will be taken into consideration. Pruned posts will not be counted.', '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_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' => 'Resynchronise dotted topics',
'RESYNC_POST_MARKING_CONFIRM' => 'Are you sure you wish to 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_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' => 'Resynchronise statistics',
'RESYNC_STATS_CONFIRM' => 'Are you sure you wish to 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_EXPLAIN' => 'Recalculates the total number of posts, topics, users and files.',
'RESYNC_STATS_SUCCESS' => 'Resynchronised statistics',
'RUN' => 'Run now', 'RUN' => 'Run now',
'STATISTIC' => 'Statistic', 'STATISTIC' => 'Statistic',

View file

@ -45,6 +45,7 @@ $lang = array_merge($lang, array(
'BBCODE_ADDED' => 'BBCode added successfully.', 'BBCODE_ADDED' => 'BBCode added successfully.',
'BBCODE_EDITED' => 'BBCode edited 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_NOT_EXIST' => 'The BBCode you selected does not exist.',
'BBCODE_HELPLINE' => 'Help line', 'BBCODE_HELPLINE' => 'Help line',
'BBCODE_HELPLINE_EXPLAIN' => 'This field contains the mouse over text of the BBCode.', 'BBCODE_HELPLINE_EXPLAIN' => 'This field contains the mouse over text of the BBCode.',

View file

@ -295,9 +295,11 @@ $lang = array_merge($lang, array(
'SELECTED_THEME_FILE' => 'Selected theme file', 'SELECTED_THEME_FILE' => 'Selected theme file',
'STORE_FILESYSTEM' => 'Filesystem', 'STORE_FILESYSTEM' => 'Filesystem',
'STYLE_ACTIVATE' => 'Activate', 'STYLE_ACTIVATE' => 'Activate',
'STYLE_ACTIVATED' => 'Style activated successfully',
'STYLE_ACTIVE' => 'Active', 'STYLE_ACTIVE' => 'Active',
'STYLE_ADDED' => 'Style added successfully.', 'STYLE_ADDED' => 'Style added successfully.',
'STYLE_DEACTIVATE' => 'Deactivate', 'STYLE_DEACTIVATE' => 'Deactivate',
'STYLE_DEACTIVATED' => 'Style deactivated successfully',
'STYLE_DEFAULT' => 'Make default style', 'STYLE_DEFAULT' => 'Make default style',
'STYLE_DELETED' => 'Style deleted successfully.', 'STYLE_DELETED' => 'Style deleted successfully.',
'STYLE_DETAILS_UPDATED' => 'Style edited successfully.', 'STYLE_DETAILS_UPDATED' => 'Style edited successfully.',

View file

@ -67,6 +67,8 @@ $lang = array_merge($lang, array(
'ADMINISTRATORS' => 'Administrators', 'ADMINISTRATORS' => 'Administrators',
'AGE' => 'Age', 'AGE' => 'Age',
'AIM' => 'AIM', 'AIM' => 'AIM',
'AJAX_ERROR_TITLE' => 'AJAX error',
'AJAX_ERROR_TEXT' => 'Something went wrong when processing your request.',
'ALLOWED' => 'Allowed', 'ALLOWED' => 'Allowed',
'ALL_FILES' => 'All files', 'ALL_FILES' => 'All files',
'ALL_FORUMS' => 'All forums', 'ALL_FORUMS' => 'All forums',
@ -183,6 +185,7 @@ $lang = array_merge($lang, array(
'ERR_UNWATCHING' => 'An error occured while trying to unsubscribe.', 'ERR_UNWATCHING' => 'An error occured while trying to unsubscribe.',
'ERR_WATCHING' => 'An error occured while trying to subscribe.', 'ERR_WATCHING' => 'An error occured while trying to subscribe.',
'ERR_WRONG_PATH_TO_PHPBB' => 'The phpBB path specified appears to be invalid.', 'ERR_WRONG_PATH_TO_PHPBB' => 'The phpBB path specified appears to be invalid.',
'ERROR' => 'Error',
'EXPAND_VIEW' => 'Expand view', 'EXPAND_VIEW' => 'Expand view',
'EXTENSION' => 'Extension', 'EXTENSION' => 'Extension',
'EXTENSION_CONTROLLER_MISSING' => 'The extension <strong>%s</strong> is missing a controller class and cannot be accessed through the front-end.', '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_NO_SERVER_CONNECTION' => 'Could not connect to LDAP server.',
'LDAP_SEARCH_FAILED' => 'An error occured while searching the LDAP directory.', 'LDAP_SEARCH_FAILED' => 'An error occured while searching the LDAP directory.',
'LEGEND' => 'Legend', 'LEGEND' => 'Legend',
'LOADING' => 'Loading',
'LOCATION' => 'Location', 'LOCATION' => 'Location',
'LOCK_POST' => 'Lock post', 'LOCK_POST' => 'Lock post',
'LOCK_POST_EXPLAIN' => 'Prevent editing', 'LOCK_POST_EXPLAIN' => 'Prevent editing',
@ -451,6 +455,7 @@ $lang = array_merge($lang, array(
2 => '%d pixels', 2 => '%d pixels',
), ),
'PLAY_QUICKTIME_FILE' => 'Play Quicktime file', 'PLAY_QUICKTIME_FILE' => 'Play Quicktime file',
'PLEASE_WAIT' => 'Please wait.',
'PM' => 'PM', 'PM' => 'PM',
'PM_REPORTED' => 'Click to view report', 'PM_REPORTED' => 'Click to view report',
'POSTING_MESSAGE' => 'Posting message in %s', 'POSTING_MESSAGE' => 'Posting message in %s',
@ -476,7 +481,7 @@ $lang = array_merge($lang, array(
'POST_SUBJECT' => 'Post subject', 'POST_SUBJECT' => 'Post subject',
'POST_TIME' => 'Post time', 'POST_TIME' => 'Post time',
'POST_TOPIC' => 'Post a new topic', 'POST_TOPIC' => 'Post a new topic',
'POST_UNAPPROVED' => 'This post is waiting for approval', 'POST_UNAPPROVED' => 'Post awaiting approval:',
'PREVIEW' => 'Preview', 'PREVIEW' => 'Preview',
'PREVIOUS' => 'Previous', // Used in pagination 'PREVIOUS' => 'Previous', // Used in pagination
'PREVIOUS_STEP' => 'Previous', 'PREVIOUS_STEP' => 'Previous',
@ -597,6 +602,7 @@ $lang = array_merge($lang, array(
'TEST_CONNECTION' => 'Test connection', 'TEST_CONNECTION' => 'Test connection',
'THE_TEAM' => 'The team', 'THE_TEAM' => 'The team',
'TIME' => 'Time', 'TIME' => 'Time',
'TIMEOUT_PROCESSING_REQ' => 'Request timed out.',
'TOO_LARGE' => 'The value you entered is too large.', '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.', 'TOO_LARGE_MAX_RECIPIENTS' => 'The value of <strong>Maximum number of allowed recipients per private message</strong> setting you entered is too large.',

View file

@ -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 // in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array( $lang = array_merge($lang, array(
'APPROVE' => 'Approve',
'ATTACHMENT' => 'Attachment', 'ATTACHMENT' => 'Attachment',
'ATTACHMENT_FUNCTIONALITY_DISABLED' => 'The attachments feature has been disabled.', 'ATTACHMENT_FUNCTIONALITY_DISABLED' => 'The attachments feature has been disabled.',
@ -49,6 +50,7 @@ $lang = array_merge($lang, array(
'CODE' => 'Code', 'CODE' => 'Code',
'DELETE_TOPIC' => 'Delete topic', 'DELETE_TOPIC' => 'Delete topic',
'DISAPPROVE' => 'Disapprove',
'DOWNLOAD_NOTICE' => 'You do not have the required permissions to view the files attached to this post.', 'DOWNLOAD_NOTICE' => 'You do not have the required permissions to view the files attached to this post.',
'EDITED_TIMES_TOTAL' => array( 'EDITED_TIMES_TOTAL' => array(

View 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('&nbsp;').prev().html('&nbsp;');
}
});
$('[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

View file

@ -8,7 +8,7 @@
<!-- IF S_DISPLAY_SEARCH --> <!-- IF S_DISPLAY_SEARCH -->
<li><a href="{U_SEARCH_UNANSWERED}">{L_SEARCH_UNANSWERED}</a><!-- IF S_LOAD_UNREADS --> &bull; <a href="{U_SEARCH_UNREAD}">{L_SEARCH_UNREAD}</a><!-- ENDIF --><!-- IF S_USER_LOGGED_IN --> &bull; <a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a><!-- ENDIF --> &bull; <a href="{U_SEARCH_ACTIVE_TOPICS}">{L_SEARCH_ACTIVE_TOPICS}</a></li> <li><a href="{U_SEARCH_UNANSWERED}">{L_SEARCH_UNANSWERED}</a><!-- IF S_LOAD_UNREADS --> &bull; <a href="{U_SEARCH_UNREAD}">{L_SEARCH_UNREAD}</a><!-- ENDIF --><!-- IF S_USER_LOGGED_IN --> &bull; <a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a><!-- ENDIF --> &bull; <a href="{U_SEARCH_ACTIVE_TOPICS}">{L_SEARCH_ACTIVE_TOPICS}</a></li>
<!-- ENDIF --> <!-- 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> </ul>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -35,15 +35,15 @@
<!-- BEGIN custom_fields --><dt>{custom_fields.PROFILE_FIELD_NAME}:</dt> <dd>{custom_fields.PROFILE_FIELD_VALUE}</dd><!-- END custom_fields --> <!-- 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 S_USER_LOGGED_IN and S_ZEBRA -->
<!-- IF U_REMOVE_FRIEND --> <!-- IF U_REMOVE_FRIEND -->
<dt>&nbsp;</dt> <dd><a href="{U_REMOVE_FRIEND}"><strong>{L_REMOVE_FRIEND}</strong></a></dd> <dt>&nbsp;</dt> <dd class="zebra"><a href="{U_REMOVE_FRIEND}" data-ajax="zebra"><strong>{L_REMOVE_FRIEND}</strong></a></dd>
<!-- ELSEIF U_REMOVE_FOE --> <!-- ELSEIF U_REMOVE_FOE -->
<dt>&nbsp;</dt> <dd><a href="{U_REMOVE_FOE}"><strong>{L_REMOVE_FOE}</strong></a></dd> <dt>&nbsp;</dt> <dd class="zebra"><a href="{U_REMOVE_FOE}" data-ajax="zebra"><strong>{L_REMOVE_FOE}</strong></a></dd>
<!-- ELSE --> <!-- ELSE -->
<!-- IF U_ADD_FRIEND --> <!-- IF U_ADD_FRIEND -->
<dt>&nbsp;</dt> <dd><a href="{U_ADD_FRIEND}"><strong>{L_ADD_FRIEND}</strong></a></dd> <dt>&nbsp;</dt> <dd class="zebra"><a href="{U_ADD_FRIEND}" data-ajax="zebra"><strong>{L_ADD_FRIEND}</strong></a></dd>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_ADD_FOE --> <!-- IF U_ADD_FOE -->
<dt>&nbsp;</dt> <dd><a href="{U_ADD_FOE}"><strong>{L_ADD_FOE}</strong></a></dd> <dt>&nbsp;</dt> <dd class="zebra"><a href="{U_ADD_FOE}" data-ajax="zebra"><strong>{L_ADD_FOE}</strong></a></dd>
<!-- ENDIF --> <!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -8,12 +8,12 @@
<ul class="linklist"> <ul class="linklist">
<li class="icon-home"><a href="{U_INDEX}" accesskey="h">{L_INDEX}</a></li> <li class="icon-home"><a href="{U_INDEX}" accesskey="h">{L_INDEX}</a></li>
<!-- IF not S_IS_BOT --> <!-- 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 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}">{L_WATCH_TOPIC}</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}">{L_BOOKMARK_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}">{L_BUMP_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 --> <!-- ENDIF -->
<li class="rightside"><!-- IF U_TEAM --><a href="{U_TEAM}">{L_THE_TEAM}</a> &bull; <!-- ENDIF --><!-- IF not S_IS_BOT --><a href="{U_DELETE_COOKIES}">{L_DELETE_COOKIES}</a> &bull; <!-- ENDIF -->{S_TIMEZONE}</li> <li class="rightside"><!-- IF U_TEAM --><a href="{U_TEAM}">{L_THE_TEAM}</a> &bull; <!-- ENDIF --><!-- IF not S_IS_BOT --><a href="{U_DELETE_COOKIES}" data-ajax="true" data-refresh="true">{L_DELETE_COOKIES}</a> &bull; <!-- ENDIF -->{S_TIMEZONE}</li>
</ul> </ul>
<span class="corners-bottom"><span></span></span></div> <span class="corners-bottom"><span></span></span></div>
@ -24,6 +24,22 @@
<!-- IF DEBUG_OUTPUT --><br />{DEBUG_OUTPUT}<!-- ENDIF --> <!-- IF DEBUG_OUTPUT --><br />{DEBUG_OUTPUT}<!-- ENDIF -->
<!-- IF U_ACP --><br /><strong><a href="{U_ACP}">{L_ACP}</a></strong><!-- ENDIF --> <!-- IF U_ACP --><br /><strong><a href="{U_ACP}">{L_ACP}</a></strong><!-- ENDIF -->
</div> </div>
<div id="darkenwrapper" data-ajax-error-title="{L_AJAX_ERROR_TITLE}" data-ajax-error-text="{L_AJAX_ERROR_TEXT}">
<div id="darken">&nbsp;</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}" />&nbsp;
<input type="button" class="button2" value="{L_NO}" />
</div>
</div> </div>
</div> </div>
@ -35,6 +51,8 @@
<script type="text/javascript" src="{T_JQUERY_LINK}"></script> <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 --> <!-- 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> </body>
</html> </html>

View file

@ -15,7 +15,7 @@
{S_FORM_TOKEN} {S_FORM_TOKEN}
{QR_HIDDEN_FIELDS} {QR_HIDDEN_FIELDS}
<input type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" class="button1" />&nbsp; <input type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" class="button1" />&nbsp;
<input type="submit" accesskey="f" tabindex="7" name="full_editor" value="{L_FULL_EDITOR}" class="button2" />&nbsp; <input type="submit" accesskey="f" tabindex="7" name="full_editor" value="{L_FULL_EDITOR}" class="button2" data-ajax="false" />&nbsp;
</fieldset> </fieldset>
<span class="corners-bottom"><span></span></span></div> <span class="corners-bottom"><span></span></span></div>
</div> </div>

View file

@ -57,7 +57,7 @@
<!-- IF PAGINATION or TOTAL_POSTS or TOTAL_TOPICS --> <!-- IF PAGINATION or TOTAL_POSTS or TOTAL_TOPICS -->
<div class="pagination"> <div class="pagination">
<!-- IF not S_IS_BOT and U_MARK_TOPICS --><a href="{U_MARK_TOPICS}" accesskey="m">{L_MARK_TOPICS_READ}</a> &bull; <!-- 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> &bull; <!-- ENDIF --><!-- IF TOTAL_TOPICS -->{TOTAL_TOPICS}<!-- ENDIF -->
<!-- IF PAGE_NUMBER --> <!-- IF PAGE_NUMBER -->
<!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --> <!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -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 --> <!-- 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"> <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_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_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_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 --> <!-- 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> &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_REPORTED --> <!-- 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"> <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 --> <!-- IF postrow.S_POST_REPORTED -->{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a><!-- ENDIF -->
</p> </p>
</form>
<!-- ENDIF --> <!-- ENDIF -->
<div class="content">{postrow.MESSAGE}</div> <div class="content">{postrow.MESSAGE}</div>
@ -255,7 +263,7 @@
<!-- INCLUDE jumpbox.html --> <!-- INCLUDE jumpbox.html -->
<!-- IF .quickmod --> <!-- IF .quickmod -->
<form method="post" action="{S_MOD_ACTION}"> <form method="post" action="{S_MOD_ACTION}" id="quickmodform" data-ajax="true">
<fieldset class="quickmod"> <fieldset class="quickmod">
<label for="quick-mod-select">{L_QUICK_MOD}:</label> <label for="quick-mod-select">{L_QUICK_MOD}:</label>
<select name="action" id="quick-mod-select"> <select name="action" id="quick-mod-select">

View file

@ -1074,3 +1074,17 @@ input.search {
input.disabled { input.disabled {
color: #666666; 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;
}

View file

@ -468,7 +468,7 @@ table.info tbody th {
/* Misc layout styles /* Misc layout styles
---------------------------------------- */ ---------------------------------------- */
/* column[1-2] styles are containers for two column layouts /* column[1-2] styles are containers for two column layouts
Also see tweaks.css */ Also see tweaks.css */
.column1 { .column1 {
float: left; float: left;
@ -580,6 +580,61 @@ li.pagination {
background: none 0 50% no-repeat; 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 /* Miscellaneous styles
---------------------------------------- */ ---------------------------------------- */
#forum-permissions { #forum-permissions {
@ -630,6 +685,10 @@ p.rules {
p.rules img { p.rules img {
vertical-align: middle; vertical-align: middle;
}
p.rules strong {
vertical-align: middle;
padding-top: 5px; padding-top: 5px;
} }
@ -650,3 +709,7 @@ p.rules a {
line-height: 1px; line-height: 1px;
background: transparent; background: transparent;
} }
.hidden {
display: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -655,6 +655,8 @@ $template->assign_vars(array(
'U_BOOKMARK_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks']) ? $viewtopic_url . '&amp;bookmark=1&amp;hash=' . generate_link_hash("topic_$topic_id") : '', 'U_BOOKMARK_TOPIC' => ($user->data['is_registered'] && $config['allow_bookmarks']) ? $viewtopic_url . '&amp;bookmark=1&amp;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' => ($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&amp;f=$forum_id") : '', '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&amp;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&amp;f=$forum_id&amp;t=$topic_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&amp;f=$forum_id&amp;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_YIM' => $user_cache[$poster_id]['yim'],
'U_JABBER' => $user_cache[$poster_id]['jabber'], 'U_JABBER' => $user_cache[$poster_id]['jabber'],
'U_APPROVE_ACTION' => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=queue&amp;p={$row['post_id']}&amp;f=$forum_id"),
'U_REPORT' => ($auth->acl_get('f_report', $forum_id)) ? append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&amp;p=' . $row['post_id']) : '', 'U_REPORT' => ($auth->acl_get('f_report', $forum_id)) ? append_sid("{$phpbb_root_path}report.$phpEx", 'f=' . $forum_id . '&amp;p=' . $row['post_id']) : '',
'U_MCP_REPORT' => ($auth->acl_get('m_report', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&amp;mode=report_details&amp;f=' . $forum_id . '&amp;p=' . $row['post_id'], true, $user->session_id) : '', 'U_MCP_REPORT' => ($auth->acl_get('m_report', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=reports&amp;mode=report_details&amp;f=' . $forum_id . '&amp;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&amp;mode=approve_details&amp;f=' . $forum_id . '&amp;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&amp;mode=approve_details&amp;f=' . $forum_id . '&amp;p=' . $row['post_id'], true, $user->session_id) : '',