mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
Merge branch 'develop' of github.com:EXreaction/phpbb3 into ticket/11103
Conflicts: phpBB/install/schemas/mssql_schema.sql phpBB/report.php phpBB/styles/prosilver/template/ucp_prefs_personal.html phpBB/styles/subsilver2/template/ucp_prefs_personal.html
This commit is contained in:
commit
68363e362d
290 changed files with 2456 additions and 1755 deletions
BIN
composer.phar
BIN
composer.phar
Binary file not shown.
|
@ -54,7 +54,7 @@
|
|||
<!-- ELSE -->
|
||||
|
||||
<dl>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{options.CONTENT}</dd>
|
||||
</dl>
|
||||
|
||||
|
@ -78,11 +78,11 @@
|
|||
<legend>{L_SECURE_TITLE}</legend>
|
||||
<p>{L_DOWNLOAD_ADD_IPS_EXPLAIN}</p>
|
||||
<dl>
|
||||
<dt><label for="ip_hostname">{L_IP_HOSTNAME}:</label></dt>
|
||||
<dt><label for="ip_hostname">{L_IP_HOSTNAME}{L_COLON}</label></dt>
|
||||
<dd><textarea id="ip_hostname" cols="40" rows="3" name="ips"></textarea></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="exclude">{L_IP_EXCLUDE}:</label><br /><span>{L_EXCLUDE_ENTERED_IP}</span></dt>
|
||||
<dt><label for="exclude">{L_IP_EXCLUDE}{L_COLON}</label><br /><span>{L_EXCLUDE_ENTERED_IP}</span></dt>
|
||||
<dd><label><input type="radio" id="exclude" name="ipexclude" value="1" class="radio" /> {L_YES}</label>
|
||||
<label><input type="radio" name="ipexclude" value="0" checked="checked" class="radio" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
@ -97,7 +97,7 @@
|
|||
<!-- IF S_DEFINED_IPS -->
|
||||
<p>{L_DOWNLOAD_REMOVE_IPS_EXPLAIN}</p>
|
||||
<dl>
|
||||
<dt><label for="remove_ip_hostname">{L_IP_HOSTNAME}:</label></dt>
|
||||
<dt><label for="remove_ip_hostname">{L_IP_HOSTNAME}{L_COLON}</label></dt>
|
||||
<dd><select name="unip[]" id="remove_ip_hostname" multiple="multiple" size="10">{DEFINED_IPS}</select></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -172,39 +172,39 @@
|
|||
|
||||
<legend>{L_LEGEND}</legend>
|
||||
<dl>
|
||||
<dt><label for="group_name">{L_GROUP_NAME}:</label></dt>
|
||||
<dt><label for="group_name">{L_GROUP_NAME}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="group_name" size="20" maxlength="100" name="group_name" value="{GROUP_NAME}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="category">{L_SPECIAL_CATEGORY}:</label><br /><span>{L_SPECIAL_CATEGORY_EXPLAIN}</span></dt>
|
||||
<dt><label for="category">{L_SPECIAL_CATEGORY}{L_COLON}</label><br /><span>{L_SPECIAL_CATEGORY_EXPLAIN}</span></dt>
|
||||
<dd>{S_CATEGORY_SELECT}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="allowed">{L_ALLOWED}:</label></dt>
|
||||
<dt><label for="allowed">{L_ALLOWED}{L_COLON}</label></dt>
|
||||
<dd><input type="checkbox" class="radio" id="allowed" name="allow_group" value="1"<!-- IF ALLOW_GROUP --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="allow_in_pm">{L_ALLOW_IN_PM}:</label></dt>
|
||||
<dt><label for="allow_in_pm">{L_ALLOW_IN_PM}{L_COLON}</label></dt>
|
||||
<dd><input type="checkbox" class="radio" id="allow_in_pm" name="allow_in_pm" value="1"<!-- IF ALLOW_IN_PM --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="upload_icon">{L_UPLOAD_ICON}:</label></dt>
|
||||
<dt><label for="upload_icon">{L_UPLOAD_ICON}{L_COLON}</label></dt>
|
||||
<dd><select name="upload_icon" id="upload_icon" onchange="update_image(this.options[selectedIndex].value);">
|
||||
<option value="no_image"<!-- IF S_NO_IMAGE --> selected="selected"<!-- ENDIF -->>{L_NO_IMAGE}</option>{S_FILENAME_LIST}
|
||||
</select></dd>
|
||||
<dd> <img <!-- IF S_NO_IMAGE -->src="{PHPBB_ROOT_PATH}images/spacer.gif"<!-- ELSE -->src="{UPLOAD_ICON_SRC}"<!-- ENDIF --> id="image_upload_icon" alt="" title="" /> </dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}:</label></dt>
|
||||
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="extgroup_filesize" size="3" maxlength="15" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> <select name="size_select">{S_EXT_GROUP_SIZE_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="assigned_extensions">{L_ASSIGNED_EXTENSIONS}:</label></dt>
|
||||
<dt><label for="assigned_extensions">{L_ASSIGNED_EXTENSIONS}{L_COLON}</label></dt>
|
||||
<dd><div id="ext">{ASSIGNED_EXTENSIONS}</div> <span>[<a href="{U_EXTENSIONS}">{L_GO_TO_EXTENSIONS}</a> ]</span></dd>
|
||||
<dd><select name="extensions[]" id="assigned_extensions" class="narrow" onchange="show_extensions(this);" multiple="multiple" size="8">{S_EXTENSION_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="allowed_forums">{L_ALLOWED_FORUMS}:</label><br /><span>{L_ALLOWED_FORUMS_EXPLAIN}</span></dt>
|
||||
<dt><label for="allowed_forums">{L_ALLOWED_FORUMS}{L_COLON}</label><br /><span>{L_ALLOWED_FORUMS_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" id="allowed_forums" class="radio" name="forum_select" value="0"<!-- IF not S_FORUM_IDS --> checked="checked"<!-- ENDIF --> /> {L_ALLOW_ALL_FORUMS}</label>
|
||||
<label><input type="radio" class="radio" name="forum_select" value="1"<!-- IF S_FORUM_IDS --> checked="checked"<!-- ENDIF --> /> {L_ALLOW_SELECTED_FORUMS}</label></dd>
|
||||
<dd><select name="allowed_forums[]" multiple="multiple" size="8">{S_FORUM_ID_OPTIONS}</select></dd>
|
||||
|
@ -254,7 +254,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
<p class="quick">
|
||||
{L_CREATE_GROUP}: <input type="text" name="group_name" maxlength="30" />
|
||||
{L_CREATE_GROUP}{L_COLON} <input type="text" name="group_name" maxlength="30" />
|
||||
<input class="button2" name="add" type="submit" value="{L_SUBMIT}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
|
@ -348,7 +348,7 @@
|
|||
<td><a href="{orphan.U_FILE}">{orphan.REAL_FILENAME}</a></td>
|
||||
<td>{orphan.FILETIME}</td>
|
||||
<td>{orphan.FILESIZE}</td>
|
||||
<td><strong>{L_ATTACH_ID}: </strong><input type="text" name="post_id[{orphan.ATTACH_ID}]" size="7" maxlength="10" value="{orphan.POST_ID}" /></td>
|
||||
<td><strong>{L_ATTACH_ID}{L_COLON} </strong><input type="text" name="post_id[{orphan.ATTACH_ID}]" size="7" maxlength="10" value="{orphan.POST_ID}" /></td>
|
||||
<td><input type="checkbox" class="radio" name="add[{orphan.ATTACH_ID}]" /></td>
|
||||
<td><input type="checkbox" class="radio" name="delete[{orphan.ATTACH_ID}]" /></td>
|
||||
</tr>
|
||||
|
@ -380,12 +380,11 @@
|
|||
|
||||
<div class="pagination">
|
||||
<!-- IF .pagination or TOTAL_FILES -->
|
||||
{L_NUMBER_FILES}: {TOTAL_FILES} • {L_TOTAL_SIZE}: {TOTAL_SIZE}
|
||||
{L_NUMBER_FILES}{L_COLON} {TOTAL_FILES} • {L_TOTAL_SIZE}{L_COLON} {TOTAL_SIZE}
|
||||
<!-- IF .pagination -->
|
||||
•
|
||||
<!-- INCLUDE pagination.html -->
|
||||
• <!-- INCLUDE pagination.html -->
|
||||
<!-- ELSE -->
|
||||
{S_ON_PAGE}
|
||||
• {S_ON_PAGE}
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
</div>
|
||||
|
@ -403,8 +402,8 @@
|
|||
<!-- BEGIN attachments -->
|
||||
<!-- IF attachments.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
|
||||
<td>
|
||||
<!-- IF attachments.S_IN_MESSAGE -->{L_EXTENSION_GROUP}: <strong><!-- IF attachments.EXT_GROUP_NAME -->{attachments.EXT_GROUP_NAME}<!-- ELSE -->{L_NO_EXT_GROUP}<!-- ENDIF --></strong><br />{attachments.L_DOWNLOAD_COUNT}<br />{L_IN} {L_PRIVATE_MESSAGE}
|
||||
<!-- ELSE --><a href="{attachments.U_FILE}" style="font-weight: bold;">{attachments.REAL_FILENAME}</a><br /><!-- IF attachments.COMMENT -->{attachments.COMMENT}<br /><!-- ENDIF -->{attachments.L_DOWNLOAD_COUNT}<br />{L_TOPIC}: <a href="{attachments.U_VIEW_TOPIC}">{attachments.TOPIC_TITLE}</a><!-- ENDIF -->
|
||||
<!-- IF attachments.S_IN_MESSAGE -->{L_EXTENSION_GROUP}{L_COLON} <strong><!-- IF attachments.EXT_GROUP_NAME -->{attachments.EXT_GROUP_NAME}<!-- ELSE -->{L_NO_EXT_GROUP}<!-- ENDIF --></strong><br />{attachments.L_DOWNLOAD_COUNT}<br />{L_IN} {L_PRIVATE_MESSAGE}
|
||||
<!-- ELSE --><a href="{attachments.U_FILE}" style="font-weight: bold;">{attachments.REAL_FILENAME}</a><br /><!-- IF attachments.COMMENT -->{attachments.COMMENT}<br /><!-- ENDIF -->{attachments.L_DOWNLOAD_COUNT}<br />{L_TOPIC}{L_COLON} <a href="{attachments.U_VIEW_TOPIC}">{attachments.TOPIC_TITLE}</a><!-- ENDIF -->
|
||||
</td>
|
||||
<td>{attachments.FILETIME}<br />{L_POST_BY_AUTHOR} {attachments.ATTACHMENT_POSTER}</td>
|
||||
<td>{attachments.FILESIZE}</td>
|
||||
|
@ -420,14 +419,19 @@
|
|||
|
||||
<!-- IF TOTAL_FILES -->
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
|
||||
{L_DISPLAY_LOG}{L_COLON} {S_LIMIT_DAYS} {L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
</fieldset>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="pagination">
|
||||
{L_NUMBER_FILES}: {TOTAL_FILES} • {L_TOTAL_SIZE}: {TOTAL_SIZE}<!-- IF S_ON_PAGE --><!-- IF PAGINATION --> • <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span><!-- ELSE --> • {S_ON_PAGE}<!-- ENDIF --><!-- ENDIF -->
|
||||
{L_NUMBER_FILES}{L_COLON} {TOTAL_FILES} • {L_TOTAL_SIZE}{L_COLON} {TOTAL_SIZE}
|
||||
<!-- IF .pagination -->
|
||||
• <!-- INCLUDE pagination.html -->
|
||||
<!-- ELSE -->
|
||||
• {S_ON_PAGE}
|
||||
<!-- ENDIF -->
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
|
|
@ -44,26 +44,26 @@
|
|||
<fieldset>
|
||||
<legend>{L_TITLE}</legend>
|
||||
<dl>
|
||||
<dt><label for="ban">{L_BAN_CELL}:</label></dt>
|
||||
<dt><label for="ban">{L_BAN_CELL}{L_COLON}</label></dt>
|
||||
<dd><textarea name="ban" cols="40" rows="3" id="ban"></textarea></dd>
|
||||
<!-- IF S_USERNAME_BAN --><dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd><!-- ENDIF -->
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="banlength">{L_BAN_LENGTH}:</label></dt>
|
||||
<dt><label for="banlength">{L_BAN_LENGTH}{L_COLON}</label></dt>
|
||||
<dd><label for="banlength"><select name="banlength" id="banlength" onchange="if(this.value==-1){document.getElementById('banlengthother').style.display = 'block';}else{document.getElementById('banlengthother').style.display='none';}">{S_BAN_END_OPTIONS}</select></label></dd>
|
||||
<dd id="banlengthother" style="display: none;"><label><input type="text" name="banlengthother" class="inputbox" /><br /><span>{L_YEAR_MONTH_DAY}</span></label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="banexclude">{L_BAN_EXCLUDE}:</label><br /><span>{L_BAN_EXCLUDE_EXPLAIN}</span></dt>
|
||||
<dt><label for="banexclude">{L_BAN_EXCLUDE}{L_COLON}</label><br /><span>{L_BAN_EXCLUDE_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" name="banexclude" value="1" class="radio" /> {L_YES}</label>
|
||||
<label><input type="radio" name="banexclude" id="banexclude" value="0" checked="checked" class="radio" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="banreason">{L_BAN_REASON}:</label></dt>
|
||||
<dt><label for="banreason">{L_BAN_REASON}{L_COLON}</label></dt>
|
||||
<dd><input name="banreason" type="text" class="text medium" maxlength="255" id="banreason" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}:</label></dt>
|
||||
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
|
||||
<dd><input name="bangivereason" type="text" class="text medium" maxlength="255" id="bangivereason" /></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -88,19 +88,19 @@
|
|||
|
||||
<!-- IF S_BANNED_OPTIONS -->
|
||||
<dl>
|
||||
<dt><label for="unban">{L_BAN_CELL}:</label></dt>
|
||||
<dt><label for="unban">{L_BAN_CELL}{L_COLON}</label></dt>
|
||||
<dd><select id="unban" name="unban[]" multiple="multiple" size="10" style="width: 50%" onchange="if (this.selectedIndex > -1) display_details(this.options[this.selectedIndex].value); else display_details(-1);">{BANNED_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="unbanlength">{L_BAN_LENGTH}:</label></dt>
|
||||
<dt><label for="unbanlength">{L_BAN_LENGTH}{L_COLON}</label></dt>
|
||||
<dd><input style="border: 0;" type="text" class="text full" readonly="readonly" name="unbanlength" id="unbanlength" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="unbanreason">{L_BAN_REASON}:</label></dt>
|
||||
<dt><label for="unbanreason">{L_BAN_REASON}{L_COLON}</label></dt>
|
||||
<dd><textarea style="border: 0;" class="text full" readonly="readonly" name="unbanreason" id="unbanreason" rows="5" cols="80"> </textarea></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="unbangivereason">{L_BAN_GIVE_REASON}:</label></dt>
|
||||
<dt><label for="unbangivereason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
|
||||
<dd><textarea style="border: 0;" class="text full" readonly="readonly" name="unbangivereason" id="unbangivereason" rows="5" cols="80"> </textarea></dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<!-- ELSE -->
|
||||
|
||||
<dl>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{options.CONTENT}</dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -22,27 +22,27 @@
|
|||
<fieldset>
|
||||
<legend>{L_TITLE}</legend>
|
||||
<dl>
|
||||
<dt><label for="bot_name">{L_BOT_NAME}:</label><br /><span>{L_BOT_NAME_EXPLAIN}</span></dt>
|
||||
<dt><label for="bot_name">{L_BOT_NAME}{L_COLON}</label><br /><span>{L_BOT_NAME_EXPLAIN}</span></dt>
|
||||
<dd><input name="bot_name" type="text" id="bot_name" value="{BOT_NAME}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="bot_style">{L_BOT_STYLE}:</label><br /><span>{L_BOT_STYLE_EXPLAIN}</span></dt>
|
||||
<dt><label for="bot_style">{L_BOT_STYLE}{L_COLON}</label><br /><span>{L_BOT_STYLE_EXPLAIN}</span></dt>
|
||||
<dd><select id="bot_style" name="bot_style">{S_STYLE_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="bot_lang">{L_BOT_LANG}:</label><br /><span>{L_BOT_LANG_EXPLAIN}</span></dt>
|
||||
<dt><label for="bot_lang">{L_BOT_LANG}{L_COLON}</label><br /><span>{L_BOT_LANG_EXPLAIN}</span></dt>
|
||||
<dd><select id="bot_lang" name="bot_lang">{S_LANG_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="bot_active">{L_BOT_ACTIVE}:</label></dt>
|
||||
<dt><label for="bot_active">{L_BOT_ACTIVE}{L_COLON}</label></dt>
|
||||
<dd><select id="bot_active" name="bot_active">{S_ACTIVE_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="bot_agent">{L_BOT_AGENT}:</label><br /><span>{L_BOT_AGENT_EXPLAIN}</span></dt>
|
||||
<dt><label for="bot_agent">{L_BOT_AGENT}{L_COLON}</label><br /><span>{L_BOT_AGENT_EXPLAIN}</span></dt>
|
||||
<dd><input name="bot_agent" type="text" id="bot_agent" value="{BOT_AGENT}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="bot_ip">{L_BOT_IP}:</label><br /><span>{L_BOT_IP_EXPLAIN}</span></dt>
|
||||
<dt><label for="bot_ip">{L_BOT_IP}{L_COLON}</label><br /><span>{L_BOT_IP_EXPLAIN}</span></dt>
|
||||
<dd><input name="bot_ip" type="text" id="bot_ip" value="{BOT_IP}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -13,25 +13,25 @@
|
|||
<legend>{L_GENERAL_OPTIONS}</legend>
|
||||
|
||||
<dl>
|
||||
<dt><label for="enable_confirm">{L_VISUAL_CONFIRM_REG}:</label><br /><span>{L_VISUAL_CONFIRM_REG_EXPLAIN}</span></dt>
|
||||
<dt><label for="enable_confirm">{L_VISUAL_CONFIRM_REG}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_REG_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"<!-- IF REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
||||
<label><input type="radio" class="radio" name="enable_confirm" value="0"<!-- IF not REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_reg_attempts">{L_REG_LIMIT}:</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
|
||||
<dt><label for="max_reg_attempts">{L_REG_LIMIT}{L_COLON}</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_reg_attempts" type="text" size="4" maxlength="4" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}:</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
|
||||
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}{L_COLON}</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_login_attempts" type="text" size="4" maxlength="4" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}:</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
|
||||
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="enable_post_confirm" name="enable_post_confirm" value="1"<!-- IF POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
||||
<label><input type="radio" class="radio" name="enable_post_confirm" value="0"<!-- IF not POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="confirm_refresh">{L_VISUAL_CONFIRM_REFRESH}:</label><br /><span>{L_VISUAL_CONFIRM_REFRESH_EXPLAIN}</span></dt>
|
||||
<dt><label for="confirm_refresh">{L_VISUAL_CONFIRM_REFRESH}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_REFRESH_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="confirm_refresh" name="confirm_refresh" value="1"<!-- IF CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
||||
<label><input type="radio" class="radio" name="confirm_refresh" value="0"<!-- IF not CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
||||
</dl>
|
||||
|
@ -40,12 +40,12 @@
|
|||
<fieldset>
|
||||
<legend>{L_AVAILABLE_CAPTCHAS}</legend>
|
||||
<dl>
|
||||
<dt><label for="captcha_select">{L_CAPTCHA_SELECT}:</label><br /><span>{L_CAPTCHA_SELECT_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_select">{L_CAPTCHA_SELECT}{L_COLON}</label><br /><span>{L_CAPTCHA_SELECT_EXPLAIN}</span></dt>
|
||||
<dd><select id="captcha_select" name="select_captcha" onchange="(document.getElementById('acp_captcha')).submit()" >{CAPTCHA_SELECT}</select></dd>
|
||||
</dl>
|
||||
<!-- IF S_CAPTCHA_HAS_CONFIG -->
|
||||
<dl>
|
||||
<dt><label for="configure">{L_CAPTCHA_CONFIGURE}:</label><br /><span>{L_CAPTCHA_CONFIGURE_EXPLAIN}</span></dt>
|
||||
<dt><label for="configure">{L_CAPTCHA_CONFIGURE}{L_COLON}</label><br /><span>{L_CAPTCHA_CONFIGURE_EXPLAIN}</span></dt>
|
||||
<dd><input class="button2" type="submit" id="configure" name="configure" value="{L_CONFIGURE}" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_RESTORE_OPTIONS}</legend>
|
||||
<dl>
|
||||
<dt><label for="file">{L_SELECT_FILE}:</label></dt>
|
||||
<dt><label for="file">{L_SELECT_FILE}{L_COLON}</label></dt>
|
||||
<dd><select id="file" name="file" size="10"><!-- BEGIN files --><option value="{files.FILE}"<!-- IF files.S_LAST_ROW --> selected="selected"<!-- ENDIF -->>{files.NAME}</option><!-- END files --></select></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -57,26 +57,26 @@
|
|||
<fieldset>
|
||||
<legend>{L_BACKUP_OPTIONS}</legend>
|
||||
<dl>
|
||||
<dt><label for="type">{L_BACKUP_TYPE}:</label></dt>
|
||||
<dt><label for="type">{L_BACKUP_TYPE}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="type" value="full" id="type" checked="checked" /> {L_FULL_BACKUP}</label>
|
||||
<label><input type="radio" name="type" class="radio" value="structure" /> {L_STRUCTURE_ONLY}</label>
|
||||
<label><input type="radio" class="radio" name="type" value="data" /> {L_DATA_ONLY}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="method">{L_FILE_TYPE}:</label></dt>
|
||||
<dt><label for="method">{L_FILE_TYPE}{L_COLON}</label></dt>
|
||||
<dd><!-- BEGIN methods -->
|
||||
<label><input name="method"<!-- IF methods.S_FIRST_ROW --> id="method" checked="checked"<!-- ENDIF --> type="radio" class="radio" value="{methods.TYPE}" /> {methods.TYPE}</label>
|
||||
<!-- END methods --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="where">{L_ACTION}:</label></dt>
|
||||
<dt><label for="where">{L_ACTION}{L_COLON}</label></dt>
|
||||
<dd>
|
||||
<label><input id="where" type="radio" class="radio" name="where" value="store" checked="checked" /> {L_STORE_LOCAL}</label>
|
||||
<label><input type="radio" class="radio" name="where" value="download" /> {L_DOWNLOAD}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="table">{L_TABLE_SELECT}:</label></dt>
|
||||
<dt><label for="table">{L_TABLE_SELECT}{L_COLON}</label></dt>
|
||||
<dd><select id="table" name="table[]" size="10" multiple="multiple">
|
||||
<!-- BEGIN tables -->
|
||||
<option value="{tables.TABLE}">{tables.TABLE}</option>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_ADD_DISALLOW_TITLE}</legend>
|
||||
<dl>
|
||||
<dt><label for="user">{L_USERNAME}:</label><br /><span>{L_ADD_DISALLOW_EXPLAIN}</span></dt>
|
||||
<dt><label for="user">{L_USERNAME}{L_COLON}</label><br /><span>{L_ADD_DISALLOW_EXPLAIN}</span></dt>
|
||||
<dd><input id="user" type="text" class="text medium" maxlength="255" name="disallowed_user" /></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
|||
<legend>{L_DELETE_DISALLOW_TITLE}</legend>
|
||||
<!-- IF S_DISALLOWED_NAMES -->
|
||||
<dl>
|
||||
<dt><label for="disallowed">{L_USERNAME}:</label></dt>
|
||||
<dt><label for="disallowed">{L_USERNAME}{L_COLON}</label></dt>
|
||||
<dd><select name="disallowed_id" id="disallowed">{S_DISALLOWED_NAMES}</select></dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -18,32 +18,32 @@
|
|||
<fieldset>
|
||||
<legend>{L_COMPOSE}</legend>
|
||||
<dl>
|
||||
<dt><label for="group">{L_SEND_TO_GROUP}:</label></dt>
|
||||
<dt><label for="group">{L_SEND_TO_GROUP}{L_COLON}</label></dt>
|
||||
<dd><select id="group" name="g">{S_GROUP_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="usernames">{L_SEND_TO_USERS}:</label><br /><span>{L_SEND_TO_USERS_EXPLAIN}</span></dt>
|
||||
<dt><label for="usernames">{L_SEND_TO_USERS}{L_COLON}</label><br /><span>{L_SEND_TO_USERS_EXPLAIN}</span></dt>
|
||||
<dd><textarea name="usernames" id="usernames" rows="5" cols="40">{USERNAMES}</textarea></dd>
|
||||
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="subject">{L_SUBJECT}:</label></dt>
|
||||
<dt><label for="subject">{L_SUBJECT}{L_COLON}</label></dt>
|
||||
<dd><input name="subject" type="text" id="subject" value="{SUBJECT}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="message">{L_MASS_MESSAGE}:</label><br /><span>{L_MASS_MESSAGE_EXPLAIN}</span></dt>
|
||||
<dt><label for="message">{L_MASS_MESSAGE}{L_COLON}</label><br /><span>{L_MASS_MESSAGE_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="message" name="message" rows="10" cols="60">{MESSAGE}</textarea></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="priority">{L_MAIL_PRIORITY}:</label></dt>
|
||||
<dt><label for="priority">{L_MAIL_PRIORITY}{L_COLON}</label></dt>
|
||||
<dd><select id="priority" name="mail_priority_flag">{S_PRIORITY_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="banned">{L_MAIL_BANNED}:</label><br /><span>{L_MAIL_BANNED_EXPLAIN}</span></dt>
|
||||
<dt><label for="banned">{L_MAIL_BANNED}{L_COLON}</label><br /><span>{L_MAIL_BANNED_EXPLAIN}</span></dt>
|
||||
<dd><input id="banned" name="mail_banned_flag" type="checkbox" class="radio" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="send">{L_SEND_IMMEDIATELY}:</label></dt>
|
||||
<dt><label for="send">{L_SEND_IMMEDIATELY}{L_COLON}</label></dt>
|
||||
<dd><input id="send" type="checkbox" class="radio" name="send_immediately" checked="checked" /></dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -10,38 +10,38 @@
|
|||
<legend>{L_EXT_DETAILS}</legend>
|
||||
<!-- IF META_DISPLAY_NAME -->
|
||||
<dl>
|
||||
<dt><label for="meta_display_name">{L_DISPLAY_NAME}:</label></dt>
|
||||
<dt><label for="meta_display_name">{L_DISPLAY_NAME}{L_COLON}</label></dt>
|
||||
<dd><strong id="meta_display_name">{META_DISPLAY_NAME}</strong></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="meta_name">{L_CLEAN_NAME}:</label></dt>
|
||||
<dt><label for="meta_name">{L_CLEAN_NAME}{L_COLON}</label></dt>
|
||||
<dd><strong id="meta_name">{META_NAME}</strong></dd>
|
||||
</dl>
|
||||
<!-- IF META_DESCRIPTION -->
|
||||
<dl>
|
||||
<dt><label for="meta_description">{L_DESCRIPTION}:</label></dt>
|
||||
<dt><label for="meta_description">{L_DESCRIPTION}{L_COLON}</label></dt>
|
||||
<dd><p id="meta_description">{META_DESCRIPTION}</p></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="meta_version">{L_VERSION}:</label></dt>
|
||||
<dt><label for="meta_version">{L_VERSION}{L_COLON}</label></dt>
|
||||
<dd><p id="meta_version">{META_VERSION}</p></dd>
|
||||
</dl>
|
||||
<!-- IF META_HOMEPAGE -->
|
||||
<dl>
|
||||
<dt><label for="meta_homepage">{L_HOMEPAGE}:</label></dt>
|
||||
<dt><label for="meta_homepage">{L_HOMEPAGE}{L_COLON}</label></dt>
|
||||
<dd><p id="meta_homepage">{META_HOMEPAGE}</p></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF META_TIME -->
|
||||
<dl>
|
||||
<dt><label for="meta_time">{L_TIME}:</label></dt>
|
||||
<dt><label for="meta_time">{L_TIME}{L_COLON}</label></dt>
|
||||
<dd><p id="meta_time">{META_TIME}</p></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="meta_license">{L_LICENCE}:</label></dt>
|
||||
<dt><label for="meta_license">{L_LICENCE}{L_COLON}</label></dt>
|
||||
<dd><p id="meta_license">{META_LICENCE}</p></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -51,13 +51,13 @@
|
|||
<legend>{L_REQUIREMENTS}</legend>
|
||||
<!-- IF META_REQUIRE_PHPBB -->
|
||||
<dl<!-- IF META_REQUIRE_PHPBB_FAIL --> class="requirements_not_met"<!-- ENDIF -->>
|
||||
<dt><label for="require_phpbb">{L_PHPBB_VERSION}:</label></dt>
|
||||
<dt><label for="require_phpbb">{L_PHPBB_VERSION}{L_COLON}</label></dt>
|
||||
<dd><p id="require_phpbb">{META_REQUIRE_PHPBB}</p></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF META_REQUIRE_PHP -->
|
||||
<dl<!-- IF META_REQUIRE_PHP_FAIL --> class="requirements_not_met"<!-- ENDIF -->>
|
||||
<dt><label for="require_php">{L_PHP_VERSION}:</label></dt>
|
||||
<dt><label for="require_php">{L_PHP_VERSION}{L_COLON}</label></dt>
|
||||
<dd><p id="require_php">{META_REQUIRE_PHP}</p></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
@ -69,24 +69,24 @@
|
|||
<!-- BEGIN meta_authors -->
|
||||
<fieldset>
|
||||
<dl>
|
||||
<dt><label for="meta_author_name">{L_AUTHOR_NAME}:</label></dt>
|
||||
<dt><label for="meta_author_name">{L_AUTHOR_NAME}{L_COLON}</label></dt>
|
||||
<dd><strong id="meta_author_name">{meta_authors.AUTHOR_NAME}</strong></dd>
|
||||
</dl>
|
||||
<!-- IF meta_authors.AUTHOR_EMAIL -->
|
||||
<dl>
|
||||
<dt><label for="meta_author_email">{L_AUTHOR_EMAIL}:</label></dt>
|
||||
<dt><label for="meta_author_email">{L_AUTHOR_EMAIL}{L_COLON}</label></dt>
|
||||
<dd><strong id="meta_author_email"><a href="mailto:{meta_authors.AUTHOR_EMAIL}">{meta_authors.AUTHOR_EMAIL}</a></strong></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF meta_authors.AUTHOR_HOMEPAGE -->
|
||||
<dl>
|
||||
<dt><label for="meta_author_url">{L_AUTHOR_HOMEPAGE}:</label></dt>
|
||||
<dt><label for="meta_author_url">{L_AUTHOR_HOMEPAGE}{L_COLON}</label></dt>
|
||||
<dd><strong id="meta_author_url"><a href="{meta_authors.AUTHOR_HOMEPAGE}">{meta_authors.AUTHOR_HOMEPAGE}</a></strong></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF meta_authors.AUTHOR_ROLE -->
|
||||
<dl>
|
||||
<dt><label for="author_role">{L_AUTHOR_ROLE}:</label></dt>
|
||||
<dt><label for="author_role">{L_AUTHOR_ROLE}{L_COLON}</label></dt>
|
||||
<dd><strong id="meta_author_role">{meta_authors.AUTHOR_ROLE}</strong></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
|
|
@ -112,13 +112,13 @@
|
|||
<fieldset>
|
||||
<legend>{L_FORUM_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="forum_type">{L_FORUM_TYPE}:</label></dt>
|
||||
<dt><label for="forum_type">{L_FORUM_TYPE}{L_COLON}</label></dt>
|
||||
<dd><select id="forum_type" name="forum_type" onchange="display_options(this.options[this.selectedIndex].value);">{S_FORUM_TYPE_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<!-- IF not S_ADD_ACTION and S_FORUM_ORIG_POST -->
|
||||
<div id="type_actions">
|
||||
<dl>
|
||||
<dt><label for="type_action">{L_DECIDE_MOVE_DELETE_CONTENT}:</label></dt>
|
||||
<dt><label for="type_action">{L_DECIDE_MOVE_DELETE_CONTENT}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="type_action" value="delete"<!-- IF not S_MOVE_FORUM_OPTIONS --> checked="checked" id="type_action"<!-- ENDIF --> /> {L_DELETE_ALL_POSTS}</label></dd>
|
||||
<!-- IF S_MOVE_FORUM_OPTIONS --><dd><label><input type="radio" class="radio" name="type_action" id="type_action" value="move" checked="checked" /> {L_MOVE_POSTS_TO}</label> <select name="to_forum_id">{S_MOVE_FORUM_OPTIONS}</select></dd><!-- ENDIF -->
|
||||
</dl>
|
||||
|
@ -127,7 +127,7 @@
|
|||
<!-- IF not S_ADD_ACTION and S_FORUM_ORIG_CAT and S_HAS_SUBFORUMS -->
|
||||
<div id="cat_to_link_actions">
|
||||
<dl>
|
||||
<dt><label for="action_subforums">{L_DECIDE_MOVE_DELETE_SUBFORUMS}:</label></dt>
|
||||
<dt><label for="action_subforums">{L_DECIDE_MOVE_DELETE_SUBFORUMS}{L_COLON}</label></dt>
|
||||
<!-- IF S_FORUMS_LIST -->
|
||||
<dd><label><input type="radio" class="radio" id="action_subforums" name="action_subforums" value="move" checked="checked" /> {L_MOVE_SUBFORUMS_TO}</label> <select name="subforums_to_id">{S_FORUMS_LIST}</select></dd>
|
||||
<!-- ELSE -->
|
||||
|
@ -137,49 +137,49 @@
|
|||
</div>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="parent">{L_FORUM_PARENT}:</label></dt>
|
||||
<dt><label for="parent">{L_FORUM_PARENT}{L_COLON}</label></dt>
|
||||
<dd><select id="parent" name="forum_parent_id"><option value="0"<!-- IF not S_FORUM_PARENT_ID --> selected="selected"<!-- ENDIF -->>{L_NO_PARENT}</option>{S_PARENT_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<!-- IF S_CAN_COPY_PERMISSIONS -->
|
||||
<dl>
|
||||
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
||||
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="forum_name">{L_FORUM_NAME}:</label></dt>
|
||||
<dt><label for="forum_name">{L_FORUM_NAME}{L_COLON}</label></dt>
|
||||
<dd><input class="text medium" type="text" id="forum_name" name="forum_name" value="{FORUM_NAME}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="forum_desc">{L_FORUM_DESC}:</label><br /><span>{L_FORUM_DESC_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_desc">{L_FORUM_DESC}{L_COLON}</label><br /><span>{L_FORUM_DESC_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="forum_desc" name="forum_desc" rows="5" cols="45">{FORUM_DESC}</textarea></dd>
|
||||
<dd><label><input type="checkbox" class="radio" name="desc_parse_bbcode"<!-- IF S_DESC_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE}</label>
|
||||
<label><input type="checkbox" class="radio" name="desc_parse_smilies"<!-- IF S_DESC_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES}</label>
|
||||
<label><input type="checkbox" class="radio" name="desc_parse_urls"<!-- IF S_DESC_URLS_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_URLS}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="forum_image">{L_FORUM_IMAGE}:</label><br /><span>{L_FORUM_IMAGE_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_image">{L_FORUM_IMAGE}{L_COLON}</label><br /><span>{L_FORUM_IMAGE_EXPLAIN}</span></dt>
|
||||
<dd><input class="text medium" type="text" id="forum_image" name="forum_image" value="{FORUM_IMAGE}" maxlength="255" /></dd>
|
||||
<!-- IF FORUM_IMAGE_SRC -->
|
||||
<dd><img src="{FORUM_IMAGE_SRC}" alt="{L_FORUM_IMAGE}" /></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="forum_password">{L_FORUM_PASSWORD}:</label><br /><span>{L_FORUM_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_password">{L_FORUM_PASSWORD}{L_COLON}</label><br /><span>{L_FORUM_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dd><input type="password" id="forum_password" name="forum_password" value="<!-- IF S_FORUM_PASSWORD_SET -->      <!-- ENDIF -->" autocomplete="off" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="forum_password_confirm">{L_FORUM_PASSWORD_CONFIRM}:</label><br /><span>{L_FORUM_PASSWORD_CONFIRM_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_password_confirm">{L_FORUM_PASSWORD_CONFIRM}{L_COLON}</label><br /><span>{L_FORUM_PASSWORD_CONFIRM_EXPLAIN}</span></dt>
|
||||
<dd><input type="password" id="forum_password_confirm" name="forum_password_confirm" value="<!-- IF S_FORUM_PASSWORD_SET -->      <!-- ENDIF -->" autocomplete="off" /></dd>
|
||||
</dl>
|
||||
<!-- IF S_FORUM_PASSWORD_SET -->
|
||||
<dl>
|
||||
<dt><label for="forum_password_unset">{L_FORUM_PASSWORD_UNSET}:</label><br /><span>{L_FORUM_PASSWORD_UNSET_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_password_unset">{L_FORUM_PASSWORD_UNSET}{L_COLON}</label><br /><span>{L_FORUM_PASSWORD_UNSET_EXPLAIN}</span></dt>
|
||||
<dd><input id="forum_password_unset" name="forum_password_unset" type="checkbox" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="forum_style">{L_FORUM_STYLE}:</label></dt>
|
||||
<dt><label for="forum_style">{L_FORUM_STYLE}{L_COLON}</label></dt>
|
||||
<dd><select id="forum_style" name="forum_style"><option value="0">{L_DEFAULT_STYLE}</option>{S_STYLES_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -188,7 +188,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="display_active">{L_DISPLAY_ACTIVE_TOPICS}:</label><br /><span>{L_DISPLAY_ACTIVE_TOPICS_EXPLAIN}</span></dt>
|
||||
<dt><label for="display_active">{L_DISPLAY_ACTIVE_TOPICS}{L_COLON}</label><br /><span>{L_DISPLAY_ACTIVE_TOPICS_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="display_active" value="1"<!-- IF S_ENABLE_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="display_active" value="0"<!-- IF not S_ENABLE_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
@ -199,46 +199,46 @@
|
|||
<fieldset>
|
||||
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="forum_status">{L_FORUM_STATUS}:</label></dt>
|
||||
<dt><label for="forum_status">{L_FORUM_STATUS}{L_COLON}</label></dt>
|
||||
<dd><select id="forum_status" name="forum_status">{S_STATUS_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="display_subforum_list">{L_LIST_SUBFORUMS}:</label><br /><span>{L_LIST_SUBFORUMS_EXPLAIN}</span></dt>
|
||||
<dt><label for="display_subforum_list">{L_LIST_SUBFORUMS}{L_COLON}</label><br /><span>{L_LIST_SUBFORUMS_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="display_subforum_list" value="1"<!-- IF S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="display_subforum_list" value="0"<!-- IF not S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="display_on_index">{L_LIST_INDEX}:</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
|
||||
<dt><label for="display_on_index">{L_LIST_INDEX}{L_COLON}</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="display_on_index" value="0"<!-- IF not S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_post_review">{L_ENABLE_POST_REVIEW}:</label><br /><span>{L_ENABLE_POST_REVIEW_EXPLAIN}</span></dt>
|
||||
<dt><label for="enable_post_review">{L_ENABLE_POST_REVIEW}{L_COLON}</label><br /><span>{L_ENABLE_POST_REVIEW_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="enable_post_review" value="1"<!-- IF S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="enable_post_review" value="0"<!-- IF not S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_quick_reply">{L_ENABLE_QUICK_REPLY}:</label><br /><span>{L_ENABLE_QUICK_REPLY_EXPLAIN}</span></dt>
|
||||
<dt><label for="enable_quick_reply">{L_ENABLE_QUICK_REPLY}{L_COLON}</label><br /><span>{L_ENABLE_QUICK_REPLY_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="enable_quick_reply" value="1"<!-- IF S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="enable_quick_reply" value="0"<!-- IF not S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_indexing">{L_ENABLE_INDEXING}:</label><br /><span>{L_ENABLE_INDEXING_EXPLAIN}</span></dt>
|
||||
<dt><label for="enable_indexing">{L_ENABLE_INDEXING}{L_COLON}</label><br /><span>{L_ENABLE_INDEXING_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="enable_indexing" value="1"<!-- IF S_ENABLE_INDEXING --> id="enable_indexing" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="enable_indexing" value="0"<!-- IF not S_ENABLE_INDEXING --> id="enable_indexing" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_icons">{L_ENABLE_TOPIC_ICONS}:</label></dt>
|
||||
<dt><label for="enable_icons">{L_ENABLE_TOPIC_ICONS}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="enable_icons" value="1"<!-- IF S_TOPIC_ICONS --> id="enable_icons" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="enable_icons" value="0"<!-- IF not S_TOPIC_ICONS --> id="enable_icons" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="display_recent">{L_ENABLE_RECENT}:</label><br /><span>{L_ENABLE_RECENT_EXPLAIN}</span></dt>
|
||||
<dt><label for="display_recent">{L_ENABLE_RECENT}{L_COLON}</label><br /><span>{L_ENABLE_RECENT_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="display_recent" value="1"<!-- IF S_DISPLAY_ACTIVE_TOPICS --> id="display_recent" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="display_recent" value="0"<!-- IF not S_DISPLAY_ACTIVE_TOPICS --> id="display_recent" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}:</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
|
||||
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}{L_COLON}</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" size="4" maxlength="4" /></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -246,34 +246,34 @@
|
|||
<fieldset>
|
||||
<legend>{L_FORUM_PRUNE_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="enable_prune">{L_FORUM_AUTO_PRUNE}:</label><br /><span>{L_FORUM_AUTO_PRUNE_EXPLAIN}</span></dt>
|
||||
<dt><label for="enable_prune">{L_FORUM_AUTO_PRUNE}{L_COLON}</label><br /><span>{L_FORUM_AUTO_PRUNE_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="enable_prune" value="1"<!-- IF S_PRUNE_ENABLE --> id="enable_prune" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="enable_prune" value="0"<!-- IF not S_PRUNE_ENABLE --> id="enable_prune" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_freq">{L_AUTO_PRUNE_FREQ}:</label><br /><span>{L_AUTO_PRUNE_FREQ_EXPLAIN}</span></dt>
|
||||
<dt><label for="prune_freq">{L_AUTO_PRUNE_FREQ}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_FREQ_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" maxlength="4" size="4" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_days">{L_AUTO_PRUNE_DAYS}:</label><br /><span>{L_AUTO_PRUNE_DAYS_EXPLAIN}</span></dt>
|
||||
<dt><label for="prune_days">{L_AUTO_PRUNE_DAYS}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_DAYS_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" maxlength="4" size="4" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_viewed">{L_AUTO_PRUNE_VIEWED}:</label><br /><span>{L_AUTO_PRUNE_VIEWED_EXPLAIN}</span></dt>
|
||||
<dt><label for="prune_viewed">{L_AUTO_PRUNE_VIEWED}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_VIEWED_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" maxlength="4" size="4" /> {L_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_old_polls">{L_PRUNE_OLD_POLLS}:</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
|
||||
<dt><label for="prune_old_polls">{L_PRUNE_OLD_POLLS}{L_COLON}</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="prune_old_polls" value="1"<!-- IF S_PRUNE_OLD_POLLS --> id="prune_old_polls" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="prune_old_polls" value="0"<!-- IF not S_PRUNE_OLD_POLLS --> id="prune_old_polls" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_announce">{L_PRUNE_ANNOUNCEMENTS}:</label></dt>
|
||||
<dt><label for="prune_announce">{L_PRUNE_ANNOUNCEMENTS}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="prune_announce" value="1"<!-- IF S_PRUNE_ANNOUNCE --> id="prune_announce" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="prune_announce" value="0"<!-- IF not S_PRUNE_ANNOUNCE --> id="prune_announce" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_sticky">{L_PRUNE_STICKY}:</label></dt>
|
||||
<dt><label for="prune_sticky">{L_PRUNE_STICKY}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="prune_sticky" value="1"<!-- IF S_PRUNE_STICKY --> id="prune_sticky" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="prune_sticky" value="0"<!-- IF not S_PRUNE_STICKY --> id="prune_sticky" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
@ -284,16 +284,16 @@
|
|||
<fieldset>
|
||||
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="link_display_on_index">{L_LIST_INDEX}:</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
|
||||
<dt><label for="link_display_on_index">{L_LIST_INDEX}{L_COLON}</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="link_display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="link_display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="link_display_on_index" value="0"<!-- IF not S_DISPLAY_ON_INDEX --> id="link_display_on_index" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="forum_link">{L_FORUM_LINK}:</label><br /><span>{L_FORUM_LINK_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_link">{L_FORUM_LINK}{L_COLON}</label><br /><span>{L_FORUM_LINK_EXPLAIN}</span></dt>
|
||||
<dd><input class="text medium" type="text" id="forum_link" name="forum_link" value="{FORUM_DATA_LINK}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="forum_link_track">{L_FORUM_LINK_TRACK}:</label><br /><span>{L_FORUM_LINK_TRACK_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_link_track">{L_FORUM_LINK_TRACK}{L_COLON}</label><br /><span>{L_FORUM_LINK_TRACK_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="forum_link_track" value="1"<!-- IF S_FORUM_LINK_TRACK --> id="forum_link_track" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="forum_link_track" value="0"<!-- IF not S_FORUM_LINK_TRACK --> id="forum_link_track" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
@ -304,17 +304,17 @@
|
|||
<fieldset>
|
||||
<legend>{L_FORUM_RULES}</legend>
|
||||
<dl>
|
||||
<dt><label for="forum_rules_link">{L_FORUM_RULES_LINK}:</label><br /><span>{L_FORUM_RULES_LINK_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_rules_link">{L_FORUM_RULES_LINK}{L_COLON}</label><br /><span>{L_FORUM_RULES_LINK_EXPLAIN}</span></dt>
|
||||
<dd><input class="text medium" type="text" id="forum_rules_link" name="forum_rules_link" value="{FORUM_RULES_LINK}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<!-- IF FORUM_RULES_PREVIEW -->
|
||||
<dl>
|
||||
<dt><label>{L_FORUM_RULES_PREVIEW}:</label></dt>
|
||||
<dt><label>{L_FORUM_RULES_PREVIEW}{L_COLON}</label></dt>
|
||||
<dd>{FORUM_RULES_PREVIEW}</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="forum_rules">{L_FORUM_RULES}:</label><br /><span>{L_FORUM_RULES_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_rules">{L_FORUM_RULES}{L_COLON}</label><br /><span>{L_FORUM_RULES_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="forum_rules" name="forum_rules" rows="4" cols="70">{FORUM_RULES_PLAIN}</textarea></dd>
|
||||
<dd><label><input type="checkbox" class="radio" name="rules_parse_bbcode"<!-- IF S_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE}</label>
|
||||
<label><input type="checkbox" class="radio" name="rules_parse_smilies"<!-- IF S_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES}</label>
|
||||
|
@ -351,12 +351,12 @@
|
|||
<fieldset>
|
||||
<legend>{L_FORUM_DELETE}</legend>
|
||||
<dl>
|
||||
<dt><label>{L_FORUM_NAME}:</label></dt>
|
||||
<dt><label>{L_FORUM_NAME}{L_COLON}</label></dt>
|
||||
<dd><strong>{FORUM_NAME}</strong></dd>
|
||||
</dl>
|
||||
<!-- IF S_FORUM_POST -->
|
||||
<dl>
|
||||
<dt><label for="delete_action">{L_ACTION}:</label></dt>
|
||||
<dt><label for="delete_action">{L_ACTION}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" id="delete_action" name="action_posts" value="delete" checked="checked" /> {L_DELETE_ALL_POSTS}</label></dd>
|
||||
<!-- IF S_MOVE_FORUM_OPTIONS -->
|
||||
<dd><label><input type="radio" class="radio" name="action_posts" value="move" /> {L_MOVE_POSTS_TO}</label> <select name="posts_to_id">{S_MOVE_FORUM_OPTIONS}</select></dd>
|
||||
|
@ -365,7 +365,7 @@
|
|||
<!-- ENDIF -->
|
||||
<!-- IF S_HAS_SUBFORUMS -->
|
||||
<dl>
|
||||
<dt><label for="sub_delete_action">{L_ACTION}:</label></dt>
|
||||
<dt><label for="sub_delete_action">{L_ACTION}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" id="sub_delete_action" name="action_subforums" value="delete" checked="checked" /> {L_DELETE_SUBFORUMS}</label></dd>
|
||||
<!-- IF S_FORUMS_LIST -->
|
||||
<dd><label><input type="radio" class="radio" name="action_subforums" value="move" /> {L_MOVE_SUBFORUMS_TO}</label> <select name="subforums_to_id">{S_FORUMS_LIST}</select></dd>
|
||||
|
@ -449,7 +449,7 @@
|
|||
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
|
||||
<strong><!-- IF forums.S_FORUM_LINK -->{forums.FORUM_NAME}<!-- ELSE --><a href="{forums.U_FORUM}">{forums.FORUM_NAME}</a><!-- ENDIF --></strong>
|
||||
<!-- IF forums.FORUM_DESCRIPTION --><br /><span>{forums.FORUM_DESCRIPTION}</span><!-- ENDIF -->
|
||||
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}: <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}: <strong>{forums.FORUM_POSTS}</strong></span><!-- ENDIF -->
|
||||
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}{L_COLON} <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}{L_COLON} <strong>{forums.FORUM_POSTS}</strong></span><!-- ENDIF -->
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
||||
<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
|
||||
|
@ -482,7 +482,7 @@
|
|||
<form id="fselect" method="post" action="{U_SEL_ACTION}">
|
||||
|
||||
<fieldset class="quick">
|
||||
{L_SELECT_FORUM}: <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{FORUM_BOX}</select>
|
||||
{L_SELECT_FORUM}{L_COLON} <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{FORUM_BOX}</select>
|
||||
|
||||
<input class="button2" type="submit" value="{L_GO}" />
|
||||
{S_FORM_TOKEN}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<fieldset>
|
||||
<dl>
|
||||
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
||||
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
||||
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<div style="text-align: center;">{S_FORM_TOKEN}{S_HIDDEN_FIELDS}
|
||||
|
|
|
@ -22,11 +22,11 @@
|
|||
<fieldset>
|
||||
<legend>{L_GROUP_DETAILS}</legend>
|
||||
<dl>
|
||||
<dt><label<!-- IF not S_SPECIAL_GROUP --> for="group_name"<!-- ENDIF -->>{L_GROUP_NAME}:</label></dt>
|
||||
<dt><label<!-- IF not S_SPECIAL_GROUP --> for="group_name"<!-- ENDIF -->>{L_GROUP_NAME}{L_COLON}</label></dt>
|
||||
<dd><!-- IF S_SPECIAL_GROUP --><strong>{GROUP_NAME}</strong><!-- ENDIF --><input name="group_name" type="<!-- IF S_SPECIAL_GROUP -->hidden<!-- ELSE -->text<!-- ENDIF -->" id="group_name" value="{GROUP_INTERNAL_NAME}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_desc">{L_GROUP_DESC}:</label></dt>
|
||||
<dt><label for="group_desc">{L_GROUP_DESC}{L_COLON}</label></dt>
|
||||
<dd><textarea id="group_desc" name="group_desc" rows="5" cols="45">{GROUP_DESC}</textarea></dd>
|
||||
<dd><label><input type="checkbox" class="radio" name="desc_parse_bbcode"<!-- IF S_DESC_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE}</label>
|
||||
<label><input type="checkbox" class="radio" name="desc_parse_smilies"<!-- IF S_DESC_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES}</label>
|
||||
|
@ -34,7 +34,7 @@
|
|||
</dl>
|
||||
<!-- IF not S_SPECIAL_GROUP -->
|
||||
<dl>
|
||||
<dt><label for="group_type">{L_GROUP_TYPE}:</label><br /><span>{L_GROUP_TYPE_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_type">{L_GROUP_TYPE}{L_COLON}</label><br /><span>{L_GROUP_TYPE_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
<label><input name="group_type" type="radio" class="radio" id="group_type" value="{GROUP_TYPE_FREE}"{GROUP_FREE} /> {L_GROUP_OPEN}</label>
|
||||
<label><input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_OPEN}"{GROUP_OPEN} /> {L_GROUP_REQUEST}</label>
|
||||
|
@ -48,7 +48,7 @@
|
|||
|
||||
<!-- IF S_ADD_GROUP and S_GROUP_PERM -->
|
||||
<dl>
|
||||
<dt><label for="group_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_perm_from">{L_COPY_PERMISSIONS}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
||||
<dd><select id="group_perm_from" name="group_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_GROUP_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
@ -58,24 +58,24 @@
|
|||
<legend>{L_GROUP_OPTIONS_SAVE}</legend>
|
||||
<!-- IF S_USER_FOUNDER -->
|
||||
<dl>
|
||||
<dt><label for="group_founder_manage">{L_GROUP_FOUNDER_MANAGE}:</label><br /><span>{L_GROUP_FOUNDER_MANAGE_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_founder_manage">{L_GROUP_FOUNDER_MANAGE}{L_COLON}</label><br /><span>{L_GROUP_FOUNDER_MANAGE_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_founder_manage" type="checkbox" value="1" class="radio" id="group_founder_manage"{GROUP_FOUNDER_MANAGE} /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="group_skip_auth">{L_GROUP_SKIP_AUTH}:</label><br /><span>{L_GROUP_SKIP_AUTH_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_skip_auth">{L_GROUP_SKIP_AUTH}{L_COLON}</label><br /><span>{L_GROUP_SKIP_AUTH_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_skip_auth" type="checkbox" value="1" class="radio" id="group_skip_auth"{GROUP_SKIP_AUTH} /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_legend">{L_GROUP_LEGEND}:</label></dt>
|
||||
<dt><label for="group_legend">{L_GROUP_LEGEND}{L_COLON}</label></dt>
|
||||
<dd><input name="group_legend" type="checkbox" value="1" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_teampage">{L_GROUP_TEAMPAGE}:</label></dt>
|
||||
<dt><label for="group_teampage">{L_GROUP_TEAMPAGE}{L_COLON}</label></dt>
|
||||
<dd><input name="group_teampage" type="checkbox" value="1" class="radio" id="group_teampage"{GROUP_TEAMPAGE} /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}:</label><br /><span>{L_GROUP_RECEIVE_PM_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}{L_COLON}</label><br /><span>{L_GROUP_RECEIVE_PM_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_receive_pm" type="checkbox" value="1" class="radio" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -83,19 +83,19 @@
|
|||
<fieldset>
|
||||
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
|
||||
<dl>
|
||||
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}:</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}{L_COLON}</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_message_limit" type="text" id="group_message_limit" maxlength="4" size="4" value="{GROUP_MESSAGE_LIMIT}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_max_recipients">{L_GROUP_MAX_RECIPIENTS}:</label><br /><span>{L_GROUP_MAX_RECIPIENTS_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_max_recipients">{L_GROUP_MAX_RECIPIENTS}{L_COLON}</label><br /><span>{L_GROUP_MAX_RECIPIENTS_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_max_recipients" type="text" id="group_max_recipients" maxlength="10" size="4" value="{GROUP_MAX_RECIPIENTS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_colour">{L_GROUP_COLOR}:</label><br /><span>{L_GROUP_COLOR_EXPLAIN}</span></dt>
|
||||
<dt><label for="group_colour">{L_GROUP_COLOR}{L_COLON}</label><br /><span>{L_GROUP_COLOR_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_colour" type="text" id="group_colour" value="{GROUP_COLOUR}" size="6" maxlength="6" /><!-- IF GROUP_COLOUR --> <span style="background-color: #{GROUP_COLOUR}"> </span><!-- ENDIF --> <span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_rank">{L_GROUP_RANK}:</label></dt>
|
||||
<dt><label for="group_rank">{L_GROUP_RANK}{L_COLON}</label></dt>
|
||||
<dd><select name="group_rank" id="group_rank">{S_RANK_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -103,32 +103,32 @@
|
|||
<fieldset>
|
||||
<legend>{L_GROUP_AVATAR}</legend>
|
||||
<dl>
|
||||
<dt><label>{L_CURRENT_IMAGE}:</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
|
||||
<dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
|
||||
<dd>{AVATAR_IMAGE}</dd>
|
||||
<dd><label><input type="checkbox" class="radio" name="delete" /> {L_DELETE_AVATAR}</label></dd>
|
||||
</dl>
|
||||
<!-- IF not S_IN_AVATAR_GALLERY -->
|
||||
<!-- IF S_CAN_UPLOAD -->
|
||||
<dl>
|
||||
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></dt>
|
||||
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}{L_COLON}</label></dt>
|
||||
<dd><input type="file" id="uploadfile" name="uploadfile" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="uploadurl">{L_UPLOAD_AVATAR_URL}:</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
|
||||
<dt><label for="uploadurl">{L_UPLOAD_AVATAR_URL}{L_COLON}</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
|
||||
<dd><input name="uploadurl" type="text" id="uploadurl" value="" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="remotelink">{L_LINK_REMOTE_AVATAR}:</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
|
||||
<dt><label for="remotelink">{L_LINK_REMOTE_AVATAR}{L_COLON}</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
|
||||
<dd><input name="remotelink" type="text" id="remotelink" value="" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="width">{L_LINK_REMOTE_SIZE}:</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
|
||||
<dt><label for="width">{L_LINK_REMOTE_SIZE}{L_COLON}</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
|
||||
<dd><input name="width" type="text" id="width" size="3" value="{AVATAR_WIDTH}" /> <span>{L_PIXEL} × </span> <input type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
|
||||
</dl>
|
||||
<!-- IF S_DISPLAY_GALLERY -->
|
||||
<dl>
|
||||
<dt><label>{L_AVATAR_GALLERY}:</label></dt>
|
||||
<dt><label>{L_AVATAR_GALLERY}{L_COLON}</label></dt>
|
||||
<dd><input class="button2" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
@ -138,7 +138,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_AVATAR_GALLERY}</legend>
|
||||
<dl>
|
||||
<dt><label for="category">{L_AVATAR_CATEGORY}:</label></dt>
|
||||
<dt><label for="category">{L_AVATAR_CATEGORY}{L_COLON}</label></dt>
|
||||
<dd><select name="category" id="category">{S_CAT_OPTIONS}</select> <input class="button2" type="submit" value="{L_GO}" name="display_gallery" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
|
@ -258,17 +258,17 @@
|
|||
<fieldset>
|
||||
<legend>{L_ADD_USERS}</legend>
|
||||
<dl>
|
||||
<dt><label for="leader">{L_USER_GROUP_LEADER}:</label></dt>
|
||||
<dt><label for="leader">{L_USER_GROUP_LEADER}{L_COLON}</label></dt>
|
||||
<dd><label><input name="leader" type="radio" class="radio" value="1" /> {L_YES}</label>
|
||||
<label><input name="leader" type="radio" class="radio" id="leader" value="0" checked="checked" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="default">{L_USER_GROUP_DEFAULT}:</label><br /><span>{L_USER_GROUP_DEFAULT_EXPLAIN}</span></dt>
|
||||
<dt><label for="default">{L_USER_GROUP_DEFAULT}{L_COLON}</label><br /><span>{L_USER_GROUP_DEFAULT_EXPLAIN}</span></dt>
|
||||
<dd><label><input name="default" type="radio" class="radio" value="1" /> {L_YES}</label>
|
||||
<label><input name="default" type="radio" class="radio" id="default" value="0" checked="checked" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="usernames">{L_USERNAME}:</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt>
|
||||
<dt><label for="usernames">{L_USERNAME}{L_COLON}</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="usernames" name="usernames" cols="40" rows="5"></textarea></dd>
|
||||
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
|
||||
</dl>
|
||||
|
@ -322,7 +322,7 @@
|
|||
|
||||
<fieldset class="quick">
|
||||
<!-- IF S_GROUP_ADD -->
|
||||
{L_CREATE_GROUP}: <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
|
||||
{L_CREATE_GROUP}{L_COLON} <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input type="hidden" name="add" value="1" />
|
||||
<!-- ENDIF -->
|
||||
{S_FORM_TOKEN}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_LEGEND_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="legend_sort_groupname">{L_LEGEND_SORT_GROUPNAME}:</label><br /><span>{L_LEGEND_SORT_GROUPNAME_EXPLAIN}</span></dt>
|
||||
<dt><label for="legend_sort_groupname">{L_LEGEND_SORT_GROUPNAME}{L_COLON}</label><br /><span>{L_LEGEND_SORT_GROUPNAME_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
<label><input type="radio" name="legend_sort_groupname" class="radio" value="1"<!-- IF LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" name="legend_sort_groupname" class="radio" value="0"<!-- IF not LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
|
@ -82,7 +82,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_TEAMPAGE_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="teampage_multiple">{L_TEAMPAGE_MEMBERSHIPS}:</label></dt>
|
||||
<dt><label for="teampage_multiple">{L_TEAMPAGE_MEMBERSHIPS}{L_COLON}</label></dt>
|
||||
<dd>
|
||||
<label><input type="radio" name="teampage_memberships" class="radio" value="0"<!-- IF DISPLAY_MEMBERSHIPS == 0 --> checked="checked"<!-- ENDIF --> /> {L_TEAMPAGE_DISP_FIRST}</label><br />
|
||||
<label><input type="radio" name="teampage_memberships" class="radio" value="1"<!-- IF DISPLAY_MEMBERSHIPS == 1 --> checked="checked"<!-- ENDIF --> /> {L_TEAMPAGE_DISP_DEFAULT}</label><br />
|
||||
|
@ -90,7 +90,7 @@
|
|||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="teampage_forums">{L_TEAMPAGE_FORUMS}:</label><br /><span>{L_TEAMPAGE_FORUMS_EXPLAIN}</span></dt>
|
||||
<dt><label for="teampage_forums">{L_TEAMPAGE_FORUMS}{L_COLON}</label><br /><span>{L_TEAMPAGE_FORUMS_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
<label><input type="radio" name="teampage_forums" class="radio" value="1"<!-- IF DISPLAY_FORUMS --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" name="teampage_forums" class="radio" value="0"<!-- IF not DISPLAY_FORUMS --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div class="pagination">
|
||||
<!-- IF .pagination -->
|
||||
<div class="pagination">
|
||||
<!-- INCLUDE pagination.html -->
|
||||
<!-- ENDIF -->
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<table cellspacing="1">
|
||||
<thead>
|
||||
|
@ -33,7 +33,7 @@
|
|||
|
||||
<td style="vertical-align: top;">
|
||||
{inactive.USERNAME_FULL}
|
||||
<!-- IF inactive.POSTS --><br />{L_POSTS}: <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
|
||||
<!-- IF inactive.POSTS --><br />{L_POSTS}{L_COLON} <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
|
||||
</td>
|
||||
<td style="vertical-align: top;">{inactive.JOINED}</td>
|
||||
<td style="vertical-align: top;">{inactive.INACTIVE_DATE}</td>
|
||||
|
@ -53,15 +53,15 @@
|
|||
</table>
|
||||
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}<!-- IF PAGINATION --> Users per page: <input class="inputbox autowidth" type="text" name="users_per_page" id="users_per_page" size="3" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
|
||||
{L_DISPLAY_LOG}{L_COLON} {S_LIMIT_DAYS} {L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}<!-- IF .pagination --> Users per page{L_COLON} <input class="inputbox autowidth" type="text" name="users_per_page" id="users_per_page" size="3" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
</fieldset>
|
||||
|
||||
<hr />
|
||||
|
||||
<!-- IF PAGINATION -->
|
||||
<!-- IF .pagination -->
|
||||
<div class="pagination">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
<!-- INCLUDE pagination.html -->
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
|
|
@ -21,35 +21,35 @@
|
|||
<p>{L_JAB_GTALK_NOTE}</p>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="jab_enable">{L_JAB_ENABLE}:</label><br /><span>{L_JAB_ENABLE_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_enable">{L_JAB_ENABLE}{L_COLON}</label><br /><span>{L_JAB_ENABLE_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="jab_enable" name="jab_enable" value="1"<!-- IF JAB_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
||||
<label><input type="radio" class="radio" name="jab_enable" value="0"<!-- IF not JAB_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jab_host">{L_JAB_SERVER}:</label><br /><span>{L_JAB_SERVER_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_host">{L_JAB_SERVER}{L_COLON}</label><br /><span>{L_JAB_SERVER_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="jab_host" name="jab_host" value="{JAB_HOST}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jab_port">{L_JAB_PORT}:</label><br /><span>{L_JAB_PORT_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_port">{L_JAB_PORT}{L_COLON}</label><br /><span>{L_JAB_PORT_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="jab_port" name="jab_port" value="{JAB_PORT}" maxlength="5" size="5" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jab_username">{L_JAB_USERNAME}:</label><br /><span>{L_JAB_USERNAME_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_username">{L_JAB_USERNAME}{L_COLON}</label><br /><span>{L_JAB_USERNAME_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="jab_username" name="jab_username" value="{JAB_USERNAME}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jab_password">{L_JAB_PASSWORD}:</label><br /><span>{L_JAB_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_password">{L_JAB_PASSWORD}{L_COLON}</label><br /><span>{L_JAB_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dd><input type="password" id="jab_password" name="jab_password" value="{JAB_PASSWORD}" /></dd>
|
||||
</dl>
|
||||
<!-- IF S_CAN_USE_SSL -->
|
||||
<dl>
|
||||
<dt><label for="jab_use_ssl">{L_JAB_USE_SSL}:</label><br /><span>{L_JAB_USE_SSL_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_use_ssl">{L_JAB_USE_SSL}{L_COLON}</label><br /><span>{L_JAB_USE_SSL_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="jab_use_ssl" name="jab_use_ssl" value="1"<!-- IF JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="jab_use_ssl" value="0"<!-- IF not JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}:</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}{L_COLON}</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" maxlength="5" size="5" /></dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_DOWNLOAD_AS}</legend>
|
||||
<dl>
|
||||
<dt><label for="use_method">{L_DOWNLOAD_AS}:</label></dt>
|
||||
<dt><label for="use_method">{L_DOWNLOAD_AS}{L_COLON}</label></dt>
|
||||
<dd>{RADIO_BUTTONS}</dd>
|
||||
</dl>
|
||||
|
||||
|
@ -35,19 +35,19 @@
|
|||
<fieldset>
|
||||
<legend>{LANG_LOCAL_NAME}</legend>
|
||||
<dl>
|
||||
<dt><label for="lang_english_name">{L_LANG_ENGLISH_NAME}:</label></dt>
|
||||
<dt><label for="lang_english_name">{L_LANG_ENGLISH_NAME}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="lang_english_name" name="lang_english_name" value="{LANG_ENGLISH_NAME}" maxlength="100" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="lang_local_name">{L_LANG_LOCAL_NAME}:</label></dt>
|
||||
<dt><label for="lang_local_name">{L_LANG_LOCAL_NAME}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="lang_local_name" name="lang_local_name" value="{LANG_LOCAL_NAME}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_LANG_ISO_CODE}:</label></dt>
|
||||
<dt><label>{L_LANG_ISO_CODE}{L_COLON}</label></dt>
|
||||
<dd><strong>{LANG_ISO}</strong></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="lang_author">{L_LANG_AUTHOR}:</label></dt>
|
||||
<dt><label for="lang_author">{L_LANG_AUTHOR}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="lang_author" name="lang_author" value="{LANG_AUTHOR}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -147,7 +147,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td class="row3" style="text-align: right;">
|
||||
<!-- IF ALLOW_UPLOAD --> {L_UPLOAD_METHOD}: <!-- BEGIN buttons--><input type="radio" class="radio"<!-- IF buttons.S_FIRST_ROW --> id="method" checked="checked"<!-- ENDIF --> value="{buttons.VALUE}" name="method" /> {buttons.VALUE} <!-- END buttons --><input type="submit" name="upload_file" class="button2" value="{L_SUBMIT_AND_UPLOAD}" /><!-- ENDIF --></td>
|
||||
<!-- IF ALLOW_UPLOAD --> {L_UPLOAD_METHOD}{L_COLON} <!-- BEGIN buttons--><input type="radio" class="radio"<!-- IF buttons.S_FIRST_ROW --> id="method" checked="checked"<!-- ENDIF --> value="{buttons.VALUE}" name="method" /> {buttons.VALUE} <!-- END buttons --><input type="submit" name="upload_file" class="button2" value="{L_SUBMIT_AND_UPLOAD}" /><!-- ENDIF --></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -186,12 +186,12 @@
|
|||
<fieldset>
|
||||
<legend>{L_UPLOAD_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label>{L_UPLOAD_METHOD}:</label></dt>
|
||||
<dt><label>{L_UPLOAD_METHOD}{L_COLON}</label></dt>
|
||||
<dd><strong>{NAME}</strong></dd>
|
||||
</dl>
|
||||
<!-- BEGIN data -->
|
||||
<dl>
|
||||
<dt><label for="{data.DATA}">{data.NAME}:</label><br /><span>{data.EXPLAIN}</span></dt>
|
||||
<dt><label for="{data.DATA}">{data.NAME}{L_COLON}</label><br /><span>{data.EXPLAIN}</span></dt>
|
||||
<dd><input type="<!-- IF data.DATA == 'password' -->password<!-- ELSE -->text<!-- ENDIF -->" id="{data.DATA}" name="{data.DATA}" value="{data.DEFAULT}" /></dd>
|
||||
</dl>
|
||||
<!-- END data -->
|
||||
|
|
|
@ -9,14 +9,14 @@
|
|||
<form id="list" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset class="display-options" style="float: left">
|
||||
{L_SEARCH_KEYWORDS}: <input type="text" name="keywords" value="{S_KEYWORDS}" /> <input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
|
||||
{L_SEARCH_KEYWORDS}{L_COLON} <input type="text" name="keywords" value="{S_KEYWORDS}" /> <input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
|
||||
</fieldset>
|
||||
|
||||
<div class="pagination" style="float: right; margin: 15px 0 2px 0">
|
||||
<!-- IF .pagination -->
|
||||
<div class="pagination" style="float: right; margin: 15px 0 2px 0">
|
||||
<!-- INCLUDE pagination.html -->
|
||||
<!-- ENDIF -->
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<div class="clearfix"> </div>
|
||||
<div><br style="clear: both;" /></div>
|
||||
|
@ -54,9 +54,9 @@
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- IF PAGINATION -->
|
||||
<!-- IF .pagination -->
|
||||
<div class="pagination">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
<!-- INCLUDE pagination.html -->
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
@ -67,7 +67,7 @@
|
|||
<!-- ENDIF -->
|
||||
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
|
||||
{L_DISPLAY_LOG}{L_COLON} {S_LIMIT_DAYS} {L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
@ -75,7 +75,7 @@
|
|||
|
||||
<!-- IF S_SHOW_FORUMS -->
|
||||
<fieldset class="quick">
|
||||
{L_SELECT_FORUM}: <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
|
||||
{L_SELECT_FORUM}{L_COLON} <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
|
||||
<input class="button2" type="submit" value="{L_GO}" />
|
||||
</fieldset>
|
||||
<!-- ENDIF -->
|
||||
|
|
|
@ -89,56 +89,56 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{L_NUMBER_POSTS}: </td>
|
||||
<td>{L_NUMBER_POSTS}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_POSTS}</strong></td>
|
||||
<td>{L_POSTS_PER_DAY}: </td>
|
||||
<td>{L_POSTS_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{POSTS_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_NUMBER_TOPICS}: </td>
|
||||
<td>{L_NUMBER_TOPICS}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_TOPICS}</strong></td>
|
||||
<td>{L_TOPICS_PER_DAY}: </td>
|
||||
<td>{L_TOPICS_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{TOPICS_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_NUMBER_USERS}: </td>
|
||||
<td>{L_NUMBER_USERS}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_USERS}</strong></td>
|
||||
<td>{L_USERS_PER_DAY}: </td>
|
||||
<td>{L_USERS_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{USERS_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_NUMBER_FILES}: </td>
|
||||
<td>{L_NUMBER_FILES}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_FILES}</strong></td>
|
||||
<td>{L_FILES_PER_DAY}: </td>
|
||||
<td>{L_FILES_PER_DAY}{L_COLON} </td>
|
||||
<td><strong>{FILES_PER_DAY}</strong></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>{L_BOARD_STARTED}: </td>
|
||||
<td>{L_BOARD_STARTED}{L_COLON} </td>
|
||||
<td><strong>{START_DATE}</strong></td>
|
||||
<td>{L_AVATAR_DIR_SIZE}: </td>
|
||||
<td>{L_AVATAR_DIR_SIZE}{L_COLON} </td>
|
||||
<td><strong>{AVATAR_DIR_SIZE}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_DATABASE_SIZE}: </td>
|
||||
<td>{L_DATABASE_SIZE}{L_COLON} </td>
|
||||
<td><strong>{DBSIZE}</strong></td>
|
||||
<td>{L_UPLOAD_DIR_SIZE}: </td>
|
||||
<td>{L_UPLOAD_DIR_SIZE}{L_COLON} </td>
|
||||
<td><strong>{UPLOAD_DIR_SIZE}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_DATABASE_SERVER_INFO}: </td>
|
||||
<td>{L_DATABASE_SERVER_INFO}{L_COLON} </td>
|
||||
<td><strong>{DATABASE_INFO}</strong></td>
|
||||
<td>{L_GZIP_COMPRESSION}: </td>
|
||||
<td>{L_GZIP_COMPRESSION}{L_COLON} </td>
|
||||
<td><strong>{GZIP_COMPRESSION}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{L_BOARD_VERSION}: </td>
|
||||
<td>{L_BOARD_VERSION}{L_COLON} </td>
|
||||
<td>
|
||||
<strong><a href="{U_VERSIONCHECK}" <!-- IF S_VERSION_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF --> title="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [ <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> ]
|
||||
</td>
|
||||
<!-- IF S_TOTAL_ORPHAN -->
|
||||
<td>{L_NUMBER_ORPHAN}: </td>
|
||||
<td>{L_NUMBER_ORPHAN}{L_COLON} </td>
|
||||
<td><strong>{TOTAL_ORPHAN}</strong></td>
|
||||
<!-- ELSE -->
|
||||
<td> </td>
|
||||
|
@ -261,7 +261,7 @@
|
|||
|
||||
<td style="vertical-align: top;">
|
||||
{inactive.USERNAME_FULL}
|
||||
<!-- IF inactive.POSTS --><br />{L_POSTS}: <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
|
||||
<!-- IF inactive.POSTS --><br />{L_POSTS}{L_COLON} <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
|
||||
</td>
|
||||
<td style="vertical-align: top;">{inactive.JOINED}</td>
|
||||
<td style="vertical-align: top;">{inactive.INACTIVE_DATE}</td>
|
||||
|
|
|
@ -72,37 +72,37 @@
|
|||
<fieldset>
|
||||
<legend>{L_GENERAL_OPTIONS}</legend>
|
||||
<dl>
|
||||
<dt><label for="module_langname">{L_MODULE_LANGNAME}:</label><br />
|
||||
<dt><label for="module_langname">{L_MODULE_LANGNAME}{L_COLON}</label><br />
|
||||
<span>{L_MODULE_LANGNAME_EXPLAIN}</span></dt>
|
||||
<dd><input name="module_langname" type="text" class="text medium" id="module_langname" value="{MODULE_LANGNAME}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="module_type">{L_MODULE_TYPE}:</label></dt>
|
||||
<dt><label for="module_type">{L_MODULE_TYPE}{L_COLON}</label></dt>
|
||||
<dd><select name="module_type" id="module_type" onchange="display_options(this.value);"><option value="category"<!-- IF S_IS_CAT --> selected="selected"<!-- ENDIF -->>{L_CATEGORY}</option><option value="module"<!-- IF not S_IS_CAT --> selected="selected"<!-- ENDIF -->>{L_MODULE}</option></select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="parent_id">{L_PARENT}:</label></dt>
|
||||
<dt><label for="parent_id">{L_PARENT}{L_COLON}</label></dt>
|
||||
<dd><select name="module_parent_id" id="parent_id">{S_CAT_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<hr />
|
||||
<dl>
|
||||
<dt><label for="module_enabled">{L_MODULE_ENABLED}:</label></dt>
|
||||
<dt><label for="module_enabled">{L_MODULE_ENABLED}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="module_enabled" id="module_enabled" value="1"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="module_enabled" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<div id="modoptions"<!-- IF S_IS_CAT --> style="display: none;"<!-- ENDIF -->>
|
||||
<dl>
|
||||
<dt><label for="module_display">{L_MODULE_DISPLAYED}:</label><br /><span>{L_MODULE_DISPLAYED_EXPLAIN}</span></dt>
|
||||
<dt><label for="module_display">{L_MODULE_DISPLAYED}{L_COLON}</label><br /><span>{L_MODULE_DISPLAYED_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="module_display" id="module_display" value="1"<!-- IF MODULE_DISPLAY --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="module_display" value="0"<!-- IF not MODULE_DISPLAY --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="module_basename">{L_CHOOSE_MODULE}:</label><br />
|
||||
<dt><label for="module_basename">{L_CHOOSE_MODULE}{L_COLON}</label><br />
|
||||
<span>{L_CHOOSE_MODULE_EXPLAIN}</span></dt>
|
||||
<dd><select name="module_basename" id="module_basename" onchange="display_modes(this.value);">{S_MODULE_NAMES}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="module_mode">{L_CHOOSE_MODE}:</label><br />
|
||||
<dt><label for="module_mode">{L_CHOOSE_MODE}{L_COLON}</label><br />
|
||||
<span>{L_CHOOSE_MODE_EXPLAIN}</span></dt>
|
||||
<dd><select name="module_mode" id="module_mode">{S_MODULE_MODES}</select></dd>
|
||||
</dl>
|
||||
|
@ -201,7 +201,7 @@
|
|||
|
||||
<form id="mselect" method="post" action="{U_SEL_ACTION}">
|
||||
<fieldset class="quick">
|
||||
{L_SELECT_MODULE}: <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{MODULE_BOX}</select>
|
||||
{L_SELECT_MODULE}{L_COLON} <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{MODULE_BOX}</select>
|
||||
|
||||
<input class="button2" type="submit" value="{L_GO}" />
|
||||
</fieldset>
|
||||
|
|
|
@ -36,11 +36,11 @@
|
|||
<fieldset>
|
||||
<legend>{L_ROLE_DETAILS}</legend>
|
||||
<dl>
|
||||
<dt><label for="role_name">{L_ROLE_NAME}:</label></dt>
|
||||
<dt><label for="role_name">{L_ROLE_NAME}{L_COLON}</label></dt>
|
||||
<dd><input name="role_name" type="text" id="role_name" value="{ROLE_NAME}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="role_description">{L_ROLE_DESCRIPTION}:</label><br /><span>{L_ROLE_DESCRIPTION_EXPLAIN}</span></dt>
|
||||
<dt><label for="role_description">{L_ROLE_DESCRIPTION}{L_COLON}</label><br /><span>{L_ROLE_DESCRIPTION_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="role_description" name="role_description" rows="3" cols="45">{ROLE_DESCRIPTION}</textarea></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -182,7 +182,7 @@
|
|||
</table>
|
||||
|
||||
<fieldset class="quick">
|
||||
{L_CREATE_ROLE}: <input type="text" name="role_name" value="" maxlength="255" /><!-- IF S_ROLE_OPTIONS --> <select name="options_from"><option value="0" selected="selected">{L_CREATE_ROLE_FROM}</option>{S_ROLE_OPTIONS}</select><!-- ENDIF --> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" /><br />
|
||||
{L_CREATE_ROLE}{L_COLON} <input type="text" name="role_name" value="" maxlength="255" /><!-- IF S_ROLE_OPTIONS --> <select name="options_from"><option value="0" selected="selected">{L_CREATE_ROLE_FROM}</option>{S_ROLE_OPTIONS}</select><!-- ENDIF --> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" /><br />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<p>{L_EXPLAIN}</p>
|
||||
|
||||
<!-- IF S_FORUM_NAMES -->
|
||||
<p><strong>{L_FORUMS}:</strong> {FORUM_NAMES}</p>
|
||||
<p><strong>{L_FORUMS}{L_COLON}</strong> {FORUM_NAMES}</p>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_SELECT_FORUM -->
|
||||
|
@ -30,7 +30,7 @@
|
|||
<legend>{L_LOOK_UP_FORUM}</legend>
|
||||
<!-- IF S_FORUM_MULTIPLE --><p>{L_LOOK_UP_FORUMS_EXPLAIN}</p><!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="forum">{L_LOOK_UP_FORUM}:</label></dt>
|
||||
<dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
|
||||
<dd><select id="forum" name="forum_id[]"<!-- IF S_FORUM_MULTIPLE --> multiple="multiple"<!-- ENDIF --> size="10">{S_FORUM_OPTIONS}</select></dd>
|
||||
<!-- IF S_FORUM_ALL --><dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd><!-- ENDIF -->
|
||||
</dl>
|
||||
|
@ -52,7 +52,7 @@
|
|||
<legend>{L_LOOK_UP_FORUM}</legend>
|
||||
<p>{L_SELECT_FORUM_SUBFORUM_EXPLAIN}</p>
|
||||
<dl>
|
||||
<dt><label for="sforum">{L_LOOK_UP_FORUM}:</label></dt>
|
||||
<dt><label for="sforum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
|
||||
<dd><select id="sforum" name="subforum_id">{S_SUBFORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -74,7 +74,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_LOOK_UP_USER}</legend>
|
||||
<dl>
|
||||
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
|
||||
<dt><label for="username">{L_FIND_USERNAME}{L_COLON}</label></dt>
|
||||
<dd><input class="text medium" type="text" id="username" name="username[]" /></dd>
|
||||
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
|
||||
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
|
||||
|
@ -95,7 +95,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_LOOK_UP_GROUP}</legend>
|
||||
<dl>
|
||||
<dt><label for="group">{L_LOOK_UP_GROUP}:</label></dt>
|
||||
<dt><label for="group">{L_LOOK_UP_GROUP}{L_COLON}</label></dt>
|
||||
<dd><select name="group_id[]" id="group">{S_GROUP_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -225,7 +225,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_LOOK_UP_USER}</legend>
|
||||
<dl>
|
||||
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
|
||||
<dt><label for="username">{L_FIND_USERNAME}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="username" name="username[]" /></dd>
|
||||
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
|
||||
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
|
||||
|
@ -266,7 +266,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_LOOK_UP_GROUP}</legend>
|
||||
<dl>
|
||||
<dt><label for="group_select">{L_LOOK_UP_GROUP}:</label></dt>
|
||||
<dt><label for="group_select">{L_LOOK_UP_GROUP}{L_COLON}</label></dt>
|
||||
<dd><select name="group_id[]" id="group_select">{S_ADD_GROUP_OPTIONS}</select></dd>
|
||||
<dd> </dd>
|
||||
</dl>
|
||||
|
@ -317,7 +317,7 @@
|
|||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
{L_SELECT_TYPE}: <select name="type">{S_PERMISSION_DROPDOWN}</select>
|
||||
{L_SELECT_TYPE}{L_COLON} <select name="type">{S_PERMISSION_DROPDOWN}</select>
|
||||
|
||||
<input class="button2" type="submit" name="submit" value="{L_GO}" />
|
||||
</fieldset>
|
||||
|
|
|
@ -24,22 +24,22 @@
|
|||
<fieldset>
|
||||
<legend>{L_TITLE}</legend>
|
||||
<dl>
|
||||
<dt><label>{L_FIELD_TYPE}:</label><br /><span>{L_FIELD_TYPE_EXPLAIN}</span></dt>
|
||||
<dt><label>{L_FIELD_TYPE}{L_COLON}</label><br /><span>{L_FIELD_TYPE_EXPLAIN}</span></dt>
|
||||
<dd><strong>{FIELD_TYPE}</strong></dd>
|
||||
</dl>
|
||||
<!-- IF S_EDIT_MODE -->
|
||||
<dl>
|
||||
<dt><label>{L_FIELD_IDENT}:</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
|
||||
<dt><label>{L_FIELD_IDENT}{L_COLON}</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
|
||||
<dd><input type="hidden" name="field_ident" value="{FIELD_IDENT}" /><strong>{FIELD_IDENT}</strong></dd>
|
||||
</dl>
|
||||
<!-- ELSE -->
|
||||
<dl>
|
||||
<dt><label for="field_ident">{L_FIELD_IDENT}:</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_ident">{L_FIELD_IDENT}{L_COLON}</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
|
||||
<dd><input class="text medium" type="text" id="field_ident" name="field_ident" value="{FIELD_IDENT}" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="field_no_view">{L_DISPLAY_PROFILE_FIELD}:</label><br /><span>{L_DISPLAY_PROFILE_FIELD_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_no_view">{L_DISPLAY_PROFILE_FIELD}{L_COLON}</label><br /><span>{L_DISPLAY_PROFILE_FIELD_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="field_no_view" name="field_no_view" value="0"<!-- IF not S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="field_no_view" value="1"<!-- IF S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
@ -48,31 +48,31 @@
|
|||
<fieldset>
|
||||
<legend>{L_VISIBILITY_OPTION}</legend>
|
||||
<dl>
|
||||
<dt><label for="field_show_profile">{L_DISPLAY_AT_PROFILE}:</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_show_profile">{L_DISPLAY_AT_PROFILE}{L_COLON}</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_profile" name="field_show_profile" value="1"<!-- IF S_SHOW_PROFILE --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTER}:</label><br /><span>{L_DISPLAY_AT_REGISTER_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTER}{L_COLON}</label><br /><span>{L_DISPLAY_AT_REGISTER_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_on_reg" name="field_show_on_reg" value="1"<!-- IF S_SHOW_ON_REG --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_show_on_pm">{L_DISPLAY_ON_PM}:</label><br /><span>{L_DISPLAY_ON_PM_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_show_on_pm">{L_DISPLAY_ON_PM}{L_COLON}</label><br /><span>{L_DISPLAY_ON_PM_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_on_pm" name="field_show_on_pm" value="1"<!-- IF S_SHOW_ON_PM --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_show_on_vt">{L_DISPLAY_ON_VT}:</label><br /><span>{L_DISPLAY_ON_VT_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_show_on_vt">{L_DISPLAY_ON_VT}{L_COLON}</label><br /><span>{L_DISPLAY_ON_VT_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_on_vt" name="field_show_on_vt" value="1"<!-- IF S_SHOW_ON_VT --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_required">{L_REQUIRED_FIELD}:</label><br /><span>{L_REQUIRED_FIELD_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_required">{L_REQUIRED_FIELD}{L_COLON}</label><br /><span>{L_REQUIRED_FIELD_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_required" name="field_required" value="1"<!-- IF S_FIELD_REQUIRED --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_show_novalue">{L_SHOW_NOVALUE_FIELD}:</label><br /><span>{L_SHOW_NOVALUE_FIELD_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_show_novalue">{L_SHOW_NOVALUE_FIELD}{L_COLON}</label><br /><span>{L_SHOW_NOVALUE_FIELD_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_novalue" name="field_show_novalue" value="1"<!-- IF S_FIELD_SHOW_NOVALUE --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_hide">{L_HIDE_PROFILE_FIELD}:</label><br /><span>{L_HIDE_PROFILE_FIELD_EXPLAIN}</span></dt>
|
||||
<dt><label for="field_hide">{L_HIDE_PROFILE_FIELD}{L_COLON}</label><br /><span>{L_HIDE_PROFILE_FIELD_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_hide" name="field_hide" value="1"<!-- IF S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -86,22 +86,22 @@
|
|||
<fieldset>
|
||||
<legend>{L_LANG_SPECIFIC}</legend>
|
||||
<dl>
|
||||
<dt><label for="lang_name">{L_USER_FIELD_NAME}:</label></dt>
|
||||
<dt><label for="lang_name">{L_USER_FIELD_NAME}{L_COLON}</label></dt>
|
||||
<dd><input class="text medium" type="text" id="lang_name" name="lang_name" value="{LANG_NAME}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="lang_explain">{L_FIELD_DESCRIPTION}:</label><br /><span>{L_FIELD_DESCRIPTION_EXPLAIN}</span></dt>
|
||||
<dt><label for="lang_explain">{L_FIELD_DESCRIPTION}{L_COLON}</label><br /><span>{L_FIELD_DESCRIPTION_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="lang_explain" name="lang_explain" rows="3" cols="80">{LANG_EXPLAIN}</textarea></dd>
|
||||
</dl>
|
||||
<!-- IF S_TEXT or S_STRING -->
|
||||
<dl>
|
||||
<dt><label for="lang_default_value">{L_DEFAULT_VALUE}:</label><br /><span>{L_DEFAULT_VALUE_EXPLAIN}</span></dt>
|
||||
<dt><label for="lang_default_value">{L_DEFAULT_VALUE}{L_COLON}</label><br /><span>{L_DEFAULT_VALUE_EXPLAIN}</span></dt>
|
||||
<dd><!-- IF S_STRING --><input class="text medium" type="text" id="lang_default_value" name="lang_default_value" value="{LANG_DEFAULT_VALUE}" /><!-- ELSE --><textarea id="lang_default_value" name="lang_default_value" rows="5" cols="80">{LANG_DEFAULT_VALUE}</textarea><!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_BOOL or S_DROPDOWN -->
|
||||
<dl>
|
||||
<dt><label for="lang_options">{L_ENTRIES}:</label>
|
||||
<dt><label for="lang_options">{L_ENTRIES}{L_COLON}</label>
|
||||
<!-- IF S_EDIT_MODE and S_DROPDOWN -->
|
||||
<br /><span>{L_EDIT_DROPDOWN_LANG_EXPLAIN}</span>
|
||||
<!-- ELSE -->
|
||||
|
@ -130,7 +130,7 @@
|
|||
<legend>{L_TITLE}</legend>
|
||||
<!-- BEGIN option -->
|
||||
<dl>
|
||||
<dt><label>{option.TITLE}:</label><!-- IF option.EXPLAIN --><br /><span>{option.EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label>{option.TITLE}{L_COLON}</label><!-- IF option.EXPLAIN --><br /><span>{option.EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{option.FIELD}</dd>
|
||||
</dl>
|
||||
<!-- END option -->
|
||||
|
@ -153,7 +153,7 @@
|
|||
<legend>{options.LANGUAGE}</legend>
|
||||
<!-- BEGIN field -->
|
||||
<dl>
|
||||
<dt><label>{options.field.L_TITLE}:</label><!-- IF options.field.L_EXPLAIN --><br /><span>{options.field.L_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label>{options.field.L_TITLE}{L_COLON}</label><!-- IF options.field.L_EXPLAIN --><br /><span>{options.field.L_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
{options.field.FIELD}
|
||||
</dl>
|
||||
<!-- END field -->
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
<legend>{L_SELECT_FORUM}</legend>
|
||||
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
|
||||
<dl>
|
||||
<dt><label for="forum">{L_LOOK_UP_FORUM}:</label></dt>
|
||||
<dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
|
||||
<dd><select id="forum" name="f[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
|
||||
<dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd>
|
||||
</dl>
|
||||
|
@ -65,32 +65,32 @@
|
|||
|
||||
<h2>{L_FORUM}</h2>
|
||||
|
||||
<p>{L_SELECTED_FORUMS}: {FORUM_LIST}</p>
|
||||
<p>{L_SELECTED_FORUMS}{L_COLON} {FORUM_LIST}</p>
|
||||
|
||||
<form id="acp_prune" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_FORUM_PRUNE}</legend>
|
||||
<dl>
|
||||
<dt><label for="prune_days">{L_PRUNE_NOT_POSTED}:</label></dt>
|
||||
<dt><label for="prune_days">{L_PRUNE_NOT_POSTED}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="prune_days" name="prune_days" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="prune_vieweddays">{L_PRUNE_NOT_VIEWED}:</label></dt>
|
||||
<dt><label for="prune_vieweddays">{L_PRUNE_NOT_VIEWED}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="prune_vieweddays" name="prune_vieweddays" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="polls">{L_PRUNE_OLD_POLLS}:</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
|
||||
<dt><label for="polls">{L_PRUNE_OLD_POLLS}{L_COLON}</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="prune_old_polls" value="1" /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" id="polls" name="prune_old_polls" value="0" checked="checked" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="announce">{L_PRUNE_ANNOUNCEMENTS}:</label></dt>
|
||||
<dt><label for="announce">{L_PRUNE_ANNOUNCEMENTS}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="prune_announce" value="1" /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" id="announce" name="prune_announce" value="0" checked="checked" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="sticky">{L_PRUNE_STICKY}:</label></dt>
|
||||
<dt><label for="sticky">{L_PRUNE_STICKY}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="prune_sticky" value="1" /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" id="sticky" name="prune_sticky" value="0" checked="checked" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
|
|
@ -9,39 +9,64 @@
|
|||
<form id="acp_prune" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_PRUNE_USERS}</legend>
|
||||
<legend>{L_CRITERIA}</legend>
|
||||
<dl>
|
||||
<dt><label for="username">{L_USERNAME}:</label></dt>
|
||||
<dt><label for="username">{L_USERNAME}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="username" name="username" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="email">{L_EMAIL}:</label></dt>
|
||||
<dt><label for="email">{L_EMAIL}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="email" name="email" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="joined">{L_JOINED}:</label><br /><span>{L_JOINED_EXPLAIN}</span></dt>
|
||||
<dd><select name="joined_select">{S_JOINED_OPTIONS}</select> <input type="text" id="joined" name="joined" /></dd>
|
||||
<dt><label for="email">{L_WEBSITE}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="website" name="website" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="active">{L_LAST_ACTIVE}:</label><br /><span>{L_LAST_ACTIVE_EXPLAIN}</span></dt>
|
||||
<dt><label for="joined">{L_JOINED}{L_COLON}</label><br /><span>{L_JOINED_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
<strong>{L_AFTER}</strong> <input type="text" id="joined_after" name="joined_after" />
|
||||
<br /> <br /> <strong>{L_BEFORE}</strong> <input type="text" id="joined_before" name="joined_before" />
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="active">{L_LAST_ACTIVE}{L_COLON}</label><br /><span>{L_LAST_ACTIVE_EXPLAIN}</span></dt>
|
||||
<dd><select name="active_select">{S_ACTIVE_OPTIONS}</select> <input type="text" id="active" name="active" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="count">{L_POSTS}:</label></dt>
|
||||
<dt><label for="count">{L_POSTS}{L_COLON}</label></dt>
|
||||
<dd><select name="count_select">{S_COUNT_OPTIONS}</select> <input type="text" id="count" name="count" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="users">{L_ACP_PRUNE_USERS}:</label><br /><span>{L_SELECT_USERS_EXPLAIN}</span></dt>
|
||||
<dt><label for="posts_on_queue">{L_POSTS_ON_QUEUE}{L_COLON}</label></dt>
|
||||
<dd><select name="queue_select">{S_COUNT_OPTIONS}</select> <input type="text" id="posts_on_queue" name="posts_on_queue" /></select>
|
||||
</dl>
|
||||
<!-- IF S_GROUP_LIST -->
|
||||
<dl>
|
||||
<dt><label for="group_id">{L_GROUP}{L_COLON}</label><br /><span>{L_PRUNE_USERS_GROUP_EXPLAIN}</dt>
|
||||
<dd><select name="group_id">{S_GROUP_LIST}</select></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_USERNAMES}</legend>
|
||||
<dl>
|
||||
<dt><label for="users">{L_ACP_PRUNE_USERS}{L_COLON}</label><br /><span>{L_SELECT_USERS_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="users" name="users" cols="40" rows="5"></textarea></dd>
|
||||
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_OPTIONS}</legend>
|
||||
<dl>
|
||||
<dt><label for="deleteposts">{L_DELETE_USER_POSTS}:</label><br /><span>{L_DELETE_USER_POSTS_EXPLAIN}</span></dt>
|
||||
<dt><label for="deleteposts">{L_DELETE_USER_POSTS}{L_COLON}</label><br /><span>{L_DELETE_USER_POSTS_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="deleteposts" value="1" /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" id="deleteposts" name="deleteposts" value="0" checked="checked" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="deactivate">{L_DEACTIVATE_DELETE}:</label><br /><span>{L_DEACTIVATE_DELETE_EXPLAIN}</span></dt>
|
||||
<dt><label for="deactivate">{L_DEACTIVATE_DELETE}{L_COLON}</label><br /><span>{L_DEACTIVATE_DELETE_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="action" value="delete" /> {L_DELETE_USERS}</label>
|
||||
<label><input type="radio" class="radio" id="deactivate" name="action" value="deactivate" checked="checked" /> {L_DEACTIVATE}</label></dd>
|
||||
</dl>
|
||||
|
|
|
@ -25,22 +25,22 @@
|
|||
<fieldset>
|
||||
<legend>{L_ACP_RANKS}</legend>
|
||||
<dl>
|
||||
<dt><label for="title">{L_RANK_TITLE}:</label></dt>
|
||||
<dt><label for="title">{L_RANK_TITLE}{L_COLON}</label></dt>
|
||||
<dd><input name="title" type="text" id="title" value="{RANK_TITLE}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="rank_image">{L_RANK_IMAGE}:</label></dt>
|
||||
<dt><label for="rank_image">{L_RANK_IMAGE}{L_COLON}</label></dt>
|
||||
<dd><select name="rank_image" id="rank_image" onchange="update_image(this.options[selectedIndex].value);">{S_FILENAME_LIST}</select></dd>
|
||||
<dd><img src="{RANK_IMAGE}" id="image" alt="" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="special_rank">{L_RANK_SPECIAL}:</label></dt>
|
||||
<dt><label for="special_rank">{L_RANK_SPECIAL}{L_COLON}</label></dt>
|
||||
<dd><label><input onclick="dE('posts', -1)" type="radio" class="radio" name="special_rank" value="1" id="special_rank"<!-- IF S_SPECIAL_RANK --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input onclick="dE('posts', 1)" type="radio" class="radio" name="special_rank" value="0"<!-- IF not S_SPECIAL_RANK --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<!-- IF S_SPECIAL_RANK --><div id="posts" style="display: none;"><!-- ELSE --><div id="posts"><!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="min_posts">{L_RANK_MINIMUM}:</label></dt>
|
||||
<dt><label for="min_posts">{L_RANK_MINIMUM}{L_COLON}</label></dt>
|
||||
<dd><input name="min_posts" type="text" id="min_posts" maxlength="10" value="{MIN_POSTS}" /></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<legend>{L_TITLE}</legend>
|
||||
<p><!-- IF S_TRANSLATED -->{L_IS_TRANSLATED_EXPLAIN}<!-- ELSE -->{L_IS_NOT_TRANSLATED_EXPLAIN}<!-- ENDIF --></p>
|
||||
<dl>
|
||||
<dt><label for="reason_title">{L_REASON_TITLE}:</label></dt>
|
||||
<dt><label for="reason_title">{L_REASON_TITLE}{L_COLON}</label></dt>
|
||||
<dd><input name="reason_title" type="text" id="reason_title" value="{REASON_TITLE}" maxlength="255" /></dd>
|
||||
</dl>
|
||||
<!-- IF S_TRANSLATED -->
|
||||
|
@ -39,7 +39,7 @@
|
|||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="reason_description">{L_REASON_DESCRIPTION}:</label></dt>
|
||||
<dt><label for="reason_description">{L_REASON_DESCRIPTION}{L_COLON}</label></dt>
|
||||
<dd><textarea name="reason_description" id="reason_description" rows="8" cols="80">{REASON_DESCRIPTION}</textarea></dd>
|
||||
</dl>
|
||||
<!-- IF S_TRANSLATED -->
|
||||
|
|
|
@ -12,32 +12,32 @@
|
|||
<fieldset>
|
||||
<legend>{L_GENERAL_SEARCH_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="load_search">{L_YES_SEARCH}:</label><br /><span>{L_YES_SEARCH_EXPLAIN}</span></dt>
|
||||
<dt><label for="load_search">{L_YES_SEARCH}{L_COLON}</label><br /><span>{L_YES_SEARCH_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="load_search" name="config[load_search]" value="1"<!-- IF S_YES_SEARCH --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="config[load_search]" value="0"<!-- IF not S_YES_SEARCH --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_interval">{L_SEARCH_INTERVAL}:</label><br /><span>{L_SEARCH_INTERVAL_EXPLAIN}</span></dt>
|
||||
<dt><label for="search_interval">{L_SEARCH_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_INTERVAL_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_interval" type="text" size="4" maxlength="4" name="config[search_interval]" value="{SEARCH_INTERVAL}" /> {L_SECONDS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_anonymous_interval">{L_SEARCH_GUEST_INTERVAL}:</label><br /><span>{L_SEARCH_GUEST_INTERVAL_EXPLAIN}</span></dt>
|
||||
<dt><label for="search_anonymous_interval">{L_SEARCH_GUEST_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_GUEST_INTERVAL_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_anonymous_interval" type="text" size="4" maxlength="4" name="config[search_anonymous_interval]" value="{SEARCH_GUEST_INTERVAL}" /> {L_SECONDS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="limit_search_load">{L_LIMIT_SEARCH_LOAD}:</label><br /><span>{L_LIMIT_SEARCH_LOAD_EXPLAIN}</span></dt>
|
||||
<dt><label for="limit_search_load">{L_LIMIT_SEARCH_LOAD}{L_COLON}</label><br /><span>{L_LIMIT_SEARCH_LOAD_EXPLAIN}</span></dt>
|
||||
<dd><input id="limit_search_load" type="text" size="4" maxlength="4" name="config[limit_search_load]" value="{LIMIT_SEARCH_LOAD}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}:</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
|
||||
<dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}{L_COLON}</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
|
||||
<dd><input id="min_search_author_chars" type="text" size="4" maxlength="4" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}:</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
|
||||
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}{L_COLON}</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_num_search_keywords" type="text" size="4" maxlength="4" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}:</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
|
||||
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}{L_COLON}</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_store_results" type="text" size="4" maxlength="6" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -45,7 +45,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_SEARCH_TYPE}</legend>
|
||||
<dl>
|
||||
<dt><label for="search_type">{L_SEARCH_TYPE}:</label><br /><span>{L_SEARCH_TYPE_EXPLAIN}</span></dt>
|
||||
<dt><label for="search_type">{L_SEARCH_TYPE}{L_COLON}</label><br /><span>{L_SEARCH_TYPE_EXPLAIN}</span></dt>
|
||||
<dd><select id="search_type" name="config[search_type]">{S_SEARCH_TYPES}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -110,7 +110,7 @@
|
|||
|
||||
{backend.S_HIDDEN_FIELDS}
|
||||
|
||||
<legend>{L_INDEX_STATS}: {backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></legend>
|
||||
<legend>{L_INDEX_STATS}{L_COLON} {backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></legend>
|
||||
|
||||
<table cellspacing="1">
|
||||
<caption>{backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></caption>
|
||||
|
@ -126,9 +126,9 @@
|
|||
<tbody>
|
||||
<!-- BEGIN data -->
|
||||
<tr>
|
||||
<td>{backend.data.STATISTIC_1}:</td>
|
||||
<td>{backend.data.STATISTIC_1}{L_COLON}</td>
|
||||
<td>{backend.data.VALUE_1}</td>
|
||||
<td>{backend.data.STATISTIC_2}<!-- IF backend.data.STATISTIC_2 -->:<!-- ENDIF --></td>
|
||||
<td>{backend.data.STATISTIC_2}<!-- IF backend.data.STATISTIC_2 -->{L_COLON}<!-- ENDIF --></td>
|
||||
<td>{backend.data.VALUE_2}</td>
|
||||
</tr>
|
||||
<!-- END data -->
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<input type="hidden" name="id" value="{STYLE_ID}" />
|
||||
<fieldset>
|
||||
<dl>
|
||||
<dt><label for="name">{L_STYLE_NAME}:</label></dt>
|
||||
<dt><label for="name">{L_STYLE_NAME}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="name" name="style_name" value="{STYLE_NAME}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
|
@ -44,11 +44,11 @@
|
|||
<dd><strong>{STYLE_PATH}</strong></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="name">{L_COPYRIGHT}:</label></dt>
|
||||
<dt><label for="name">{L_COPYRIGHT}{L_COLON}</label></dt>
|
||||
<dd><strong>{STYLE_COPYRIGHT}</strong></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="style_parent">{L_INHERITING_FROM}:</label></dt>
|
||||
<dt><label for="style_parent">{L_INHERITING_FROM}{L_COLON}</label></dt>
|
||||
<dd><select id="style_parent" name="style_parent">
|
||||
<option value=""<!-- IF STYLE_PARENT == 0 --> selected="selected"<!-- ENDIF -->> - </option>
|
||||
<!-- BEGIN parent_styles -->
|
||||
|
@ -57,13 +57,13 @@
|
|||
</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="style_active">{L_STYLE_ACTIVE}:</label></dt>
|
||||
<dt><label for="style_active">{L_STYLE_ACTIVE}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="style_active" value="1"<!-- IF S_STYLE_ACTIVE --> id="style_active" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="style_active" value="0"<!-- IF not S_STYLE_ACTIVE --> id="style_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<!-- IF not S_STYLE_DEFAULT -->
|
||||
<dl>
|
||||
<dt><label for="style_default">{L_STYLE_DEFAULT}:</label></dt>
|
||||
<dt><label for="style_default">{L_STYLE_DEFAULT}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="style_default" value="1" /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" id="style_default" name="style_default" value="0" checked="checked" /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_SELECT_USER}</legend>
|
||||
<dl>
|
||||
<dt><label for="username">{L_ENTER_USERNAME}:</label></dt>
|
||||
<dt><label for="username">{L_ENTER_USERNAME}{L_COLON}</label></dt>
|
||||
<dd><input class="text medium" type="text" id="username" name="username" /></dd>
|
||||
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
|
||||
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="u" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
|
||||
|
@ -68,7 +68,7 @@
|
|||
<form id="mode_select" method="post" action="{U_MODE_SELECT}">
|
||||
|
||||
<fieldset class="quick">
|
||||
{L_SELECT_FORM}: <select name="mode" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_FORM_OPTIONS}</select> <input class="button2" type="submit" value="{L_GO}" />
|
||||
{L_SELECT_FORM}{L_COLON} <select name="mode" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_FORM_OPTIONS}</select> <input class="button2" type="submit" value="{L_GO}" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@ -106,7 +106,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_ACP_USER_RANK}</legend>
|
||||
<dl>
|
||||
<dt><label for="user_rank">{L_USER_RANK}:</label></dt>
|
||||
<dt><label for="user_rank">{L_USER_RANK}{L_COLON}</label></dt>
|
||||
<dd><select name="user_rank" id="user_rank">{S_RANK_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -146,7 +146,7 @@
|
|||
|
||||
<!-- IF S_GROUP_OPTIONS -->
|
||||
<fieldset class="quick">
|
||||
{L_USER_GROUP_ADD}: <select name="g">{S_GROUP_OPTIONS}</select> <input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
{L_USER_GROUP_ADD}{L_COLON} <select name="g">{S_GROUP_OPTIONS}</select> <input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
<!-- ENDIF -->
|
||||
|
@ -177,7 +177,7 @@
|
|||
<tbody>
|
||||
<!-- BEGIN attach -->
|
||||
<!-- IF attach.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
|
||||
<td><a href="{attach.U_DOWNLOAD}">{attach.REAL_FILENAME}</a><br /><span class="small"><!-- IF attach.S_IN_MESSAGE --><strong>{L_PM}: </strong><!-- ELSE --><strong>{L_POST}: </strong><!-- ENDIF --><a href="{attach.U_VIEW_TOPIC}">{attach.TOPIC_TITLE}</a></span></td>
|
||||
<td><a href="{attach.U_DOWNLOAD}">{attach.REAL_FILENAME}</a><br /><span class="small"><!-- IF attach.S_IN_MESSAGE --><strong>{L_PM}{L_COLON} </strong><!-- ELSE --><strong>{L_POST}{L_COLON} </strong><!-- ENDIF --><a href="{attach.U_VIEW_TOPIC}">{attach.TOPIC_TITLE}</a></span></td>
|
||||
<td style="text-align: center">{attach.POST_TIME}</td>
|
||||
<td style="text-align: center">{attach.SIZE}</td>
|
||||
<td style="text-align: center">{attach.DOWNLOAD_COUNT}</td>
|
||||
|
@ -192,7 +192,7 @@
|
|||
</div>
|
||||
<!-- ENDIF -->
|
||||
<fieldset class="display-options">
|
||||
{L_SORT_BY}: <select name="sk">{S_SORT_KEY}</select> <select name="sd">{S_SORT_DIR}</select>
|
||||
{L_SORT_BY}{L_COLON} <select name="sk">{S_SORT_KEY}</select> <select name="sd">{S_SORT_DIR}</select>
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
</fieldset>
|
||||
<hr />
|
||||
|
@ -219,7 +219,7 @@
|
|||
<form id="select_forum" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset class="quick" style="text-align: left;">
|
||||
{L_SELECT_FORUM}: <select name="f">{S_FORUM_OPTIONS}</select>
|
||||
{L_SELECT_FORUM}{L_COLON} <select name="f">{S_FORUM_OPTIONS}</select>
|
||||
<input class="button2" type="submit" value="{L_GO}" name="select" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
|
|
@ -3,36 +3,36 @@
|
|||
<fieldset>
|
||||
<legend>{L_ACP_USER_AVATAR}</legend>
|
||||
<dl>
|
||||
<dt><label>{L_CURRENT_IMAGE}:</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
|
||||
<dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
|
||||
<dd>{AVATAR_IMAGE}</dd>
|
||||
<dd><label><input type="checkbox" class="radio" name="delete" /> {L_DELETE_AVATAR}</label></dd>
|
||||
</dl>
|
||||
<!-- IF not S_IN_AVATAR_GALLERY -->
|
||||
<!-- IF S_UPLOAD_FILE -->
|
||||
<dl>
|
||||
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></dt>
|
||||
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}{L_COLON}</label></dt>
|
||||
<dd><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_MAX_FILESIZE}" /><input type="file" id="uploadfile" name="uploadfile" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_REMOTE_UPLOAD -->
|
||||
<dl>
|
||||
<dt><label for="uploadurl">{L_UPLOAD_AVATAR_URL}:</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
|
||||
<dt><label for="uploadurl">{L_UPLOAD_AVATAR_URL}{L_COLON}</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
|
||||
<dd><input name="uploadurl" type="text" id="uploadurl" value="" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_ALLOW_REMOTE -->
|
||||
<dl>
|
||||
<dt><label for="remotelink">{L_LINK_REMOTE_AVATAR}:</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
|
||||
<dt><label for="remotelink">{L_LINK_REMOTE_AVATAR}{L_COLON}</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
|
||||
<dd><input name="remotelink" type="text" id="remotelink" value="" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="width">{L_LINK_REMOTE_SIZE}:</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
|
||||
<dt><label for="width">{L_LINK_REMOTE_SIZE}{L_COLON}</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
|
||||
<dd><input name="width" type="text" id="width" size="3" value="{USER_AVATAR_WIDTH}" /> <span>{L_PIXEL} × </span> <input type="text" name="height" size="3" value="{USER_AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_DISPLAY_GALLERY -->
|
||||
<dl>
|
||||
<dt><label>{L_AVATAR_GALLERY}:</label></dt>
|
||||
<dt><label>{L_AVATAR_GALLERY}{L_COLON}</label></dt>
|
||||
<dd><input class="button2" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
@ -42,7 +42,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_AVATAR_GALLERY}</legend>
|
||||
<dl>
|
||||
<dt><label for="category">{L_AVATAR_CATEGORY}:</label></dt>
|
||||
<dt><label for="category">{L_AVATAR_CATEGORY}{L_COLON}</label></dt>
|
||||
<dd><select name="category" id="category">{S_CAT_OPTIONS}</select> <input class="button2" type="submit" value="{L_GO}" name="display_gallery" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<!-- ENDIF -->
|
||||
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
|
||||
{L_DISPLAY_LOG}{L_COLON} {S_LIMIT_DAYS} {L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
</fieldset>
|
||||
<hr />
|
||||
|
|
|
@ -3,54 +3,54 @@
|
|||
<fieldset>
|
||||
<legend>{L_ACP_USER_OVERVIEW}</legend>
|
||||
<dl>
|
||||
<dt><label for="user">{L_USERNAME}:</label><br /><span>{L_NAME_CHARS_EXPLAIN}</span></dt>
|
||||
<dt><label for="user">{L_USERNAME}{L_COLON}</label><br /><span>{L_NAME_CHARS_EXPLAIN}</span></dt>
|
||||
<dd><input type="text" id="user" name="user" value="{USER}" /></dd>
|
||||
<!-- IF U_SWITCH_PERMISSIONS --><dd>[ <a href="{U_SWITCH_PERMISSIONS}">{L_USE_PERMISSIONS}</a> ]</dd><!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- IF S_USER_INACTIVE -->
|
||||
<dl>
|
||||
<dt><label>{L_USER_IS_INACTIVE}:</label></dt>
|
||||
<dt><label>{L_USER_IS_INACTIVE}{L_COLON}</label></dt>
|
||||
<dd><strong>{USER_INACTIVE_REASON}</strong></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label>{L_REGISTERED}:</label></dt>
|
||||
<dt><label>{L_REGISTERED}{L_COLON}</label></dt>
|
||||
<dd><strong>{USER_REGISTERED}</strong></dd>
|
||||
</dl>
|
||||
<!-- IF S_USER_IP -->
|
||||
<dl>
|
||||
<dt><label>{L_REGISTERED_IP}:</label></dt>
|
||||
<dt><label>{L_REGISTERED_IP}{L_COLON}</label></dt>
|
||||
<dd><a href="{U_SHOW_IP}">{REGISTERED_IP}</a></dd>
|
||||
<dd>[ <a href="{U_WHOIS}" onclick="popup(this.href, 700, 500, '_whois'); return false;">{L_WHOIS}</a> ]</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label>{L_LAST_ACTIVE}:</label></dt>
|
||||
<dt><label>{L_LAST_ACTIVE}{L_COLON}</label></dt>
|
||||
<dd><strong>{USER_LASTACTIVE}</strong></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_POSTS}:</label></dt>
|
||||
<dt><label>{L_POSTS}{L_COLON}</label></dt>
|
||||
<dd><strong>{USER_POSTS}</strong><!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --> (<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --> ({L_POSTS_IN_QUEUE})<!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_WARNINGS}:</label></dt>
|
||||
<dt><label>{L_WARNINGS}{L_COLON}</label></dt>
|
||||
<dd><strong>{USER_WARNINGS}</strong></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="user_founder">{L_FOUNDER}:</label><br /><span>{L_FOUNDER_EXPLAIN}</span></dt>
|
||||
<dt><label for="user_founder">{L_FOUNDER}{L_COLON}</label><br /><span>{L_FOUNDER_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="user_founder" value="1"<!-- IF S_USER_FOUNDER --> id="user_founder" checked="checked"<!-- ENDIF --><!-- IF not S_FOUNDER --> disabled="disabled"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="user_founder" value="0"<!-- IF not S_USER_FOUNDER --> id="user_founder" checked="checked"<!-- ENDIF --><!-- IF not S_FOUNDER --> disabled="disabled"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="user_email">{L_EMAIL}:</label></dt>
|
||||
<dt><label for="user_email">{L_EMAIL}{L_COLON}</label></dt>
|
||||
<dd><input class="text medium" type="text" id="user_email" name="user_email" value="{USER_EMAIL}" autocomplete="off" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="new_password">{L_NEW_PASSWORD}:</label><br /><span>{L_CHANGE_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dt><label for="new_password">{L_NEW_PASSWORD}{L_COLON}</label><br /><span>{L_CHANGE_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dd><input type="password" id="new_password" name="new_password" value="" autocomplete="off" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}:</label><br /><span>{L_CONFIRM_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}{L_COLON}</label><br /><span>{L_CONFIRM_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dd><input type="password" id="password_confirm" name="password_confirm" value="" autocomplete="off" /></dd>
|
||||
</dl>
|
||||
|
||||
|
@ -107,16 +107,16 @@
|
|||
<fieldset>
|
||||
<legend>{L_USER_TOOLS}</legend>
|
||||
<dl>
|
||||
<dt><label for="quicktools">{L_QUICK_TOOLS}:</label></dt>
|
||||
<dt><label for="quicktools">{L_QUICK_TOOLS}{L_COLON}</label></dt>
|
||||
<dd><select id="quicktools" name="action" onchange="display_reason(this.options[this.selectedIndex].value);">{S_ACTION_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<div style="display: none;" id="reasons">
|
||||
<dl>
|
||||
<dt><label for="ban_reason">{L_BAN_REASON}:</label></dt>
|
||||
<dt><label for="ban_reason">{L_BAN_REASON}{L_COLON}</label></dt>
|
||||
<dd><input name="ban_reason" type="text" class="text medium" maxlength="3000" id="ban_reason" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ban_give_reason">{L_BAN_GIVE_REASON}:</label></dt>
|
||||
<dt><label for="ban_give_reason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
|
||||
<dd><input name="ban_give_reason" type="text" class="text medium" maxlength="3000" id="ban_give_reason" /></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
@ -135,7 +135,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_DELETE_USER}</legend>
|
||||
<dl>
|
||||
<dt><label for="delete_type">{L_DELETE_USER}:</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
|
||||
<dt><label for="delete_type">{L_DELETE_USER}{L_COLON}</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
|
||||
<dd>
|
||||
<!-- IF USER_HAS_POSTS -->
|
||||
<select id="delete_type" name="delete_type"><option class="sep" value="">{L_SELECT_OPTION}</option><option value="retain">{L_RETAIN_POSTS}</option><option value="remove">{L_DELETE_POSTS}</option></select>
|
||||
|
|
|
@ -9,52 +9,52 @@
|
|||
<fieldset>
|
||||
<legend>{L_UCP_PREFS_PERSONAL}</legend>
|
||||
<dl>
|
||||
<dt><label for="viewemail">{L_SHOW_EMAIL}:</label></dt>
|
||||
<dt><label for="viewemail">{L_SHOW_EMAIL}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="viewemail" value="1"<!-- IF VIEW_EMAIL --> id="viewemail" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="viewemail" value="0"<!-- IF not VIEW_EMAIL --> id="viewemail" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="massemail">{L_ADMIN_EMAIL}:</label></dt>
|
||||
<dt><label for="massemail">{L_ADMIN_EMAIL}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="massemail" value="1"<!-- IF MASS_EMAIL --> id="massemail" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="massemail" value="0"<!-- IF not MASS_EMAIL --> id="massemail" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="allowpm">{L_ALLOW_PM}:</label><br /><span>{L_ALLOW_PM_EXPLAIN}</span></dt>
|
||||
<dt><label for="allowpm">{L_ALLOW_PM}{L_COLON}</label><br /><span>{L_ALLOW_PM_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="allowpm" value="1"<!-- IF ALLOW_PM --> id="allowpm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="allowpm" value="0"<!-- IF not ALLOW_PM --> id="allowpm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="hideonline">{L_HIDE_ONLINE}:</label></dt>
|
||||
<dt><label for="hideonline">{L_HIDE_ONLINE}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="hideonline" value="1"<!-- IF HIDE_ONLINE --> id="hideonline" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="hideonline" value="0"<!-- IF not HIDE_ONLINE --> id="hideonline" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="notifymethod">{L_NOTIFY_METHOD}:</label><br /><span>{L_NOTIFY_METHOD_EXPLAIN}</span></dt>
|
||||
<dt><label for="notifymethod">{L_NOTIFY_METHOD}{L_COLON}</label><br /><span>{L_NOTIFY_METHOD_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="notifymethod" value="0"<!-- IF NOTIFY_EMAIL --> id="notifymethod" checked="checked"<!-- ENDIF --> /> {L_NOTIFY_METHOD_EMAIL}</label>
|
||||
<label><input type="radio" class="radio" name="notifymethod" value="1"<!-- IF NOTIFY_IM --> id="notifymethod" checked="checked"<!-- ENDIF --><!-- IF S_JABBER_DISABLED --> disabled="disabled"<!-- ENDIF --> /> {L_NOTIFY_METHOD_IM}</label>
|
||||
<label><input type="radio" class="radio" name="notifymethod" value="2"<!-- IF NOTIFY_BOTH --> id="notifymethod" checked="checked"<!-- ENDIF --> /> {L_NOTIFY_METHOD_BOTH}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="notifypm">{L_NOTIFY_ON_PM}:</label></dt>
|
||||
<dt><label for="notifypm">{L_NOTIFY_ON_PM}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="notifypm" value="1"<!-- IF NOTIFY_PM --> id="notifypm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="notifypm" value="0"<!-- IF not NOTIFY_PM --> id="notifypm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="popuppm">{L_POPUP_ON_PM}:</label></dt>
|
||||
<dt><label for="popuppm">{L_POPUP_ON_PM}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="popuppm" value="1"<!-- IF POPUP_PM --> id="popuppm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="popuppm" value="0"<!-- IF not POPUP_PM --> id="popuppm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="lang">{L_BOARD_LANGUAGE}:</label></dt>
|
||||
<dt><label for="lang">{L_BOARD_LANGUAGE}{L_COLON}</label></dt>
|
||||
<dd><select id="lang" name="lang">{S_LANG_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="style">{L_BOARD_STYLE}:</label></dt>
|
||||
<dt><label for="style">{L_BOARD_STYLE}{L_COLON}</label></dt>
|
||||
<dd><select id="style" name="style">{S_STYLE_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<!-- INCLUDE timezone_option.html -->
|
||||
<dl>
|
||||
<dt><label for="dateoptions">{L_BOARD_DATE_FORMAT}:</label><br /><span>{L_BOARD_DATE_FORMAT_EXPLAIN}</span></dt>
|
||||
<dt><label for="dateoptions">{L_BOARD_DATE_FORMAT}{L_COLON}</label><br /><span>{L_BOARD_DATE_FORMAT_EXPLAIN}</span></dt>
|
||||
<dd><select name="dateoptions" id="dateoptions" onchange="if(this.value=='custom'){dE('custom_date',1);}else{dE('custom_date',-1);} if (this.value == 'custom') { document.getElementById('dateformat').value = default_dateformat; } else { document.getElementById('dateformat').value = this.value; }">{S_DATEFORMAT_OPTIONS}</select></dd>
|
||||
<dd><div id="custom_date"<!-- IF not S_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" maxlength="30" /></div></dd>
|
||||
</dl>
|
||||
|
@ -63,22 +63,22 @@
|
|||
<fieldset>
|
||||
<legend>{L_UCP_PREFS_POST}</legend>
|
||||
<dl>
|
||||
<dt><label for="bbcode">{L_DEFAULT_BBCODE}:</label></dt>
|
||||
<dt><label for="bbcode">{L_DEFAULT_BBCODE}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="bbcode" value="1"<!-- IF BBCODE --> id="bbcode" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="bbcode" value="0"<!-- IF not BBCODE --> id="bbcode" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="smilies">{L_DEFAULT_SMILIES}:</label></dt>
|
||||
<dt><label for="smilies">{L_DEFAULT_SMILIES}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="smilies" value="1"<!-- IF SMILIES --> id="smilies" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="smilies" value="0"<!-- IF not SMILIES --> id="smilies" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="sig">{L_DEFAULT_ADD_SIG}:</label></dt>
|
||||
<dt><label for="sig">{L_DEFAULT_ADD_SIG}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="sig" value="1"<!-- IF ATTACH_SIG --> id="sig" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="sig" value="0"<!-- IF not ATTACH_SIG --> id="sig" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="notify">{L_DEFAULT_NOTIFY}:</label></dt>
|
||||
<dt><label for="notify">{L_DEFAULT_NOTIFY}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="notify" value="1"<!-- IF NOTIFY --> id="notify" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="notify" value="0"<!-- IF not NOTIFY --> id="notify" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
@ -87,57 +87,57 @@
|
|||
<fieldset>
|
||||
<legend>{L_UCP_PREFS_VIEW}</legend>
|
||||
<dl>
|
||||
<dt><label for="view_images">{L_VIEW_IMAGES}:</label></dt>
|
||||
<dt><label for="view_images">{L_VIEW_IMAGES}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="view_images" value="1"<!-- IF VIEW_IMAGES --> id="view_images" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="view_images" value="0"<!-- IF not VIEW_IMAGES --> id="view_images" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="view_flash">{L_VIEW_FLASH}:</label></dt>
|
||||
<dt><label for="view_flash">{L_VIEW_FLASH}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="view_flash" value="1"<!-- IF VIEW_FLASH --> id="view_flash" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="view_flash" value="0"<!-- IF not VIEW_FLASH --> id="view_flash" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="view_smilies">{L_VIEW_SMILIES}:</label></dt>
|
||||
<dt><label for="view_smilies">{L_VIEW_SMILIES}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="view_smilies" value="1"<!-- IF VIEW_SMILIES --> id="view_smilies" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="view_smilies" value="0"<!-- IF not VIEW_SMILIES --> id="view_smilies" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="view_sigs">{L_VIEW_SIGS}:</label></dt>
|
||||
<dt><label for="view_sigs">{L_VIEW_SIGS}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="view_sigs" value="1"<!-- IF VIEW_SIGS --> id="view_sigs" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="view_sigs" value="0"<!-- IF not VIEW_SIGS --> id="view_sigss" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="view_avatars">{L_VIEW_AVATARS}:</label></dt>
|
||||
<dt><label for="view_avatars">{L_VIEW_AVATARS}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="view_avatars" value="1"<!-- IF VIEW_AVATARS --> id="view_avatars" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="view_avatars" value="0"<!-- IF not VIEW_AVATARS --> id="view_avatars" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="view_wordcensor">{L_DISABLE_CENSORS}:</label></dt>
|
||||
<dt><label for="view_wordcensor">{L_DISABLE_CENSORS}{L_COLON}</label></dt>
|
||||
<dd><label><input type="radio" class="radio" name="view_wordcensor" value="1"<!-- IF VIEW_WORDCENSOR --> id="view_wordcensor" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="view_wordcensor" value="0"<!-- IF not VIEW_WORDCENSOR --> id="view_wordcensor" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_VIEW_TOPICS_DAYS}:</label></dt>
|
||||
<dt><label>{L_VIEW_TOPICS_DAYS}{L_COLON}</label></dt>
|
||||
<dd>{S_TOPIC_SORT_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_VIEW_TOPICS_KEY}:</label></dt>
|
||||
<dt><label>{L_VIEW_TOPICS_KEY}{L_COLON}</label></dt>
|
||||
<dd>{S_TOPIC_SORT_KEY}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_VIEW_TOPICS_DIR}:</label></dt>
|
||||
<dt><label>{L_VIEW_TOPICS_DIR}{L_COLON}</label></dt>
|
||||
<dd>{S_TOPIC_SORT_DIR}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_VIEW_POSTS_DAYS}:</label></dt>
|
||||
<dt><label>{L_VIEW_POSTS_DAYS}{L_COLON}</label></dt>
|
||||
<dd>{S_POST_SORT_DAYS}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_VIEW_POSTS_KEY}:</label></dt>
|
||||
<dt><label>{L_VIEW_POSTS_KEY}{L_COLON}</label></dt>
|
||||
<dd>{S_POST_SORT_KEY}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>{L_VIEW_POSTS_DIR}:</label></dt>
|
||||
<dt><label>{L_VIEW_POSTS_DIR}{L_COLON}</label></dt>
|
||||
<dd>{S_POST_SORT_DIR}</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
|
|
@ -3,44 +3,44 @@
|
|||
<fieldset>
|
||||
<legend>{L_USER_PROFILE}</legend>
|
||||
<dl>
|
||||
<dt><label for="icq">{L_UCP_ICQ}:</label></dt>
|
||||
<dt><label for="icq">{L_UCP_ICQ}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="icq" name="icq" value="{ICQ}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="aim">{L_UCP_AIM}:</label></dt>
|
||||
<dt><label for="aim">{L_UCP_AIM}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="aim" name="aim" value="{AIM}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="msn">{L_UCP_MSNM}:</label></dt>
|
||||
<dt><label for="msn">{L_UCP_MSNM}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="msn" name="msn" value="{MSN}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="yim">{L_UCP_YIM}:</label></dt>
|
||||
<dt><label for="yim">{L_UCP_YIM}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="yim" name="yim" value="{YIM}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jabber">{L_UCP_JABBER}:</label></dt>
|
||||
<dt><label for="jabber">{L_UCP_JABBER}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="jabber" name="jabber" value="{JABBER}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="website">{L_WEBSITE}:</label></dt>
|
||||
<dt><label for="website">{L_WEBSITE}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="website" name="website" value="{WEBSITE}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="location">{L_LOCATION}:</label></dt>
|
||||
<dt><label for="location">{L_LOCATION}{L_COLON}</label></dt>
|
||||
<dd><input type="text" id="location" name="location" value="{LOCATION}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="occupation">{L_OCCUPATION}:</label></dt>
|
||||
<dt><label for="occupation">{L_OCCUPATION}{L_COLON}</label></dt>
|
||||
<dd><textarea id="occupation" name="occupation" rows="3" cols="30">{OCCUPATION}</textarea></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="interests">{L_INTERESTS}:</label></dt>
|
||||
<dt><label for="interests">{L_INTERESTS}{L_COLON}</label></dt>
|
||||
<dd><textarea id="interests" name="interests" rows="3" cols="30">{INTERESTS}</textarea></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="birthday">{L_BIRTHDAY}:</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
|
||||
<dd>{L_DAY}: <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}: <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}: <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
|
||||
<dt><label for="birthday">{L_BIRTHDAY}{L_COLON}</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
|
||||
<dd>{L_DAY}{L_COLON} <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}{L_COLON} <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}{L_COLON} <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
@ -49,7 +49,7 @@
|
|||
<legend>{L_USER_CUSTOM_PROFILE_FIELDS}</legend>
|
||||
<!-- BEGIN profile_fields -->
|
||||
<dl>
|
||||
<dt><label<!-- IF profile_fields.FIELD_ID --> for="{profile_fields.FIELD_ID}"<!-- ENDIF -->>{profile_fields.LANG_NAME}:</label><!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label<!-- IF profile_fields.FIELD_ID --> for="{profile_fields.FIELD_ID}"<!-- ENDIF -->>{profile_fields.LANG_NAME}{L_COLON}</label><!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{profile_fields.FIELD}</dd>
|
||||
<!-- IF profile_fields.ERROR -->
|
||||
<dd><span class="small" style="color: red;">{profile_fields.ERROR}</span></dd>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
d: '{LA_BBCODE_D_HELP}',
|
||||
tip: '{L_STYLES_TIP}'
|
||||
<!-- BEGIN custom_tags -->
|
||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
,cb_{custom_tags.BBCODE_ID}{L_COLON} '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
<!-- END custom_tags -->
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@
|
|||
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" onmouseover="helpline('d')" onmouseout="helpline('tip')" />
|
||||
<!-- ENDIF -->
|
||||
|
||||
{L_FONT_SIZE}: <select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_FONT_SIZE}" onmouseover="helpline('f')" onmouseout="helpline('tip')">
|
||||
{L_FONT_SIZE}{L_COLON} <select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_FONT_SIZE}" onmouseover="helpline('f')" onmouseout="helpline('tip')">
|
||||
<option value="50">{L_FONT_TINY}</option>
|
||||
<option value="85">{L_FONT_SMALL}</option>
|
||||
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
|
||||
|
@ -92,8 +92,8 @@
|
|||
// ]]>
|
||||
</script>
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();">{SIGNATURE}</textarea></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 5px;">
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();">{SIGNATURE}</textarea></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 90px; margin-top: 5px;">
|
||||
<!-- IF S_BBCODE_ALLOWED -->
|
||||
<label><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /> {L_DISABLE_BBCODE}</label>
|
||||
<!-- ENDIF -->
|
||||
|
@ -104,7 +104,7 @@
|
|||
<label><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /> {L_DISABLE_MAGIC_URL}</label>
|
||||
<!-- ENDIF -->
|
||||
</dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 10px;"><strong>{L_OPTIONS}: </strong>{BBCODE_STATUS} :: {IMG_STATUS} :: {FLASH_STATUS} :: {URL_STATUS} :: {SMILIES_STATUS}</dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 90px; margin-top: 10px;"><strong>{L_OPTIONS}{L_COLON} </strong>{BBCODE_STATUS} :: {IMG_STATUS} :: {FLASH_STATUS} :: {URL_STATUS} :: {SMILIES_STATUS}</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
|
|
@ -1148,55 +1148,79 @@ input.disabled {
|
|||
width: auto;
|
||||
text-align: right;
|
||||
margin-top: 5px;
|
||||
font-size: 0.85em;
|
||||
padding-bottom: 2px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.rtl .pagination {
|
||||
text-align: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.pagination strong,
|
||||
.pagination b {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.pagination span.page-sep {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.pagination span strong {
|
||||
padding: 0 2px;
|
||||
margin: 0 2px;
|
||||
font-weight: normal;
|
||||
font-size: 0.85em;
|
||||
color: #FFFFFF;
|
||||
background: #4692BF;
|
||||
border: 1px solid #4692BF;
|
||||
}
|
||||
|
||||
.pagination span a, .pagination span a:link, .pagination span a:visited, .pagination span a:active {
|
||||
font-weight: normal;
|
||||
font-size: 0.85em;
|
||||
text-decoration: none;
|
||||
color: #5C758C;
|
||||
margin: 0 2px;
|
||||
padding: 0 2px;
|
||||
background: #ECEDEE;
|
||||
border: 1px solid #B4BAC0;
|
||||
}
|
||||
|
||||
.pagination span a:hover {
|
||||
border-color: #368AD2;
|
||||
background: #368AD2;
|
||||
color: #FFFFFF;
|
||||
text-decoration: none;
|
||||
li.pagination {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.pagination img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.pagination ul {
|
||||
display: inline-block;
|
||||
*display: inline; /* IE7 inline-block hack */
|
||||
*zoom: 1;
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
li.pagination ul {
|
||||
margin-top: -2px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.pagination ul li, dl .pagination ul li, dl.icon .pagination ul li {
|
||||
display: inline;
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.pagination li a, .pagnation li span, li .pagination li a, li .pagnation li span, .pagination li.active span, .pagination li.ellipsis span {
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
padding: 0 2px;
|
||||
border: 1px solid transparent;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.pagination li a, .pagination li a:link, .pagination li a:visited {
|
||||
color: #5C758C;
|
||||
background-color: #ECEDEE;
|
||||
border-color: #B4BAC0;
|
||||
}
|
||||
|
||||
.pagination li.ellipsis span {
|
||||
background-color: transparent;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.pagination li.active span {
|
||||
color: #FFFFFF;
|
||||
background-color: #4692BF;
|
||||
border-color: #4692BF;
|
||||
}
|
||||
|
||||
.pagination li a:hover, .pagination .active a:hover {
|
||||
color: #FFFFFF;
|
||||
background-color: #368AD2;
|
||||
border-color: #368AD2;
|
||||
}
|
||||
|
||||
.pagination li a:active, .pagination li.active a:active {
|
||||
color: #5C758C;
|
||||
background-color: #ECEDEE;
|
||||
border-color: #B4BAC0;
|
||||
}
|
||||
|
||||
/* Action Highlighting
|
||||
---------------------------------------- */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<dl>
|
||||
<dt><label for="captcha_preview">{L_PREVIEW}:</label><br /><span>{L_CAPTCHA_PREVIEW_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_preview">{L_PREVIEW}{L_COLON}</label><br /><span>{L_CAPTCHA_PREVIEW_EXPLAIN}</span></dt>
|
||||
<dd><img src="{CONFIRM_IMAGE}" alt="{L_PREVIEW}" width="360" height="96" id="captcha_preview" /></dd>
|
||||
</dl>
|
||||
|
|
|
@ -14,32 +14,32 @@
|
|||
<legend>{L_GENERAL_OPTIONS}</legend>
|
||||
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_foreground_noise">{L_CAPTCHA_GD_FOREGROUND_NOISE}:</label><br /><span>{L_CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_gd_foreground_noise">{L_CAPTCHA_GD_FOREGROUND_NOISE}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN}</span></dt>
|
||||
<dd><label><input id="captcha_gd_foreground_noise" name="captcha_gd_foreground_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input name="captcha_gd_foreground_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_x_grid">{L_CAPTCHA_GD_X_GRID}:</label><br /><span>{L_CAPTCHA_GD_X_GRID_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_gd_x_grid">{L_CAPTCHA_GD_X_GRID}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_X_GRID_EXPLAIN}</span></dt>
|
||||
<dd><input id="captcha_gd_x_grid" name="captcha_gd_x_grid" value="{CAPTCHA_GD_X_GRID}" type="text" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_y_grid">{L_CAPTCHA_GD_Y_GRID}:</label><br /><span>{L_CAPTCHA_GD_Y_GRID_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_gd_y_grid">{L_CAPTCHA_GD_Y_GRID}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_Y_GRID_EXPLAIN}</span></dt>
|
||||
<dd><input id="captcha_gd_y_grid" name="captcha_gd_y_grid" value="{CAPTCHA_GD_Y_GRID}" type="text" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_wave">{L_CAPTCHA_GD_WAVE}:</label><br /><span>{L_CAPTCHA_GD_WAVE_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_gd_wave">{L_CAPTCHA_GD_WAVE}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_WAVE_EXPLAIN}</span></dt>
|
||||
<dd><label><input id="captcha_gd_wave" name="captcha_gd_wave" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input name="captcha_gd_wave" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_3d_noise">{L_CAPTCHA_GD_3D_NOISE}:</label><br /><span>{L_CAPTCHA_GD_3D_NOISE_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_gd_3d_noise">{L_CAPTCHA_GD_3D_NOISE}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_3D_NOISE_EXPLAIN}</span></dt>
|
||||
<dd><label><input id="captcha_gd_3d_noise" name="captcha_gd_3d_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input name="captcha_gd_3d_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_fonts">{L_CAPTCHA_GD_FONTS}:</label><br /><span>{L_CAPTCHA_GD_FONTS_EXPLAIN}</span></dt>
|
||||
<dt><label for="captcha_gd_fonts">{L_CAPTCHA_GD_FONTS}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_FONTS_EXPLAIN}</span></dt>
|
||||
<dd><label><input id="captcha_gd_fonts" name="captcha_gd_fonts" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 1 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_DEFAULT}</label>
|
||||
<label><input name="captcha_gd_fonts" value="2" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 2 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_NEW}</label>
|
||||
<label><input name="captcha_gd_fonts" value="3" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 3 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_LOWER}</label>
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_EDIT_QUESTION}</legend>
|
||||
<dl>
|
||||
<dt><label for="strict">{L_QUESTION_STRICT}:</label><br /><span>{L_QUESTION_STRICT_EXPLAIN}</span></dt>
|
||||
<dt><label for="strict">{L_QUESTION_STRICT}{L_COLON}</label><br /><span>{L_QUESTION_STRICT_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="strict" value="1"<!-- IF STRICT --> id="strict" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="strict" value="0"<!-- IF not STRICT --> id="strict" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<dl>
|
||||
<dt><label for="answer"><!-- IF QA_CONFIRM_QUESTION --> {QA_CONFIRM_QUESTION} <!-- ELSE --> {L_CONFIRM_QUESTION} <!-- ENDIF -->:</label><br /><span>{L_CONFIRM_QUESTION_EXPLAIN}</span></dt>
|
||||
<dt><label for="answer"><!-- IF QA_CONFIRM_QUESTION --> {QA_CONFIRM_QUESTION} <!-- ELSE --> {L_CONFIRM_QUESTION} <!-- ENDIF -->{L_COLON}</label><br /><span>{L_CONFIRM_QUESTION_EXPLAIN}</span></dt>
|
||||
|
||||
<dd>
|
||||
<input type="text" tabindex="10" name="answer" id="answer" size="45" class="inputbox autowidth" title="{L_ANSWER}" />
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
<legend>{L_GENERAL_OPTIONS}</legend>
|
||||
|
||||
<dl>
|
||||
<dt><label for="recaptcha_pubkey">{L_RECAPTCHA_PUBLIC}:</label><br /><span>{L_RECAPTCHA_PUBLIC_EXPLAIN}</span></dt>
|
||||
<dt><label for="recaptcha_pubkey">{L_RECAPTCHA_PUBLIC}{L_COLON}</label><br /><span>{L_RECAPTCHA_PUBLIC_EXPLAIN}</span></dt>
|
||||
<dd><input id="recaptcha_pubkey" name="recaptcha_pubkey" value="{RECAPTCHA_PUBKEY}" size="50" type="text" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="recaptcha_privkey">{L_RECAPTCHA_PRIVATE}:</label><br /><span>{L_RECAPTCHA_PRIVATE_EXPLAIN}</span></dt>
|
||||
<dt><label for="recaptcha_privkey">{L_RECAPTCHA_PRIVATE}{L_COLON}</label><br /><span>{L_RECAPTCHA_PRIVATE_EXPLAIN}</span></dt>
|
||||
<dd><input id="recaptcha_privkey" name="recaptcha_privkey" value="{RECAPTCHA_PRIVKEY}" size="50" type="text" /></dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -2,6 +2,23 @@
|
|||
|
||||
<form id="confirm" method="post" action="{S_CONFIRM_ACTION}">
|
||||
|
||||
<fieldset id="userlist">
|
||||
<h2>{L_PRUNE_USERS_LIST}</h2>
|
||||
<!-- IF S_DEACTIVATE --><p>{L_PRUNE_USERS_LIST_DEACTIVATE}</p><!-- ELSE --><p>{L_PRUNE_USERS_LIST_DELETE}</p><!-- ENDIF -->
|
||||
|
||||
<br />
|
||||
<!-- BEGIN users -->
|
||||
» <input type="checkbox" name="user_ids[]" value="{users.USER_ID}" checked="checked" />
|
||||
<a href="{users.U_PROFILE}">{users.USERNAME}</a>
|
||||
<!-- IF users.U_USER_ADMIN --> [ <a href="{users.U_USER_ADMIN}">{L_USER_ADMIN}</a> ]<!-- ENDIF --><br />
|
||||
<!-- END users -->
|
||||
<br />
|
||||
<span class="small">
|
||||
<a href="#" onclick="marklist('userlist', 'user_ids', true)">{L_MARK_ALL}</a> •
|
||||
<a href="#" onclick="marklist('userlist', 'user_ids', false)">{L_UNMARK_ALL}</a>
|
||||
</span>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<h1>{MESSAGE_TITLE}</h1>
|
||||
<p>{MESSAGE_TEXT}</p>
|
||||
|
@ -12,17 +29,6 @@
|
|||
<input type="submit" name="confirm" value="{L_YES}" class="button2" />
|
||||
<input type="submit" name="cancel" value="{L_NO}" class="button2" />
|
||||
</div>
|
||||
|
||||
<h2>{L_PRUNE_USERS_LIST}</h2>
|
||||
<!-- IF S_DEACTIVATE --><p>{L_PRUNE_USERS_LIST_DEACTIVATE}</p><!-- ELSE --><p>{L_PRUNE_USERS_LIST_DELETE}</p><!-- ENDIF -->
|
||||
|
||||
<br />
|
||||
<!-- BEGIN users -->
|
||||
» <a href="{users.U_PROFILE}">{users.USERNAME}</a><!-- IF users.U_USER_ADMIN --> [<a href="{users.U_USER_ADMIN}">{L_USER_ADMIN}</a>]<!-- ENDIF --><br />
|
||||
<!-- END users -->
|
||||
|
||||
<br /><br />
|
||||
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<!-- END int -->
|
||||
|
||||
<!-- BEGIN date -->
|
||||
<span>{L_DAY}:</span> <select name="{date.FIELD_IDENT}_day" id="{date.FIELD_IDENT}_day">{date.S_DAY_OPTIONS}</select>
|
||||
<span>{L_MONTH}:</span> <select name="{date.FIELD_IDENT}_month" id="{date.FIELD_IDENT}_month">{date.S_MONTH_OPTIONS}</select>
|
||||
<span>{L_YEAR}:</span> <select name="{date.FIELD_IDENT}_year" id="{date.FIELD_IDENT}_year">{date.S_YEAR_OPTIONS}</select>
|
||||
<span>{L_DAY}{L_COLON}</span> <select name="{date.FIELD_IDENT}_day" id="{date.FIELD_IDENT}_day">{date.S_DAY_OPTIONS}</select>
|
||||
<span>{L_MONTH}{L_COLON}</span> <select name="{date.FIELD_IDENT}_month" id="{date.FIELD_IDENT}_month">{date.S_MONTH_OPTIONS}</select>
|
||||
<span>{L_YEAR}{L_COLON}</span> <select name="{date.FIELD_IDENT}_year" id="{date.FIELD_IDENT}_year">{date.S_YEAR_OPTIONS}</select>
|
||||
<!-- END date -->
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
<!-- ELSE -->
|
||||
|
||||
<dl>
|
||||
<dt><label>{checks.TITLE}:</label><!-- IF checks.S_EXPLAIN --><br /><span class="explain">{checks.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label>{checks.TITLE}{L_COLON}</label><!-- IF checks.S_EXPLAIN --><br /><span class="explain">{checks.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{checks.RESULT}</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
@ -109,7 +109,7 @@
|
|||
<!-- ELSE -->
|
||||
|
||||
<dl>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span class="explain">{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span class="explain">{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{options.CONTENT}</dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ function dE(n, s, type)
|
|||
<!-- IF S_LANG_SELECT -->
|
||||
<form method="post" action="">
|
||||
<fieldset class="nobg">
|
||||
<label for="language">{L_SELECT_LANG}:</label>
|
||||
<label for="language">{L_SELECT_LANG}{L_COLON}</label>
|
||||
{S_LANG_SELECT}
|
||||
<input class="button1" type="submit" id="change_lang" name="change_lang" value="{L_CHANGE}" />
|
||||
</fieldset>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<!-- ELSE -->
|
||||
|
||||
<dl>
|
||||
<dt>{checks.TITLE}:<!-- IF checks.S_EXPLAIN --><br /><span class="explain">{checks.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt>{checks.TITLE}{L_COLON}<!-- IF checks.S_EXPLAIN --><br /><span class="explain">{checks.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{checks.RESULT}</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
@ -43,7 +43,7 @@
|
|||
<!-- ELSE -->
|
||||
|
||||
<dl>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span class="explain">{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span class="explain">{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
|
||||
<dd>{options.CONTENT}</dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -221,13 +221,13 @@
|
|||
<!-- BEGIN new -->
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF new.DIR_PART -->{new.DIR_PART}<br /><!-- ENDIF -->{new.FILE_PART}</strong>
|
||||
<!-- IF new.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{new.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
<!-- IF new.S_CUSTOM --><br /><span><em>{L_FILE_USED}{L_COLON} </em>{new.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;">
|
||||
<!-- IF not new.S_BINARY -->[<a href="{new.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{new.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
|
||||
</dd>
|
||||
<!-- IF new.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{new.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><label><input type="checkbox" name="no_update[]" value="{new.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- END new -->
|
||||
|
@ -245,11 +245,11 @@
|
|||
<!-- BEGIN not_modified -->
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF not_modified.DIR_PART -->{not_modified.DIR_PART}<br /><!-- ENDIF -->{not_modified.FILE_PART}</strong>
|
||||
<!-- IF not_modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{not_modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
<!-- IF not_modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}{L_COLON} </em>{not_modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not not_modified.S_BINARY -->[<a href="{not_modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{not_modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><!-- IF not not_modified.S_BINARY -->[<a href="{not_modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{not_modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
|
||||
<!-- IF not_modified.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{not_modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><label><input type="checkbox" name="no_update[]" value="{not_modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- END not_modified -->
|
||||
|
@ -266,24 +266,24 @@
|
|||
<legend><img src="{T_IMAGE_PATH}file_modified.gif" alt="{L_STATUS_MODIFIED}" /></legend>
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF modified.DIR_PART -->{modified.DIR_PART}<br /><!-- ENDIF -->{modified.FILE_PART}</strong>
|
||||
<!-- IF modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
<!-- IF modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}{L_COLON} </em>{modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"> </dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"> </dd>
|
||||
<!-- IF modified.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><label><input type="checkbox" name="no_update[]" value="{modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="0" checked="checked" /> {L_MERGE_MODIFICATIONS_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="1" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
<!-- END modified -->
|
||||
|
@ -299,13 +299,13 @@
|
|||
<!-- BEGIN new_conflict -->
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF new_conflict.DIR_PART -->{new_conflict.DIR_PART}<br /><!-- ENDIF -->{new_conflict.FILE_PART}</strong>
|
||||
<!-- IF new_conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{new_conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
<!-- IF new_conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}{L_COLON} </em>{new_conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;">
|
||||
<!-- IF not new_conflict.S_BINARY -->[<a href="{new_conflict.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{new_conflict.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
|
||||
</dd>
|
||||
<!-- IF new_conflict.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{new_conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><label><input type="checkbox" name="no_update[]" value="{new_conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- END new_conflict -->
|
||||
|
@ -322,38 +322,38 @@
|
|||
<legend><img src="{T_IMAGE_PATH}file_conflict.gif" alt="{L_STATUS_CONFLICT}" /></legend>
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF conflict.DIR_PART -->{conflict.DIR_PART}<br /><!-- ENDIF -->{conflict.FILE_PART}</strong>
|
||||
<!-- IF conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
<!-- IF conflict.NUM_CONFLICTS --><br /><span>{L_NUM_CONFLICTS}: {conflict.NUM_CONFLICTS}</span><!-- ENDIF -->
|
||||
<!-- IF conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}{L_COLON} </em>{conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
<!-- IF conflict.NUM_CONFLICTS --><br /><span>{L_NUM_CONFLICTS}{L_COLON} {conflict.NUM_CONFLICTS}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;">
|
||||
<!-- IF not conflict.S_BINARY -->[<a href="{conflict.U_SHOW_DIFF}">{L_DOWNLOAD_CONFLICTS}</a>]<br />{L_DOWNLOAD_CONFLICTS_EXPLAIN}
|
||||
<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
|
||||
</dd>
|
||||
<!-- IF conflict.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"><label><input type="checkbox" name="no_update[]" value="{conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- IF conflict.S_BINARY -->
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="1" checked="checked" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"> </dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;"> </dd>
|
||||
</dl>
|
||||
<!-- ELSE -->
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="3" checked="checked" /> {L_MERGE_NEW_FILE_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_NEW_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;">[<a href="{conflict.U_VIEW_NEW_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="4" /> {L_MERGE_MOD_FILE_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_MOD_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;">[<a href="{conflict.U_VIEW_MOD_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="1" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
</fieldset>
|
||||
|
@ -392,7 +392,7 @@
|
|||
<fieldset>
|
||||
<legend>{L_SELECT_DOWNLOAD_FORMAT}</legend>
|
||||
<dl>
|
||||
<dt><label for="use_method">{L_DOWNLOAD_AS}:</label></dt>
|
||||
<dt><label for="use_method">{L_DOWNLOAD_AS}{L_COLON}</label></dt>
|
||||
<dd>{RADIO_BUTTONS}</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -455,12 +455,12 @@
|
|||
<fieldset>
|
||||
<legend>{L_FTP_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label>{L_UPLOAD_METHOD}:</label></dt>
|
||||
<dt><label>{L_UPLOAD_METHOD}{L_COLON}</label></dt>
|
||||
<dd><strong>{UPLOAD_METHOD}</strong></dd>
|
||||
</dl>
|
||||
<!-- BEGIN data -->
|
||||
<dl>
|
||||
<dt><label for="{data.DATA}">{data.NAME}:</label><br /><span>{data.EXPLAIN}</span></dt>
|
||||
<dt><label for="{data.DATA}">{data.NAME}{L_COLON}</label><br /><span>{data.EXPLAIN}</span></dt>
|
||||
<dd><input type="<!-- IF data.DATA == 'password' -->password<!-- ELSE -->text<!-- ENDIF -->" id="{data.DATA}" name="{data.DATA}" value="{data.DEFAULT}" /></dd>
|
||||
</dl>
|
||||
<!-- END data -->
|
||||
|
|
|
@ -223,7 +223,7 @@ table.hrdiff caption span {
|
|||
<p id="skip"><a href="#acp">{L_SKIP}</a></p>
|
||||
<form method="post" action="">
|
||||
<fieldset class="quick">
|
||||
<label for="diff_mode">{L_SELECT_DIFF_MODE}:</label>
|
||||
<label for="diff_mode">{L_SELECT_DIFF_MODE}{L_COLON}</label>
|
||||
<select name="diff_mode" id="diff_mode">{S_DIFF_MODE_OPTIONS}</select>
|
||||
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_CHANGE}" />
|
||||
|
@ -231,7 +231,7 @@ table.hrdiff caption span {
|
|||
</form>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_DIFF_CONFLICT_FILE -->
|
||||
<div style="float: {S_CONTENT_FLOW_BEGIN};"><strong>{L_NUM_CONFLICTS}: {NUM_CONFLICTS}</strong></div>
|
||||
<div style="float: {S_CONTENT_FLOW_BEGIN};"><strong>{L_NUM_CONFLICTS}{L_COLON} {NUM_CONFLICTS}</strong></div>
|
||||
<br style="clear: both;" />
|
||||
<!-- ENDIF -->
|
||||
</div>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
var jump_page = '{LA_JUMP_PAGE}:';
|
||||
var jump_page = '{LA_JUMP_PAGE}{L_COLON}';
|
||||
var on_page = '{ON_PAGE}';
|
||||
var per_page = '{PER_PAGE}';
|
||||
var base_url = '{A_BASE_URL}';
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<legend>{L_LOOK_UP_FORUM}</legend>
|
||||
|
||||
<dl>
|
||||
<dt><label for="src_forum">{L_COPY_PERMISSIONS_FROM}:</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span></dt>
|
||||
<dt><label for="src_forum">{L_COPY_PERMISSIONS_FROM}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span></dt>
|
||||
<dd><select id="src_forum" name="src_forum_id"><option value="0">{L_SELECT_FORUM}</option><option value="-1">------------------</option>{S_FORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
@ -22,7 +22,7 @@
|
|||
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
|
||||
|
||||
<dl>
|
||||
<dt><label for="dest_forums">{L_COPY_PERMISSIONS_TO}:</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span></dt>
|
||||
<dt><label for="dest_forums">{L_COPY_PERMISSIONS_TO}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span></dt>
|
||||
<dd><select id="dest_forums" name="dest_forum_ids[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
<a href="#" onclick="swap_options('{p_mask.S_ROW_COUNT}', '{p_mask.f_mask.S_ROW_COUNT}', '0', true); return false;">{L_ADVANCED_PERMISSIONS}</a><!-- IF not p_mask.S_VIEW and p_mask.f_mask.S_CUSTOM --> *<!-- ENDIF -->
|
||||
</div>
|
||||
<dl class="permissions-simple">
|
||||
<dt style="width: 20%"><label for="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">{L_ROLE}:</label></dt>
|
||||
<dt style="width: 20%"><label for="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">{L_ROLE}{L_COLON}</label></dt>
|
||||
<!-- IF p_mask.f_mask.S_ROLE_OPTIONS -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 20%"><select id="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" onchange="set_role_settings(this.options[selectedIndex].value, 'advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')">{p_mask.f_mask.S_ROLE_OPTIONS}</select></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 20%"><select id="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" onchange="set_role_settings(this.options[selectedIndex].value, 'advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')">{p_mask.f_mask.S_ROLE_OPTIONS}</select></dd>
|
||||
<!-- ELSE -->
|
||||
<dd>{L_NO_ROLE_AVAILABLE}</dd>
|
||||
<!-- ENDIF -->
|
||||
|
@ -118,7 +118,7 @@
|
|||
</div>
|
||||
|
||||
<!-- IF not p_mask.S_VIEW -->
|
||||
<fieldset class="quick" style="margin-{S_CONTENT_FLOW_END}: 11px;">
|
||||
<fieldset class="quick" style="margin-{S_CONTENT_FLOW_END}{L_COLON} 11px;">
|
||||
<p class="small">{L_APPLY_PERMISSIONS_EXPLAIN}</p>
|
||||
<input class="button1" type="submit" name="psubmit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" value="{L_APPLY_PERMISSIONS}" />
|
||||
<!-- IF .p_mask.f_mask gt 1 or .p_mask gt 1 -->
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<!-- BEGIN role_mask -->
|
||||
|
||||
<table cellspacing="1">
|
||||
<caption><!-- IF role_mask.FORUM_ID -->{L_FORUM}: <!-- ENDIF -->{role_mask.NAME}</caption>
|
||||
<caption><!-- IF role_mask.FORUM_ID -->{L_FORUM}{L_COLON} <!-- ENDIF -->{role_mask.NAME}</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{L_USERS}</th>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<!-- IF U_BACK --><a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a><!-- ENDIF -->
|
||||
|
||||
<h3>{L_TRACE_FOR}: {PERMISSION_USERNAME} / <!-- IF FORUM_NAME -->{FORUM_NAME} / <!-- ENDIF -->{PERMISSION} </h3>
|
||||
<h3>{L_TRACE_FOR}{L_COLON} {PERMISSION_USERNAME} / <!-- IF FORUM_NAME -->{FORUM_NAME} / <!-- ENDIF -->{PERMISSION} </h3>
|
||||
|
||||
<br />
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
var jump_page = '{LA_JUMP_PAGE}:';
|
||||
var jump_page = '{LA_JUMP_PAGE}{L_COLON}';
|
||||
var on_page = '{ON_PAGE}';
|
||||
var per_page = '{PER_PAGE}';
|
||||
var base_url = '{A_BASE_URL}';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<dl>
|
||||
<dt><label for="timezone">{L_BOARD_TIMEZONE}:</label></dt>
|
||||
<dt><label for="timezone">{L_BOARD_TIMEZONE}{L_COLON}</label></dt>
|
||||
<!-- IF S_TZ_DATE_OPTIONS -->
|
||||
<dd id="tz_select_date" style="display: none;">
|
||||
<select name="tz_date" id="tz_date" class="autowidth tz_select">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* @copyright (c) 2005 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
* Minimum Requirement: PHP 5.3.2
|
||||
* Minimum Requirement: PHP 5.3.3
|
||||
*/
|
||||
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
|
@ -67,18 +67,6 @@ if (!defined('PHPBB_INSTALLED'))
|
|||
exit;
|
||||
}
|
||||
|
||||
// Load Extensions
|
||||
// dl() is deprecated and disabled by default as of PHP 5.3.
|
||||
if (!empty($load_extensions) && function_exists('dl'))
|
||||
{
|
||||
$load_extensions = explode(',', $load_extensions);
|
||||
|
||||
foreach ($load_extensions as $extension)
|
||||
{
|
||||
@dl(trim($extension));
|
||||
}
|
||||
}
|
||||
|
||||
// Include files
|
||||
require($phpbb_root_path . 'includes/class_loader.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/di/processor/interface.' . $phpEx);
|
||||
|
|
|
@ -147,7 +147,10 @@ services:
|
|||
- @config
|
||||
- @user
|
||||
- @style.resource_locator
|
||||
- @style.path_provider_ext
|
||||
- @template_context
|
||||
|
||||
template_context:
|
||||
class: phpbb_template_context
|
||||
|
||||
user:
|
||||
class: phpbb_user
|
||||
|
|
|
@ -1554,6 +1554,8 @@ function get_schema_struct()
|
|||
'report_time' => array('TIMESTAMP', 0),
|
||||
'report_text' => array('MTEXT_UNI', ''),
|
||||
'reported_post_text' => array('MTEXT_UNI', ''),
|
||||
'reported_post_uid' => array('VCHAR:8', ''),
|
||||
'reported_post_bitfield' => array('VCHAR:255', ''),
|
||||
),
|
||||
'PRIMARY_KEY' => 'report_id',
|
||||
'KEYS' => array(
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
<li><a href="#update">Updating from stable releases of phpBB 3.1.x</a>
|
||||
<ol style="list-style-type: lower-roman;">
|
||||
<li><a href="#update_full">Full package</a></li>
|
||||
<li><a href="#update_files">Changed files only</a></li>
|
||||
<li><a href="#update_files">Changed files</a></li>
|
||||
<li><a href="#update_patch">Patch file</a></li>
|
||||
<li><a href="#update_auto">Automatic update package</a></li>
|
||||
<li><a href="#update_all">All package types</a></li>
|
||||
|
@ -75,6 +75,7 @@
|
|||
<li><a href="#webserver_configuration">Webserver configuration</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><a href="#anti_spam">Anti-Spam Measures</a></li>
|
||||
<li><a href="#disclaimer">Copyright and disclaimer</a></li>
|
||||
</ol>
|
||||
|
||||
|
@ -100,10 +101,10 @@
|
|||
<li>Change the permissions on config.php to be writable by all (666 or -rw-rw-rw- within your FTP Client)</li>
|
||||
<li>Change the permissions on the following directories to be writable by all (777 or -rwxrwxrwx within your FTP Client):<br />
|
||||
<code>store/</code>, <code>cache/</code>, <code>files/</code> and <code>images/avatars/upload/</code>.</li>
|
||||
<li>Using your web browser visit the location you placed phpBB3 with the addition of install/index.php or pointing directly to install/, e.g. http://www.mydomain.com/phpBB3/install/, http://www.mydomain.com/forum/install/ etc.</li>
|
||||
<li>Click the <em>INSTALL</em> tab, follow the steps and fill out all the requested information.</li>
|
||||
<li>Point your web browser to the location where you uploaded the phpBB3 files with the addition of <code>install/index.php</code> or simply <code>install/</code>, e.g. <code>http://www.example.com/phpBB3/install/index.php</code>, <code>http://www.example.com/forum/install/</code>.</li>
|
||||
<li>Click the <strong><em>INSTALL</em></strong> tab, follow the steps and fill out all the requested information.</li>
|
||||
<li>Change the permissions on config.php to be writable only by yourself (644 or -rw-r--r-- within your FTP Client)</li>
|
||||
<li>phpBB3 should now be available, please <strong>MAKE SURE</strong> you read at least <a href="#postinstall">Section 6</a> below for important, security related post-installation instructions.</li>
|
||||
<li>phpBB3 should now be available, please <strong>MAKE SURE</strong> you read at least <a href="#postinstall">Section 6</a> below for important, security related post-installation instructions, and also take note of <a href="#anti_spam">Section 7</a> regarding anti-spam measures.</li>
|
||||
</ol>
|
||||
|
||||
<p>If you experienced problems or do not know how to proceed with any of the steps above please read the rest of this document.</p>
|
||||
|
@ -138,12 +139,12 @@
|
|||
<li>Oracle</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>PHP 5.3.2+</strong> with support for the database you intend to use.</li>
|
||||
<li><strong>PHP 5.3.3+</strong> with support for the database you intend to use.</li>
|
||||
<li>The following PHP modules are required:</li>
|
||||
<ul>
|
||||
<li>json</li>
|
||||
</ul>
|
||||
<li>getimagesize() function need to be enabled.</li>
|
||||
<li>getimagesize() function must be enabled.</li>
|
||||
<li>Presence of the following modules within PHP will provide access to additional features, but they are not required:
|
||||
<ul>
|
||||
<li>zlib Compression support</li>
|
||||
|
@ -155,7 +156,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<p>If your server or hosting account does not meet the requirements above we are afraid phpBB 3.1.x is not for you.</p>
|
||||
<p>If your server or hosting account does not meet the requirements above then you will be unable to install phpBB 3.1.x.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -175,21 +176,21 @@
|
|||
|
||||
<p>Installation of phpBB3 will vary according to your server and database. If you have <em>shell access</em> to your account (via telnet or ssh for example) you may want to upload the entire phpBB3 archive (in binary mode!) to a directory on your host and unarchive it there.</p>
|
||||
|
||||
<p>If you do not have shell access or do not wish to use it you will need to decompress the phpBB3 archive to a local directory on your system using your favourite compression program, e.g. winzip, rar, zip, etc. From there you must FTP <strong>ALL</strong> the files it contains (being sure to retain the directory structure and filenames) to your host. Please ensure that the cases of filenames are retained, do <strong>NOT</strong> force filenames to all lower or upper case doing so will cause errors later.</p>
|
||||
<p>If you do not have shell access or do not wish to use it, you will need to decompress the phpBB3 archive to a local directory on your system using your favourite compression program, e.g. winzip, rar, zip, etc. From there you must FTP <strong>ALL</strong> the files it contains (being sure to retain the directory structure and filenames) to your host. Please ensure that the cases of filenames are retained, do <strong>NOT</strong> force filenames to all lower or upper case as doing so will cause errors later.</p>
|
||||
|
||||
<p>All .php, .inc, .sql, .cfg, .html and .txt files should be uploaded in <strong>ASCII</strong> mode, while all graphics should be uploaded in <strong>BINARY</strong> mode. If you are unfamiliar with what this means please refer to your FTP client documentation. In most cases this is all handled transparantly by your ftp client but if you encounter problems later you should be sure the files where uploaded correctly as described here.</p>
|
||||
<p>All .php, .sql, .cfg, .css, .js, .html, .htaccess and .txt files should be uploaded in <strong>ASCII</strong> mode, while all graphics should be uploaded in <strong>BINARY</strong> mode. If you are unfamiliar with what this means please refer to your FTP client documentation. In most cases this is all handled transparantly by your ftp client, but if you encounter problems later you should be sure the files were uploaded correctly as described here.</p>
|
||||
|
||||
<p>phpBB3 comes supplied with British English as its standard language. However a number of separate packs for different languages are available. If you are not a native English speaker you may wish to install one or more of these packages before continuing. The installation process below will allow you to select a default language from those available (you can of course change this default at a later stage). For more details of language packs, where to obtain them and how to install them please see the <a href="README.html#i18n">README</a>.</p>
|
||||
<p>phpBB3 comes supplied with British English as its standard language. However, a number of separate packs for different languages are available. If you are not a native English speaker you may wish to install one or more of these packages before continuing. The installation process below will allow you to select a default language from those available (you can, of course, change this default at a later stage). For more details on language packs, where to obtain them and how to install them please see the <a href="README.html#i18n">README</a>.</p>
|
||||
|
||||
<p>Once all the files have been uploaded to your site you should point your browser at this location with the addition of <code>install/</code>. For example if your domain name is <em>www.mydomain.tld</em> and you placed phpBB3 in a directory /phpBB3 off your web root you would enter <em>http://www.mydomain.tld/phpBB3/install/</em> or (alternatively) <em>http://www.mydomain.tld/phpBB3/install/index.php</em> into your browser. When you have done this you should see the phpBB3 Installation screen appear.</p>
|
||||
<p>Once all the files have been uploaded to your site, you should point your browser at this location with the addition of <code>/install/</code>. For example, if your domain name is <code>www.example.com</code> and you placed the phpBB3 files in the directory <code>/phpBB3</code> off your web root you would enter <code>http://www.example.com/phpBB3/install/</code> or (alternatively) <code>http://www.example.com/phpBB3/install/index.php</code> into your browser. When you have done this, you should see the <strong><em>phpBB3 Introduction</em></strong> screen appear.</p>
|
||||
|
||||
<h4>Introduction:</h4>
|
||||
|
||||
<p>The installation screen gives you a short introduction into phpBB. It allows you to read the license phpBB3 is released under (General Public License) and provides information about how you can receive support. To start the installation, use the <em>Install</em> button.</p>
|
||||
<p>The initial screen gives you a short introduction into phpBB. It allows you to read the license phpBB3 is released under (General Public License v2) and provides information about how you can receive support. To start the installation, use the <strong><em>INSTALL</em></strong> tab.</p>
|
||||
|
||||
<h4>Requirements</h4>
|
||||
|
||||
<p>The first page you will see after starting the installation is the Requirements list. phpBB3 checks automatically whether everything that it needs to run properly is installed on your server. You need to have at least the minimum PHP version installed, and at least one database available to continue the installation. Also important, is that all shown folders are available and do have the correct permissions. Please see the description of each section to find out whether they are optional or required for phpBB3 to run. If everything is in order, you can continue the installation with <em>Start Install</em>.</p>
|
||||
<p>The first page you will see after starting the installation is the Requirements list. phpBB3 automatically checks whether everything that it needs to run properly is installed on your server. You need to have at least the minimum PHP version installed, and at least one database available to continue the installation. Also important, is that all shown folders are available and have the correct permissions. Please see the description of each section to find out whether they are optional or required for phpBB3 to run. If everything is in order, you can continue the installation with <em>Start Install</em>.</p>
|
||||
|
||||
<h4>Database settings</h4>
|
||||
|
||||
|
@ -207,33 +208,33 @@
|
|||
<p><strong>Note:</strong> if you are installing using SQLite, you should enter the full path to your database file in the DSN field and leave the username and password fields blank. For security reasons, you should make sure that the database file is not stored in a location accessible from the web.</p>
|
||||
</div>
|
||||
|
||||
<p>You don't need to change the Prefix for tables in database setting, unless you plan on using multipe phpBB installations on one database. In this case you can use a different prefix for each installation to make it work.</p>
|
||||
<p>You don't need to change the Prefix for tables in database setting, unless you plan on using multipe phpBB installations on one database. In this case, you can use a different prefix for each installation to make it work.</p>
|
||||
|
||||
<p>After you entered your details, you can continue with the Proceed to next step button. Now phpBB3 will check whether the data you entered will lead to a successful database connection and whether tables with the same prefix already exist.</p>
|
||||
<p>After you entered your details, you can continue with the <em>Proceed to next step</em> button. Now phpBB3 will check whether the data you entered will lead to a successful database connection and whether tables with the same prefix already exist.</p>
|
||||
|
||||
<p>A <em>Could not connect to the database</em> error means that you didn't enter the database data correctly and it is not possible for phpBB to connect. Make sure that everything you entered is in order and try again. Again, if you are unsure about your database settings, please contact your host.</p>
|
||||
|
||||
<p>If you installed another version of phpBB before on the same database with the same prefix, phpBB will inform you and you just need to enter a different database prefix.</p>
|
||||
|
||||
<p>If you see the Successful Connection message, you can continue to the next step.</p>
|
||||
<p>If you see the <em>Successful Connection</em> message, you can continue to the next step.</p>
|
||||
|
||||
<h4>Administrator details</h4>
|
||||
|
||||
<p>Now you have to create your administration user. This user will have full administration access and he/she will be the first user on your forum. All fields on this page are required. You can also set the default language of your forum on this page. In a vanilla phpBB3 installation we only include English. You can download further languages from <a href="http://www.phpbb.com/">www.phpbb.com</a>, and add them before installing or later.</p>
|
||||
<p>Now you have to create your administration user. This user will have full administration access and he/she will be the first user on your forum. All fields on this page are required. You can also set the default language of your forum on this page. In a vanilla phpBB3 installation, we only include British English. You can download further languages from <a href="http://www.phpbb.com/">www.phpbb.com</a>, and add them before installing or later.</p>
|
||||
|
||||
<h4>Configuration file</h4>
|
||||
|
||||
<p>In this step, phpBB will try to write the configuration file automatically. The forum needs the configuration to run properly. It contains all database settings, so without it, phpBB will not be able to access the database.</p>
|
||||
<p>In this step, phpBB will try to write the configuration file automatically. The forum needs the configuration file in order to operate. It contains all the database settings, so without it, phpBB will not be able to access the database.</p>
|
||||
|
||||
<p>Usually writing the configuration file automatically works fine. But in some cases it can fail due to wrong file permissions, for instance. In this case, you need to upload the file manually. phpBB asks you to download the config.php file and tells you what to do with it. Please read the instructions carefully. After you have uploaded the file, use <em>Done</em> to get to the last step. If <em>Done</em> returns you to the same page as before, and does not return a success message, you did not upload the file correctly.</p>
|
||||
<p>Usually, writing the configuration file automatically works fine. If the file permissions are not set correctly, this process can fail. In this case, you need to upload the file manually. phpBB asks you to download the <code>config.php</code> file and tells you what to do with it. Please read the instructions carefully. After you have uploaded the file, use <em>Done</em> to get to the last step. If <em>Done</em> returns you to the same page as before, and does not return a success message, you did not upload the file correctly.</p>
|
||||
|
||||
<h4>Advanced settings</h4>
|
||||
|
||||
<p>The Advanced settings allow you to set some parameters of the board configuration. They are optional, and you can always change them later. So if you are not sure what these settings mean, proceed to the final step and finish the installation.</p>
|
||||
<p>The Advanced settings allow you to set additional parameters of the board configuration. They are optional and you can always change them later. So, even if you are not sure what these settings mean, you can still proceed to the final step and finish the installation.</p>
|
||||
|
||||
<p>If the installation was successful, you can now use the Login button to visit the Administration Control Panel. Congratulations, you have installed phpBB3 successfully. But there is still work ahead!</p>
|
||||
<p>If the installation was successful, you can now use the <em>Login</em> button to visit the Administration Control Panel. Congratulations, you have installed phpBB successfully. But there is still work ahead!</p>
|
||||
|
||||
<p>If you are unable to get phpBB3 installed even after reading this guide, please look at the support section to find out where you can ask for further assistance.</p>
|
||||
<p>If you are unable to get phpBB3 installed even after reading this guide, please look at the support section of the installer's introduction page to find out where you can ask for further assistance.</p>
|
||||
|
||||
<p>At this point if you are converting from phpBB 2.0.x, you should refer to the <a href="#convert">conversion steps</a> for further information. If not, you should remove the install directory from your server as you will only be able to access the Administration Control Panel whilst it is present.</p>
|
||||
|
||||
|
@ -253,55 +254,55 @@
|
|||
|
||||
<div class="content">
|
||||
|
||||
<p>If you are currently using a stable release of phpBB3 updating to this version is straightforward. You would have downloaded one of four packages and your choice determines what you need to do. <strong>Please Note</strong>: That before updating we heavily recommend you do a <em>full backup of your database and existing phpBB3 files</em>! If you are unsure how to achieve this please ask your hosting provider for advice.</p>
|
||||
<p>If you are currently using a stable release of phpBB3, updating to this version is straightforward. You would have downloaded one of four packages and your choice determines what you need to do. <strong>Note</strong>: Before updating, we heavily recommend you do a <em>full backup of your database and existing phpBB3 files</em>! If you are unsure how to achieve this please ask your hosting provider for advice.</p>
|
||||
|
||||
<p><strong>Please make sure you update your phpBB3 source files too, even if you run the <code>database_update.php</code> file.</strong></p>
|
||||
|
||||
<a name="update_full"></a><h3>4.i. Full package</h3>
|
||||
|
||||
<p>The full package is normally meant for new installations only, but if you want to replace all source files this package comes in handy.</p>
|
||||
<p>The full package is normally meant for new installations only, but if you want to replace all source files, this package comes in handy.</p>
|
||||
|
||||
<p>First you should make a copy of your existing <em>config.php</em> file, keep it in a safe place! Next delete all the existing phpBB3 files, you may want to leave your <code>files/</code> and <code>images/</code> directory in place. You can leave alternative styles in-place too. With this complete you can upload the new phpBB3 files (see <a href="#install">New installation</a> for details if necessary). Once complete copy back your saved <em>config.php</em>, replacing the new one. Another method is to just <strong>replace</strong> the existing files with the files from the full package - though make sure you do <strong>not</strong> overwrite your config.php file.</p>
|
||||
<p>First, you should make a copy of your existing <code>config.php</code> file; keep it in a safe place! Next, delete all the existing phpBB3 files, you may want to leave your <code>files/</code> and <code>images/</code> directorie in place. You can leave alternative styles in place too. With this complete, you can upload the new phpBB files (see <a href="#install">New installation</a> for details if necessary). Once complete, copy back your saved <code>config.php</code>, replacing the new one. Another method is to just <strong>replace</strong> the existing files with the files from the full package - though make sure you do <strong>not</strong> overwrite your config.php file.</p>
|
||||
|
||||
<p>You should now run <code>install/database_update.php</code> which, depending on your previous version, will make a number of database changes. You may receive <em>FAILURES</em> during this procedure, they should not be a cause for concern unless you see an actual <em>ERROR</em>, in which case the script will stop (in this case you should seek help via our forums or bug tracker).</p>
|
||||
<p>You should now run <code>install/database_update.php</code> which, depending on your previous version, will make a number of database changes. You may receive <em>FAILURES</em> during this procedure. They should not be a cause for concern unless you see an actual <em>ERROR</em>, in which case the script will stop (in this case you should seek help via our forums or bug tracker).</p>
|
||||
|
||||
<p>Once the install/database_update.php has completed you may proceed to the Administration Control Panel and check remove the install directory as advised.</p>
|
||||
<p>Once <code>install/database_update.php</code> has completed, you may proceed to the Administration Control Panel and then remove the install directory as advised.</p>
|
||||
|
||||
<a name="update_files"></a><h3>4.ii. Changed files only</h3>
|
||||
<a name="update_files"></a><h3>4.ii. Changed files</h3>
|
||||
|
||||
<p>This package is meant for those wanting to only replace changed files from a previous version to the latest version. This package normally contains the changed files from up to five previous versions.</p>
|
||||
<p>This package is meant for those wanting to only replace the files that were changed between a previous version and the latest version.</p>
|
||||
|
||||
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <samp>3.1.0</samp> you should select the phpBB-3.1.0_to_3.1.1.zip/tar.gz file.</p>
|
||||
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <strong>3.1.0</strong> you should select the appropriate <code>phpBB-3.1.1-files.zip/tar.bz2</code> file.</p>
|
||||
|
||||
<p>The directory structure has been preserved enabling you (if you wish) to simply upload the contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any MODs these files will overwrite the originals possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.</p>
|
||||
<p>The directory structure has been preserved, enabling you (if you wish) to simply upload the uncompressed contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any modifications (MODs) these files will overwrite the originals, possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.</p>
|
||||
|
||||
<p>As for the other update procedures you should run <b>install/database_update.php</b> after you have finished updating the files. This will update your database schema and increment the version number.</p>
|
||||
<p>As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and increment the version number.</p>
|
||||
|
||||
<a name="update_patch"></a><h3>4.iii. Patch file</h3>
|
||||
|
||||
<p>The patch file package is for those wanting to update through the patch application, and being comfortable with it.</p>
|
||||
<p>The patch file package is for those wanting to update through the patch application, and should only be used by those who are comfortable with it.</p>
|
||||
|
||||
<p>The patch file is one solution for those with many Modifications (MODs) or other changes who do not want to re-add them back to all the changed files if they use the method explained above. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application but still want to use this update approach, we strongly recommend the <a href="#update_auto">Automatic update package</a> explained below. It is also the recommended update method.</p>
|
||||
<p>The patch file is one solution for those with many Modifications (MODs) or other changes and do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application, but still want to use this update approach, we strongly recommend the <a href="#update_auto">Automatic update package</a> explained below. It is also the recommended update method.</p>
|
||||
|
||||
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is <samp>3.1.0</samp> you need the phpBB-3.1.0_to_3.1.1.patch file. Place the correct patch in the parent directory containing the phpBB3 core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <strong>patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME]</strong> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB3, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
|
||||
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is <strong>3.1.0</strong>, you need the <code>phpBB-3.1.1-patch.zip/tar.bz2</code> file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <code>patch -cl -d [PHPBB DIRECTORY] -p1 < [PATCH NAME]</code> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
|
||||
|
||||
<p>If you do get failures you should look at using the <a href="#update_files">Changed files only</a> package to replace the files which failed to patch, please note that you will need to manually re-add any Modifications (MODs) to these particular files. Alternatively if you know how you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.</p>
|
||||
<p>If you do get failures, you should look at using the <a href="#update_files">Changed Files</a> package to replace the files which failed to patch. Please note that you will need to manually re-add any MODs to these particular files. Alternatively, if you know how, you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.</p>
|
||||
|
||||
<p>You should of course delete the patch file (or files) after use. As for the other update procedures you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number.</p>
|
||||
<p>You should, of course, delete the patch file (or files) after use. As for the other update procedures, you should run <code>install/database_update.php</code> after you have finished updating the files. This will update your database schema and data (if appropriate) and increment the version number.</p>
|
||||
|
||||
<a name="update_auto"></a><h3>4.iv. Automatic update package</h3>
|
||||
|
||||
<p>This update method is the recommended method for updating. This package allows detecting changed files automatically and merges changes if needed.</p>
|
||||
<p>This update method is the recommended method for updating. This package detects changed files automatically and merges in changes if needed.</p>
|
||||
|
||||
<p>The automatic update package contains - contrary to the others - only the information required to update the previous release version to the latest available version. These packages are meant for use with the automatic update tool.</p>
|
||||
<p>The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.0.10</strong>, you need the <code>phpBB-3.0.10_to_3.0.11.zip/tar.bz2</code> file.</p>
|
||||
|
||||
<p>To perform the update, either follow the instructions from the <code>Administration Control Panel->System</code> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>
|
||||
<p>To perform the update, either follow the instructions from the <strong>Administration Control Panel->System</strong> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>
|
||||
|
||||
<ul>
|
||||
<li>Go to the <a href="http://www.phpbb.com/downloads/">downloads page</a> and download the latest update package listed there, matching your current version.</li>
|
||||
<li>Upload the archives contents to your phpBB installation - only the install folder is required. Upload the whole install folder, retaining the file structure.</li>
|
||||
<li>Upload the uncompressed archive contents to your phpBB installation - only the install folder is required. Upload the whole install folder, retaining the file structure.</li>
|
||||
<li>After the install folder is present, phpBB3 will go offline automatically.</li>
|
||||
<li>Point your browser to the install directory, for example <samp>http://www.example.com/phpBB3/install/</samp></li>
|
||||
<li>Point your browser to the install directory, for example <code>http://www.example.com/phpBB3/install/</code></li>
|
||||
<li>Choose the "Update" Tab and follow the instructions</li>
|
||||
</ul>
|
||||
|
||||
|
@ -309,7 +310,9 @@
|
|||
|
||||
<a name="update_all"></a><h3>4.v. All package types</h3>
|
||||
|
||||
<p>If you have non-English language packs installed you may want to see if a new version has been made available. A number of missing strings may have been added which, though not essential, may be beneficial to users. Please note that at this time not all language packs have been updated so you should be prepared to periodically check for updates.</p>
|
||||
<p>If you have non-English language packs installed, you may want to see if a new version has been made available. A number of missing strings may have been added which, though not essential, may be beneficial to users. Please note that at this time not all language packs have been updated so you should be prepared to periodically check for updates.</p>
|
||||
|
||||
<p>These update methods will only update the standard styles, <code>prosilver</code> and <code>subsilver2</code>, any other styles you have installed for your board will usually also need to be updated.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -331,47 +334,47 @@
|
|||
|
||||
<a name="prereq"></a><h3>5.i. Requirements before converting</h3>
|
||||
|
||||
<p>Before converting we heavily recommend you do a <em>full backup of your database and files</em>! If you are unsure how to achieve this please ask your hosting provider for advice. You basically need to follow the basic instructions given for <a href="#install">New installations</a>. Please <strong>do not</strong> overwrite any old files - install phpBB3 at a different location.</p>
|
||||
<p>Before converting, we heavily recommend you do a <em>full backup of your database and files</em>! If you are unsure how to achieve this, please ask your hosting provider for advice. You basically need to follow the instructions given for <a href="#install">New installations</a>. Please <strong>do not</strong> overwrite any old files - install phpBB3 at a different location.</p>
|
||||
|
||||
<p>Once you made a backup of everything and also have a brand new phpBB3 installation, you can now begin the conversion.</p>
|
||||
|
||||
<p>Note that the conversion requires CREATE and DROP privileges for the phpBB3's database user account.</p>
|
||||
<p>Note that the conversion requires <code>CREATE</code> and <code>DROP</code> privileges for the phpBB3 database user account.</p>
|
||||
|
||||
<a name="conversion"></a><h3>5.ii. Converting</h3>
|
||||
|
||||
<p>To begin the conversion visit the install folder of your phpBB3 installation (the same as you have done for installing). Now you will see a new tab <em>Convert</em>. Click this tab.</p>
|
||||
<p>To begin the conversion, visit the <code>install/</code> folder of your phpBB3 installation (the same as you have done for installing). Now you will see a new tab <em>Convert</em>. Click this tab.</p>
|
||||
|
||||
<p>As with install the conversion is automated. Your previous 2.0.x database tables will not be changed as well as the original 2.0.x files remaining unaltered. The conversion is actually only filling your phpBB3 database tables and copying additional data over to your phpBB3 installation. This has the benefit that if something goes wrong you are able to either re-run the conversion or continue a conversion, while your old board is still accessible. We really recommend you disable your old installation while converting, else you may have inconsistent data after the conversion.</p>
|
||||
<p>As with install, the conversion is automated. Your previous 2.0.x database tables will not be changed and the original 2.0.x files will remain unaltered. The conversion is actually only filling your phpBB3 database tables and copying additional data over to your phpBB3 installation. This has the benefit that if something goes wrong, you are able to either re-run the conversion or continue a conversion, while your old board is still accessible. We really recommend that you disable your old installation while converting, else you may have inconsistent data after the conversion.</p>
|
||||
|
||||
<p>Please note that this conversion process may take quite some time and depending on your hosting provider this may result in it failing (due to web server or other timeout issues). If this is the case you should ask your provider if they are willing to allow the convert script to temporarily exceed their limits (be nice and they will probably be quite helpful).</p>
|
||||
<p>Please note that this conversion process may take quite some time and depending on your hosting provider this may result in it failing (due to web server resource limits or other timeout issues). If this is the case, you should ask your provider if they are willing to allow the convert script to temporarily exceed their limits (be nice and they will probably be quite helpful). If your host is unwilling to increase the limits to run the convertor, please see this article for performing the conversion on your local machine: <a href="http://www.phpbb.com/kb/article/offline-conversions/">Knowledge Base - Offline Conversions</a></p>
|
||||
|
||||
<p>Once completed your board should be immediately available. If you encountered errors you should report the problems to our bug tracker or seek help via our forums (see <a href="README.html">README</a> for details).</p>
|
||||
<p>Once completed, your board should be immediately available. If you encountered errors, you should report the problems to our bug tracker or seek help via our forums (see <a href="README.html">README</a> for details).</p>
|
||||
|
||||
<a name="postreq"></a><h3>5.iii. Things to do after conversion</h3>
|
||||
|
||||
<p>After successful conversion there may be a few items you need to do - apart from checking if the installation is accessible and everything displayed correctly.</p>
|
||||
<p>After a successful conversion, there may be a few items you need to do - apart from checking if the installation is accessible and everything displayed correctly.</p>
|
||||
|
||||
<p>The first thing you may want to do is going to the administration control panel and checking every configuration item within the general tab. Thereafter you may want to adjust the forum descriptions/names if you entered HTML there. You also may want to access the other administrative sections, e.g. adjusting permissions, smilies, icons, ranks, etc.</p>
|
||||
<p>The first thing you may want to do is to go to the administration control panel and check every configuration item within the general tab. Thereafter, you may want to adjust the forum descriptions/names if you entered HTML there. You also may want to access the other administrative sections, e.g. adjusting permissions, smilies, icons, ranks, etc.</p>
|
||||
|
||||
<p>Within the conversion the search index has not been created or transferred. This means after conversion you are not able to find any matches if you want to search for something. We recommend you rebuild your search index within <code>Admin -> Maintenance -> Database -> Search Index</code>.</p>
|
||||
<p>During the conversion, the search index is not created or transferred. This means after conversion you are not able to find any matches if you want to search for something. We recommend you rebuild your search index within <strong>Administration Control Panel -> Maintenance -> Database -> Search Index</strong>.</p>
|
||||
|
||||
<p>After verifying the settings in the ACP, you can delete the install directory to enable the board. The board will stay disabled until you do so.</p>
|
||||
|
||||
<p>Once you are pleased with your new installation you may want to give it the name of your old installation, changing the directory name. With phpBB3 this is possible without any problems - but you may still want to check your cookie settings within the administration panel, if the cookie path need to be adjusted prior to renaming.</p>
|
||||
<p>Once you are pleased with your new installation, you may want to give it the name of your old installation, changing the directory name. With phpBB3 this is possible without any problems, but you may still want to check your cookie settings within the administration panel; in case your cookie path needs to be adjusted prior to renaming.</p>
|
||||
|
||||
<a name="convprob"></a><h3>5.iv. Common conversion problems</h3>
|
||||
|
||||
<p><strong>Broken non-latin characters</strong> The conversion script assumes that the database encoding in the source phpBB2 matches the encoding defined in the <code>lang_main.php</code> file of the default language pack of the source installation. Edit that file to match the database's encoding and re-start the conversion procedure.</p>
|
||||
|
||||
<p><strong>http 500 / white pages</strong> The conversion is a load-heavy procedure. Restrictions imposed by some server hosting providers can cause problems. The most common causes are: too low values for the php settings <code>memory_limit</code> and <code>max_execution_time</code>. Limits on the allowed CPU time are also a frequent cause for such errors, as are caps on the number of database queries allowed. If you cannot change such settings, then contact your hosting provider or run the conversion procedure on a different computer. The phpBB.com forums are also an excellent location to ask for support.</p>
|
||||
<p><strong>http 500 / white pages</strong> The conversion is a load-heavy procedure. Restrictions imposed by some server hosting providers can cause problems. The most common causes are: values too low for the PHP settings <code>memory_limit</code> and <code>max_execution_time</code>. Limits on the allowed CPU time are also a frequent cause for such errors, as are limits on the number of database queries allowed. If you cannot change such settings, then contact your hosting provider or run the conversion procedure on a different computer. The phpBB.com forums are also an excellent location to ask for support.</p>
|
||||
|
||||
<p><strong>Password conversion</strong> Due to the utf-8 based handling of passwords in phpBB3, it is not always possible to transfer all passwords. For passwords "lost in translation" the easiest workaround is to use the "forgotten password" function.</p>
|
||||
<p><strong>Password conversion</strong> Due to the utf-8 based handling of passwords in phpBB3, it is not always possible to transfer all passwords. For passwords "lost in translation" the easiest workaround is to use the <em>I forgot my password</em> link on the login page.</p>
|
||||
|
||||
<p><strong>Path to your former board</strong> The converter expects the relative path to your old board's files. So, - for instance - if the old board is located at <code>http://www.yourdomain.com/forum</code> and the phpBB3 installation is located at <code>http://www.yourdomain.com/phpBB3</code>, then the correct value would be <code>../forum</code>. Note that the webserver user must be able to access the source installation's files.</p>
|
||||
<p><strong>Path to your former board</strong> The convertor expects the relative path to your old board's files. So, for instance, if the old board is located at <code>http://www.yourdomain.com/forum</code> and the phpBB3 installation is located at <code>http://www.yourdomain.com/phpBB3</code>, then the correct value would be <code>../forum</code>. Note that the webserver user must be able to access the source installation's files.</p>
|
||||
|
||||
<p><strong>Missing images</strong> If your default board language's language pack does not include all images, then some images might be missing in your installation. Always use a complete language pack as default language.</p>
|
||||
|
||||
<p><strong>Smilies</strong> During the conversion you might see warnings about image files where the copying failed. That can happen if the old board's smilies have the same file names as those on the new board. Copy those files manually after the conversion, if you want to continue using the old smilies.</p>
|
||||
<p><strong>Smilies</strong> During the conversion you might see warnings about image files where the copying failed. This can happen if the old board's smilies have the same file names as those on the new board. Copy those files manually after the conversion, if you want to continue using the old smilies.</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
@ -390,27 +393,27 @@
|
|||
|
||||
<div class="content">
|
||||
|
||||
<p>Once you have successfully installed phpBB3 you <strong>MUST</strong> ensure you remove the entire install/ directory. Leaving the install directory in place is a <em>very serious potential security issue</em> which may lead to deletion or alteration of files, etc. Please note that until this directory is removed, phpBB3 will not operate and a warning message will be displayed. Beyond this <strong>essential</strong> deletion, you may also wish to delete the docs/ directories if you wish.</p>
|
||||
<p>Once you have successfully installed phpBB3 you <strong>MUST</strong> ensure you remove the entire <code>install/</code> directory. Leaving the install directory in place is a <em>very serious potential security issue</em> which may lead to deletion or alteration of files, etc. Please note that until this directory is removed, phpBB will not operate and a warning message will be displayed. Beyond this <strong>essential</strong> deletion, you may also wish to delete the docs/ directory if you wish.</p>
|
||||
|
||||
<p>With these directories deleted you should proceed to the administration panel. Depending on how the installation completed you may have been directed there automatically. If not, login as the administrator you specified during install/conversion and click the <strong>Administration Panel</strong> link at the bottom of any page. Ensure that details specified in <code>Admin -> General</code> are correct!</p>
|
||||
<p>With these directories deleted, you should proceed to the administration panel. Depending on how the installation completed, you may have been directed there automatically. If not, login as the administrator you specified during install/conversion and click the <strong>Administration Control Panel</strong> link at the bottom of any page. Ensure that details specified on the <strong>General</strong> tab are correct!</p>
|
||||
|
||||
<a name="avatars"></a><h3>6.i. Uploadable avatars</h3>
|
||||
|
||||
<p>phpBB3 supports several methods for allowing users to select their own <em>avatar</em> (an avatar is a small image generally unique to a user and displayed just below their username in posts).</p>
|
||||
|
||||
<p>Two of these options allow users to upload an avatar from their machine or a remote location (via a URL). If you wish to enable this function you should first ensure the correct paths for uploadeable avatars is set in <code>Admin -> General -> Board Configuration -> Avatar settings</code>. By default this is <em>images/avatars/uploads</em> but you can set it to whatever you like, just ensure the configuration setting is updated. You must also ensure this directory can be written to by the webserver. Usually this means you have to alter its permissions to allow anyone to read and write to. Exactly how you should do this depends on your ftp client or server operating system.</p>
|
||||
<p>Two of these options allow users to upload an avatar from their machine or a remote location (via a URL). If you wish to enable this function you should first ensure the correct path for uploadable avatars is set in <strong>Administration Control Panel -> General -> Board Configuration -> Avatar settings</strong>. By default this is <code>images/avatars/uploads</code>, but you can set it to whatever you like, just ensure the configuration setting is updated. You must also ensure this directory can be written to by the webserver. Usually this means you have to alter its permissions to allow anyone to read and write to it. Exactly how you should do this depends on your FTP client or server operating system.</p>
|
||||
|
||||
<p>On UNIX systems for example you set the directory to a+rwx (or ugo+rwx or even 777). This can be done from a command line on your server using chmod or via your FTP client (using the Change Permissions, chmod or other Permissions dialoge box, see your FTP clients documentation for help). Most FTP clients list permissions in the form of User (Read, Write, Execute), Group (Read, Write, Execute) and Other (Read, Write, Execute). You need to tick all of these boxes to set correct permissions.</p>
|
||||
<p>On UNIX systems, for example, you set the directory to a+rwx (or ugo+rwx or even 777). This can be done from a command line on your server using chmod or via your FTP client (using the Change Permissions, chmod or other Permissions dialog box, see your FTP client's documentation for help). Most FTP clients list permissions in the form of User (Read, Write, Execute), Group (Read, Write, Execute) and Other (Read, Write, Execute). You need to tick all of these boxes to set correct permissions.</p>
|
||||
|
||||
<p>On Windows system you need to ensure the directory is not write-protected and that it has global write permissions (see your servers documentation or contact your hosting provider if you are unsure on how to achieve this).</p>
|
||||
<p>On Windows systems, you need to ensure the directory is not write-protected and that it has global write permissions (see your server's documentation or contact your hosting provider if you are unsure on how to achieve this).</p>
|
||||
|
||||
<p>Please be aware that setting a directories permissions to global write access is a potential security issue. While it is unlikely that anything nasty will occur (such as all the avatars being deleted) there are always people out there to cause trouble. Therefore you should monitor this directory and if possible make regular backups.</p>
|
||||
<p>Please be aware that setting a directory's permissions to global write access is a potential security issue. While it is unlikely that anything nasty will occur (such as all the avatars being deleted) there are always people out there to cause trouble. Therefore you should monitor this directory and if possible make regular backups.</p>
|
||||
|
||||
<a name="webserver_configuration"></a><h3>6.ii. Webserver configuration</h3>
|
||||
|
||||
<p>Depending on your web server you may have to configure your server to deny web access to the <code>cache/</code>, <code>files/</code>, <code>store/</code> and other directories. This is to prevent users from accessing sensitive files.</p>
|
||||
<p>Depending on your web server, you may have to configure your server to deny web access to the <code>cache/</code>, <code>files/</code>, <code>store/</code> and other directories. This is to prevent users from accessing sensitive files.</p>
|
||||
|
||||
<p>For <strong>apache</strong> there are <code>.htaccess</code> files already in place to do this for you. For other webservers you will have to adjust the configuration yourself. Sample files for <strong>nginx</strong> and <strong>lighttpd</strong> to help you get started may be found in docs directory.</p>
|
||||
<p>For <strong>Apache</strong> there are <code>.htaccess</code> files already in place to do this for you. Similarly, for <strong>Windows</strong> based servers using <strong>IIS</strong> there are <code>web.config</code> files already in place to do this for you. For other webservers, you will have to adjust the configuration yourself. Sample files for <strong>nginx</strong> and <strong>lighttpd</strong> to help you get started may be found in <code>docs/</code> directory.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -421,14 +424,30 @@
|
|||
|
||||
<hr />
|
||||
|
||||
<a name="disclaimer"></a><h2>7. Copyright and disclaimer</h2>
|
||||
<a name="anti_spam"></a><h2>7. Anti-Spam Measures</h2>
|
||||
|
||||
<div class="paragraph">
|
||||
<div class="inner"><span class="corners-top"><span></span></span>
|
||||
|
||||
<div class="content">
|
||||
<p>Like any online site that allows user input, your board could be subject to unwanted posts; often referred to as <a href="http://en.wikipedia.org/wiki/Forum_spam">forum spam</a>. The vast majority of these attacks will be from automated computer programs known as <a href="http://en.wikipedia.org/wiki/Spambot">spambots</a>. The attacks, generally, are not personal as the spammers are just trying to find accessible targets. phpBB has a number of anti-spam measures built in, including a range of CAPTCHAs. However, administrators are strongly urged to read and follow the advice for <a href="http://www.phpbb.com/support/spam/">Preventing Spam in phpBB</a> as soon as possible after completing the installation of your board.</p>
|
||||
</div>
|
||||
|
||||
<div class="back2top"><a href="#wrap" class="top">Back to Top</a></div>
|
||||
|
||||
<span class="corners-bottom"><span></span></span></div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="disclaimer"></a><h2>8. Copyright and disclaimer</h2>
|
||||
|
||||
<div class="paragraph">
|
||||
<div class="inner"><span class="corners-top"><span></span></span>
|
||||
|
||||
<div class="content">
|
||||
|
||||
<p>This application is opensource software released under the <a href="http://opensource.org/licenses/gpl-2.0.php">GNU General Public License v2</a>. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
|
||||
<p>This application is opensource software released under the <a href="http://opensource.org/licenses/gpl-2.0.php">GNU General Public License v2</a>. Please see the source code and <code>docs/</code> directory for more details. This package and its contents are Copyright © <a href="http://www.phpbb.com/">phpBB Group</a>, All Rights Reserved.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -262,7 +262,7 @@
|
|||
|
||||
<ul>
|
||||
<li>Your server type/version, e.g. Apache 2.2.3, IIS 7, Sambar, etc.</li>
|
||||
<li>PHP version and mode of operation, e.g. PHP 5.3.2 as a module, PHP 5.4.0 running as CGI, etc.</li>
|
||||
<li>PHP version and mode of operation, e.g. PHP 5.3.3 as a module, PHP 5.4.0 running as CGI, etc.</li>
|
||||
<li>DB type/version, e.g. MySQL 5.0.77, PostgreSQL 9.0.6, MSSQL Server 2000 SP1, etc.</li>
|
||||
</ul>
|
||||
|
||||
|
@ -320,7 +320,7 @@
|
|||
|
||||
<div class="content">
|
||||
|
||||
<p>phpBB 3.1.x takes advantage of new features added in PHP 5.3. We recommend that you upgrade to the latest stable release of PHP5 to run phpBB. The minimum version required is PHP 5.3.2.</p>
|
||||
<p>phpBB 3.1.x takes advantage of new features added in PHP 5.3. We recommend that you upgrade to the latest stable release of PHP5 to run phpBB. The minimum version required is PHP 5.3.3.</p>
|
||||
|
||||
<p>Please remember that running any application on a developmental version of PHP can lead to strange/unexpected results which may appear to be bugs in the application (which may not be true). Therefore we recommend you upgrade to the newest stable version of PHP before running phpBB3. If you are running a developmental version of PHP please check any bugs you find on a system running a stable release before submitting.</p>
|
||||
|
||||
|
|
|
@ -2382,7 +2382,7 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
|
|||
|
||||
<div class="codebox"><pre>
|
||||
...
|
||||
'FOO_BAR' => 'PHP version < 5.3.2.<br />
|
||||
'FOO_BAR' => 'PHP version < 5.3.3.<br />
|
||||
Visit "Downloads" at <a href="http://www.php.net/">www.php.net</a>.',
|
||||
...
|
||||
</pre></div>
|
||||
|
@ -2391,7 +2391,7 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
|
|||
|
||||
<div class="codebox"><pre>
|
||||
...
|
||||
'FOO_BAR' => 'PHP version &lt; 5.3.2.<br />
|
||||
'FOO_BAR' => 'PHP version &lt; 5.3.3.<br />
|
||||
Visit &quot;Downloads&quot; at <a href="http://www.php.net/">www.php.net</a>.',
|
||||
...
|
||||
</pre></div>
|
||||
|
@ -2400,7 +2400,7 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
|
|||
|
||||
<div class="codebox"><pre>
|
||||
...
|
||||
'FOO_BAR' => 'PHP version &lt; 5.3.2.<br />
|
||||
'FOO_BAR' => 'PHP version &lt; 5.3.3.<br />
|
||||
Visit “Downloads” at <a href="http://www.php.net/">www.php.net</a>.',
|
||||
...
|
||||
</pre></div>
|
||||
|
|
|
@ -97,7 +97,7 @@ class acp_ban
|
|||
break;
|
||||
}
|
||||
|
||||
$this->display_ban_options($mode);
|
||||
self::display_ban_options($mode);
|
||||
|
||||
$template->assign_vars(array(
|
||||
'L_TITLE' => $this->page_title,
|
||||
|
@ -118,7 +118,7 @@ class acp_ban
|
|||
/**
|
||||
* Display ban options
|
||||
*/
|
||||
function display_ban_options($mode)
|
||||
static public function display_ban_options($mode)
|
||||
{
|
||||
global $user, $db, $template;
|
||||
|
||||
|
|
|
@ -29,7 +29,8 @@ class acp_captcha
|
|||
$user->add_lang('acp/board');
|
||||
|
||||
include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
|
||||
$captchas = phpbb_captcha_factory::get_captcha_types();
|
||||
$factory = new phpbb_captcha_factory();
|
||||
$captchas = $factory->get_captcha_types();
|
||||
|
||||
$selected = request_var('select_captcha', $config['captcha_plugin']);
|
||||
$selected = (isset($captchas['available'][$selected]) || isset($captchas['unavailable'][$selected])) ? $selected : $config['captcha_plugin'];
|
||||
|
|
|
@ -155,10 +155,7 @@ class acp_inactive
|
|||
trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
foreach ($mark as $user_id)
|
||||
{
|
||||
user_delete('retain', $user_id, $user_affected[$user_id]);
|
||||
}
|
||||
user_delete('retain', $mark, true);
|
||||
|
||||
add_log('admin', 'LOG_INACTIVE_' . strtoupper($action), implode(', ', $user_affected));
|
||||
|
||||
|
@ -299,7 +296,6 @@ class acp_inactive
|
|||
'S_SORT_KEY' => $s_sort_key,
|
||||
'S_SORT_DIR' => $s_sort_dir,
|
||||
'S_ON_PAGE' => phpbb_on_page($template, $user, $base_url, $inactive_count, $per_page, $start),
|
||||
|
||||
'USERS_PER_PAGE' => $per_page,
|
||||
|
||||
'U_ACTION' => $this->u_action . "&$u_sort_param&users_per_page=$per_page&start=$start",
|
||||
|
|
|
@ -426,7 +426,7 @@ class acp_main
|
|||
// Version check
|
||||
$user->add_lang('install');
|
||||
|
||||
if ($auth->acl_get('a_server') && version_compare(PHP_VERSION, '5.3.2', '<'))
|
||||
if ($auth->acl_get('a_server') && version_compare(PHP_VERSION, '5.3.3', '<'))
|
||||
{
|
||||
$template->assign_vars(array(
|
||||
'S_PHP_VERSION_OLD' => true,
|
||||
|
|
|
@ -242,8 +242,8 @@ class acp_prune
|
|||
if (confirm_box(true))
|
||||
{
|
||||
$user_ids = $usernames = array();
|
||||
$this->get_prune_users($user_ids, $usernames);
|
||||
|
||||
$this->get_prune_users($user_ids, $usernames);
|
||||
if (sizeof($user_ids))
|
||||
{
|
||||
if ($action == 'deactivate')
|
||||
|
@ -255,19 +255,13 @@ class acp_prune
|
|||
{
|
||||
if ($deleteposts)
|
||||
{
|
||||
foreach ($user_ids as $user_id)
|
||||
{
|
||||
user_delete('remove', $user_id);
|
||||
}
|
||||
user_delete('remove', $user_ids);
|
||||
|
||||
$l_log = 'LOG_PRUNE_USER_DEL_DEL';
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($user_ids as $user_id)
|
||||
{
|
||||
user_delete('retain', $user_id, $usernames[$user_id]);
|
||||
}
|
||||
user_delete('retain', $user_ids, true);
|
||||
|
||||
$l_log = 'LOG_PRUNE_USER_DEL_ANON';
|
||||
}
|
||||
|
@ -299,6 +293,7 @@ class acp_prune
|
|||
{
|
||||
$template->assign_block_vars('users', array(
|
||||
'USERNAME' => $usernames[$user_id],
|
||||
'USER_ID' => $user_id,
|
||||
'U_PROFILE' => append_sid($phpbb_root_path . 'memberlist.' . $phpEx, 'mode=viewprofile&u=' . $user_id),
|
||||
'U_USER_ADMIN' => ($auth->acl_get('a_user')) ? append_sid("{$phpbb_admin_path}index.$phpEx", 'i=users&mode=overview&u=' . $user_id, true, $user->session_id) : '',
|
||||
));
|
||||
|
@ -314,17 +309,7 @@ class acp_prune
|
|||
'mode' => $mode,
|
||||
'prune' => 1,
|
||||
|
||||
'users' => utf8_normalize_nfc(request_var('users', '', true)),
|
||||
'username' => utf8_normalize_nfc(request_var('username', '', true)),
|
||||
'email' => request_var('email', ''),
|
||||
'joined_select' => request_var('joined_select', ''),
|
||||
'joined' => request_var('joined', ''),
|
||||
'active_select' => request_var('active_select', ''),
|
||||
'active' => request_var('active', ''),
|
||||
'count_select' => request_var('count_select', ''),
|
||||
'count' => request_var('count', ''),
|
||||
'deleteposts' => request_var('deleteposts', 0),
|
||||
|
||||
'action' => request_var('action', ''),
|
||||
)), 'confirm_body_prune.html');
|
||||
}
|
||||
|
@ -340,22 +325,29 @@ class acp_prune
|
|||
}
|
||||
|
||||
$find_time = array('lt' => $user->lang['BEFORE'], 'gt' => $user->lang['AFTER']);
|
||||
$s_find_join_time = '';
|
||||
foreach ($find_time as $key => $value)
|
||||
{
|
||||
$s_find_join_time .= '<option value="' . $key . '">' . $value . '</option>';
|
||||
}
|
||||
|
||||
$s_find_active_time = '';
|
||||
foreach ($find_time as $key => $value)
|
||||
{
|
||||
$s_find_active_time .= '<option value="' . $key . '">' . $value . '</option>';
|
||||
}
|
||||
|
||||
$s_group_list = '';
|
||||
$sql = 'SELECT group_id, group_name
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
WHERE group_type <> ' . GROUP_SPECIAL . '
|
||||
ORDER BY group_name ASC';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$s_group_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</select>';
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$template->assign_vars(array(
|
||||
'U_ACTION' => $this->u_action,
|
||||
'S_JOINED_OPTIONS' => $s_find_join_time,
|
||||
'S_ACTIVE_OPTIONS' => $s_find_active_time,
|
||||
'S_GROUP_LIST' => $s_group_list,
|
||||
'S_COUNT_OPTIONS' => $s_find_count,
|
||||
'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=acp_prune&field=users'),
|
||||
));
|
||||
|
@ -368,42 +360,80 @@ class acp_prune
|
|||
{
|
||||
global $user, $db;
|
||||
|
||||
$users = utf8_normalize_nfc(request_var('users', '', true));
|
||||
$users_by_name = request_var('users', '', true);
|
||||
$users_by_id = request_var('user_ids', array(0));
|
||||
$group_id = request_var('group_id', 0);
|
||||
$posts_on_queue = request_var('posts_on_queue', 0);
|
||||
|
||||
if ($users)
|
||||
if ($users_by_name)
|
||||
{
|
||||
$users = explode("\n", $users);
|
||||
$users = explode("\n", $users_by_name);
|
||||
$where_sql = ' AND ' . $db->sql_in_set('username_clean', array_map('utf8_clean_string', $users));
|
||||
}
|
||||
else if (!empty($users_by_id))
|
||||
{
|
||||
$user_ids = $users_by_id;
|
||||
user_get_id_name($user_ids, $usernames);
|
||||
|
||||
$where_sql = ' AND ' . $db->sql_in_set('user_id', $user_ids);
|
||||
}
|
||||
else
|
||||
{
|
||||
$username = utf8_normalize_nfc(request_var('username', '', true));
|
||||
$username = request_var('username', '', true);
|
||||
$email = request_var('email', '');
|
||||
$website = request_var('website', '');
|
||||
|
||||
$joined_select = request_var('joined_select', 'lt');
|
||||
$active_select = request_var('active_select', 'lt');
|
||||
$count_select = request_var('count_select', 'eq');
|
||||
$joined = request_var('joined', '');
|
||||
$queue_select = request_var('queue_select', 'gt');
|
||||
$joined_before = request_var('joined_before', '');
|
||||
$joined_after = request_var('joined_after', '');
|
||||
$active = request_var('active', '');
|
||||
|
||||
$active = ($active) ? explode('-', $active) : array();
|
||||
$joined = ($joined) ? explode('-', $joined) : array();
|
||||
$count = request_var('count', 0);
|
||||
|
||||
if ((sizeof($active) && sizeof($active) != 3) || (sizeof($joined) && sizeof($joined) != 3))
|
||||
$active = ($active) ? explode('-', $active) : array();
|
||||
$joined_before = ($joined_before) ? explode('-', $joined_before) : array();
|
||||
$joined_after = ($joined_after) ? explode('-', $joined_after) : array();
|
||||
|
||||
// calculate the conditions required by the join time criteria
|
||||
$joined_sql = '';
|
||||
if (!empty($joined_before) && !empty($joined_after))
|
||||
{
|
||||
// if the two entered dates are equal, we need to adjust
|
||||
// so that our time range is a full day instead of 1 second
|
||||
if ($joined_after == $joined_before)
|
||||
{
|
||||
$joined_after[2] += 1;
|
||||
}
|
||||
|
||||
$joined_sql = ' AND user_regdate BETWEEN ' . gmmktime(0, 0, 0, (int) $joined_after[1], (int) $joined_after[2], (int) $joined_after[0]) .
|
||||
' AND ' . gmmktime(0, 0, 0, (int) $joined_before[1], (int) $joined_before[2], (int) $joined_before[0]);
|
||||
}
|
||||
else if (empty($joined_before) && !empty($joined_after))
|
||||
{
|
||||
$joined_sql = ' AND user_regdate > ' . gmmktime(0, 0, 0, (int) $joined_after[1], (int) $joined_after[2], (int) $joined_after[0]);
|
||||
}
|
||||
else if (empty($joined_after) && !empty($joined_before))
|
||||
{
|
||||
$joined_sql = ' AND user_regdate < ' . gmmktime(0, 0, 0, (int) $joined_before[1], (int) $joined_before[2], (int) $joined_before[0]);
|
||||
}
|
||||
// implicit else when both arrays are empty do nothing
|
||||
|
||||
if ((sizeof($active) && sizeof($active) != 3) || (sizeof($joined_before) && sizeof($joined_before) != 3) || (sizeof($joined_after) && sizeof($joined_after) != 3))
|
||||
{
|
||||
trigger_error($user->lang['WRONG_ACTIVE_JOINED_DATE'] . adm_back_link($this->u_action), E_USER_WARNING);
|
||||
}
|
||||
|
||||
$count = request_var('count', '');
|
||||
|
||||
$key_match = array('lt' => '<', 'gt' => '>', 'eq' => '=');
|
||||
$sort_by_types = array('username', 'user_email', 'user_posts', 'user_regdate', 'user_lastvisit');
|
||||
|
||||
$where_sql = '';
|
||||
$where_sql .= ($username) ? ' AND username_clean ' . $db->sql_like_expression(str_replace('*', $db->any_char, utf8_clean_string($username))) : '';
|
||||
$where_sql .= ($email) ? ' AND user_email ' . $db->sql_like_expression(str_replace('*', $db->any_char, $email)) . ' ' : '';
|
||||
$where_sql .= (sizeof($joined)) ? " AND user_regdate " . $key_match[$joined_select] . ' ' . gmmktime(0, 0, 0, (int) $joined[1], (int) $joined[2], (int) $joined[0]) : '';
|
||||
$where_sql .= ($count !== '') ? " AND user_posts " . $key_match[$count_select] . ' ' . (int) $count . ' ' : '';
|
||||
$where_sql .= ($website) ? ' AND user_website ' . $db->sql_like_expression(str_replace('*', $db->any_char, $website)) . ' ' : '';
|
||||
$where_sql .= $joined_sql;
|
||||
$where_sql .= ($count) ? " AND user_posts " . $key_match[$count_select] . ' ' . (int) $count . ' ' : '';
|
||||
|
||||
// First handle pruning of users who never logged in, last active date is 0000-00-00
|
||||
if (sizeof($active) && (int) $active[0] == 0 && (int) $active[1] == 0 && (int) $active[2] == 0)
|
||||
|
@ -446,7 +476,6 @@ class acp_prune
|
|||
$where_sql";
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$where_sql = '';
|
||||
$user_ids = $usernames = array();
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
|
@ -459,5 +488,53 @@ class acp_prune
|
|||
}
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
if ($group_id)
|
||||
{
|
||||
$sql = 'SELECT user_id
|
||||
FROM ' . USER_GROUP_TABLE . '
|
||||
WHERE group_id = ' . (int) $group_id . '
|
||||
AND user_pending = 0
|
||||
AND ' . $db->sql_in_set('user_id', $user_ids, false, true);
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
// we're performing an intersection operation, so all the relevant users
|
||||
// come from this most recent query (which was limited to the results of the
|
||||
// previous query)
|
||||
$user_ids = $usernames = array();
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$user_ids[] = $row['poster_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
// only get usernames if they are needed (not part of some later query)
|
||||
if (!$posts_on_queue)
|
||||
{
|
||||
// this is an additional query aginst the users table
|
||||
user_get_id_name($user_ids, $usernames);
|
||||
}
|
||||
}
|
||||
|
||||
if ($posts_on_queue)
|
||||
{
|
||||
$sql = 'SELECT poster_id, COUNT(post_id) AS queue_posts
|
||||
FROM ' . POSTS_TABLE . '
|
||||
WHERE ' . $db->sql_in_set('poster_id', $user_ids, false, true) . '
|
||||
GROUP BY poster_id
|
||||
HAVING queue_posts ' . $key_match[$queue_select] . ' ' . $posts_on_queue;
|
||||
$result = $db->sql_query($result);
|
||||
|
||||
// same intersection logic as the above group ID portion
|
||||
$user_ids = $usernames = array();
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$user_ids[] = $row['poster_id'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
// do an additional query to get the correct set of usernames
|
||||
user_get_id_name($user_ids, $usernames);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -309,35 +309,35 @@ function acp_ldap(&$new)
|
|||
$tpl = '
|
||||
|
||||
<dl>
|
||||
<dt><label for="ldap_server">' . $user->lang['LDAP_SERVER'] . ':</label><br /><span>' . $user->lang['LDAP_SERVER_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_server">' . $user->lang['LDAP_SERVER'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_SERVER_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="text" id="ldap_server" size="40" name="config[ldap_server]" value="' . $new['ldap_server'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ldap_port">' . $user->lang['LDAP_PORT'] . ':</label><br /><span>' . $user->lang['LDAP_PORT_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_port">' . $user->lang['LDAP_PORT'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_PORT_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="text" id="ldap_port" size="40" name="config[ldap_port]" value="' . $new['ldap_port'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ldap_dn">' . $user->lang['LDAP_DN'] . ':</label><br /><span>' . $user->lang['LDAP_DN_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_dn">' . $user->lang['LDAP_DN'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_DN_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="text" id="ldap_dn" size="40" name="config[ldap_base_dn]" value="' . $new['ldap_base_dn'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ldap_uid">' . $user->lang['LDAP_UID'] . ':</label><br /><span>' . $user->lang['LDAP_UID_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_uid">' . $user->lang['LDAP_UID'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_UID_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="text" id="ldap_uid" size="40" name="config[ldap_uid]" value="' . $new['ldap_uid'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ldap_user_filter">' . $user->lang['LDAP_USER_FILTER'] . ':</label><br /><span>' . $user->lang['LDAP_USER_FILTER_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_user_filter">' . $user->lang['LDAP_USER_FILTER'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_USER_FILTER_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="text" id="ldap_user_filter" size="40" name="config[ldap_user_filter]" value="' . $new['ldap_user_filter'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ldap_email">' . $user->lang['LDAP_EMAIL'] . ':</label><br /><span>' . $user->lang['LDAP_EMAIL_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_email">' . $user->lang['LDAP_EMAIL'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_EMAIL_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="text" id="ldap_email" size="40" name="config[ldap_email]" value="' . $new['ldap_email'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ldap_user">' . $user->lang['LDAP_USER'] . ':</label><br /><span>' . $user->lang['LDAP_USER_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_user">' . $user->lang['LDAP_USER'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_USER_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="text" id="ldap_user" size="40" name="config[ldap_user]" value="' . $new['ldap_user'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="ldap_password">' . $user->lang['LDAP_PASSWORD'] . ':</label><br /><span>' . $user->lang['LDAP_PASSWORD_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="ldap_password">' . $user->lang['LDAP_PASSWORD'] . $user->lang['COLON'] . '</label><br /><span>' . $user->lang['LDAP_PASSWORD_EXPLAIN'] . '</span></dt>
|
||||
<dd><input type="password" id="ldap_password" size="40" name="config[ldap_password]" value="' . $new['ldap_password'] . '" autocomplete="off" /></dd>
|
||||
</dl>
|
||||
';
|
||||
|
|
|
@ -134,7 +134,7 @@ class bbcode
|
|||
|
||||
$style_resource_locator = new phpbb_style_resource_locator();
|
||||
$style_path_provider = new phpbb_style_extension_path_provider($phpbb_extension_manager, new phpbb_style_path_provider());
|
||||
$template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator);
|
||||
$template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, new phpbb_template_context());
|
||||
$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, $style_path_provider, $template);
|
||||
$style->set_style();
|
||||
$template->set_filenames(array('bbcode.html' => 'bbcode.html'));
|
||||
|
|
|
@ -25,7 +25,7 @@ class phpbb_captcha_factory
|
|||
/**
|
||||
* return an instance of class $name in file $name_plugin.php
|
||||
*/
|
||||
public static function get_instance($name)
|
||||
static public function get_instance($name)
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
|
|
|
@ -49,27 +49,15 @@ class phpbb_captcha_gd extends phpbb_default_captcha
|
|||
}
|
||||
}
|
||||
|
||||
public static function get_instance()
|
||||
static public function get_instance()
|
||||
{
|
||||
$instance = new phpbb_captcha_gd();
|
||||
return $instance;
|
||||
}
|
||||
|
||||
function is_available()
|
||||
static public function is_available()
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
if (@extension_loaded('gd'))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!function_exists('can_load_dll'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
|
||||
}
|
||||
|
||||
return can_load_dll('gd');
|
||||
return @extension_loaded('gd');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -80,7 +68,7 @@ class phpbb_captcha_gd extends phpbb_default_captcha
|
|||
return true;
|
||||
}
|
||||
|
||||
function get_name()
|
||||
static public function get_name()
|
||||
{
|
||||
return 'CAPTCHA_GD';
|
||||
}
|
||||
|
|
|
@ -39,29 +39,17 @@ class phpbb_captcha_gd_wave extends phpbb_default_captcha
|
|||
}
|
||||
}
|
||||
|
||||
public static function get_instance()
|
||||
static public function get_instance()
|
||||
{
|
||||
return new phpbb_captcha_gd_wave();
|
||||
}
|
||||
|
||||
function is_available()
|
||||
static public function is_available()
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
if (@extension_loaded('gd'))
|
||||
{
|
||||
return true;
|
||||
return @extension_loaded('gd');
|
||||
}
|
||||
|
||||
if (!function_exists('can_load_dll'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
|
||||
}
|
||||
|
||||
return can_load_dll('gd');
|
||||
}
|
||||
|
||||
function get_name()
|
||||
static public function get_name()
|
||||
{
|
||||
return 'CAPTCHA_GD_3D';
|
||||
}
|
||||
|
|
|
@ -39,18 +39,18 @@ class phpbb_captcha_nogd extends phpbb_default_captcha
|
|||
}
|
||||
}
|
||||
|
||||
public static function get_instance()
|
||||
static public function get_instance()
|
||||
{
|
||||
$instance = new phpbb_captcha_nogd();
|
||||
return $instance;
|
||||
}
|
||||
|
||||
function is_available()
|
||||
static public function is_available()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
function get_name()
|
||||
static public function get_name()
|
||||
{
|
||||
return 'CAPTCHA_NO_GD';
|
||||
}
|
||||
|
|
|
@ -98,7 +98,7 @@ class phpbb_captcha_qa
|
|||
/**
|
||||
* API function
|
||||
*/
|
||||
public static function get_instance()
|
||||
static public function get_instance()
|
||||
{
|
||||
$instance = new phpbb_captcha_qa();
|
||||
|
||||
|
@ -108,7 +108,7 @@ class phpbb_captcha_qa
|
|||
/**
|
||||
* See if the captcha has created its tables.
|
||||
*/
|
||||
function is_installed()
|
||||
static public function is_installed()
|
||||
{
|
||||
global $db, $phpbb_root_path, $phpEx;
|
||||
|
||||
|
@ -124,14 +124,14 @@ class phpbb_captcha_qa
|
|||
/**
|
||||
* API function - for the captcha to be available, it must have installed itself and there has to be at least one question in the board's default lang
|
||||
*/
|
||||
function is_available()
|
||||
static public function is_available()
|
||||
{
|
||||
global $config, $db, $phpbb_root_path, $phpEx, $user;
|
||||
|
||||
// load language file for pretty display in the ACP dropdown
|
||||
$user->add_lang('captcha_qa');
|
||||
|
||||
if (!phpbb_captcha_qa::is_installed())
|
||||
if (!self::is_installed())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ class phpbb_captcha_qa
|
|||
/**
|
||||
* API function
|
||||
*/
|
||||
function get_name()
|
||||
static public function get_name()
|
||||
{
|
||||
return 'CAPTCHA_QA';
|
||||
}
|
||||
|
@ -612,7 +612,7 @@ class phpbb_captcha_qa
|
|||
$user->add_lang('acp/board');
|
||||
$user->add_lang('captcha_qa');
|
||||
|
||||
if (!$this->is_installed())
|
||||
if (!self::is_installed())
|
||||
{
|
||||
$this->install();
|
||||
}
|
||||
|
|
|
@ -54,13 +54,13 @@ class phpbb_recaptcha extends phpbb_default_captcha
|
|||
$this->response = request_var('recaptcha_response_field', '');
|
||||
}
|
||||
|
||||
public static function get_instance()
|
||||
static public function get_instance()
|
||||
{
|
||||
$instance = new phpbb_recaptcha();
|
||||
return $instance;
|
||||
}
|
||||
|
||||
function is_available()
|
||||
static public function is_available()
|
||||
{
|
||||
global $config, $user;
|
||||
$user->add_lang('captcha_recaptcha');
|
||||
|
@ -75,7 +75,7 @@ class phpbb_recaptcha extends phpbb_default_captcha
|
|||
return true;
|
||||
}
|
||||
|
||||
function get_name()
|
||||
static public function get_name()
|
||||
{
|
||||
return 'CAPTCHA_RECAPTCHA';
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ class phpbb_recaptcha extends phpbb_default_captcha
|
|||
'RECAPTCHA_SERVER' => $this->recaptcha_server,
|
||||
'RECAPTCHA_PUBKEY' => isset($config['recaptcha_pubkey']) ? $config['recaptcha_pubkey'] : '',
|
||||
'RECAPTCHA_ERRORGET' => '',
|
||||
'S_RECAPTCHA_AVAILABLE' => $this->is_available(),
|
||||
'S_RECAPTCHA_AVAILABLE' => self::is_available(),
|
||||
'S_CONFIRM_CODE' => true,
|
||||
'S_TYPE' => $this->type,
|
||||
'L_CONFIRM_EXPLAIN' => $explain,
|
||||
|
|
|
@ -67,6 +67,17 @@ class phpbb_extension_manager
|
|||
*/
|
||||
public function load_extensions()
|
||||
{
|
||||
$this->extensions = array();
|
||||
|
||||
// Do not try to load any extensions when installing or updating
|
||||
// Note: database updater invokes this code, and in 3.0
|
||||
// there is no extension table therefore the rest of this function
|
||||
// fails
|
||||
if (defined('IN_INSTALL'))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$sql = 'SELECT *
|
||||
FROM ' . $this->extension_table;
|
||||
|
||||
|
@ -74,7 +85,6 @@ class phpbb_extension_manager
|
|||
$extensions = $this->db->sql_fetchrowset($result);
|
||||
$this->db->sql_freeresult($result);
|
||||
|
||||
$this->extensions = array();
|
||||
foreach ($extensions as $extension)
|
||||
{
|
||||
$extension['ext_path'] = $this->get_extension_path($extension['ext_name']);
|
||||
|
|
|
@ -16,7 +16,15 @@ if (!defined('IN_PHPBB'))
|
|||
}
|
||||
|
||||
/**
|
||||
* Provides a set of items found in extensions
|
||||
* Provides a set of items found in extensions.
|
||||
*
|
||||
* This abstract class is essentially a wrapper around item-specific
|
||||
* finding logic. It handles storing the extension manager via constructor
|
||||
* for the finding logic to use to find the items, and provides an
|
||||
* iterator interface over the items found by the finding logic.
|
||||
*
|
||||
* Items could be anything, for example template paths or cron task names.
|
||||
* Derived classes completely define what the items are.
|
||||
*
|
||||
* @package extension
|
||||
*/
|
||||
|
@ -45,7 +53,7 @@ abstract class phpbb_extension_provider implements IteratorAggregate
|
|||
}
|
||||
|
||||
/**
|
||||
* Finds template paths using the extension manager.
|
||||
* Finds items using the extension manager.
|
||||
*
|
||||
* @return array List of task names
|
||||
*/
|
||||
|
|
|
@ -2219,14 +2219,14 @@ function phpbb_generate_template_pagination($template, $base_url, $block_var_nam
|
|||
$end_page = ($total_pages > 5) ? max(min($total_pages, $on_page + 3), 5) : $total_pages;
|
||||
}
|
||||
|
||||
if ($on_page != $total_pages)
|
||||
if ($on_page != 1)
|
||||
{
|
||||
$template->assign_block_vars($block_var_name, array(
|
||||
'PAGE_NUMBER' => '',
|
||||
'PAGE_URL' => $base_url . $url_delim . $start_name . '=' . ($on_page * $per_page),
|
||||
'PAGE_URL' => $base_url . $url_delim . $start_name . '=' . (($on_page - 2) * $per_page),
|
||||
'S_IS_CURRENT' => false,
|
||||
'S_IS_PREV' => false,
|
||||
'S_IS_NEXT' => true,
|
||||
'S_IS_PREV' => true,
|
||||
'S_IS_NEXT' => false,
|
||||
'S_IS_ELLIPSIS' => false,
|
||||
));
|
||||
}
|
||||
|
@ -2273,17 +2273,56 @@ function phpbb_generate_template_pagination($template, $base_url, $block_var_nam
|
|||
}
|
||||
while ($at_page <= $total_pages);
|
||||
|
||||
if ($on_page != 1)
|
||||
if ($on_page != $total_pages)
|
||||
{
|
||||
$template->assign_block_vars($block_var_name, array(
|
||||
'PAGE_NUMBER' => '',
|
||||
'PAGE_URL' => $base_url . $url_delim . $start_name . '=' . (($on_page - 2) * $per_page),
|
||||
'PAGE_URL' => $base_url . $url_delim . $start_name . '=' . ($on_page * $per_page),
|
||||
'S_IS_CURRENT' => false,
|
||||
'S_IS_PREV' => true,
|
||||
'S_IS_NEXT' => false,
|
||||
'S_IS_PREV' => false,
|
||||
'S_IS_NEXT' => true,
|
||||
'S_IS_ELLIPSIS' => false,
|
||||
));
|
||||
}
|
||||
|
||||
// If the block_var_name is a nested block, we will use the last (most
|
||||
// inner) block as a prefix for the template variables. If the last block
|
||||
// name is pagination, the prefix is empty. If the rest of the
|
||||
// block_var_name is not empty, we will modify the last row of that block
|
||||
// and add our pagination items.
|
||||
$tpl_block_name = $tpl_prefix = '';
|
||||
if (strrpos($block_var_name, '.') !== false)
|
||||
{
|
||||
$tpl_block_name = substr($block_var_name, 0, strrpos($block_var_name, '.'));
|
||||
$tpl_prefix = strtoupper(substr($block_var_name, strrpos($block_var_name, '.') + 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
$tpl_prefix = strtoupper($block_var_name);
|
||||
}
|
||||
$tpl_prefix = ($tpl_prefix == 'PAGINATION') ? '' : $tpl_prefix . '_';
|
||||
|
||||
$previous_page = ($on_page != 1) ? $base_url . $url_delim . $start_name . '=' . (($on_page - 2) * $per_page) : '';
|
||||
|
||||
$template_array = array(
|
||||
$tpl_prefix . 'BASE_URL' => $base_url,
|
||||
'A_' . $tpl_prefix . 'BASE_URL' => addslashes($base_url),
|
||||
$tpl_prefix . 'PER_PAGE' => $per_page,
|
||||
$tpl_prefix . 'PREVIOUS_PAGE' => $previous_page,
|
||||
$tpl_prefix . 'PREV_PAGE' => $previous_page,
|
||||
$tpl_prefix . 'NEXT_PAGE' => ($on_page != $total_pages) ? $base_url . $url_delim . $start_name . '=' . ($on_page * $per_page) : '',
|
||||
$tpl_prefix . 'TOTAL_PAGES' => $total_pages,
|
||||
$tpl_prefix . 'CURRENT_PAGE' => $on_page,
|
||||
);
|
||||
|
||||
if ($tpl_block_name)
|
||||
{
|
||||
$template->alter_block_array($tpl_block_name, $template_array, true, 'change');
|
||||
}
|
||||
else
|
||||
{
|
||||
$template->assign_vars($template_array);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2308,7 +2347,6 @@ function phpbb_on_page($template, $user, $base_url, $num_items, $per_page, $star
|
|||
$template->assign_vars(array(
|
||||
'PER_PAGE' => $per_page,
|
||||
'ON_PAGE' => $on_page,
|
||||
|
||||
'A_BASE_URL' => addslashes($base_url),
|
||||
));
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ class compress
|
|||
*
|
||||
* @return array Array of strings of available compression methods (.tar, .tar.gz, .zip, etc.)
|
||||
*/
|
||||
public static function methods()
|
||||
static public function methods()
|
||||
{
|
||||
$methods = array('.tar');
|
||||
$available_methods = array('.tar.gz' => 'zlib', '.tar.bz2' => 'bz2', '.zip' => 'zlib');
|
||||
|
|
|
@ -408,7 +408,7 @@ function strip_bbcode(&$text, $uid = '')
|
|||
* For display of custom parsed text on user-facing pages
|
||||
* Expects $text to be the value directly from the database (stored value)
|
||||
*/
|
||||
function generate_text_for_display($text, $uid, $bitfield, $flags)
|
||||
function generate_text_for_display($text, $uid, $bitfield, $flags, $censor_text = true)
|
||||
{
|
||||
static $bbcode;
|
||||
global $phpbb_dispatcher;
|
||||
|
@ -418,8 +418,6 @@ function generate_text_for_display($text, $uid, $bitfield, $flags)
|
|||
return '';
|
||||
}
|
||||
|
||||
$censor_text = true;
|
||||
|
||||
/**
|
||||
* Use this event to modify the text before it is parsed
|
||||
*
|
||||
|
|
|
@ -15,27 +15,6 @@ if (!defined('IN_PHPBB'))
|
|||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if we are able to load a specified PHP module and do so if possible
|
||||
*/
|
||||
function can_load_dll($dll)
|
||||
{
|
||||
// SQLite2 is a tricky thing, from 5.0.0 it requires PDO; if PDO is not loaded we must state that SQLite is unavailable
|
||||
// as the installer doesn't understand that the extension has a prerequisite.
|
||||
//
|
||||
// On top of this sometimes the SQLite extension is compiled for a different version of PDO
|
||||
// by some Linux distributions which causes phpBB to bomb out with a blank page.
|
||||
//
|
||||
// Net result we'll disable automatic inclusion of SQLite support
|
||||
//
|
||||
// See: r9618 and #56105
|
||||
if ($dll == 'sqlite')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return ((@ini_get('enable_dl') || strtolower(@ini_get('enable_dl')) == 'on') && (!@ini_get('safe_mode') || strtolower(@ini_get('safe_mode')) == 'off') && function_exists('dl') && @dl($dll . '.' . PHP_SHLIB_SUFFIX)) ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of available DBMS with some data, if a DBMS is specified it will only
|
||||
* return data for that DBMS and will load its extension if necessary.
|
||||
|
@ -158,8 +137,6 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
|
|||
$dll = $db_ary['MODULE'];
|
||||
|
||||
if (!@extension_loaded($dll))
|
||||
{
|
||||
if (!can_load_dll($dll))
|
||||
{
|
||||
if ($return_unavailable)
|
||||
{
|
||||
|
@ -171,7 +148,6 @@ function get_available_dbms($dbms = false, $return_unavailable = false, $only_20
|
|||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$any_db_support = true;
|
||||
}
|
||||
|
||||
|
@ -520,17 +496,14 @@ function adjust_language_keys_callback($matches)
|
|||
*
|
||||
* @param array $data Array containing the database connection information
|
||||
* @param string $dbms The name of the DBAL class to use
|
||||
* @param array $load_extensions Array of additional extensions that should be loaded
|
||||
* @param bool $debug If the debug constants should be enabled by default or not
|
||||
* @param bool $debug_test If the DEBUG_TEST constant should be added
|
||||
* NOTE: Only for use within the testing framework
|
||||
*
|
||||
* @return string The output to write to the file
|
||||
*/
|
||||
function phpbb_create_config_file_data($data, $dbms, $load_extensions, $debug = false, $debug_test = false)
|
||||
function phpbb_create_config_file_data($data, $dbms, $debug = false, $debug_test = false)
|
||||
{
|
||||
$load_extensions = implode(',', $load_extensions);
|
||||
|
||||
$config_data = "<?php\n";
|
||||
$config_data .= "// phpBB 3.1.x auto-generated configuration file\n// Do not change anything in this file!\n";
|
||||
|
||||
|
@ -543,7 +516,6 @@ function phpbb_create_config_file_data($data, $dbms, $load_extensions, $debug =
|
|||
'dbpasswd' => htmlspecialchars_decode($data['dbpasswd']),
|
||||
'table_prefix' => $data['table_prefix'],
|
||||
'acm_type' => 'phpbb_cache_driver_file',
|
||||
'load_extensions' => $load_extensions,
|
||||
);
|
||||
|
||||
foreach ($config_data_array as $key => $value)
|
||||
|
|
|
@ -210,7 +210,7 @@ class messenger
|
|||
{
|
||||
$style_resource_locator = new phpbb_style_resource_locator();
|
||||
$style_path_provider = new phpbb_style_extension_path_provider($phpbb_extension_manager, new phpbb_style_path_provider());
|
||||
$tpl = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator);
|
||||
$tpl = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, new phpbb_template_context());
|
||||
$style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $style_resource_locator, $style_path_provider, $tpl);
|
||||
|
||||
$this->tpl_msg[$template_lang . $template_file] = $tpl;
|
||||
|
|
|
@ -1151,6 +1151,23 @@ function phpbb_delete_user_pms($user_id)
|
|||
return false;
|
||||
}
|
||||
|
||||
return phpbb_delete_users_pms(array($user_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete all PM(s) for given users and delete the ones without references
|
||||
*
|
||||
* @param array $user_ids IDs of the users whose private messages we want to delete
|
||||
*
|
||||
* @return boolean False if there were no pms found, true otherwise.
|
||||
*/
|
||||
function phpbb_delete_users_pms($user_ids)
|
||||
{
|
||||
global $db, $user, $phpbb_root_path, $phpEx;
|
||||
|
||||
$user_id_sql = $db->sql_in_set('user_id', $user_ids);
|
||||
$author_id_sql = $db->sql_in_set('author_id', $user_ids);
|
||||
|
||||
// Get PM Information for later deleting
|
||||
// The two queries where split, so we can use our indexes
|
||||
$undelivered_msg = $delete_ids = array();
|
||||
|
@ -1158,7 +1175,7 @@ function phpbb_delete_user_pms($user_id)
|
|||
// Part 1: get PMs the user received
|
||||
$sql = 'SELECT msg_id
|
||||
FROM ' . PRIVMSGS_TO_TABLE . '
|
||||
WHERE user_id = ' . $user_id;
|
||||
WHERE ' . $user_id_sql;
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
|
@ -1168,12 +1185,12 @@ function phpbb_delete_user_pms($user_id)
|
|||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
// Part 2: get PMs the user sent, but have yet to be received
|
||||
// We cannot simply delete them. First we have to check,
|
||||
// Part 2: get PMs the users sent, but are yet to be received.
|
||||
// We cannot simply delete them. First we have to check
|
||||
// whether another user already received and read the message.
|
||||
$sql = 'SELECT msg_id
|
||||
FROM ' . PRIVMSGS_TO_TABLE . '
|
||||
WHERE author_id = ' . $user_id . '
|
||||
WHERE ' . $author_id_sql . '
|
||||
AND folder_id = ' . PRIVMSGS_NO_BOX;
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
|
@ -1199,7 +1216,7 @@ function phpbb_delete_user_pms($user_id)
|
|||
// received them.
|
||||
$sql = 'SELECT msg_id
|
||||
FROM ' . PRIVMSGS_TO_TABLE . '
|
||||
WHERE author_id = ' . $user_id . '
|
||||
WHERE ' . $author_id_sql . '
|
||||
AND folder_id <> ' . PRIVMSGS_NO_BOX . '
|
||||
AND folder_id <> ' . PRIVMSGS_OUTBOX . '
|
||||
AND folder_id <> ' . PRIVMSGS_SENTBOX;
|
||||
|
@ -1219,7 +1236,7 @@ function phpbb_delete_user_pms($user_id)
|
|||
// Count the messages we delete, so we can correct the user pm data
|
||||
$sql = 'SELECT user_id, COUNT(msg_id) as num_undelivered_privmsgs
|
||||
FROM ' . PRIVMSGS_TO_TABLE . '
|
||||
WHERE author_id = ' . $user_id . '
|
||||
WHERE ' . $author_id_sql . '
|
||||
AND folder_id = ' . PRIVMSGS_NO_BOX . '
|
||||
AND ' . $db->sql_in_set('msg_id', array_merge($undelivered_msg, $delivered_msg)) . '
|
||||
GROUP BY user_id';
|
||||
|
@ -1281,12 +1298,12 @@ function phpbb_delete_user_pms($user_id)
|
|||
$sql = 'UPDATE ' . USERS_TABLE . '
|
||||
SET user_new_privmsg = 0,
|
||||
user_unread_privmsg = 0
|
||||
WHERE user_id = ' . $user_id;
|
||||
WHERE ' . $user_id_sql;
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Delete private message data of the user
|
||||
$sql = 'DELETE FROM ' . PRIVMSGS_TO_TABLE . '
|
||||
WHERE user_id = ' . (int) $user_id;
|
||||
WHERE ' . $user_id_sql;
|
||||
$db->sql_query($sql);
|
||||
|
||||
if (!empty($delete_ids))
|
||||
|
@ -1325,12 +1342,12 @@ function phpbb_delete_user_pms($user_id)
|
|||
// This way users are still able to read messages from users being removed
|
||||
$sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . '
|
||||
SET author_id = ' . ANONYMOUS . '
|
||||
WHERE author_id = ' . $user_id;
|
||||
WHERE ' . $author_id_sql;
|
||||
$db->sql_query($sql);
|
||||
|
||||
$sql = 'UPDATE ' . PRIVMSGS_TABLE . '
|
||||
SET author_id = ' . ANONYMOUS . '
|
||||
WHERE author_id = ' . $user_id;
|
||||
WHERE ' . $author_id_sql;
|
||||
$db->sql_query($sql);
|
||||
|
||||
$db->sql_transaction('commit');
|
||||
|
|
|
@ -350,20 +350,34 @@ function user_add($user_row, $cp_data = false)
|
|||
|
||||
/**
|
||||
* Remove User
|
||||
* @param $mode Either 'retain' or 'remove'
|
||||
*/
|
||||
function user_delete($mode, $user_id, $post_username = false)
|
||||
function user_delete($mode, $user_ids, $retain_username = true)
|
||||
{
|
||||
global $cache, $config, $db, $user, $auth, $phpbb_dispatcher;
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
$db->sql_transaction('begin');
|
||||
|
||||
$user_rows = array();
|
||||
if (!is_array($user_ids))
|
||||
{
|
||||
$user_ids = array($user_ids);
|
||||
}
|
||||
|
||||
$user_id_sql = $db->sql_in_set('user_id', $user_ids);
|
||||
|
||||
$sql = 'SELECT *
|
||||
FROM ' . USERS_TABLE . '
|
||||
WHERE user_id = ' . $user_id;
|
||||
WHERE ' . $user_id_sql;
|
||||
$result = $db->sql_query($sql);
|
||||
$user_row = $db->sql_fetchrow($result);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$user_rows[(int) $row['user_id']] = $row;
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
if (!$user_row)
|
||||
if (empty($user_rows))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -383,7 +397,7 @@ function user_delete($mode, $user_id, $post_username = false)
|
|||
// Before we begin, we will remove the reports the user issued.
|
||||
$sql = 'SELECT r.post_id, p.topic_id
|
||||
FROM ' . REPORTS_TABLE . ' r, ' . POSTS_TABLE . ' p
|
||||
WHERE r.user_id = ' . $user_id . '
|
||||
WHERE ' . $db->sql_in_set('r.user_id', $user_ids) . '
|
||||
AND p.post_id = r.post_id';
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
|
@ -437,30 +451,44 @@ function user_delete($mode, $user_id, $post_username = false)
|
|||
}
|
||||
|
||||
// Remove reports
|
||||
$db->sql_query('DELETE FROM ' . REPORTS_TABLE . ' WHERE user_id = ' . $user_id);
|
||||
$db->sql_query('DELETE FROM ' . REPORTS_TABLE . ' WHERE ' . $user_id_sql);
|
||||
|
||||
$num_users_delta = 0;
|
||||
|
||||
// Some things need to be done in the loop (if the query changes based
|
||||
// on which user is currently being deleted)
|
||||
$added_guest_posts = 0;
|
||||
foreach ($user_rows as $user_id => $user_row)
|
||||
{
|
||||
if ($user_row['user_avatar'] && $user_row['user_avatar_type'] == AVATAR_UPLOAD)
|
||||
{
|
||||
avatar_delete('user', $user_row);
|
||||
}
|
||||
|
||||
// Decrement number of users if this user is active
|
||||
if ($user_row['user_type'] != USER_INACTIVE && $user_row['user_type'] != USER_IGNORE)
|
||||
{
|
||||
--$num_users_delta;
|
||||
}
|
||||
|
||||
switch ($mode)
|
||||
{
|
||||
case 'retain':
|
||||
|
||||
$db->sql_transaction('begin');
|
||||
|
||||
if ($post_username === false)
|
||||
if ($retain_username === false)
|
||||
{
|
||||
$post_username = $user->lang['GUEST'];
|
||||
}
|
||||
|
||||
// If the user is inactive and newly registered we assume no posts from this user being there...
|
||||
if ($user_row['user_type'] == USER_INACTIVE && $user_row['user_inactive_reason'] == INACTIVE_REGISTER && !$user_row['user_posts'])
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
$post_username = $user_row['username'];
|
||||
}
|
||||
|
||||
// If the user is inactive and newly registered
|
||||
// we assume no posts from the user, and save
|
||||
// the queries
|
||||
if ($user_row['user_type'] != USER_INACTIVE || $user_row['user_inactive_reason'] != INACTIVE_REGISTER || $user_row['user_posts'])
|
||||
{
|
||||
// When we delete these users and retain the posts, we must assign all the data to the guest user
|
||||
$sql = 'UPDATE ' . FORUMS_TABLE . '
|
||||
SET forum_last_poster_id = ' . ANONYMOUS . ", forum_last_poster_name = '" . $db->sql_escape($post_username) . "', forum_last_poster_colour = ''
|
||||
WHERE forum_last_poster_id = $user_id";
|
||||
|
@ -471,11 +499,6 @@ function user_delete($mode, $user_id, $post_username = false)
|
|||
WHERE poster_id = $user_id";
|
||||
$db->sql_query($sql);
|
||||
|
||||
$sql = 'UPDATE ' . POSTS_TABLE . '
|
||||
SET post_edit_user = ' . ANONYMOUS . "
|
||||
WHERE post_edit_user = $user_id";
|
||||
$db->sql_query($sql);
|
||||
|
||||
$sql = 'UPDATE ' . TOPICS_TABLE . '
|
||||
SET topic_poster = ' . ANONYMOUS . ", topic_first_poster_name = '" . $db->sql_escape($post_username) . "', topic_first_poster_colour = ''
|
||||
WHERE topic_poster = $user_id";
|
||||
|
@ -486,48 +509,66 @@ function user_delete($mode, $user_id, $post_username = false)
|
|||
WHERE topic_last_poster_id = $user_id";
|
||||
$db->sql_query($sql);
|
||||
|
||||
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . '
|
||||
SET poster_id = ' . ANONYMOUS . "
|
||||
WHERE poster_id = $user_id";
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Since we change every post by this author, we need to count this amount towards the anonymous user
|
||||
|
||||
// Update the post count for the anonymous user
|
||||
if ($user_row['user_posts'])
|
||||
{
|
||||
$sql = 'UPDATE ' . USERS_TABLE . '
|
||||
SET user_posts = user_posts + ' . $user_row['user_posts'] . '
|
||||
WHERE user_id = ' . ANONYMOUS;
|
||||
$db->sql_query($sql);
|
||||
$added_guest_posts += $user_row['user_posts'];
|
||||
}
|
||||
}
|
||||
|
||||
$db->sql_transaction('commit');
|
||||
|
||||
break;
|
||||
|
||||
case 'remove':
|
||||
// there is nothing variant specific to deleting posts
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($num_users_delta != 0)
|
||||
{
|
||||
set_config_count('num_users', $num_users_delta, true);
|
||||
}
|
||||
|
||||
// Now do the invariant tasks
|
||||
// all queries performed in one call of this function are in a single transaction
|
||||
// so this is kosher
|
||||
if ($mode == 'retain')
|
||||
{
|
||||
// Assign more data to the Anonymous user
|
||||
$sql = 'UPDATE ' . ATTACHMENTS_TABLE . '
|
||||
SET poster_id = ' . ANONYMOUS . '
|
||||
WHERE ' . $db->sql_in_set('poster_id', $user_ids);
|
||||
$db->sql_query($sql);
|
||||
|
||||
$sql = 'UPDATE ' . POSTS_TABLE . '
|
||||
SET post_edit_user = ' . ANONYMOUS . '
|
||||
WHERE ' . $db->sql_in_set('post_edit_user', $user_ids);
|
||||
$db->sql_query($sql);
|
||||
|
||||
$sql = 'UPDATE ' . USERS_TABLE . '
|
||||
SET user_posts = user_posts + ' . $added_guest_posts . '
|
||||
WHERE user_id = ' . ANONYMOUS;
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
else if ($mode == 'remove')
|
||||
{
|
||||
if (!function_exists('delete_posts'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
|
||||
}
|
||||
|
||||
// Delete posts, attachments, etc.
|
||||
delete_posts('poster_id', $user_id);
|
||||
|
||||
break;
|
||||
// delete_posts can handle any number of IDs in its second argument
|
||||
delete_posts('poster_id', $user_ids);
|
||||
}
|
||||
|
||||
$db->sql_transaction('begin');
|
||||
|
||||
$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE);
|
||||
|
||||
// Delete the miscellaneous (non-post) data for the user
|
||||
foreach ($table_ary as $table)
|
||||
{
|
||||
$sql = "DELETE FROM $table
|
||||
WHERE user_id = $user_id";
|
||||
WHERE " . $user_id_sql;
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
|
||||
|
@ -535,29 +576,29 @@ function user_delete($mode, $user_id, $post_username = false)
|
|||
|
||||
// Delete user log entries about this user
|
||||
$sql = 'DELETE FROM ' . LOG_TABLE . '
|
||||
WHERE reportee_id = ' . $user_id;
|
||||
WHERE ' . $db->sql_in_set('reportee_id', $user_ids);
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Change user_id to anonymous for this users triggered events
|
||||
$sql = 'UPDATE ' . LOG_TABLE . '
|
||||
SET user_id = ' . ANONYMOUS . '
|
||||
WHERE user_id = ' . $user_id;
|
||||
WHERE ' . $user_id_sql;
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Delete the user_id from the zebra table
|
||||
$sql = 'DELETE FROM ' . ZEBRA_TABLE . '
|
||||
WHERE user_id = ' . $user_id . '
|
||||
OR zebra_id = ' . $user_id;
|
||||
WHERE ' . $user_id_sql . '
|
||||
OR ' . $db->sql_in_set('zebra_id', $user_ids);
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Delete the user_id from the banlist
|
||||
$sql = 'DELETE FROM ' . BANLIST_TABLE . '
|
||||
WHERE ban_userid = ' . $user_id;
|
||||
WHERE ' . $db->sql_in_set('ban_userid', $user_ids);
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Delete the user_id from the session table
|
||||
$sql = 'DELETE FROM ' . SESSIONS_TABLE . '
|
||||
WHERE session_user_id = ' . $user_id;
|
||||
WHERE ' . $db->sql_in_set('session_user_id', $user_ids);
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Clean the private messages tables from the user
|
||||
|
@ -565,7 +606,7 @@ function user_delete($mode, $user_id, $post_username = false)
|
|||
{
|
||||
include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
|
||||
}
|
||||
phpbb_delete_user_pms($user_id);
|
||||
phpbb_delete_users_pms($user_ids);
|
||||
|
||||
$db->sql_transaction('commit');
|
||||
|
||||
|
@ -582,17 +623,11 @@ function user_delete($mode, $user_id, $post_username = false)
|
|||
extract($phpbb_dispatcher->trigger_event('core.delete_user_after', compact($vars)));
|
||||
|
||||
// Reset newest user info if appropriate
|
||||
if ($config['newest_user_id'] == $user_id)
|
||||
if (in_array($config['newest_user_id'], $user_ids))
|
||||
{
|
||||
update_last_username();
|
||||
}
|
||||
|
||||
// Decrement number of users if this user is active
|
||||
if ($user_row['user_type'] != USER_INACTIVE && $user_row['user_type'] != USER_IGNORE)
|
||||
{
|
||||
set_config_count('num_users', -1, true);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -446,7 +446,7 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
|
|||
confirm_box(false, 'MERGE_TOPICS', $s_hidden_fields);
|
||||
}
|
||||
|
||||
$redirect = request_var('redirect', "index.$phpEx");
|
||||
$redirect = request_var('redirect', "{$phpbb_root_path}viewtopic.$phpEx?f=$to_forum_id&t=$to_topic_id");
|
||||
$redirect = reapply_sid($redirect);
|
||||
|
||||
if (!$success_msg)
|
||||
|
@ -455,7 +455,7 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
|
|||
}
|
||||
else
|
||||
{
|
||||
meta_refresh(3, append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$to_forum_id&t=$to_topic_id"));
|
||||
meta_refresh(3, $redirect);
|
||||
trigger_error($user->lang[$success_msg] . '<br /><br />' . $return_link);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ class mcp_reports
|
|||
// closed reports are accessed by report id
|
||||
$report_id = request_var('r', 0);
|
||||
|
||||
$sql = 'SELECT r.post_id, r.user_id, r.report_id, r.report_closed, report_time, r.report_text, r.reported_post_text, rr.reason_title, rr.reason_description, u.username, u.username_clean, u.user_colour
|
||||
$sql = 'SELECT r.post_id, r.user_id, r.report_id, r.report_closed, report_time, r.report_text, r.reported_post_text, r.reported_post_uid, r.reported_post_bitfield, rr.reason_title, rr.reason_description, u.username, u.username_clean, u.user_colour
|
||||
FROM ' . REPORTS_TABLE . ' r, ' . REPORTS_REASONS_TABLE . ' rr, ' . USERS_TABLE . ' u
|
||||
WHERE ' . (($report_id) ? 'r.report_id = ' . $report_id : "r.post_id = $post_id") . '
|
||||
AND rr.reason_id = r.reason_id
|
||||
|
@ -230,7 +230,7 @@ class mcp_reports
|
|||
'REPORTER_NAME' => get_username_string('username', $report['user_id'], $report['username'], $report['user_colour']),
|
||||
'U_VIEW_REPORTER_PROFILE' => get_username_string('profile', $report['user_id'], $report['username'], $report['user_colour']),
|
||||
|
||||
'POST_PREVIEW' => bbcode_nl2br($report['reported_post_text']),
|
||||
'POST_PREVIEW' => generate_text_for_display($report['reported_post_text'], $report['reported_post_uid'], $report['reported_post_bitfield'], OPTION_FLAG_BBCODE | OPTION_FLAG_SMILIES, false),
|
||||
'POST_SUBJECT' => ($post_info['post_subject']) ? $post_info['post_subject'] : $user->lang['NO_SUBJECT'],
|
||||
'POST_DATE' => $user->format_date($post_info['post_time']),
|
||||
'POST_IP' => $post_info['poster_ip'],
|
||||
|
|
|
@ -534,7 +534,7 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
|
|||
confirm_box(false, ($action == 'split_all') ? 'SPLIT_TOPIC_ALL' : 'SPLIT_TOPIC_BEYOND', $s_hidden_fields);
|
||||
}
|
||||
|
||||
$redirect = request_var('redirect', "index.$phpEx");
|
||||
$redirect = request_var('redirect', "{$phpbb_root_path}viewtopic.$phpEx?f=$to_forum_id&t=$to_topic_id");
|
||||
$redirect = reapply_sid($redirect);
|
||||
|
||||
if (!$success_msg)
|
||||
|
@ -543,7 +543,7 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
|
|||
}
|
||||
else
|
||||
{
|
||||
meta_refresh(3, append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$to_forum_id&t=$to_topic_id"));
|
||||
meta_refresh(3, $redirect);
|
||||
trigger_error($user->lang[$success_msg] . '<br /><br />' . $return_link);
|
||||
}
|
||||
}
|
||||
|
@ -640,7 +640,7 @@ function merge_posts($topic_id, $to_topic_id)
|
|||
confirm_box(false, 'MERGE_POSTS', $s_hidden_fields);
|
||||
}
|
||||
|
||||
$redirect = request_var('redirect', "index.$phpEx");
|
||||
$redirect = request_var('redirect', "{$phpbb_root_path}viewtopic.$phpEx?f=$to_forum_id&t=$to_topic_id");
|
||||
$redirect = reapply_sid($redirect);
|
||||
|
||||
if (!$success_msg)
|
||||
|
@ -649,7 +649,7 @@ function merge_posts($topic_id, $to_topic_id)
|
|||
}
|
||||
else
|
||||
{
|
||||
meta_refresh(3, append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$to_forum_id&t=$to_topic_id"));
|
||||
meta_refresh(3, $redirect);
|
||||
trigger_error($user->lang[$success_msg] . '<br /><br />' . $return_link);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -476,7 +476,6 @@ class phpbb_questionnaire_phpbb_data_provider
|
|||
|
||||
$result['dbms'] = $dbms;
|
||||
$result['acm_type'] = $acm_type;
|
||||
$result['load_extensions'] = $load_extensions;
|
||||
$result['user_agent'] = 'Unknown';
|
||||
$result['dbms_version'] = $db->sql_server_info(true);
|
||||
|
||||
|
|
|
@ -22,18 +22,59 @@ if (!defined('IN_PHPBB'))
|
|||
*/
|
||||
class phpbb_search_fulltext_mysql extends phpbb_search_base
|
||||
{
|
||||
/**
|
||||
* Associative array holding index stats
|
||||
* @var array
|
||||
*/
|
||||
protected $stats = array();
|
||||
|
||||
/**
|
||||
* Holds the words entered by user, obtained by splitting the entered query on whitespace
|
||||
* @var array
|
||||
*/
|
||||
protected $split_words = array();
|
||||
|
||||
/**
|
||||
* Config object
|
||||
* @var phpbb_config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* DBAL object
|
||||
* @var dbal
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* User object
|
||||
* @var phpbb_user
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* Associative array stores the min and max word length to be searched
|
||||
* @var array
|
||||
*/
|
||||
protected $word_length = array();
|
||||
|
||||
/**
|
||||
* Contains tidied search query.
|
||||
* Operators are prefixed in search query and common words excluded
|
||||
* @var string
|
||||
*/
|
||||
protected $search_query;
|
||||
|
||||
/**
|
||||
* Contains common words.
|
||||
* Common words are words with length less/more than min/max length
|
||||
* @var array
|
||||
*/
|
||||
protected $common_words = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* Creates a new phpbb_search_fulltext_mysql, which is used as a search backend.
|
||||
* Creates a new phpbb_search_fulltext_mysql, which is used as a search backend
|
||||
*
|
||||
* @param string|bool $error Any error that occurs is passed on through this reference variable otherwise false
|
||||
*/
|
||||
|
@ -285,7 +326,7 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
|||
}
|
||||
|
||||
/**
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first.
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first
|
||||
*
|
||||
* @param string $type contains either posts or topics depending on what should be searched for
|
||||
* @param string $fields contains either titleonly (topic titles should be searched), msgonly (only message bodies should be searched), firstpost (only subject and body of the first post should be searched) or all (all post bodies and subjects should be searched)
|
||||
|
@ -306,7 +347,7 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
|||
*/
|
||||
public function keyword_search($type, $fields, $terms, $sort_by_sql, $sort_key, $sort_dir, $sort_days, $ex_fid_ary, $m_approve_fid_ary, $topic_id, $author_ary, $author_name, &$id_ary, $start, $per_page)
|
||||
{
|
||||
// No keywords? No posts.
|
||||
// No keywords? No posts
|
||||
if (!$this->search_query)
|
||||
{
|
||||
return false;
|
||||
|
@ -486,7 +527,7 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
|||
*/
|
||||
public function author_search($type, $firstpost_only, $sort_by_sql, $sort_key, $sort_dir, $sort_days, $ex_fid_ary, $m_approve_fid_ary, $topic_id, $author_ary, $author_name, &$id_ary, $start, $per_page)
|
||||
{
|
||||
// No author? No posts.
|
||||
// No author? No posts
|
||||
if (!sizeof($author_ary))
|
||||
{
|
||||
return 0;
|
||||
|
@ -635,7 +676,7 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
|||
}
|
||||
|
||||
/**
|
||||
* Destroys cached search results, that contained one of the new words in a post so the results won't be outdated.
|
||||
* Destroys cached search results, that contained one of the new words in a post so the results won't be outdated
|
||||
*
|
||||
* @param string $mode contains the post mode: edit, post, reply, quote ...
|
||||
* @param int $post_id contains the post id of the post to index
|
||||
|
@ -864,11 +905,11 @@ class phpbb_search_fulltext_mysql extends phpbb_search_base
|
|||
{
|
||||
$tpl = '
|
||||
<dl>
|
||||
<dt><label>' . $this->user->lang['MIN_SEARCH_CHARS'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_MYSQL_MIN_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dt><label>' . $this->user->lang['MIN_SEARCH_CHARS'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_MYSQL_MIN_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dd>' . $this->config['fulltext_mysql_min_word_len'] . '</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label>' . $this->user->lang['MAX_SEARCH_CHARS'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_MYSQL_MAX_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dt><label>' . $this->user->lang['MAX_SEARCH_CHARS'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_MYSQL_MAX_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dd>' . $this->config['fulltext_mysql_max_word_len'] . '</dd>
|
||||
</dl>
|
||||
';
|
||||
|
|
|
@ -22,25 +22,84 @@ if (!defined('IN_PHPBB'))
|
|||
*/
|
||||
class phpbb_search_fulltext_native extends phpbb_search_base
|
||||
{
|
||||
/**
|
||||
* Associative array holding index stats
|
||||
* @var array
|
||||
*/
|
||||
protected $stats = array();
|
||||
|
||||
/**
|
||||
* Associative array stores the min and max word length to be searched
|
||||
* @var array
|
||||
*/
|
||||
protected $word_length = array();
|
||||
|
||||
/**
|
||||
* Contains tidied search query.
|
||||
* Operators are prefixed in search query and common words excluded
|
||||
* @var string
|
||||
*/
|
||||
protected $search_query;
|
||||
|
||||
/**
|
||||
* Contains common words.
|
||||
* Common words are words with length less/more than min/max length
|
||||
* @var array
|
||||
*/
|
||||
protected $common_words = array();
|
||||
|
||||
/**
|
||||
* Post ids of posts containing words that are to be included
|
||||
* @var array
|
||||
*/
|
||||
protected $must_contain_ids = array();
|
||||
|
||||
/**
|
||||
* Post ids of posts containing words that should not be included
|
||||
* @var array
|
||||
*/
|
||||
protected $must_not_contain_ids = array();
|
||||
|
||||
/**
|
||||
* Post ids of posts containing atleast one word that needs to be excluded
|
||||
* @var array
|
||||
*/
|
||||
protected $must_exclude_one_ids = array();
|
||||
|
||||
/**
|
||||
* Relative path to board root
|
||||
* @var string
|
||||
*/
|
||||
protected $phpbb_root_path;
|
||||
|
||||
/**
|
||||
* PHP Extension
|
||||
* @var string
|
||||
*/
|
||||
protected $php_ext;
|
||||
|
||||
/**
|
||||
* Config object
|
||||
* @var phpbb_config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* DBAL object
|
||||
* @var dbal
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* User object
|
||||
* @var phpbb_user
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* Initialises the fulltext_native search backend with min/max word length and makes sure the UTF-8 normalizer is loaded.
|
||||
* Initialises the fulltext_native search backend with min/max word length and makes sure the UTF-8 normalizer is loaded
|
||||
*
|
||||
* @param boolean|string &$error is passed by reference and should either be set to false on success or an error message on failure.
|
||||
* @param boolean|string &$error is passed by reference and should either be set to false on success or an error message on failure
|
||||
*/
|
||||
public function __construct(&$error, $phpbb_root_path, $phpEx, $auth, $config, $db, $user)
|
||||
{
|
||||
|
@ -59,6 +118,10 @@ class phpbb_search_fulltext_native extends phpbb_search_base
|
|||
{
|
||||
include($this->phpbb_root_path . 'includes/utf/utf_normalizer.' . $this->php_ext);
|
||||
}
|
||||
if (!function_exists('utf8_decode_ncr'))
|
||||
{
|
||||
include($this->phpbb_root_path . 'includes/utf/utf_tools.' . $this->php_ext);
|
||||
}
|
||||
|
||||
$error = false;
|
||||
}
|
||||
|
@ -104,14 +167,14 @@ class phpbb_search_fulltext_native extends phpbb_search_base
|
|||
}
|
||||
|
||||
/**
|
||||
* This function fills $this->search_query with the cleaned user search query.
|
||||
* This function fills $this->search_query with the cleaned user search query
|
||||
*
|
||||
* If $terms is 'any' then the words will be extracted from the search query
|
||||
* and combined with | inside brackets. They will afterwards be treated like
|
||||
* an standard search query.
|
||||
*
|
||||
* Then it analyses the query and fills the internal arrays $must_not_contain_ids,
|
||||
* $must_contain_ids and $must_exclude_one_ids which are later used by keyword_search().
|
||||
* $must_contain_ids and $must_exclude_one_ids which are later used by keyword_search()
|
||||
*
|
||||
* @param string $keywords contains the search query string as entered by the user
|
||||
* @param string $terms is either 'all' (use search query as entered, default words to 'must be contained in post')
|
||||
|
@ -434,7 +497,7 @@ class phpbb_search_fulltext_native extends phpbb_search_base
|
|||
}
|
||||
|
||||
/**
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first.
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first
|
||||
*
|
||||
* @param string $type contains either posts or topics depending on what should be searched for
|
||||
* @param string $fields contains either titleonly (topic titles should be searched), msgonly (only message bodies should be searched), firstpost (only subject and body of the first post should be searched) or all (all post bodies and subjects should be searched)
|
||||
|
@ -800,7 +863,7 @@ class phpbb_search_fulltext_native extends phpbb_search_base
|
|||
// if we use mysql and the total result count is not cached yet, retrieve it from the db
|
||||
if (!$total_results && $is_mysql)
|
||||
{
|
||||
// Count rows for the executed queries. Replace $select within $sql with SQL_CALC_FOUND_ROWS, and run it.
|
||||
// Count rows for the executed queries. Replace $select within $sql with SQL_CALC_FOUND_ROWS, and run it
|
||||
$sql_array_copy = $sql_array;
|
||||
$sql_array_copy['SELECT'] = 'SQL_CALC_FOUND_ROWS p.post_id ';
|
||||
|
||||
|
@ -849,7 +912,7 @@ class phpbb_search_fulltext_native extends phpbb_search_base
|
|||
*/
|
||||
public function author_search($type, $firstpost_only, $sort_by_sql, $sort_key, $sort_dir, $sort_days, $ex_fid_ary, $m_approve_fid_ary, $topic_id, $author_ary, $author_name, &$id_ary, $start, $per_page)
|
||||
{
|
||||
// No author? No posts.
|
||||
// No author? No posts
|
||||
if (!sizeof($author_ary))
|
||||
{
|
||||
return 0;
|
||||
|
@ -1728,19 +1791,19 @@ class phpbb_search_fulltext_native extends phpbb_search_base
|
|||
|
||||
$tpl = '
|
||||
<dl>
|
||||
<dt><label for="fulltext_native_load_upd">' . $this->user->lang['YES_SEARCH_UPDATE'] . ':</label><br /><span>' . $this->user->lang['YES_SEARCH_UPDATE_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_native_load_upd">' . $this->user->lang['YES_SEARCH_UPDATE'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['YES_SEARCH_UPDATE_EXPLAIN'] . '</span></dt>
|
||||
<dd><label><input type="radio" id="fulltext_native_load_upd" name="config[fulltext_native_load_upd]" value="1"' . (($this->config['fulltext_native_load_upd']) ? ' checked="checked"' : '') . ' class="radio" /> ' . $this->user->lang['YES'] . '</label><label><input type="radio" name="config[fulltext_native_load_upd]" value="0"' . ((!$this->config['fulltext_native_load_upd']) ? ' checked="checked"' : '') . ' class="radio" /> ' . $this->user->lang['NO'] . '</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_native_min_chars">' . $this->user->lang['MIN_SEARCH_CHARS'] . ':</label><br /><span>' . $this->user->lang['MIN_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_native_min_chars">' . $this->user->lang['MIN_SEARCH_CHARS'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['MIN_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_native_min_chars" type="text" size="3" maxlength="3" name="config[fulltext_native_min_chars]" value="' . (int) $this->config['fulltext_native_min_chars'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_native_max_chars">' . $this->user->lang['MAX_SEARCH_CHARS'] . ':</label><br /><span>' . $this->user->lang['MAX_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_native_max_chars">' . $this->user->lang['MAX_SEARCH_CHARS'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['MAX_SEARCH_CHARS_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_native_max_chars" type="text" size="3" maxlength="3" name="config[fulltext_native_max_chars]" value="' . (int) $this->config['fulltext_native_max_chars'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_native_common_thres">' . $this->user->lang['COMMON_WORD_THRESHOLD'] . ':</label><br /><span>' . $this->user->lang['COMMON_WORD_THRESHOLD_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_native_common_thres">' . $this->user->lang['COMMON_WORD_THRESHOLD'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['COMMON_WORD_THRESHOLD_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_native_common_thres" type="text" size="3" maxlength="3" name="config[fulltext_native_common_thres]" value="' . (double) $this->config['fulltext_native_common_thres'] . '" /> %</dd>
|
||||
</dl>
|
||||
';
|
||||
|
|
|
@ -22,22 +22,84 @@ if (!defined('IN_PHPBB'))
|
|||
*/
|
||||
class phpbb_search_fulltext_postgres extends phpbb_search_base
|
||||
{
|
||||
/**
|
||||
* Associative array holding index stats
|
||||
* @var array
|
||||
*/
|
||||
protected $stats = array();
|
||||
|
||||
/**
|
||||
* Holds the words entered by user, obtained by splitting the entered query on whitespace
|
||||
* @var array
|
||||
*/
|
||||
protected $split_words = array();
|
||||
|
||||
/**
|
||||
* True if PostgreSQL version supports tsearch
|
||||
* @var boolean
|
||||
*/
|
||||
protected $tsearch_usable = false;
|
||||
|
||||
/**
|
||||
* Stores the PostgreSQL version
|
||||
* @var string
|
||||
*/
|
||||
protected $version;
|
||||
|
||||
/**
|
||||
* Stores the tsearch query
|
||||
* @var string
|
||||
*/
|
||||
protected $tsearch_query;
|
||||
|
||||
/**
|
||||
* True if phrase search is supported.
|
||||
* PostgreSQL fulltext currently doesn't support it
|
||||
* @var boolean
|
||||
*/
|
||||
protected $phrase_search = false;
|
||||
|
||||
/**
|
||||
* Config object
|
||||
* @var phpbb_config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* DBAL object
|
||||
* @var dbal
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* User object
|
||||
* @var phpbb_user
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* Contains tidied search query.
|
||||
* Operators are prefixed in search query and common words excluded
|
||||
* @var string
|
||||
*/
|
||||
protected $search_query;
|
||||
|
||||
/**
|
||||
* Contains common words.
|
||||
* Common words are words with length less/more than min/max length
|
||||
* @var array
|
||||
*/
|
||||
protected $common_words = array();
|
||||
|
||||
/**
|
||||
* Associative array stores the min and max word length to be searched
|
||||
* @var array
|
||||
*/
|
||||
protected $word_length = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* Creates a new phpbb_search_fulltext_postgres, which is used as a search backend.
|
||||
* Creates a new phpbb_search_fulltext_postgres, which is used as a search backend
|
||||
*
|
||||
* @param string|bool $error Any error that occurs is passed on through this reference variable otherwise false
|
||||
*/
|
||||
|
@ -254,7 +316,7 @@ class phpbb_search_fulltext_postgres extends phpbb_search_base
|
|||
}
|
||||
|
||||
/**
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first.
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first
|
||||
*
|
||||
* @param string $type contains either posts or topics depending on what should be searched for
|
||||
* @param string $fields contains either titleonly (topic titles should be searched), msgonly (only message bodies should be searched), firstpost (only subject and body of the first post should be searched) or all (all post bodies and subjects should be searched)
|
||||
|
@ -275,12 +337,18 @@ class phpbb_search_fulltext_postgres extends phpbb_search_base
|
|||
*/
|
||||
public function keyword_search($type, $fields, $terms, $sort_by_sql, $sort_key, $sort_dir, $sort_days, $ex_fid_ary, $m_approve_fid_ary, $topic_id, $author_ary, $author_name, &$id_ary, $start, $per_page)
|
||||
{
|
||||
// No keywords? No posts.
|
||||
// No keywords? No posts
|
||||
if (!$this->search_query)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// When search query contains queries like -foo
|
||||
if (strpos($this->search_query, '+') === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// generate a search_key from all the options to identify the results
|
||||
$search_key = md5(implode('#', array(
|
||||
implode(', ', $this->split_words),
|
||||
|
@ -459,7 +527,7 @@ class phpbb_search_fulltext_postgres extends phpbb_search_base
|
|||
*/
|
||||
public function author_search($type, $firstpost_only, $sort_by_sql, $sort_key, $sort_dir, $sort_days, $ex_fid_ary, $m_approve_fid_ary, $topic_id, $author_ary, $author_name, &$id_ary, $start, $per_page)
|
||||
{
|
||||
// No author? No posts.
|
||||
// No author? No posts
|
||||
if (!sizeof($author_ary))
|
||||
{
|
||||
return 0;
|
||||
|
@ -602,7 +670,7 @@ class phpbb_search_fulltext_postgres extends phpbb_search_base
|
|||
}
|
||||
|
||||
/**
|
||||
* Destroys cached search results, that contained one of the new words in a post so the results won't be outdated.
|
||||
* Destroys cached search results, that contained one of the new words in a post so the results won't be outdated
|
||||
*
|
||||
* @param string $mode contains the post mode: edit, post, reply, quote ...
|
||||
* @param int $post_id contains the post id of the post to index
|
||||
|
@ -816,11 +884,11 @@ class phpbb_search_fulltext_postgres extends phpbb_search_base
|
|||
$tpl .= '</select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_postgres_min_word_len">' . $this->user->lang['FULLTEXT_POSTGRES_MIN_WORD_LEN'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_MIN_WORD_LEN_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_postgres_min_word_len">' . $this->user->lang['FULLTEXT_POSTGRES_MIN_WORD_LEN'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_MIN_WORD_LEN_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_postgres_min_word_len" type="text" size="3" maxlength="3" name="config[fulltext_postgres_min_word_len]" value="' . (int) $this->config['fulltext_postgres_min_word_len'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_postgres_max_word_len">' . $this->user->lang['FULLTEXT_POSTGRES_MAX_WORD_LEN'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_MAX_WORD_LEN_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_postgres_max_word_len">' . $this->user->lang['FULLTEXT_POSTGRES_MAX_WORD_LEN'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_MAX_WORD_LEN_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_postgres_max_word_len" type="text" size="3" maxlength="3" name="config[fulltext_postgres_max_word_len]" value="' . (int) $this->config['fulltext_postgres_max_word_len'] . '" /></dd>
|
||||
</dl>
|
||||
';
|
||||
|
|
|
@ -28,26 +28,101 @@ define('SPHINX_CONNECT_WAIT_TIME', 300);
|
|||
*/
|
||||
class phpbb_search_fulltext_sphinx
|
||||
{
|
||||
/**
|
||||
* Associative array holding index stats
|
||||
* @var array
|
||||
*/
|
||||
protected $stats = array();
|
||||
|
||||
/**
|
||||
* Holds the words entered by user, obtained by splitting the entered query on whitespace
|
||||
* @var array
|
||||
*/
|
||||
protected $split_words = array();
|
||||
|
||||
/**
|
||||
* Holds unique sphinx id
|
||||
* @var string
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* Stores the names of both main and delta sphinx indexes
|
||||
* separated by a semicolon
|
||||
* @var string
|
||||
*/
|
||||
protected $indexes;
|
||||
|
||||
/**
|
||||
* Sphinx searchd client object
|
||||
* @var SphinxClient
|
||||
*/
|
||||
protected $sphinx;
|
||||
|
||||
/**
|
||||
* Relative path to board root
|
||||
* @var string
|
||||
*/
|
||||
protected $phpbb_root_path;
|
||||
|
||||
/**
|
||||
* PHP Extension
|
||||
* @var string
|
||||
*/
|
||||
protected $php_ext;
|
||||
|
||||
/**
|
||||
* Auth object
|
||||
* @var phpbb_auth
|
||||
*/
|
||||
protected $auth;
|
||||
|
||||
/**
|
||||
* Config object
|
||||
* @var phpbb_config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* DBAL object
|
||||
* @var dbal
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
/**
|
||||
* Database Tools object
|
||||
* @var phpbb_db_tools
|
||||
*/
|
||||
protected $db_tools;
|
||||
|
||||
/**
|
||||
* Stores the database type if supported by sphinx
|
||||
* @var string
|
||||
*/
|
||||
protected $dbtype;
|
||||
|
||||
/**
|
||||
* User object
|
||||
* @var phpbb_user
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
* Stores the generated content of the sphinx config file
|
||||
* @var string
|
||||
*/
|
||||
protected $config_file_data = '';
|
||||
|
||||
/**
|
||||
* Contains tidied search query.
|
||||
* Operators are prefixed in search query and common words excluded
|
||||
* @var string
|
||||
*/
|
||||
protected $search_query;
|
||||
protected $common_words = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* Creates a new phpbb_search_fulltext_postgres, which is used as a search backend.
|
||||
* Creates a new phpbb_search_fulltext_postgres, which is used as a search backend
|
||||
*
|
||||
* @param string|bool $error Any error that occurs is passed on through this reference variable otherwise false
|
||||
*/
|
||||
|
@ -119,13 +194,13 @@ class phpbb_search_fulltext_sphinx
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the common_words array
|
||||
* Returns an empty array as there are no common_words
|
||||
*
|
||||
* @return array common words that are ignored by search backend
|
||||
*/
|
||||
public function get_common_words()
|
||||
{
|
||||
return $this->common_words;
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -360,7 +435,7 @@ class phpbb_search_fulltext_sphinx
|
|||
}
|
||||
|
||||
/**
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first.
|
||||
* Performs a search on keywords depending on display specific params. You have to run split_keywords() first
|
||||
*
|
||||
* @param string $type contains either posts or topics depending on what should be searched for
|
||||
* @param string $fields contains either titleonly (topic titles should be searched), msgonly (only message bodies should be searched), firstpost (only subject and body of the first post should be searched) or all (all post bodies and subjects should be searched)
|
||||
|
@ -787,23 +862,23 @@ class phpbb_search_fulltext_sphinx
|
|||
$tpl = '
|
||||
<span class="error">' . $this->user->lang['FULLTEXT_SPHINX_CONFIGURE']. '</span>
|
||||
<dl>
|
||||
<dt><label for="fulltext_sphinx_data_path">' . $this->user->lang['FULLTEXT_SPHINX_DATA_PATH'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_DATA_PATH_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_sphinx_data_path">' . $this->user->lang['FULLTEXT_SPHINX_DATA_PATH'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_DATA_PATH_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_sphinx_data_path" type="text" size="40" maxlength="255" name="config[fulltext_sphinx_data_path]" value="' . $this->config['fulltext_sphinx_data_path'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_sphinx_host">' . $this->user->lang['FULLTEXT_SPHINX_HOST'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_HOST_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_sphinx_host">' . $this->user->lang['FULLTEXT_SPHINX_HOST'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_HOST_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_sphinx_host" type="text" size="40" maxlength="255" name="config[fulltext_sphinx_host]" value="' . $this->config['fulltext_sphinx_host'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_sphinx_port">' . $this->user->lang['FULLTEXT_SPHINX_PORT'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_PORT_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_sphinx_port">' . $this->user->lang['FULLTEXT_SPHINX_PORT'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_PORT_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_sphinx_port" type="text" size="4" maxlength="10" name="config[fulltext_sphinx_port]" value="' . $this->config['fulltext_sphinx_port'] . '" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_sphinx_indexer_mem_limit">' . $this->user->lang['FULLTEXT_SPHINX_INDEXER_MEM_LIMIT'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_INDEXER_MEM_LIMIT_EXPLAIN'] . '</span></dt>
|
||||
<dt><label for="fulltext_sphinx_indexer_mem_limit">' . $this->user->lang['FULLTEXT_SPHINX_INDEXER_MEM_LIMIT'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_INDEXER_MEM_LIMIT_EXPLAIN'] . '</span></dt>
|
||||
<dd><input id="fulltext_sphinx_indexer_mem_limit" type="text" size="4" maxlength="10" name="config[fulltext_sphinx_indexer_mem_limit]" value="' . $this->config['fulltext_sphinx_indexer_mem_limit'] . '" />' . $this->user->lang['MIB'] . '</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="fulltext_sphinx_config_file">' . $this->user->lang['FULLTEXT_SPHINX_CONFIG_FILE'] . ':</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_CONFIG_FILE_EXPLAIN'] . '</dt>
|
||||
<dt><label for="fulltext_sphinx_config_file">' . $this->user->lang['FULLTEXT_SPHINX_CONFIG_FILE'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_SPHINX_CONFIG_FILE_EXPLAIN'] . '</dt>
|
||||
<dd>' . (($this->config_generate()) ? '<textarea readonly="readonly" rows="6">' . $this->config_file_data . '</textarea>' : $this->config_file_data) . '</dd>
|
||||
<dl>
|
||||
';
|
||||
|
|
|
@ -94,10 +94,7 @@ class phpbb_style_resource_locator implements phpbb_template_locator
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the template filenames for handles. $filename_array
|
||||
* should be a hash of handle => filename pairs.
|
||||
*
|
||||
* @param array $filname_array Should be a hash of handle => filename pairs.
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function set_filenames(array $filename_array)
|
||||
{
|
||||
|
@ -121,14 +118,7 @@ class phpbb_style_resource_locator implements phpbb_template_locator
|
|||
}
|
||||
|
||||
/**
|
||||
* Determines the filename for a template handle.
|
||||
*
|
||||
* The filename comes from array used in a set_filenames call,
|
||||
* which should have been performed prior to invoking this function.
|
||||
* Return value is a file basename (without path).
|
||||
*
|
||||
* @param $handle string Template handle
|
||||
* @return string Filename corresponding to the template handle
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_filename_for_handle($handle)
|
||||
{
|
||||
|
@ -140,24 +130,7 @@ class phpbb_style_resource_locator implements phpbb_template_locator
|
|||
}
|
||||
|
||||
/**
|
||||
* Determines the source file path for a template handle without
|
||||
* regard for styles tree.
|
||||
*
|
||||
* This function returns the path in "primary" style directory
|
||||
* corresponding to the given template handle. That path may or
|
||||
* may not actually exist on the filesystem. Because this function
|
||||
* does not perform stat calls to determine whether the path it
|
||||
* returns actually exists, it is faster than get_source_file_for_handle.
|
||||
*
|
||||
* Use get_source_file_for_handle to obtain the actual path that is
|
||||
* guaranteed to exist (which might come from the parent style
|
||||
* directory if primary style has parent styles).
|
||||
*
|
||||
* This function will trigger an error if the handle was never
|
||||
* associated with a template file via set_filenames.
|
||||
*
|
||||
* @param $handle string Template handle
|
||||
* @return string Path to source file path in primary style directory
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_virtual_source_file_for_handle($handle)
|
||||
{
|
||||
|
@ -172,23 +145,7 @@ class phpbb_style_resource_locator implements phpbb_template_locator
|
|||
}
|
||||
|
||||
/**
|
||||
* Determines the source file path for a template handle, accounting
|
||||
* for styles tree and verifying that the path exists.
|
||||
*
|
||||
* This function returns the actual path that may be compiled for
|
||||
* the specified template handle. It will trigger an error if
|
||||
* the template handle was never associated with a template path
|
||||
* via set_filenames or if the template file does not exist on the
|
||||
* filesystem.
|
||||
*
|
||||
* Use get_virtual_source_file_for_handle to just resolve a template
|
||||
* handle to a path without any filesystem or styles tree checks.
|
||||
*
|
||||
* @param string $handle Template handle (i.e. "friendly" template name)
|
||||
* @param bool $find_all If true, each root path will be checked and function
|
||||
* will return array of files instead of string and will not
|
||||
* trigger a error if template does not exist
|
||||
* @return string Source file path
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_source_file_for_handle($handle, $find_all = false)
|
||||
{
|
||||
|
@ -239,23 +196,7 @@ class phpbb_style_resource_locator implements phpbb_template_locator
|
|||
}
|
||||
|
||||
/**
|
||||
* Locates source file path, accounting for styles tree and verifying that
|
||||
* the path exists.
|
||||
*
|
||||
* Unlike previous functions, this function works without template handle
|
||||
* and it can search for more than one file. If more than one file name is
|
||||
* specified, it will return location of file that it finds first.
|
||||
*
|
||||
* @param array $files List of files to locate.
|
||||
* @param bool $return_default Determines what to return if file does not
|
||||
* exist. If true, function will return location where file is
|
||||
* supposed to be. If false, function will return false.
|
||||
* @param bool $return_full_path If true, function will return full path
|
||||
* to file. If false, function will return file name. This
|
||||
* parameter can be used to check which one of set of files
|
||||
* is available.
|
||||
* @return string or boolean Source file path if file exists or $return_default is
|
||||
* true. False if file does not exist and $return_default is false
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function get_first_file_location($files, $return_default = false, $return_full_path = true)
|
||||
{
|
||||
|
|
|
@ -124,8 +124,6 @@ class phpbb_style
|
|||
|
||||
$this->template->cachepath = $this->phpbb_root_path . 'cache/tpl_' . str_replace('_', '-', $name) . '_';
|
||||
|
||||
$this->template->context = new phpbb_template_context();
|
||||
|
||||
if ($template_path !== false)
|
||||
{
|
||||
$this->template->template_path = $this->locator->template_path = $template_path;
|
||||
|
|
|
@ -36,7 +36,7 @@ class phpbb_template
|
|||
* Stores template data used during template rendering.
|
||||
* @var phpbb_template_context
|
||||
*/
|
||||
public $context;
|
||||
private $context;
|
||||
|
||||
/**
|
||||
* Path of the cache directory for the template
|
||||
|
@ -86,8 +86,9 @@ class phpbb_template
|
|||
* @param string $phpbb_root_path phpBB root path
|
||||
* @param user $user current user
|
||||
* @param phpbb_template_locator $locator template locator
|
||||
* @param phpbb_template_context $context template context
|
||||
*/
|
||||
public function __construct($phpbb_root_path, $php_ext, $config, $user, phpbb_template_locator $locator)
|
||||
public function __construct($phpbb_root_path, $php_ext, $config, $user, phpbb_template_locator $locator, phpbb_template_context $context)
|
||||
{
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->php_ext = $php_ext;
|
||||
|
@ -95,6 +96,7 @@ class phpbb_template
|
|||
$this->user = $user;
|
||||
$this->locator = $locator;
|
||||
$this->template_path = $this->locator->template_path;
|
||||
$this->context = $context;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -457,8 +459,40 @@ class phpbb_template
|
|||
}
|
||||
|
||||
/**
|
||||
* Locates source template path, accounting for styles tree and verifying that
|
||||
* the path exists.
|
||||
* Obtains filesystem path for a template file.
|
||||
*
|
||||
* The simplest use is specifying a single template file as a string
|
||||
* in the first argument. This template file should be a basename
|
||||
* of a template file in the selected style, or its parent styles
|
||||
* if template inheritance is being utilized.
|
||||
*
|
||||
* Note: "selected style" is whatever style the style resource locator
|
||||
* is configured for.
|
||||
*
|
||||
* The return value then will be a path, relative to the current
|
||||
* directory or absolute, to the template file in the selected style
|
||||
* or its closest parent.
|
||||
*
|
||||
* If the selected style does not have the template file being searched,
|
||||
* (and if inheritance is involved, none of the parents have it either),
|
||||
* false will be returned.
|
||||
*
|
||||
* Specifying true for $return_default will cause the function to
|
||||
* return the first path which was checked for existence in the event
|
||||
* that the template file was not found, instead of false.
|
||||
* This is the path in the selected style itself, not any of its
|
||||
* parents.
|
||||
*
|
||||
* $files can be given an array of templates instead of a single
|
||||
* template. When given an array, the function will try to resolve
|
||||
* each template in the array to a path, and will return the first
|
||||
* path that exists, or false if none exist.
|
||||
*
|
||||
* If $return_full_path is false, then instead of returning a usable
|
||||
* path (when the template is found) only the template's basename
|
||||
* will be returned. This can be used to check which of the templates
|
||||
* specified in $files exists, provided different file names are
|
||||
* used for different templates.
|
||||
*
|
||||
* @param string or array $files List of templates to locate. If there is only
|
||||
* one template, $files can be a string to make code easier to read.
|
||||
|
@ -474,7 +508,7 @@ class phpbb_template
|
|||
*/
|
||||
public function locate($files, $return_default = false, $return_full_path = true)
|
||||
{
|
||||
// add tempalte path prefix
|
||||
// add template path prefix
|
||||
$templates = array();
|
||||
if (is_string($files))
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ class ucp_profile_info
|
|||
'version' => '1.0.0',
|
||||
'modes' => array(
|
||||
'profile_info' => array('title' => 'UCP_PROFILE_PROFILE_INFO', 'auth' => '', 'cat' => array('UCP_PROFILE')),
|
||||
'signature' => array('title' => 'UCP_PROFILE_SIGNATURE', 'auth' => '', 'cat' => array('UCP_PROFILE')),
|
||||
'signature' => array('title' => 'UCP_PROFILE_SIGNATURE', 'auth' => 'acl_u_sig', 'cat' => array('UCP_PROFILE')),
|
||||
'avatar' => array('title' => 'UCP_PROFILE_AVATAR', 'auth' => 'cfg_allow_avatar && (cfg_allow_avatar_local || cfg_allow_avatar_remote || cfg_allow_avatar_upload || cfg_allow_avatar_remote_upload)', 'cat' => array('UCP_PROFILE')),
|
||||
'reg_details' => array('title' => 'UCP_PROFILE_REG_DETAILS', 'auth' => '', 'cat' => array('UCP_PROFILE')),
|
||||
'autologin_keys'=> array('title' => 'UCP_PROFILE_AUTOLOGIN_KEYS', 'auth' => '', 'cat' => array('UCP_PROFILE')),
|
||||
|
|
|
@ -838,11 +838,11 @@ function compose_pm($id, $mode, $action, $user_folders = array())
|
|||
$post_id = request_var('p', 0);
|
||||
if ($config['allow_post_links'])
|
||||
{
|
||||
$message_link = "[url=" . generate_board_url() . "/viewtopic.$phpEx?p={$post_id}#p{$post_id}]{$user->lang['SUBJECT']}: {$message_subject}[/url]\n\n";
|
||||
$message_link = "[url=" . generate_board_url() . "/viewtopic.$phpEx?p={$post_id}#p{$post_id}]{$user->lang['SUBJECT']}{$user->lang['COLON']} {$message_subject}[/url]\n\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$message_link = $user->lang['SUBJECT'] . ': ' . $message_subject . " (" . generate_board_url() . "/viewtopic.$phpEx?p={$post_id}#p{$post_id})\n\n";
|
||||
$message_link = $user->lang['SUBJECT'] . $user->lang['COLON'] . ' ' . $message_subject . " (" . generate_board_url() . "/viewtopic.$phpEx?p={$post_id}#p{$post_id})\n\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -63,8 +63,6 @@ $updates_to_version = UPDATES_TO_VERSION;
|
|||
$debug_from_version = DEBUG_FROM_VERSION;
|
||||
$oldest_from_version = OLDEST_FROM_VERSION;
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
@set_time_limit(0);
|
||||
|
||||
// Include essential scripts
|
||||
|
@ -75,17 +73,6 @@ if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
|
|||
die("Please read: <a href='../docs/INSTALL.html'>INSTALL.html</a> before attempting to update.");
|
||||
}
|
||||
|
||||
// Load Extensions
|
||||
if (!empty($load_extensions) && function_exists('dl'))
|
||||
{
|
||||
$load_extensions = explode(',', $load_extensions);
|
||||
|
||||
foreach ($load_extensions as $extension)
|
||||
{
|
||||
@dl(trim($extension));
|
||||
}
|
||||
}
|
||||
|
||||
// Include files
|
||||
require($phpbb_root_path . 'includes/class_loader.' . $phpEx);
|
||||
|
||||
|
@ -1101,6 +1088,8 @@ function database_update_info()
|
|||
),
|
||||
// No changes from 3.0.11-RC2 to 3.0.11
|
||||
'3.0.11-RC2' => array(),
|
||||
// No changes from 3.0.11 to 3.0.12-RC1
|
||||
'3.0.11' => array(),
|
||||
|
||||
/** @todo DROP LOGIN_ATTEMPT_TABLE.attempt_id in 3.0.12-RC1 */
|
||||
|
||||
|
@ -1176,6 +1165,8 @@ function database_update_info()
|
|||
),
|
||||
REPORTS_TABLE => array(
|
||||
'reported_post_text' => array('MTEXT_UNI', ''),
|
||||
'reported_post_uid' => array('VCHAR:8', ''),
|
||||
'reported_post_bitfield' => array('VCHAR:255', ''),
|
||||
),
|
||||
),
|
||||
'change_columns' => array(
|
||||
|
@ -2291,6 +2282,71 @@ function change_database_data(&$no_updates, $version)
|
|||
case '3.0.11-RC2':
|
||||
break;
|
||||
|
||||
// Changes from 3.0.11 to 3.0.12-RC1
|
||||
case '3.0.11':
|
||||
$sql = 'UPDATE ' . MODULES_TABLE . '
|
||||
SET module_auth = \'acl_u_sig\'
|
||||
WHERE module_class = \'ucp\'
|
||||
AND module_basename = \'profile\'
|
||||
AND module_mode = \'signature\'';
|
||||
_sql($sql, $errored, $error_ary);
|
||||
|
||||
// Update bots
|
||||
if (!function_exists('user_delete'))
|
||||
{
|
||||
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
|
||||
}
|
||||
|
||||
$bots_updates = array(
|
||||
// Bot Deletions
|
||||
'NG-Search [Bot]' => false,
|
||||
'Nutch/CVS [Bot]' => false,
|
||||
'OmniExplorer [Bot]' => false,
|
||||
'Seekport [Bot]' => false,
|
||||
'Synoo [Bot]' => false,
|
||||
'WiseNut [Bot]' => false,
|
||||
|
||||
// Bot Updates
|
||||
// Bot name to bot user agent map
|
||||
'Baidu [Spider]' => 'Baiduspider',
|
||||
'Exabot [Bot]' => 'Exabot',
|
||||
'Voyager [Bot]' => 'voyager/',
|
||||
'W3C [Validator]' => 'W3C_Validator',
|
||||
);
|
||||
|
||||
foreach ($bots_updates as $bot_name => $bot_agent)
|
||||
{
|
||||
$sql = 'SELECT user_id
|
||||
FROM ' . USERS_TABLE . '
|
||||
WHERE user_type = ' . USER_IGNORE . "
|
||||
AND username_clean = '" . $db->sql_escape(utf8_clean_string($bot_name)) . "'";
|
||||
$result = $db->sql_query($sql);
|
||||
$bot_user_id = (int) $db->sql_fetchfield('user_id');
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
if ($bot_user_id)
|
||||
{
|
||||
if ($bot_agent === false)
|
||||
{
|
||||
$sql = 'DELETE FROM ' . BOTS_TABLE . "
|
||||
WHERE user_id = $bot_user_id";
|
||||
_sql($sql, $errored, $error_ary);
|
||||
|
||||
user_delete('remove', $bot_user_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = 'UPDATE ' . BOTS_TABLE . "
|
||||
SET bot_agent = '" . $db->sql_escape($bot_agent) . "'
|
||||
WHERE user_id = $bot_user_id";
|
||||
_sql($sql, $errored, $error_ary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$no_updates = false;
|
||||
break;
|
||||
|
||||
// Changes from 3.1.0-dev to 3.1.0-A1
|
||||
case '3.1.0-dev':
|
||||
|
||||
|
|
|
@ -21,9 +21,9 @@ define('IN_INSTALL', true);
|
|||
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
|
||||
if (version_compare(PHP_VERSION, '5.3.2') < 0)
|
||||
if (version_compare(PHP_VERSION, '5.3.3') < 0)
|
||||
{
|
||||
die('You are running an unsupported PHP version. Please upgrade to PHP 5.3.2 or higher before trying to install phpBB 3.1');
|
||||
die('You are running an unsupported PHP version. Please upgrade to PHP 5.3.3 or higher before trying to install phpBB 3.1');
|
||||
}
|
||||
|
||||
function phpbb_require_updated($path, $optional = false)
|
||||
|
@ -213,7 +213,7 @@ $config = new phpbb_config(array(
|
|||
|
||||
$phpbb_style_resource_locator = new phpbb_style_resource_locator();
|
||||
$phpbb_style_path_provider = new phpbb_style_path_provider();
|
||||
$template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $phpbb_style_resource_locator);
|
||||
$template = new phpbb_template($phpbb_root_path, $phpEx, $config, $user, $phpbb_style_resource_locator, new phpbb_template_context());
|
||||
$phpbb_style = new phpbb_style($phpbb_root_path, $phpEx, $config, $user, $phpbb_style_resource_locator, $phpbb_style_path_provider, $template);
|
||||
$phpbb_style->set_ext_dir_prefix('adm/');
|
||||
$phpbb_style->set_custom_style('admin', '../adm/style', '');
|
||||
|
@ -366,6 +366,7 @@ class module
|
|||
|
||||
$template->assign_vars(array(
|
||||
'L_CHANGE' => $lang['CHANGE'],
|
||||
'L_COLON' => $lang['COLON'],
|
||||
'L_INSTALL_PANEL' => $lang['INSTALL_PANEL'],
|
||||
'L_SELECT_LANG' => $lang['SELECT_LANG'],
|
||||
'L_SKIP' => $lang['SKIP'],
|
||||
|
|
|
@ -143,7 +143,7 @@ class install_install extends module
|
|||
// Test the minimum PHP version
|
||||
$php_version = PHP_VERSION;
|
||||
|
||||
if (version_compare($php_version, '5.3.2') < 0)
|
||||
if (version_compare($php_version, '5.3.3') < 0)
|
||||
{
|
||||
$result = '<strong style="color:red">' . $lang['NO'] . '</strong>';
|
||||
}
|
||||
|
@ -271,14 +271,6 @@ class install_install extends module
|
|||
'S_LEGEND' => false,
|
||||
));
|
||||
|
||||
/**
|
||||
* Better not enabling and adding to the loaded extensions due to the specific requirements needed
|
||||
if (!@extension_loaded('mbstring'))
|
||||
{
|
||||
can_load_dll('mbstring');
|
||||
}
|
||||
*/
|
||||
|
||||
$passed['mbstring'] = true;
|
||||
if (@extension_loaded('mbstring'))
|
||||
{
|
||||
|
@ -381,8 +373,6 @@ class install_install extends module
|
|||
foreach ($this->php_dlls_other as $dll)
|
||||
{
|
||||
if (!@extension_loaded($dll))
|
||||
{
|
||||
if (!can_load_dll($dll))
|
||||
{
|
||||
$template->assign_block_vars('checks', array(
|
||||
'TITLE' => $lang['DLL_' . strtoupper($dll)],
|
||||
|
@ -393,7 +383,6 @@ class install_install extends module
|
|||
));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$template->assign_block_vars('checks', array(
|
||||
'TITLE' => $lang['DLL_' . strtoupper($dll)],
|
||||
|
@ -873,22 +862,7 @@ class install_install extends module
|
|||
$written = false;
|
||||
|
||||
// Create a list of any PHP modules we wish to have loaded
|
||||
$load_extensions = array();
|
||||
$available_dbms = get_available_dbms($data['dbms']);
|
||||
$check_exts = array_merge(array($available_dbms[$data['dbms']]['MODULE']), $this->php_dlls_other);
|
||||
|
||||
foreach ($check_exts as $dll)
|
||||
{
|
||||
if (!@extension_loaded($dll))
|
||||
{
|
||||
if (!can_load_dll($dll))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$load_extensions[] = $dll . '.' . PHP_SHLIB_SUFFIX;
|
||||
}
|
||||
}
|
||||
|
||||
// Create a lock file to indicate that there is an install in progress
|
||||
$fp = @fopen($phpbb_root_path . 'cache/install_lock', 'wb');
|
||||
|
@ -902,7 +876,7 @@ class install_install extends module
|
|||
@chmod($phpbb_root_path . 'cache/install_lock', 0777);
|
||||
|
||||
// Time to convert the data provided into a config file
|
||||
$config_data = phpbb_create_config_file_data($data, $available_dbms[$data['dbms']]['DRIVER'], $load_extensions);
|
||||
$config_data = phpbb_create_config_file_data($data, $available_dbms[$data['dbms']]['DRIVER']);
|
||||
|
||||
// Attempt to write out the config file directly. If it works, this is the easiest way to do it ...
|
||||
if ((file_exists($phpbb_root_path . 'config.' . $phpEx) && phpbb_is_writable($phpbb_root_path . 'config.' . $phpEx)) || phpbb_is_writable($phpbb_root_path))
|
||||
|
@ -1368,7 +1342,7 @@ class install_install extends module
|
|||
WHERE config_name = 'dbms_version'",
|
||||
);
|
||||
|
||||
if (@extension_loaded('gd') || can_load_dll('gd'))
|
||||
if (@extension_loaded('gd'))
|
||||
{
|
||||
$sql_ary[] = 'UPDATE ' . $data['table_prefix'] . "config
|
||||
SET config_value = 'phpbb_captcha_gd'
|
||||
|
@ -2034,9 +2008,9 @@ class install_install extends module
|
|||
'Alexa [Bot]' => array('ia_archiver', ''),
|
||||
'Alta Vista [Bot]' => array('Scooter/', ''),
|
||||
'Ask Jeeves [Bot]' => array('Ask Jeeves', ''),
|
||||
'Baidu [Spider]' => array('Baiduspider+(', ''),
|
||||
'Baidu [Spider]' => array('Baiduspider', ''),
|
||||
'Bing [Bot]' => array('bingbot/', ''),
|
||||
'Exabot [Bot]' => array('Exabot/', ''),
|
||||
'Exabot [Bot]' => array('Exabot', ''),
|
||||
'FAST Enterprise [Crawler]' => array('FAST Enterprise Crawler', ''),
|
||||
'FAST WebCrawler [Crawler]' => array('FAST-WebCrawler/', ''),
|
||||
'Francis [Bot]' => array('http://www.neomo.de/', ''),
|
||||
|
@ -2055,27 +2029,21 @@ class install_install extends module
|
|||
'MSN NewsBlogs' => array('msnbot-NewsBlogs/', ''),
|
||||
'MSN [Bot]' => array('msnbot/', ''),
|
||||
'MSNbot Media' => array('msnbot-media/', ''),
|
||||
'NG-Search [Bot]' => array('NG-Search/', ''),
|
||||
'Nutch [Bot]' => array('http://lucene.apache.org/nutch/', ''),
|
||||
'Nutch/CVS [Bot]' => array('NutchCVS/', ''),
|
||||
'OmniExplorer [Bot]' => array('OmniExplorer_Bot/', ''),
|
||||
'Online link [Validator]' => array('online link validator', ''),
|
||||
'psbot [Picsearch]' => array('psbot/0', ''),
|
||||
'Seekport [Bot]' => array('Seekbot/', ''),
|
||||
'Sensis [Crawler]' => array('Sensis Web Crawler', ''),
|
||||
'SEO Crawler' => array('SEO search Crawler/', ''),
|
||||
'Seoma [Crawler]' => array('Seoma [SEO Crawler]', ''),
|
||||
'SEOSearch [Crawler]' => array('SEOsearch/', ''),
|
||||
'Snappy [Bot]' => array('Snappy/1.1 ( http://www.urltrends.com/ )', ''),
|
||||
'Steeler [Crawler]' => array('http://www.tkl.iis.u-tokyo.ac.jp/~crawler/', ''),
|
||||
'Synoo [Bot]' => array('SynooBot/', ''),
|
||||
'Telekom [Bot]' => array('crawleradmin.t-info@telekom.de', ''),
|
||||
'TurnitinBot [Bot]' => array('TurnitinBot/', ''),
|
||||
'Voyager [Bot]' => array('voyager/1.0', ''),
|
||||
'Voyager [Bot]' => array('voyager/', ''),
|
||||
'W3 [Sitesearch]' => array('W3 SiteSearch Crawler', ''),
|
||||
'W3C [Linkcheck]' => array('W3C-checklink/', ''),
|
||||
'W3C [Validator]' => array('W3C_*Validator', ''),
|
||||
'WiseNut [Bot]' => array('http://www.WISEnutbot.com', ''),
|
||||
'W3C [Validator]' => array('W3C_Validator', ''),
|
||||
'YaCy [Bot]' => array('yacybot', ''),
|
||||
'Yahoo MMCrawler [Bot]' => array('Yahoo-MMCrawler/', ''),
|
||||
'Yahoo Slurp [Bot]' => array('Yahoo! DE Slurp', ''),
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue