mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 12:28:52 +00:00
[ticket/11966] Merge branch 'develop' into ticket/11966
PHPBB3-11966
This commit is contained in:
commit
a59bbeed2d
482 changed files with 7988 additions and 5413 deletions
18
.travis.yml
18
.travis.yml
|
@ -10,18 +10,26 @@ env:
|
||||||
- DB=mysql
|
- DB=mysql
|
||||||
- DB=postgres
|
- DB=postgres
|
||||||
|
|
||||||
before_script:
|
services:
|
||||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres; fi"
|
- redis-server
|
||||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database phpbb_tests;' -U postgres; fi"
|
|
||||||
|
install:
|
||||||
- sh -c "if [ '$DB' = 'mariadb' ]; then travis/setup-mariadb.sh; fi"
|
- sh -c "if [ '$DB' = 'mariadb' ]; then travis/setup-mariadb.sh; fi"
|
||||||
- sh -c "if [ '$DB' = 'mysql' -o '$DB' = 'mariadb' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi"
|
- sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi"
|
||||||
- travis/install-php-extensions.sh
|
- travis/install-php-extensions.sh
|
||||||
- cd phpBB
|
- cd phpBB
|
||||||
- php ../composer.phar install --dev --no-interaction --prefer-source
|
- php ../composer.phar install --dev --no-interaction --prefer-source
|
||||||
- cd ..
|
- cd ..
|
||||||
- sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi"
|
|
||||||
|
before_script:
|
||||||
|
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres; fi"
|
||||||
|
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database phpbb_tests;' -U postgres; fi"
|
||||||
|
- sh -c "if [ '$DB' = 'mysql' -o '$DB' = 'mariadb' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi"
|
||||||
|
|
||||||
script:
|
script:
|
||||||
|
- cd build
|
||||||
|
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' -a '$DB' = 'mysql' ]; then ../phpBB/vendor/bin/phing sniff; fi"
|
||||||
|
- cd ..
|
||||||
- phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml
|
- phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
|
|
|
@ -26,8 +26,8 @@ To be able to run an installation from the repo (and not from a pre-built packag
|
||||||
## AUTOMATED TESTING
|
## AUTOMATED TESTING
|
||||||
|
|
||||||
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis build below.
|
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis build below.
|
||||||
develop - [](http://travis-ci.org/phpbb/phpbb3)
|
develop - [](http://travis-ci.org/phpbb/phpbb)
|
||||||
develop-olympus - [](http://travis-ci.org/phpbb/phpbb3)
|
develop-olympus - [](http://travis-ci.org/phpbb/phpbb)
|
||||||
|
|
||||||
## LICENSE
|
## LICENSE
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||||
<!-- a few settings for the build -->
|
<!-- a few settings for the build -->
|
||||||
<property name="newversion" value="3.1.0-a1" />
|
<property name="newversion" value="3.1.0-a2" />
|
||||||
<property name="prevversion" value="3.0.12" />
|
<property name="prevversion" value="3.1.0-a1" />
|
||||||
<property name="olderversions" value="3.0.11" />
|
<property name="olderversions" value="3.0.12" />
|
||||||
<!-- no configuration should be needed beyond this point -->
|
<!-- no configuration should be needed beyond this point -->
|
||||||
|
|
||||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||||
|
@ -74,6 +74,40 @@
|
||||||
passthru="true" />
|
passthru="true" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<target name="sniff">
|
||||||
|
<exec command="phpBB/vendor/bin/phpcs
|
||||||
|
-s
|
||||||
|
--extensions=php
|
||||||
|
--standard=build/code_sniffer/ruleset-php-strict.xml
|
||||||
|
--ignore=phpBB/phpbb/db/migration/data/v30x/*
|
||||||
|
phpBB/phpbb"
|
||||||
|
dir="." returnProperty="retval-php-strict" passthru="true" />
|
||||||
|
<exec command="phpBB/vendor/bin/phpcs
|
||||||
|
-s
|
||||||
|
--extensions=php
|
||||||
|
--standard=build/code_sniffer/ruleset-php-legacy.xml
|
||||||
|
--ignore=phpBB/cache/*
|
||||||
|
--ignore=phpBB/develop/*
|
||||||
|
--ignore=phpBB/includes/diff/*.php
|
||||||
|
--ignore=phpBB/includes/sphinxapi.php
|
||||||
|
--ignore=phpBB/includes/utf/data/*
|
||||||
|
--ignore=phpBB/install/data/*
|
||||||
|
--ignore=phpBB/install/database_update.php
|
||||||
|
--ignore=phpBB/phpbb/*
|
||||||
|
--ignore=phpBB/vendor/*
|
||||||
|
phpBB"
|
||||||
|
dir="." returnProperty="retval-php-legacy" passthru="true" />
|
||||||
|
<if>
|
||||||
|
<or>
|
||||||
|
<not><equals arg1="${retval-php-strict}" arg2="0" /></not>
|
||||||
|
<not><equals arg1="${retval-php-legacy}" arg2="0" /></not>
|
||||||
|
</or>
|
||||||
|
<then>
|
||||||
|
<fail message="PHP Code Sniffer failed." />
|
||||||
|
</then>
|
||||||
|
</if>
|
||||||
|
</target>
|
||||||
|
|
||||||
<target name="docs">
|
<target name="docs">
|
||||||
<!-- only works if you setup phpdoctor:
|
<!-- only works if you setup phpdoctor:
|
||||||
git clone https://github.com/peej/phpdoctor.git
|
git clone https://github.com/peej/phpdoctor.git
|
||||||
|
|
15
build/code_sniffer/ruleset-minimum.xml
Normal file
15
build/code_sniffer/ruleset-minimum.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="phpBB Minimum Standard">
|
||||||
|
|
||||||
|
<description>phpBB minimum coding standard</description>
|
||||||
|
|
||||||
|
<!-- All code files MUST use only UTF-8 without BOM. -->
|
||||||
|
<rule ref="Generic.Files.ByteOrderMark" />
|
||||||
|
|
||||||
|
<!-- All code files MUST use the Unix LF (linefeed) line ending. -->
|
||||||
|
<rule ref="Generic.Files.LineEndings" />
|
||||||
|
|
||||||
|
<!-- Tabs MUST be used for indentation -->
|
||||||
|
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent" />
|
||||||
|
|
||||||
|
</ruleset>
|
44
build/code_sniffer/ruleset-php-legacy.xml
Normal file
44
build/code_sniffer/ruleset-php-legacy.xml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="phpBB PHP Legacy Standard">
|
||||||
|
|
||||||
|
<description>phpBB legacy coding standard for PHP files</description>
|
||||||
|
|
||||||
|
<rule ref="./ruleset-minimum.xml" />
|
||||||
|
|
||||||
|
<!-- "for (; bar; )" should be "while (bar)" instead -->
|
||||||
|
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
|
||||||
|
|
||||||
|
<!-- A method MUST not only call its parent -->
|
||||||
|
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
|
||||||
|
|
||||||
|
<!-- The body of each structure MUST be enclosed by braces. -->
|
||||||
|
<rule ref="Generic.ControlStructures.InlineControlStructure" />
|
||||||
|
|
||||||
|
<!-- There MUST not be more than one statement per line. -->
|
||||||
|
<rule ref="Generic.Formatting.DisallowMultipleStatements" />
|
||||||
|
|
||||||
|
<!-- Call-time pass-by-reference MUST not be used. -->
|
||||||
|
<rule ref="Generic.Functions.CallTimePassByReference.NotAllowed" />
|
||||||
|
|
||||||
|
<!-- Class constants MUST be declared in all upper case with underscore separators. -->
|
||||||
|
<rule ref="Generic.NamingConventions.UpperCaseConstantName" />
|
||||||
|
|
||||||
|
<!-- Only <?php, no short tags. -->
|
||||||
|
<rule ref="Generic.PHP.DisallowShortOpenTag.EchoFound" />
|
||||||
|
|
||||||
|
<!-- Method arguments with default values MUST go at the end of the argument list. -->
|
||||||
|
<rule ref="PEAR.Functions.ValidDefaultValue" />
|
||||||
|
|
||||||
|
<!-- In the argument list, there MUST NOT be a space before each comma,
|
||||||
|
and there MUST be one space after each comma. -->
|
||||||
|
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
|
||||||
|
<properties>
|
||||||
|
<property name="equalsSpacing" value="1"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterHint" />
|
||||||
|
|
||||||
|
<!-- The ?> closing tag MUST be omitted from files containing only PHP. -->
|
||||||
|
<rule ref="Zend.Files.ClosingTag" />
|
||||||
|
|
||||||
|
</ruleset>
|
51
build/code_sniffer/ruleset-php-strict.xml
Normal file
51
build/code_sniffer/ruleset-php-strict.xml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="phpBB PHP Strict Standard">
|
||||||
|
|
||||||
|
<description>phpBB coding standard for PHP files</description>
|
||||||
|
|
||||||
|
<rule ref="./ruleset-php-legacy.xml" />
|
||||||
|
|
||||||
|
<!-- There SHOULD NOT be more than 80 characters per line
|
||||||
|
There MUST NOT be more than 120 characters per line -->
|
||||||
|
<!--
|
||||||
|
<rule ref="Generic.Files.LineLength">
|
||||||
|
<properties>
|
||||||
|
<property name="lineLimit" value="80"/>
|
||||||
|
<property name="absoluteLineLimit" value="120"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- The PHP constants true, false, and null MUST be in lower case. -->
|
||||||
|
<rule ref="Generic.PHP.LowerCaseConstant" />
|
||||||
|
|
||||||
|
<!-- PHP keywords MUST be in lower case. -->
|
||||||
|
<rule ref="Generic.PHP.LowerCaseKeyword" />
|
||||||
|
|
||||||
|
<!-- There MUST NOT be trailing whitespace at the end of lines. -->
|
||||||
|
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
|
||||||
|
|
||||||
|
<!-- There MUST NOT be whitespace before the first content of a file -->
|
||||||
|
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.StartFile" />
|
||||||
|
|
||||||
|
<!-- There MUST NOT be whitespace after the last content of a file -->
|
||||||
|
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EndFile" />
|
||||||
|
|
||||||
|
<!-- Functions MUST NOT contain multiple empty lines in a row -->
|
||||||
|
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace.EmptyLines" />
|
||||||
|
|
||||||
|
<!-- Classes etc. MUST be namespaced -->
|
||||||
|
<rule ref="PSR1.Classes.ClassDeclaration.MissingNamespace" />
|
||||||
|
|
||||||
|
<!-- A file MUST not contain more than one class/interface -->
|
||||||
|
<rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses" />
|
||||||
|
|
||||||
|
<!-- Files containing classes MUST not have any side-effects -->
|
||||||
|
<rule ref="PSR1.Files.SideEffects.FoundWithSymbols" />
|
||||||
|
|
||||||
|
<!-- When present, all use declarations MUST go after the namespace declaration.
|
||||||
|
There MUST be one use keyword per declaration.
|
||||||
|
There MUST be one blank line after the use block. -->
|
||||||
|
<rule ref="PSR2.Namespaces.UseDeclaration" />
|
||||||
|
|
||||||
|
</ruleset>
|
Binary file not shown.
Before Width: | Height: | Size: 796 B |
Binary file not shown.
Before Width: | Height: | Size: 55 B |
Binary file not shown.
Before Width: | Height: | Size: 175 B |
Binary file not shown.
Before Width: | Height: | Size: 56 B |
BIN
phpBB/adm/images/loading.gif
Normal file
BIN
phpBB/adm/images/loading.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 788 B |
|
@ -122,11 +122,11 @@
|
||||||
{
|
{
|
||||||
if (newimage == 'no_image')
|
if (newimage == 'no_image')
|
||||||
{
|
{
|
||||||
document.getElementById('image_upload_icon').src = "{PHPBB_ROOT_PATH}images/spacer.gif";
|
document.getElementById('image_upload_icon').src = "{ROOT_PATH}images/spacer.gif";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
document.getElementById('image_upload_icon').src = "{PHPBB_ROOT_PATH}{IMG_PATH}/" + newimage;
|
document.getElementById('image_upload_icon').src = "{ROOT_PATH}{IMG_PATH}/" + newimage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
<dd><select name="upload_icon" id="upload_icon" onchange="update_image(this.options[selectedIndex].value);">
|
<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}
|
<option value="no_image"<!-- IF S_NO_IMAGE --> selected="selected"<!-- ENDIF -->>{L_NO_IMAGE}</option>{S_FILENAME_LIST}
|
||||||
</select></dd>
|
</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>
|
<dd> <img <!-- IF S_NO_IMAGE -->src="{ROOT_PATH}images/spacer.gif"<!-- ELSE -->src="{UPLOAD_ICON_SRC}"<!-- ENDIF --> id="image_upload_icon" alt="" title="" /> </dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}{L_COLON}</label></dt>
|
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}{L_COLON}</label></dt>
|
||||||
|
@ -224,7 +224,7 @@
|
||||||
<fieldset class="tabulated">
|
<fieldset class="tabulated">
|
||||||
<legend>{L_TITLE}</legend>
|
<legend>{L_TITLE}</legend>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="row1" /><col class="row1" /><col class="row2" />
|
<col class="row1" /><col class="row1" /><col class="row2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -291,7 +291,7 @@
|
||||||
<fieldset class="tabulated">
|
<fieldset class="tabulated">
|
||||||
<legend>{L_TITLE}</legend>
|
<legend>{L_TITLE}</legend>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="row1" /><col class="row1" /><col class="row2" />
|
<col class="row1" /><col class="row1" /><col class="row2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -331,7 +331,7 @@
|
||||||
<fieldset class="tabulated">
|
<fieldset class="tabulated">
|
||||||
<legend>{L_TITLE}</legend>
|
<legend>{L_TITLE}</legend>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_FILENAME}</th>
|
<th>{L_FILENAME}</th>
|
||||||
|
@ -389,7 +389,7 @@
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_FILENAME}</th>
|
<th>{L_FILENAME}</th>
|
||||||
|
|
|
@ -8,18 +8,14 @@
|
||||||
</select> <input type="submit" value="{L_GO}" name="avatar_local_go" class="button2" /></dd>
|
</select> <input type="submit" value="{L_GO}" name="avatar_local_go" class="button2" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- IF AVATAR_LOCAL_SHOW -->
|
<!-- IF AVATAR_LOCAL_SHOW -->
|
||||||
<table>
|
<ul id="gallery">
|
||||||
<!-- BEGIN avatar_local_row -->
|
<!-- BEGIN avatar_local_row -->
|
||||||
<tr>
|
<!-- BEGIN avatar_local_col -->
|
||||||
<!-- BEGIN avatar_local_col -->
|
<li>
|
||||||
<td class="row1" style="text-align: center;"><img src="{avatar_local_row.avatar_local_col.AVATAR_IMAGE}" alt="{avatar_local_row.avatar_local_col.AVATAR_NAME}" title="{avatar_local_row.avatar_local_col.AVATAR_NAME}"/></td>
|
<label for="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_col.S_ROW_COUNT}"><img src="{avatar_local_row.avatar_local_col.AVATAR_IMAGE}" alt="" /><br />
|
||||||
<!-- END avatar_local_col -->
|
<input type="radio" name="avatar_local_file" id="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_col.S_ROW_COUNT}" value="{avatar_local_row.avatar_local_col.AVATAR_FILE}" /></label>
|
||||||
</tr>
|
</li>
|
||||||
<tr>
|
<!-- END avatar_local_col -->
|
||||||
<!-- BEGIN avatar_local_option -->
|
|
||||||
<td class="row2" style="text-align: center;"><input type="radio" name="avatar_local_file" id="av-{avatar_local_row.S_ROW_COUNT}-{avatar_local_row.avatar_local_option.S_ROW_COUNT}" value="{avatar_local_row.avatar_local_option.AVATAR_FILE}" /></td>
|
|
||||||
<!-- END avatar_local_option -->
|
|
||||||
</tr>
|
|
||||||
<!-- END avatar_local_row -->
|
<!-- END avatar_local_row -->
|
||||||
</table>
|
</ul>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<table cellspacing="1" id="down">
|
<table class="table1" id="down">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="2">{L_TOKENS}</th>
|
<th colspan="2">{L_TOKENS}</th>
|
||||||
|
@ -90,7 +90,7 @@
|
||||||
<fieldset class="tabulated">
|
<fieldset class="tabulated">
|
||||||
<legend>{L_ACP_BBCODES}</legend>
|
<legend>{L_ACP_BBCODES}</legend>
|
||||||
|
|
||||||
<table cellspacing="1" id="down">
|
<table class="table1" id="down">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_BBCODE_TAG}</th>
|
<th>{L_BBCODE_TAG}</th>
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
|
|
||||||
<form id="acp_bots" method="post" action="{U_ACTION}">
|
<form id="acp_bots" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_BOT_NAME}</th>
|
<th>{L_BOT_NAME}</th>
|
||||||
|
|
|
@ -5,35 +5,35 @@
|
||||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
||||||
|
|
||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||||
<p>{L_PURGE_EXPLAIN}</p>
|
<p>{L_EXTENSION_DELETE_DATA_EXPLAIN}</p>
|
||||||
|
|
||||||
<!-- IF MIGRATOR_ERROR -->
|
<!-- IF MIGRATOR_ERROR -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
|
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
|
||||||
<p>{MIGRATOR_ERROR}</p>
|
<p>{MIGRATOR_ERROR}</p>
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSEIF PRE -->
|
<!-- ELSEIF PRE -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p>{L_PURGE_CONFIRM}</p>
|
<p>{L_CONFIRM_MESSAGE}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form id="acp_extensions" method="post" action="{U_PURGE}">
|
<form id="acp_extensions" method="post" action="{U_PURGE}">
|
||||||
<fieldset class="submit-buttons">
|
<fieldset class="submit-buttons">
|
||||||
<legend>{L_PURGE}</legend>
|
<legend>{L_EXTENSION_DELETE_DATA}</legend>
|
||||||
<input class="button1" type="submit" name="purge" value="{L_PURGE}" />
|
<input class="button1" type="submit" name="delete_data" value="{L_EXTENSION_DELETE_DATA}" />
|
||||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSEIF S_NEXT_STEP -->
|
<!-- ELSEIF S_NEXT_STEP -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p>{L_PURGE_IN_PROGRESS}</p>
|
<p>{L_EXTENSION_DELETE_DATA_IN_PROGRESS}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_PURGE_SUCCESS}</p>
|
<p>{L_EXTENSION_DELETE_DATA_SUCCESS}</p>
|
||||||
<br />
|
<br />
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
|
@ -5,29 +5,29 @@
|
||||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
||||||
|
|
||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||||
<p>{L_DISABLE_EXPLAIN}</p>
|
<p>{L_EXTENSION_DISABLE_EXPLAIN}</p>
|
||||||
|
|
||||||
<!-- IF PRE -->
|
<!-- IF PRE -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p>{L_DISABLE_CONFIRM}</p>
|
<p>{L_CONFIRM_MESSAGE}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form id="acp_extensions" method="post" action="{U_DISABLE}">
|
<form id="acp_extensions" method="post" action="{U_DISABLE}">
|
||||||
<fieldset class="submit-buttons">
|
<fieldset class="submit-buttons">
|
||||||
<legend>{L_DISABLE}</legend>
|
<legend>{L_EXTENSION_DISABLE}</legend>
|
||||||
<input class="button1" type="submit" name="disable" value="{L_DISABLE}" />
|
<input class="button1" type="submit" name="disable" value="{L_EXTENSION_DISABLE}" />
|
||||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSEIF S_NEXT_STEP -->
|
<!-- ELSEIF S_NEXT_STEP -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p>{L_DISABLE_IN_PROGRESS}</p>
|
<p>{L_EXTENSION_DISABLE_IN_PROGRESS}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_DISABLE_SUCCESS}</p>
|
<p>{L_EXTENSION_DISABLE_SUCCESS}</p>
|
||||||
<br />
|
<br />
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
|
|
|
@ -5,35 +5,35 @@
|
||||||
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
<h1>{L_EXTENSIONS_ADMIN}</h1>
|
||||||
|
|
||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||||
<p>{L_ENABLE_EXPLAIN}</p>
|
<p>{L_EXTENSION_ENABLE_EXPLAIN}</p>
|
||||||
|
|
||||||
<!-- IF MIGRATOR_ERROR -->
|
<!-- IF MIGRATOR_ERROR -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
|
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
|
||||||
<p>{MIGRATOR_ERROR}</p>
|
<p>{MIGRATOR_ERROR}</p>
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSEIF PRE -->
|
<!-- ELSEIF PRE -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p>{L_ENABLE_CONFIRM}</p>
|
<p>{L_CONFIRM_MESSAGE}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form id="acp_extensions" method="post" action="{U_ENABLE}">
|
<form id="acp_extensions" method="post" action="{U_ENABLE}">
|
||||||
<fieldset class="submit-buttons">
|
<fieldset class="submit-buttons">
|
||||||
<legend>{L_ENABLE}</legend>
|
<legend>{L_EXTENSION_ENABLE}</legend>
|
||||||
<input class="button1" type="submit" name="enable" value="{L_ENABLE}" />
|
<input class="button1" type="submit" name="enable" value="{L_EXTENSION_ENABLE}" />
|
||||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSEIF S_NEXT_STEP -->
|
<!-- ELSEIF S_NEXT_STEP -->
|
||||||
<div class="errorbox">
|
<div class="errorbox">
|
||||||
<p>{L_ENABLE_IN_PROGRESS}</p>
|
<p>{L_EXTENSION_ENABLE_IN_PROGRESS}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_ENABLE_SUCCESS}</p>
|
<p>{L_EXTENSION_ENABLE_SUCCESS}</p>
|
||||||
<br />
|
<br />
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
<p>{L_EXTENSIONS_EXPLAIN}</p>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="row1" ><col class="row2" ><col class="row2" >
|
<col class="row1" ><col class="row2" ><col class="row2" >
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -18,17 +18,15 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- IF .enabled -->
|
<!-- IF .enabled -->
|
||||||
<tr>
|
<tr>
|
||||||
<td class="row3" colspan="3">
|
<td class="row3" colspan="3"><strong>{L_EXTENSIONS_ENABLED}</strong></td>
|
||||||
<strong>{L_ENABLED} {L_EXTENSIONS}</strong>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<!-- BEGIN enabled -->
|
<!-- BEGIN enabled -->
|
||||||
<tr class="ext_enabled">
|
<tr class="ext_enabled">
|
||||||
<td><strong>{enabled.META_DISPLAY_NAME}</strong></a></td>
|
<td><strong>{enabled.META_DISPLAY_NAME}</strong></td>
|
||||||
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
|
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
|
||||||
<td style="text-align: center;">
|
<td style="text-align: center;">
|
||||||
<!-- BEGIN actions -->
|
<!-- BEGIN actions -->
|
||||||
<a href="{enabled.actions.U_ACTION}" alt="{enabled.actions.L_ACTION}">{enabled.actions.L_ACTION}</a>
|
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
|
||||||
<!-- IF not enabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
<!-- IF not enabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
||||||
<!-- END actions -->
|
<!-- END actions -->
|
||||||
</td>
|
</td>
|
||||||
|
@ -38,17 +36,17 @@
|
||||||
|
|
||||||
<!-- IF .disabled -->
|
<!-- IF .disabled -->
|
||||||
<tr>
|
<tr>
|
||||||
<td class="row3" colspan="3"><strong>{L_DISABLED} {L_EXTENSIONS}</strong></td>
|
<td class="row3" colspan="3"><strong>{L_EXTENSIONS_DISABLED}</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<!-- BEGIN disabled -->
|
<!-- BEGIN disabled -->
|
||||||
<tr class="ext_disabled">
|
<tr class="ext_disabled">
|
||||||
<td><strong>{disabled.META_DISPLAY_NAME}</strong></a></td>
|
<td><strong>{disabled.META_DISPLAY_NAME}</strong></td>
|
||||||
<td style="text-align: center;">
|
<td style="text-align: center;">
|
||||||
<!-- IF disabled.U_DETAILS --><a href="{disabled.U_DETAILS}">{L_DETAILS}</a><!-- ENDIF -->
|
<!-- IF disabled.U_DETAILS --><a href="{disabled.U_DETAILS}">{L_DETAILS}</a><!-- ENDIF -->
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: center;">
|
<td style="text-align: center;">
|
||||||
<!-- BEGIN actions -->
|
<!-- BEGIN actions -->
|
||||||
<a href="{disabled.actions.U_ACTION}" alt="{disabled.actions.L_ACTION}">{disabled.actions.L_ACTION}</a>
|
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
|
||||||
<!-- IF not disabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
<!-- IF not disabled.actions.S_LAST_ROW --> | <!-- ENDIF -->
|
||||||
<!-- END actions -->
|
<!-- END actions -->
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -440,32 +440,23 @@
|
||||||
<p><strong>{NAVIGATION}<!-- IF S_NO_FORUMS --> [<a href="{U_EDIT}">{L_EDIT}</a> | <a href="{U_DELETE}">{L_DELETE}</a><!-- IF not S_LINK --> | <a href="{U_SYNC}">{L_RESYNC}</a><!-- ENDIF -->]<!-- ENDIF --></strong></p>
|
<p><strong>{NAVIGATION}<!-- IF S_NO_FORUMS --> [<a href="{U_EDIT}">{L_EDIT}</a> | <a href="{U_DELETE}">{L_DELETE}</a><!-- IF not S_LINK --> | <a href="{U_SYNC}">{L_RESYNC}</a><!-- ENDIF -->]<!-- ENDIF --></strong></p>
|
||||||
|
|
||||||
<!-- IF .forums -->
|
<!-- IF .forums -->
|
||||||
<table cellspacing="1">
|
<table class="table1 forums">
|
||||||
<col class="row1" /><col class="row1" /><col class="row2" />
|
<col class="row1" /><col class="row1" /><col class="row2" />
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- BEGIN forums -->
|
<!-- BEGIN forums -->
|
||||||
<tr data-down="{forums.U_MOVE_DOWN}" data-up="{forums.U_MOVE_UP}">
|
<tr>
|
||||||
<td style="width: 5%; text-align: center;">{forums.FOLDER_IMAGE}</td>
|
<td class="folder">{forums.FOLDER_IMAGE}</td>
|
||||||
<td>
|
<td class="forum-desc">
|
||||||
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
|
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
|
||||||
<strong><!-- IF forums.S_FORUM_LINK -->{forums.FORUM_NAME}<!-- ELSE --><a href="{forums.U_FORUM}">{forums.FORUM_NAME}</a><!-- ENDIF --></strong>
|
<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.FORUM_DESCRIPTION --><br /><span>{forums.FORUM_DESCRIPTION}</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 -->
|
<!-- 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>
|
||||||
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
<td class="actions">
|
||||||
<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
|
<span class="up-disabled" style="display:none;">{ICON_MOVE_UP_DISABLED}</span>
|
||||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
<span class="up"><a href="{forums.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
||||||
<span class="down"><a href="{forums.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
|
||||||
<!-- ELSEIF not forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
|
<span class="down"><a href="{forums.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
||||||
<span class="up"><a href="{forums.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
|
||||||
<span class="down"><a href="{forums.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
|
||||||
<!-- ELSEIF forums.S_LAST_ROW && not forums.S_FIRST_ROW -->
|
|
||||||
<span class="up"><a href="{forums.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
|
||||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
<!-- ELSE -->
|
|
||||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
|
||||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
<!-- ENDIF -->
|
|
||||||
<a href="{forums.U_EDIT}">{ICON_EDIT}</a>
|
<a href="{forums.U_EDIT}">{ICON_EDIT}</a>
|
||||||
<!-- IF not forums.S_FORUM_LINK -->
|
<!-- IF not forums.S_FORUM_LINK -->
|
||||||
<a href="{forums.U_SYNC}" onclick="popup_progress_bar();">{ICON_SYNC}</a>
|
<a href="{forums.U_SYNC}" onclick="popup_progress_bar();">{ICON_SYNC}</a>
|
||||||
|
@ -501,14 +492,6 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div class="hidden">
|
|
||||||
<a class="template-up-img" href="#">{ICON_MOVE_UP}</a>
|
|
||||||
<span class="template-up-img-disabled">{ICON_MOVE_UP_DISABLED}</span>
|
|
||||||
|
|
||||||
<a class="template-down-img" href="#">{ICON_MOVE_DOWN}</a>
|
|
||||||
<span class="template-down-img-disabled">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -92,7 +92,12 @@
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="group_colour">{L_GROUP_COLOR}{L_COLON}</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>
|
<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="#" id="color_palette_toggle">{L_COLOUR_SWATCH}</a> ]</span>
|
||||||
|
<div id="color_palette_placeholder" style="display: none;" data-orientation="h" data-height="12" data-width="15" data-target="#group_colour"></div>
|
||||||
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="group_rank">{L_GROUP_RANK}{L_COLON}</label></dt>
|
<dt><label for="group_rank">{L_GROUP_RANK}{L_COLON}</label></dt>
|
||||||
|
@ -150,7 +155,7 @@
|
||||||
<a href="{U_DEFAULT_ALL}">» {L_MAKE_DEFAULT_FOR_ALL}</a>
|
<a href="{U_DEFAULT_ALL}">» {L_MAKE_DEFAULT_FOR_ALL}</a>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_USERNAME}</th>
|
<th>{L_USERNAME}</th>
|
||||||
|
@ -261,7 +266,7 @@
|
||||||
|
|
||||||
<form id="acp_groups" method="post" action="{U_ACTION}">
|
<form id="acp_groups" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
|
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -295,7 +300,7 @@
|
||||||
|
|
||||||
<p>{L_SPECIAL_GROUPS_EXPLAIN}</p>
|
<p>{L_SPECIAL_GROUPS_EXPLAIN}</p>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
|
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<p>{L_LEGEND_EXPLAIN}</p>
|
<p>{L_LEGEND_EXPLAIN}</p>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="col1" /><col class="col2" /><col class="col2" />
|
<col class="col1" /><col class="col2" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -38,23 +38,14 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- BEGIN legend -->
|
<!-- BEGIN legend -->
|
||||||
<tr data-down="{legend.U_MOVE_DOWN}" data-up="{legend.U_MOVE_UP}">
|
<tr>
|
||||||
<td><strong<!-- IF legend.GROUP_COLOUR --> style="color: {legend.GROUP_COLOUR}"<!-- ENDIF -->>{legend.GROUP_NAME}</strong></td>
|
<td><strong<!-- IF legend.GROUP_COLOUR --> style="color: {legend.GROUP_COLOUR}"<!-- ENDIF -->>{legend.GROUP_NAME}</strong></td>
|
||||||
<td style="text-align: center;">{legend.GROUP_TYPE}</td>
|
<td style="text-align: center;">{legend.GROUP_TYPE}</td>
|
||||||
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
<td class="actions">
|
||||||
<!-- IF legend.S_FIRST_ROW && not legend.S_LAST_ROW -->
|
<span class="up-disabled" style="display: none;">{ICON_MOVE_UP_DISABLED}</span>
|
||||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
<span class="up"><a href="{legend.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
||||||
<span class="down"><a href="{legend.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
|
||||||
<!-- ELSEIF not legend.S_FIRST_ROW && not legend.S_LAST_ROW -->
|
<span class="down"><a href="{legend.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
||||||
<span class="up"><a href="{legend.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
|
||||||
<span class="down"><a href="{legend.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
|
||||||
<!-- ELSEIF legend.S_LAST_ROW && not legend.S_FIRST_ROW -->
|
|
||||||
<span class="up"><a href="{legend.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
|
||||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
<!-- ELSE -->
|
|
||||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
|
||||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
<!-- ENDIF -->
|
|
||||||
<a href="{legend.U_DELETE}">{ICON_DELETE}</a>
|
<a href="{legend.U_DELETE}">{ICON_DELETE}</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -115,7 +106,7 @@
|
||||||
|
|
||||||
<!-- IF S_TEAMPAGE_CATEGORY and CURRENT_CATEGORY_NAME --><p><strong><a href="{U_ACTION}">{L_TEAMPAGE}</a> » {CURRENT_CATEGORY_NAME}</strong></p><!-- ENDIF -->
|
<!-- IF S_TEAMPAGE_CATEGORY and CURRENT_CATEGORY_NAME --><p><strong><a href="{U_ACTION}">{L_TEAMPAGE}</a> » {CURRENT_CATEGORY_NAME}</strong></p><!-- ENDIF -->
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="col1" /><col class="col2" /><col class="col2" />
|
<col class="col1" /><col class="col2" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -126,7 +117,7 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- BEGIN teampage -->
|
<!-- BEGIN teampage -->
|
||||||
<tr data-down="{teampage.U_MOVE_DOWN}" data-up="{teampage.U_MOVE_UP}">
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- IF teampage.U_CATEGORY -->
|
<!-- IF teampage.U_CATEGORY -->
|
||||||
<a href="{teampage.U_CATEGORY}">{teampage.GROUP_NAME}</a>
|
<a href="{teampage.U_CATEGORY}">{teampage.GROUP_NAME}</a>
|
||||||
|
@ -136,20 +127,11 @@
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align: center;"><!-- IF teampage.GROUP_TYPE -->{teampage.GROUP_TYPE}<!-- ELSE -->-<!-- ENDIF -->
|
<td style="text-align: center;"><!-- IF teampage.GROUP_TYPE -->{teampage.GROUP_TYPE}<!-- ELSE -->-<!-- ENDIF -->
|
||||||
</td></td>
|
</td></td>
|
||||||
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
<td class="actions">
|
||||||
<!-- IF teampage.S_FIRST_ROW && not teampage.S_LAST_ROW -->
|
<span class="up-disabled" style="display: none;">{ICON_MOVE_UP_DISABLED}</span>
|
||||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
<span class="up"><a href="{teampage.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
||||||
<span class="down"><a href="{teampage.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
|
||||||
<!-- ELSEIF not teampage.S_FIRST_ROW && not teampage.S_LAST_ROW -->
|
<span class="down"><a href="{teampage.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
||||||
<span class="up"><a href="{teampage.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
|
||||||
<span class="down"><a href="{teampage.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
|
|
||||||
<!-- ELSEIF teampage.S_LAST_ROW && not teampage.S_FIRST_ROW -->
|
|
||||||
<span class="up"><a href="{teampage.U_MOVE_UP}" data-ajax="row_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
|
|
||||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
<!-- ELSE -->
|
|
||||||
<span class="up">{ICON_MOVE_UP_DISABLED}</span>
|
|
||||||
<span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
<!-- ENDIF -->
|
|
||||||
<a href="{teampage.U_DELETE}">{ICON_DELETE}</a>
|
<a href="{teampage.U_DELETE}">{ICON_DELETE}</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -186,12 +168,4 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<div class="hidden">
|
|
||||||
<a class="template-up-img" href="#">{ICON_MOVE_UP}</a>
|
|
||||||
<span class="template-up-img-disabled">{ICON_MOVE_UP_DISABLED}</span>
|
|
||||||
|
|
||||||
<a class="template-down-img" href="#">{ICON_MOVE_DOWN}</a>
|
|
||||||
<span class="template-down-img-disabled">{ICON_MOVE_DOWN_DISABLED}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
{
|
{
|
||||||
var use_element = smiley[newimage];
|
var use_element = smiley[newimage];
|
||||||
|
|
||||||
document.getElementById('add_image_src').src = '{PHPBB_ROOT_PATH}{IMG_PATH}/' + encodeURI(newimage);
|
document.getElementById('add_image_src').src = '{ROOT_PATH}{IMG_PATH}/' + encodeURI(newimage);
|
||||||
document.getElementById('add_code').value = use_element['code'];
|
document.getElementById('add_code').value = use_element['code'];
|
||||||
document.getElementById('add_emotion').value = use_element['emotion'];
|
document.getElementById('add_emotion').value = use_element['emotion'];
|
||||||
document.getElementById('add_width').value = use_element['width'];
|
document.getElementById('add_width').value = use_element['width'];
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
<fieldset class="tabulated">
|
<fieldset class="tabulated">
|
||||||
<legend>{L_TITLE}</legend>
|
<legend>{L_TITLE}</legend>
|
||||||
|
|
||||||
<table cellspacing="1" id="smilies">
|
<table class="table1" id="smilies">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="{COLSPAN}">{L_CONFIG}</th>
|
<th colspan="{COLSPAN}">{L_CONFIG}</th>
|
||||||
|
@ -218,7 +218,7 @@
|
||||||
|
|
||||||
<legend>{L_TITLE}</legend>
|
<legend>{L_TITLE}</legend>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_TITLE}</th>
|
<th>{L_TITLE}</th>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_USERNAME}</th>
|
<th>{L_USERNAME}</th>
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<fieldset class="display-options">
|
<fieldset class="display-options">
|
||||||
{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="number" 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 --> {L_USERS_PER_PAGE}{L_COLON} <input class="inputbox autowidth" type="number" 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" />
|
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
|
|
||||||
<form id="missing" method="post" action="{U_MISSING_ACTION}">
|
<form id="missing" method="post" action="{U_MISSING_ACTION}">
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_LANGUAGE_KEY}</th>
|
<th>{L_LANGUAGE_KEY}</th>
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
</style>
|
</style>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<!-- IF S_EMAIL_FILE -->
|
<!-- IF S_EMAIL_FILE -->
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -211,7 +211,7 @@
|
||||||
|
|
||||||
<p>{L_ACP_LANGUAGE_PACKS_EXPLAIN}</p>
|
<p>{L_ACP_LANGUAGE_PACKS_EXPLAIN}</p>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_LANGUAGE_PACK_NAME}</th>
|
<th>{L_LANGUAGE_PACK_NAME}</th>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<div><br style="clear: both;" /></div>
|
<div><br style="clear: both;" /></div>
|
||||||
|
|
||||||
<!-- IF .log -->
|
<!-- IF .log -->
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_USERNAME}</th>
|
<th>{L_USERNAME}</th>
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
|
|
||||||
<!-- EVENT acp_main_notice_after -->
|
<!-- EVENT acp_main_notice_after -->
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1 two-columns no-header" data-no-responsive-header="true">
|
||||||
<caption>{L_FORUM_STATS}</caption>
|
<caption>{L_FORUM_STATS}</caption>
|
||||||
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -168,21 +168,21 @@
|
||||||
</dl>
|
</dl>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<form id="action_stats_form" method="post" action="{U_ACTION}" data-ajax="true">
|
<form id="action_stats_form" method="post" action="{U_ACTION}">
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="action_stats">{L_RESYNC_STATS}</label><br /><span>{L_RESYNC_STATS_EXPLAIN}</span></dt>
|
<dt><label for="action_stats">{L_RESYNC_STATS}</label><br /><span>{L_RESYNC_STATS_EXPLAIN}</span></dt>
|
||||||
<dd><input type="hidden" name="action" value="stats" /><input class="button2" type="submit" id="action_stats" name="action_stats" value="{L_RUN}" /></dd>
|
<dd><input type="hidden" name="action" value="stats" /><input class="button2" type="submit" id="action_stats" name="action_stats" value="{L_RUN}" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<form id="action_user_form" method="post" action="{U_ACTION}" data-ajax="true">
|
<form id="action_user_form" method="post" action="{U_ACTION}">
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="action_user">{L_RESYNC_POSTCOUNTS}</label><br /><span>{L_RESYNC_POSTCOUNTS_EXPLAIN}</span></dt>
|
<dt><label for="action_user">{L_RESYNC_POSTCOUNTS}</label><br /><span>{L_RESYNC_POSTCOUNTS_EXPLAIN}</span></dt>
|
||||||
<dd><input type="hidden" name="action" value="user" /><input class="button2" type="submit" id="action_user" name="action_user" value="{L_RUN}" /></dd>
|
<dd><input type="hidden" name="action" value="user" /><input class="button2" type="submit" id="action_user" name="action_user" value="{L_RUN}" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<form id="action_db_track_form" method="post" action="{U_ACTION}" data-ajax="true">
|
<form id="action_db_track_form" method="post" action="{U_ACTION}">
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="action_db_track">{L_RESYNC_POST_MARKING}</label><br /><span>{L_RESYNC_POST_MARKING_EXPLAIN}</span></dt>
|
<dt><label for="action_db_track">{L_RESYNC_POST_MARKING}</label><br /><span>{L_RESYNC_POST_MARKING_EXPLAIN}</span></dt>
|
||||||
<dd><input type="hidden" name="action" value="db_track" /><input class="button2" type="submit" id="action_db_track" name="action_db_track" value="{L_RUN}" /></dd>
|
<dd><input type="hidden" name="action" value="db_track" /><input class="button2" type="submit" id="action_db_track" name="action_db_track" value="{L_RUN}" /></dd>
|
||||||
|
@ -216,7 +216,7 @@
|
||||||
|
|
||||||
<div style="text-align: right;"><a href="{U_ADMIN_LOG}">» {L_VIEW_ADMIN_LOG}</a></div>
|
<div style="text-align: right;"><a href="{U_ADMIN_LOG}">» {L_VIEW_ADMIN_LOG}</a></div>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_USERNAME}</th>
|
<th>{L_USERNAME}</th>
|
||||||
|
@ -249,7 +249,7 @@
|
||||||
|
|
||||||
<div style="text-align: right;"><a href="{U_INACTIVE_USERS}">» {L_VIEW_INACTIVE_USERS}</a></div>
|
<div style="text-align: right;"><a href="{U_INACTIVE_USERS}">» {L_VIEW_INACTIVE_USERS}</a></div>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_USERNAME}</th>
|
<th>{L_USERNAME}</th>
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="row3">{NAVIGATION}<!-- IF S_NO_MODULES --> [<a href="{U_EDIT}">{L_EDIT}</a> | <a href="{U_DELETE}">{L_DELETE}</a> | <!-- IF MODULE_ENABLED --><a href="{U_DISABLE}">{L_DISABLE}</a><!-- ELSE --><a href="{U_ENABLE}">{L_ENABLE}</a><!-- ENDIF -->]<!-- ENDIF --></td>
|
<td class="row3">{NAVIGATION}<!-- IF S_NO_MODULES --> [<a href="{U_EDIT}">{L_EDIT}</a> | <a href="{U_DELETE}">{L_DELETE}</a> | <!-- IF MODULE_ENABLED --><a href="{U_DISABLE}">{L_DISABLE}</a><!-- ELSE --><a href="{U_ENABLE}">{L_ENABLE}</a><!-- ENDIF -->]<!-- ENDIF --></td>
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<!-- IF .modules -->
|
<!-- IF .modules -->
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="row1" /><col class="row1" /><col class="row2" /><col class="row2" />
|
<col class="row1" /><col class="row1" /><col class="row2" /><col class="row2" />
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- BEGIN modules -->
|
<!-- BEGIN modules -->
|
||||||
|
@ -149,20 +149,11 @@
|
||||||
<td style="width: 5%; text-align: center;">{modules.MODULE_IMAGE}</td>
|
<td style="width: 5%; text-align: center;">{modules.MODULE_IMAGE}</td>
|
||||||
<td><a href="{modules.U_MODULE}">{modules.MODULE_TITLE}</a><!-- IF not modules.MODULE_DISPLAYED --> <span class="small">[{L_HIDDEN_MODULE}]</span><!-- ENDIF --></td>
|
<td><a href="{modules.U_MODULE}">{modules.MODULE_TITLE}</a><!-- IF not modules.MODULE_DISPLAYED --> <span class="small">[{L_HIDDEN_MODULE}]</span><!-- ENDIF --></td>
|
||||||
<td style="width: 15%; white-space: nowrap; text-align: center; vertical-align: middle;"> <!-- IF modules.MODULE_ENABLED --><a href="{modules.U_DISABLE}">{L_DISABLE}</a><!-- ELSE --><a href="{modules.U_ENABLE}">{L_ENABLE}</a><!-- ENDIF --> </td>
|
<td style="width: 15%; white-space: nowrap; text-align: center; vertical-align: middle;"> <!-- IF modules.MODULE_ENABLED --><a href="{modules.U_DISABLE}">{L_DISABLE}</a><!-- ELSE --><a href="{modules.U_ENABLE}">{L_ENABLE}</a><!-- ENDIF --> </td>
|
||||||
<td style="width:90px; white-space: nowrap; text-align: right; vertical-align: middle;">
|
<td class="actions">
|
||||||
<!-- IF modules.S_FIRST_ROW && not modules.S_LAST_ROW -->
|
<span class="up-disabled" style="display:none;">{ICON_MOVE_UP_DISABLED}</span>
|
||||||
{ICON_MOVE_UP_DISABLED}
|
<span class="up"><a href="{modules.U_MOVE_UP}">{ICON_MOVE_UP}</a></span>
|
||||||
<a href="{modules.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
|
||||||
<!-- ELSEIF not modules.S_FIRST_ROW && not modules.S_LAST_ROW-->
|
<span class="down"><a href="{modules.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a></span>
|
||||||
<a href="{modules.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
|
||||||
<a href="{modules.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
|
|
||||||
<!-- ELSEIF modules.S_LAST_ROW && not modules.S_FIRST_ROW -->
|
|
||||||
<a href="{modules.U_MOVE_UP}">{ICON_MOVE_UP}</a>
|
|
||||||
{ICON_MOVE_DOWN_DISABLED}
|
|
||||||
<!-- ELSE -->
|
|
||||||
{ICON_MOVE_UP_DISABLED}
|
|
||||||
{ICON_MOVE_DOWN_DISABLED}
|
|
||||||
<!-- ENDIF -->
|
|
||||||
<a href="{modules.U_EDIT}">{ICON_EDIT}</a>
|
<a href="{modules.U_EDIT}">{ICON_EDIT}</a>
|
||||||
<a href="{modules.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
|
<a href="{modules.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -90,9 +90,8 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- BEGIN auth -->
|
<!-- BEGIN auth -->
|
||||||
<div class="permissions-panel" id="options00{auth.S_ROW_COUNT}"<!-- IF auth.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->>
|
<div class="permissions-panel" id="options00{auth.S_ROW_COUNT}"<!-- IF auth.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->>
|
||||||
<span class="corners-top"><span></span></span>
|
|
||||||
<div class="tablewrap">
|
<div class="tablewrap">
|
||||||
<table id="table00{auth.S_ROW_COUNT}" cellspacing="1">
|
<table id="table00{auth.S_ROW_COUNT}" class="table1 not-responsive">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col class="permissions-name" />
|
<col class="permissions-name" />
|
||||||
<col class="permissions-yes" />
|
<col class="permissions-yes" />
|
||||||
|
@ -120,7 +119,6 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<span class="corners-bottom"><span></span></span>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- END auth -->
|
<!-- END auth -->
|
||||||
</div>
|
</div>
|
||||||
|
@ -144,7 +142,7 @@
|
||||||
|
|
||||||
<form id="acp_roles" method="post" action="{U_ACTION}">
|
<form id="acp_roles" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="col2" /><col class="col2" /><col class="col1" /><col class="col2" /><col class="col2" />
|
<col class="col2" /><col class="col2" /><col class="col1" /><col class="col2" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -110,7 +110,7 @@
|
||||||
|
|
||||||
<!-- ELSEIF S_SELECT_USERGROUP -->
|
<!-- ELSEIF S_SELECT_USERGROUP -->
|
||||||
|
|
||||||
<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;">
|
<div class="column1">
|
||||||
|
|
||||||
<!-- IF S_CAN_SELECT_USER -->
|
<!-- IF S_CAN_SELECT_USER -->
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
|
<div class="column2">
|
||||||
|
|
||||||
<!-- IF S_CAN_SELECT_GROUP -->
|
<!-- IF S_CAN_SELECT_GROUP -->
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@
|
||||||
|
|
||||||
<!-- ELSEIF S_SELECT_USERGROUP_VIEW -->
|
<!-- ELSEIF S_SELECT_USERGROUP_VIEW -->
|
||||||
|
|
||||||
<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;">
|
<div class="column1">
|
||||||
|
|
||||||
<h1>{L_USERS}</h1>
|
<h1>{L_USERS}</h1>
|
||||||
|
|
||||||
|
@ -241,7 +241,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
|
<div class="column2">
|
||||||
|
|
||||||
<h1>{L_USERGROUPS}</h1>
|
<h1>{L_USERGROUPS}</h1>
|
||||||
|
|
||||||
|
@ -324,7 +324,7 @@
|
||||||
</form>
|
</form>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<br /><br />
|
<br class="responsive-hide" /><br class="responsive-hide" />
|
||||||
|
|
||||||
<!-- include tooltip file -->
|
<!-- include tooltip file -->
|
||||||
<script type="text/javascript" src="style/tooltip.js"></script>
|
<script type="text/javascript" src="style/tooltip.js"></script>
|
||||||
|
@ -340,7 +340,7 @@
|
||||||
|
|
||||||
<!-- INCLUDE permission_mask.html -->
|
<!-- INCLUDE permission_mask.html -->
|
||||||
|
|
||||||
<br /><br />
|
<br class="responsive-hide" /><br class="responsive-hide" />
|
||||||
|
|
||||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
|
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
|
||||||
<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
|
<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
|
||||||
|
@ -348,7 +348,7 @@
|
||||||
{S_FORM_TOKEN}
|
{S_FORM_TOKEN}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<br /><br />
|
<br class="responsive-hide" /><br class="responsive-hide" />
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
|
@ -185,7 +185,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_FIELD_IDENT}</th>
|
<th>{L_FIELD_IDENT}</th>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
<p>{L_PRUNE_SUCCESS}</p>
|
<p>{L_PRUNE_SUCCESS}</p>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_FORUM}</th>
|
<th>{L_FORUM}</th>
|
||||||
|
|
|
@ -39,11 +39,11 @@
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="posts_on_queue">{L_POSTS_ON_QUEUE}{L_COLON}</label></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="number" id="posts_on_queue" name="posts_on_queue" /></select>
|
<dd><select name="queue_select">{S_COUNT_OPTIONS}</select> <input type="number" id="posts_on_queue" name="posts_on_queue" /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- IF S_GROUP_LIST -->
|
<!-- IF S_GROUP_LIST -->
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="group_id">{L_GROUP}{L_COLON}</label><br /><span>{L_PRUNE_USERS_GROUP_EXPLAIN}</dt>
|
<dt><label for="group_id">{L_GROUP}{L_COLON}</label><br /><span>{L_PRUNE_USERS_GROUP_EXPLAIN}</span></dt>
|
||||||
<dd><select name="group_id">{S_GROUP_LIST}</select></dd>
|
<dd><select name="group_id">{S_GROUP_LIST}</select></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
<fieldset class="tabulated">
|
<fieldset class="tabulated">
|
||||||
<legend>{L_ACP_MANAGE_RANKS}</legend>
|
<legend>{L_ACP_MANAGE_RANKS}</legend>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_RANK_IMAGE}</th>
|
<th>{L_RANK_IMAGE}</th>
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
<legend>{L_ACP_REASONS}</legend>
|
<legend>{L_ACP_REASONS}</legend>
|
||||||
|
|
||||||
<!-- IF .reasons -->
|
<!-- IF .reasons -->
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="row1" /><col class="row1" /><col class="row2" />
|
<col class="row1" /><col class="row1" /><col class="row2" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
|
|
||||||
<legend>{L_INDEX_STATS}{L_COLON} {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">
|
<table class="table1">
|
||||||
<caption>{backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></caption>
|
<caption>{backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></caption>
|
||||||
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- IF .styles_list -->
|
<!-- IF .styles_list -->
|
||||||
<table cellspacing="1">
|
<table class="table1 styles">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_STYLE_NAME}</th>
|
<th>{L_STYLE_NAME}</th>
|
||||||
|
@ -97,9 +97,9 @@
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
<!-- IF $ROW_CLASS == 'row2a' --><!-- DEFINE $ROW_CLASS = 'row2b' --><!-- ELSE --><!-- DEFINE $ROW_CLASS = 'row2a' --><!-- ENDIF -->
|
<!-- IF $ROW_CLASS == 'row2a' --><!-- DEFINE $ROW_CLASS = 'row2b' --><!-- ELSE --><!-- DEFINE $ROW_CLASS = 'row2a' --><!-- ENDIF -->
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<td class="{$ROW_CLASS}" style="padding-left: {styles_list.PADDING}px;">
|
<td class="{$ROW_CLASS}" style="padding-{S_CONTENT_FLOW_BEGIN}: {styles_list.PADDING}px;">
|
||||||
<!-- IF styles_list.STYLE_ID and styles_list.COMMENT == '' and styles_list.STYLE_ACTIVE -->
|
<!-- IF styles_list.STYLE_ID and styles_list.COMMENT == '' and styles_list.STYLE_ACTIVE -->
|
||||||
<div class="default-style" style="display: none; float: right;">
|
<div class="default-style" style="display: none; float: {S_CONTENT_FLOW_END};">
|
||||||
<input class="radio" type="radio" name="default" value="{styles_list.STYLE_ID}"<!-- IF styles_list.DEFAULT --> checked="checked"<!-- ELSE --><!-- DEFINE $S_DEFAULT = 1 --><!-- ENDIF --> title="{L_STYLE_DEFAULT}" />
|
<input class="radio" type="radio" name="default" value="{styles_list.STYLE_ID}"<!-- IF styles_list.DEFAULT --> checked="checked"<!-- ELSE --><!-- DEFINE $S_DEFAULT = 1 --><!-- ENDIF --> title="{L_STYLE_DEFAULT}" />
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
@ -117,9 +117,9 @@
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
</td>
|
</td>
|
||||||
<!-- IF not STYLES_LIST_HIDE_COUNT -->
|
<!-- IF not STYLES_LIST_HIDE_COUNT -->
|
||||||
<td class="{$ROW_CLASS}" style="text-align: center;">{styles_list.USERS}</td>
|
<td class="{$ROW_CLASS} users">{styles_list.USERS}</td>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<td class="{$ROW_CLASS}" style="text-align: center;">
|
<td class="{$ROW_CLASS} actions">
|
||||||
<!-- BEGIN actions -->
|
<!-- BEGIN actions -->
|
||||||
<!-- IF styles_list.actions.S_ROW_COUNT > 0 --> | <!-- ENDIF -->
|
<!-- IF styles_list.actions.S_ROW_COUNT > 0 --> | <!-- ENDIF -->
|
||||||
<!-- IF styles_list.actions.U_ACTION -->
|
<!-- IF styles_list.actions.U_ACTION -->
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
<!-- END actions -->
|
<!-- END actions -->
|
||||||
</td>
|
</td>
|
||||||
{styles_list.EXTRA}
|
{styles_list.EXTRA}
|
||||||
<td class="{$ROW_CLASS}" width="20" style="text-align: center;">
|
<td class="{$ROW_CLASS} mark" width="20">
|
||||||
<!-- IF styles_list.STYLE_ID -->
|
<!-- IF styles_list.STYLE_ID -->
|
||||||
<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />
|
<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />
|
||||||
<!-- ELSE -->
|
<!-- ELSE -->
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
|
|
||||||
<form id="user_groups" method="post" action="{U_ACTION}">
|
<form id="user_groups" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<tbody>
|
<tbody>
|
||||||
<!-- BEGIN group -->
|
<!-- BEGIN group -->
|
||||||
<!-- IF group.S_NEW_GROUP_TYPE -->
|
<!-- IF group.S_NEW_GROUP_TYPE -->
|
||||||
|
@ -164,7 +164,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- IF .attach -->
|
<!-- IF .attach -->
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_FILENAME}</th>
|
<th>{L_FILENAME}</th>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- IF .log -->
|
<!-- IF .log -->
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_REPORT_BY}</th>
|
<th>{L_REPORT_BY}</th>
|
||||||
|
|
|
@ -39,11 +39,6 @@
|
||||||
<dd><label><input type="radio" class="radio" name="notifypm" value="1"<!-- IF NOTIFY_PM --> id="notifypm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
<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>
|
<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>
|
||||||
<dl>
|
|
||||||
<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>
|
<dl>
|
||||||
<dt><label for="lang">{L_BOARD_LANGUAGE}{L_COLON}</label></dt>
|
<dt><label for="lang">{L_BOARD_LANGUAGE}{L_COLON}</label></dt>
|
||||||
<dd><select id="lang" name="lang">{S_LANG_OPTIONS}</select></dd>
|
<dd><select id="lang" name="lang">{S_LANG_OPTIONS}</select></dd>
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
var form_name = 'user_signature';
|
var form_name = 'user_signature';
|
||||||
var text_name = 'signature';
|
var text_name = 'signature';
|
||||||
|
var load_draft = false;
|
||||||
|
var upload = false;
|
||||||
|
|
||||||
// Define the bbCode tags
|
// Define the bbCode tags
|
||||||
var bbcode = new Array();
|
var bbcode = new Array();
|
||||||
|
@ -20,11 +22,11 @@
|
||||||
o: '{LA_BBCODE_O_HELP}',
|
o: '{LA_BBCODE_O_HELP}',
|
||||||
p: '{LA_BBCODE_P_HELP}',
|
p: '{LA_BBCODE_P_HELP}',
|
||||||
w: '{LA_BBCODE_W_HELP}',
|
w: '{LA_BBCODE_W_HELP}',
|
||||||
|
a: '{LA_BBCODE_A_HELP}',
|
||||||
s: '{LA_BBCODE_S_HELP}',
|
s: '{LA_BBCODE_S_HELP}',
|
||||||
f: '{LA_BBCODE_F_HELP}',
|
f: '{LA_BBCODE_F_HELP}',
|
||||||
y: '{LA_BBCODE_Y_HELP}',
|
y: '{LA_BBCODE_Y_HELP}',
|
||||||
d: '{LA_BBCODE_D_HELP}',
|
d: '{LA_BBCODE_D_HELP}'
|
||||||
tip: '{L_STYLES_TIP}'
|
|
||||||
<!-- BEGIN custom_tags -->
|
<!-- BEGIN custom_tags -->
|
||||||
,cb_{custom_tags.BBCODE_ID}{L_COLON} '{custom_tags.A_BBCODE_HELPLINE}'
|
,cb_{custom_tags.BBCODE_ID}{L_COLON} '{custom_tags.A_BBCODE_HELPLINE}'
|
||||||
<!-- END custom_tags -->
|
<!-- END custom_tags -->
|
||||||
|
@ -32,7 +34,7 @@
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
|
<!-- INCLUDEJS {T_ASSETS_PATH}/javascript/editor.js -->
|
||||||
|
|
||||||
<form id="user_signature" method="post" action="{U_ACTION}">
|
<form id="user_signature" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
|
@ -48,52 +50,46 @@
|
||||||
<p>{L_SIGNATURE_EXPLAIN}</p>
|
<p>{L_SIGNATURE_EXPLAIN}</p>
|
||||||
|
|
||||||
<div id="format-buttons">
|
<div id="format-buttons">
|
||||||
<input type="button" class="button2" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px;" onclick="bbstyle(0)" onmouseover="helpline('b')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="bbstyle(0)" title="{L_BBCODE_B_HELP}" />
|
||||||
<input type="button" class="button2" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px;" onclick="bbstyle(2)" onmouseover="helpline('i')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="bbstyle(2)" title="{L_BBCODE_I_HELP}" />
|
||||||
<input type="button" class="button2" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px;" onclick="bbstyle(4)" onmouseover="helpline('u')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="bbstyle(4)" title="{L_BBCODE_U_HELP}" />
|
||||||
<input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" onmouseover="helpline('q')" onmouseout="helpline('tip')" />
|
<!-- IF S_BBCODE_QUOTE -->
|
||||||
<input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" onmouseover="helpline('c')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="{L_BBCODE_Q_HELP}" />
|
||||||
<input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" onmouseover="helpline('l')" onmouseout="helpline('tip')" />
|
<!-- ENDIF -->
|
||||||
<input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" onmouseover="helpline('o')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" title="{L_BBCODE_C_HELP}" />
|
||||||
<input type="button" class="button2" accesskey="y" name="addlistitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" onmouseover="helpline('y')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" title="{L_BBCODE_L_HELP}" />
|
||||||
|
<input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" title="{L_BBCODE_O_HELP}" />
|
||||||
|
<input type="button" class="button2" accesskey="y" name="addlistitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" title="{L_BBCODE_LISTITEM_HELP}" />
|
||||||
<!-- IF S_BBCODE_IMG -->
|
<!-- IF S_BBCODE_IMG -->
|
||||||
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" onmouseover="helpline('p')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" title="{L_BBCODE_P_HELP}" />
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<!-- IF S_LINKS_ALLOWED -->
|
<!-- IF S_LINKS_ALLOWED -->
|
||||||
<input type="button" class="button2" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onclick="bbstyle(16)" onmouseover="helpline('w')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onclick="bbstyle(16)" title="{L_BBCODE_W_HELP}" />
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<!-- IF S_BBCODE_FLASH -->
|
<!-- IF S_BBCODE_FLASH -->
|
||||||
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" onmouseover="helpline('d')" onmouseout="helpline('tip')" />
|
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" title="{L_BBCODE_D_HELP}" />
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
<select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_BBCODE_F_HELP}">
|
||||||
{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="50">{L_FONT_TINY}</option>
|
||||||
<option value="85">{L_FONT_SMALL}</option>
|
<option value="85">{L_FONT_SMALL}</option>
|
||||||
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
|
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
|
||||||
<option value="150">{L_FONT_LARGE}</option>
|
<!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 150 -->
|
||||||
<option value="200">{L_FONT_HUGE}</option>
|
<option value="150">{L_FONT_LARGE}</option>
|
||||||
|
<!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 200 -->
|
||||||
|
<option value="200">{L_FONT_HUGE}</option>
|
||||||
|
<!-- ENDIF -->
|
||||||
|
<!-- ENDIF -->
|
||||||
</select>
|
</select>
|
||||||
<!-- IF .custom_tags -->
|
|
||||||
<br /><br />
|
|
||||||
<!-- BEGIN custom_tags -->
|
<!-- BEGIN custom_tags -->
|
||||||
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})"<!-- IF custom_tags.BBCODE_HELPLINE !== '' --> onmouseover="helpline('cb_{custom_tags.BBCODE_ID}')" onmouseout="helpline('tip')"<!-- ENDIF --> />
|
<input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{custom_tags.BBCODE_HELPLINE}" />
|
||||||
<!-- END custom_tags -->
|
<!-- END custom_tags -->
|
||||||
<!-- ENDIF -->
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p><input type="text" class="text full" style="border: 0; background: none;" name="helpbox" value="{L_STYLES_TIP}" /></p>
|
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt style="width: 90px;">
|
<dt style="width: 90px;" id="color_palette_placeholder" data-orientation="v" data-height="12" data-width="15" data-bbcode="true">
|
||||||
<script type="text/javascript">
|
|
||||||
// <![CDATA[
|
|
||||||
colorPalette('v', 12, 10);
|
|
||||||
// ]]>
|
|
||||||
</script>
|
|
||||||
</dt>
|
</dt>
|
||||||
<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();" data-bbcode="true">{SIGNATURE}</textarea></dd>
|
<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();" data-bbcode="true">{SIGNATURE}</textarea></dd>
|
||||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}{L_COLON} 90px; margin-top: 5px;">
|
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 5px;">
|
||||||
<!-- IF S_BBCODE_ALLOWED -->
|
<!-- IF S_BBCODE_ALLOWED -->
|
||||||
<label><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /> {L_DISABLE_BBCODE}</label>
|
<label><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /> {L_DISABLE_BBCODE}</label>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
@ -104,7 +100,7 @@
|
||||||
<label><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /> {L_DISABLE_MAGIC_URL}</label>
|
<label><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /> {L_DISABLE_MAGIC_URL}</label>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
</dd>
|
</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>
|
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 10px;"><strong>{L_OPTIONS}{L_COLON} </strong>{BBCODE_STATUS} :: {IMG_STATUS} :: {FLASH_STATUS} :: {URL_STATUS} :: {SMILIES_STATUS}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<form id="list" method="post" action="{U_ACTION}">
|
<form id="list" method="post" action="{U_ACTION}">
|
||||||
|
|
||||||
<!-- IF .warn -->
|
<!-- IF .warn -->
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_REPORT_BY}</th>
|
<th>{L_REPORT_BY}</th>
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<input class="button2" name="add" type="submit" value="{L_ADD_WORD}" />
|
<input class="button2" name="add" type="submit" value="{L_ADD_WORD}" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_WORD}</th>
|
<th>{L_WORD}</th>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
246
phpBB/adm/style/admin.js
Normal file
246
phpBB/adm/style/admin.js
Normal file
|
@ -0,0 +1,246 @@
|
||||||
|
/**
|
||||||
|
* phpBB3 ACP functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse document block
|
||||||
|
*/
|
||||||
|
function parse_document(container)
|
||||||
|
{
|
||||||
|
var test = document.createElement('div'),
|
||||||
|
oldBrowser = (typeof test.style.borderRadius == 'undefined');
|
||||||
|
|
||||||
|
delete test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Navigation
|
||||||
|
*/
|
||||||
|
container.find('#menu').each(function() {
|
||||||
|
var menu = $(this),
|
||||||
|
blocks = menu.children('.menu-block');
|
||||||
|
|
||||||
|
if (!blocks.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set onclick event
|
||||||
|
blocks.children('a.header').click(function() {
|
||||||
|
var parent = $(this).parent();
|
||||||
|
if (!parent.hasClass('active')) {
|
||||||
|
parent.siblings().removeClass('active');
|
||||||
|
}
|
||||||
|
parent.toggleClass('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set active menu
|
||||||
|
menu.find('#activemenu').parents('.menu-block').addClass('active');
|
||||||
|
|
||||||
|
// Check if there is active menu
|
||||||
|
if (!blocks.filter('.active').length) {
|
||||||
|
blocks.filter(':first').addClass('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Responsive tables
|
||||||
|
*/
|
||||||
|
container.find('table').not('.not-responsive').each(function() {
|
||||||
|
var $this = $(this),
|
||||||
|
th = $this.find('thead > tr > th'),
|
||||||
|
columns = th.length,
|
||||||
|
headers = [],
|
||||||
|
totalHeaders = 0,
|
||||||
|
i, headersLength;
|
||||||
|
|
||||||
|
// Find columns
|
||||||
|
$this.find('colgroup:first').children().each(function(i) {
|
||||||
|
var column = $(this);
|
||||||
|
$this.find('td:nth-child(' + (i + 1) + ')').addClass(column.prop('className'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Styles table
|
||||||
|
if ($this.hasClass('styles')) {
|
||||||
|
$this.find('td:first-child[style]').each(function() {
|
||||||
|
var style = $(this).attr('style');
|
||||||
|
if (style.length) {
|
||||||
|
$(this).parent('tr').attr('style', style.toLowerCase().replace('padding', 'margin')).addClass('responsive-style-row');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find each header
|
||||||
|
if (!$this.data('no-responsive-header'))
|
||||||
|
{
|
||||||
|
th.each(function(column) {
|
||||||
|
var cell = $(this),
|
||||||
|
colspan = parseInt(cell.attr('colspan')),
|
||||||
|
dfn = cell.attr('data-dfn'),
|
||||||
|
text = dfn ? dfn : cell.text().trim();
|
||||||
|
|
||||||
|
if (text == ' ') text = '';
|
||||||
|
colspan = isNaN(colspan) || colspan < 1 ? 1 : colspan;
|
||||||
|
|
||||||
|
for (i=0; i<colspan; i++) {
|
||||||
|
headers.push(text);
|
||||||
|
}
|
||||||
|
totalHeaders ++;
|
||||||
|
|
||||||
|
if (dfn && !column) {
|
||||||
|
$this.addClass('show-header');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
headersLength = headers.length;
|
||||||
|
|
||||||
|
// Add header text to each cell as <dfn>
|
||||||
|
$this.addClass('responsive');
|
||||||
|
|
||||||
|
if (totalHeaders < 2) {
|
||||||
|
$this.addClass('show-header');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this.find('tbody > tr').each(function() {
|
||||||
|
var row = $(this),
|
||||||
|
cells = row.children('td'),
|
||||||
|
column = 0;
|
||||||
|
|
||||||
|
if (cells.length == 1) {
|
||||||
|
row.addClass('big-column');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cells.each(function() {
|
||||||
|
var cell = $(this),
|
||||||
|
colspan = parseInt(cell.attr('colspan')),
|
||||||
|
text = cell.text().trim();
|
||||||
|
|
||||||
|
if (headersLength <= column) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((text.length && text !== '-') || cell.children().length) {
|
||||||
|
if (headers[column] != '') {
|
||||||
|
cell.prepend('<dfn style="display: none;">' + headers[column] + '</dfn>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cell.addClass('empty');
|
||||||
|
}
|
||||||
|
|
||||||
|
colspan = isNaN(colspan) || colspan < 1 ? 1 : colspan;
|
||||||
|
column += colspan;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Remove <dfn> in disabled extensions list
|
||||||
|
$this.find('tr.ext_disabled > .empty:nth-child(2) + .empty').siblings(':first-child').children('dfn').remove();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hide empty responsive tables
|
||||||
|
*/
|
||||||
|
container.find('table.responsive > tbody').each(function() {
|
||||||
|
var items = $(this).children('tr');
|
||||||
|
if (items.length == 0)
|
||||||
|
{
|
||||||
|
$(this).parent('table:first').addClass('responsive-hide');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fieldsets with empty <span>
|
||||||
|
*/
|
||||||
|
container.find('fieldset dt > span:last-child').each(function() {
|
||||||
|
var $this = $(this);
|
||||||
|
if ($this.html() == ' ') {
|
||||||
|
$this.addClass('responsive-hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Responsive tabs
|
||||||
|
*/
|
||||||
|
container.find('#tabs').not('[data-skip-responsive]').each(function() {
|
||||||
|
var $this = $(this),
|
||||||
|
$body = $('body'),
|
||||||
|
ul = $this.children(),
|
||||||
|
tabs = ul.children().not('[data-skip-responsive]'),
|
||||||
|
links = tabs.children('a'),
|
||||||
|
item = ul.append('<li class="responsive-tab" style="display:none;"><a href="javascript:void(0);" class="responsive-tab-link"><span> </span></a><div class="dropdown tab-dropdown" style="display: none;"><div class="pointer"><div class="pointer-inner" /></div><ul class="dropdown-contents" /></div></li>').find('li.responsive-tab'),
|
||||||
|
menu = item.find('.dropdown-contents'),
|
||||||
|
maxHeight = 0,
|
||||||
|
lastWidth = false,
|
||||||
|
responsive = false;
|
||||||
|
|
||||||
|
links.each(function() {
|
||||||
|
var link = $(this);
|
||||||
|
maxHeight = Math.max(maxHeight, Math.max(link.outerHeight(true), link.parent().outerHeight(true)));
|
||||||
|
})
|
||||||
|
|
||||||
|
function check() {
|
||||||
|
var width = $body.width(),
|
||||||
|
height = $this.height();
|
||||||
|
|
||||||
|
if (arguments.length == 0 && (!responsive || width <= lastWidth) && height <= maxHeight) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tabs.show();
|
||||||
|
item.hide();
|
||||||
|
|
||||||
|
lastWidth = width;
|
||||||
|
height = $this.height();
|
||||||
|
if (height <= maxHeight) {
|
||||||
|
responsive = false;
|
||||||
|
if (item.hasClass('dropdown-visible')) {
|
||||||
|
phpbb.toggleDropdown.call(item.find('a.responsive-tab-link').get(0));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
responsive = true;
|
||||||
|
item.show();
|
||||||
|
menu.html('');
|
||||||
|
|
||||||
|
var availableTabs = tabs.filter(':not(.activetab, .responsive-tab)'),
|
||||||
|
total = availableTabs.length,
|
||||||
|
i, tab;
|
||||||
|
|
||||||
|
for (i = total - 1; i >= 0; i --) {
|
||||||
|
tab = availableTabs.eq(i);
|
||||||
|
menu.prepend(tab.clone(true));
|
||||||
|
tab.hide();
|
||||||
|
if ($this.height() <= maxHeight) {
|
||||||
|
menu.find('a').click(function() { check(true); });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
menu.find('a').click(function() { check(true); });
|
||||||
|
}
|
||||||
|
|
||||||
|
phpbb.registerDropdown(item.find('a.responsive-tab-link'), item.find('.dropdown'), {visibleClass: 'activetab', verticalDirection: 'down'});
|
||||||
|
|
||||||
|
check(true);
|
||||||
|
$(window).resize(check);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run onload functions
|
||||||
|
*/
|
||||||
|
(function($) {
|
||||||
|
$(document).ready(function() {
|
||||||
|
// Swap .nojs and .hasjs
|
||||||
|
$('body.nojs').toggleClass('nojs hasjs');
|
||||||
|
|
||||||
|
// Focus forms
|
||||||
|
$('form[data-focus]:first').each(function() {
|
||||||
|
$('#' + this.getAttribute('data-focus')).focus();
|
||||||
|
});
|
||||||
|
|
||||||
|
parse_document($('body'));
|
||||||
|
});
|
||||||
|
})(jQuery);
|
|
@ -2,13 +2,6 @@
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var imgTemplates = {
|
|
||||||
up: $('.template-up-img'),
|
|
||||||
upDisabled: $('.template-up-img-disabled'),
|
|
||||||
down: $('.template-down-img'),
|
|
||||||
downDisabled: $('.template-down-img-disabled')
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The following callbacks are for reording items. row_down
|
* The following callbacks are for reording items. row_down
|
||||||
* is triggered when an item is moved down, and row_up is triggered when
|
* is triggered when an item is moved down, and row_up is triggered when
|
||||||
|
@ -20,43 +13,7 @@ phpbb.addAjaxCallback('row_down', function() {
|
||||||
tr = el.parents('tr'),
|
tr = el.parents('tr'),
|
||||||
trSwap = tr.next();
|
trSwap = tr.next();
|
||||||
|
|
||||||
/*
|
|
||||||
* If the element was the first one, we have to:
|
|
||||||
* - Add the up-link to the row we moved
|
|
||||||
* - Remove the up-link on the next row
|
|
||||||
*/
|
|
||||||
if (tr.is(':first-child')) {
|
|
||||||
var upImg = imgTemplates.up.clone().attr('href', tr.attr('data-up'));
|
|
||||||
tr.find('.up').html(upImg);
|
|
||||||
|
|
||||||
phpbb.ajaxify({
|
|
||||||
selector: tr.find('.up').children('a'),
|
|
||||||
callback: 'row_up',
|
|
||||||
overlay: false
|
|
||||||
});
|
|
||||||
|
|
||||||
trSwap.find('.up').html(imgTemplates.upDisabled.clone());
|
|
||||||
}
|
|
||||||
|
|
||||||
tr.insertAfter(trSwap);
|
tr.insertAfter(trSwap);
|
||||||
|
|
||||||
/*
|
|
||||||
* As well as:
|
|
||||||
* - Remove the down-link on the moved row, if it is now the last row
|
|
||||||
* - Add the down-link to the next row, if it was the last row
|
|
||||||
*/
|
|
||||||
if (tr.is(':last-child')) {
|
|
||||||
tr.find('.down').html(imgTemplates.downDisabled.clone());
|
|
||||||
|
|
||||||
var downImg = imgTemplates.down.clone().attr('href', trSwap.attr('data-down'));
|
|
||||||
trSwap.find('.down').html(downImg);
|
|
||||||
|
|
||||||
phpbb.ajaxify({
|
|
||||||
selector: trSwap.find('.down').children('a'),
|
|
||||||
callback: 'row_down',
|
|
||||||
overlay: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
phpbb.addAjaxCallback('row_up', function() {
|
phpbb.addAjaxCallback('row_up', function() {
|
||||||
|
@ -64,43 +21,7 @@ phpbb.addAjaxCallback('row_up', function() {
|
||||||
tr = el.parents('tr'),
|
tr = el.parents('tr'),
|
||||||
trSwap = tr.prev();
|
trSwap = tr.prev();
|
||||||
|
|
||||||
/*
|
|
||||||
* If the element was the last one, we have to:
|
|
||||||
* - Add the down-link to the row we moved
|
|
||||||
* - Remove the down-link on the next row
|
|
||||||
*/
|
|
||||||
if (tr.is(':last-child')) {
|
|
||||||
var downImg = imgTemplates.down.clone().attr('href', tr.attr('data-down'));
|
|
||||||
tr.find('.down').html(downImg);
|
|
||||||
|
|
||||||
phpbb.ajaxify({
|
|
||||||
selector: tr.find('.down').children('a'),
|
|
||||||
callback: 'row_down',
|
|
||||||
overlay: false
|
|
||||||
});
|
|
||||||
|
|
||||||
trSwap.find('.down').html(imgTemplates.downDisabled.clone());
|
|
||||||
}
|
|
||||||
|
|
||||||
tr.insertBefore(trSwap);
|
tr.insertBefore(trSwap);
|
||||||
|
|
||||||
/*
|
|
||||||
* As well as:
|
|
||||||
* - Remove the up-link on the moved row, if it is now the first row
|
|
||||||
* - Add the up-link to the previous row, if it was the first row
|
|
||||||
*/
|
|
||||||
if (tr.is(':first-child')) {
|
|
||||||
tr.find('.up').html(imgTemplates.upDisabled.clone());
|
|
||||||
|
|
||||||
var upImg = imgTemplates.up.clone().attr('href', trSwap.attr('data-up'));
|
|
||||||
trSwap.find('.up').html(upImg);
|
|
||||||
|
|
||||||
phpbb.ajaxify({
|
|
||||||
selector: trSwap.find('.up').children('a'),
|
|
||||||
callback: 'row_up',
|
|
||||||
overlay: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<fieldset class="tabulated">
|
<fieldset class="tabulated">
|
||||||
<legend>{L_QUESTIONS}</legend>
|
<legend>{L_QUESTIONS}</legend>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan="3">{L_QUESTIONS}</th>
|
<th colspan="3">{L_QUESTIONS}</th>
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>{L_COLOUR_SWATCH}</title>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
/* <![CDATA[ */
|
|
||||||
body {
|
|
||||||
background-color: #404040;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
td {
|
|
||||||
border: solid 1px #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.over {
|
|
||||||
border-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.out {
|
|
||||||
border-color: #333333;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
/* ]]> */
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
// <![CDATA[
|
|
||||||
var r = 0, g = 0, b = 0;
|
|
||||||
|
|
||||||
var numberList = new Array(6);
|
|
||||||
numberList[0] = '00';
|
|
||||||
numberList[1] = '33';
|
|
||||||
numberList[2] = '66';
|
|
||||||
numberList[3] = '99';
|
|
||||||
numberList[4] = 'CC';
|
|
||||||
numberList[5] = 'FF';
|
|
||||||
|
|
||||||
document.writeln('<table cellspacing="0" cellpadding="0" border="0">');
|
|
||||||
|
|
||||||
for (r = 0; r < 6; r++)
|
|
||||||
{
|
|
||||||
document.writeln('<tr>');
|
|
||||||
|
|
||||||
for (g = 0; g < 6; g++)
|
|
||||||
{
|
|
||||||
for (b = 0; b < 6; b++)
|
|
||||||
{
|
|
||||||
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
|
|
||||||
document.write('<td style="background-color: #' + color + ';" onmouseover="this.className=\'over\'" onmouseout="this.className=\'out\'">');
|
|
||||||
document.write('<a href="#" onclick="cell(\'' + color + '\'); return false;"><img src="{T_IMAGES_PATH}spacer.gif" width="15" height="12" alt="#' + color + '" title="#' + color + '" \/><\/a>');
|
|
||||||
document.writeln('<\/td>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.writeln('<\/tr>');
|
|
||||||
}
|
|
||||||
document.writeln('<\/table>');
|
|
||||||
|
|
||||||
function cell(color)
|
|
||||||
{
|
|
||||||
opener.document.forms["{OPENER}"].{NAME}.value = color;
|
|
||||||
}
|
|
||||||
// ]]>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,336 +0,0 @@
|
||||||
/**
|
|
||||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
|
||||||
* Includes unixsafe colour palette selector by SHS`
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Startup variables
|
|
||||||
var imageTag = false;
|
|
||||||
var theSelection = false;
|
|
||||||
|
|
||||||
// Check for Browser & Platform for PC & IE specific bits
|
|
||||||
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
|
||||||
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
|
||||||
var clientVer = parseInt(navigator.appVersion, 10); // Get browser version
|
|
||||||
|
|
||||||
var is_ie = ((clientPC.indexOf('msie') !== -1) && (clientPC.indexOf('opera') === -1));
|
|
||||||
var is_win = ((clientPC.indexOf('win') !== -1) || (clientPC.indexOf('16bit') !== -1));
|
|
||||||
var baseHeight;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows the help messages in the helpline window
|
|
||||||
*/
|
|
||||||
function helpline(help) {
|
|
||||||
document.forms[form_name].helpbox.value = help_line[help];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fix a bug involving the TextRange object. From
|
|
||||||
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
|
|
||||||
*/
|
|
||||||
function initInsertions() {
|
|
||||||
var doc;
|
|
||||||
|
|
||||||
if (document.forms[form_name]) {
|
|
||||||
doc = document;
|
|
||||||
} else {
|
|
||||||
doc = opener.document;
|
|
||||||
}
|
|
||||||
|
|
||||||
var textarea = doc.forms[form_name].elements[text_name];
|
|
||||||
|
|
||||||
if (is_ie && typeof(baseHeight) !== 'number') {
|
|
||||||
textarea.focus();
|
|
||||||
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
|
||||||
|
|
||||||
if (!document.forms[form_name]) {
|
|
||||||
document.body.focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* bbstyle
|
|
||||||
*/
|
|
||||||
function bbstyle(bbnumber) {
|
|
||||||
if (bbnumber !== -1) {
|
|
||||||
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
|
|
||||||
} else {
|
|
||||||
insert_text('[*]');
|
|
||||||
document.forms[form_name].elements[text_name].focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Apply bbcodes
|
|
||||||
*/
|
|
||||||
function bbfontstyle(bbopen, bbclose) {
|
|
||||||
theSelection = false;
|
|
||||||
|
|
||||||
var textarea = document.forms[form_name].elements[text_name];
|
|
||||||
|
|
||||||
textarea.focus();
|
|
||||||
|
|
||||||
if ((clientVer >= 4) && is_ie && is_win) {
|
|
||||||
// Get text selection
|
|
||||||
theSelection = document.selection.createRange().text;
|
|
||||||
|
|
||||||
if (theSelection) {
|
|
||||||
// Add tags around selection
|
|
||||||
document.selection.createRange().text = bbopen + theSelection + bbclose;
|
|
||||||
document.forms[form_name].elements[text_name].focus();
|
|
||||||
theSelection = '';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else if (document.forms[form_name].elements[text_name].selectionEnd
|
|
||||||
&& (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) {
|
|
||||||
mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);
|
|
||||||
document.forms[form_name].elements[text_name].focus();
|
|
||||||
theSelection = '';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//The new position for the cursor after adding the bbcode
|
|
||||||
var caret_pos = getCaretPosition(textarea).start;
|
|
||||||
var new_pos = caret_pos + bbopen.length;
|
|
||||||
|
|
||||||
// Open tag
|
|
||||||
insert_text(bbopen + bbclose);
|
|
||||||
|
|
||||||
// Center the cursor when we don't have a selection
|
|
||||||
// Gecko and proper browsers
|
|
||||||
if (!isNaN(textarea.selectionStart)) {
|
|
||||||
textarea.selectionStart = new_pos;
|
|
||||||
textarea.selectionEnd = new_pos;
|
|
||||||
}
|
|
||||||
// IE
|
|
||||||
else if (document.selection) {
|
|
||||||
var range = textarea.createTextRange();
|
|
||||||
range.move("character", new_pos);
|
|
||||||
range.select();
|
|
||||||
storeCaret(textarea);
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea.focus();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Insert text at position
|
|
||||||
*/
|
|
||||||
function insert_text(text, spaces, popup) {
|
|
||||||
var textarea;
|
|
||||||
|
|
||||||
if (!popup) {
|
|
||||||
textarea = document.forms[form_name].elements[text_name];
|
|
||||||
} else {
|
|
||||||
textarea = opener.document.forms[form_name].elements[text_name];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (spaces) {
|
|
||||||
text = ' ' + text + ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isNaN(textarea.selectionStart)) {
|
|
||||||
var sel_start = textarea.selectionStart;
|
|
||||||
var sel_end = textarea.selectionEnd;
|
|
||||||
|
|
||||||
mozWrap(textarea, text, '');
|
|
||||||
textarea.selectionStart = sel_start + text.length;
|
|
||||||
textarea.selectionEnd = sel_end + text.length;
|
|
||||||
} else if (textarea.createTextRange && textarea.caretPos) {
|
|
||||||
if (baseHeight !== textarea.caretPos.boundingHeight) {
|
|
||||||
textarea.focus();
|
|
||||||
storeCaret(textarea);
|
|
||||||
}
|
|
||||||
|
|
||||||
var caret_pos = textarea.caretPos;
|
|
||||||
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) === ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
|
|
||||||
} else {
|
|
||||||
textarea.value = textarea.value + text;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!popup) {
|
|
||||||
textarea.focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add inline attachment at position
|
|
||||||
*/
|
|
||||||
function attach_inline(index, filename) {
|
|
||||||
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
|
||||||
document.forms[form_name].elements[text_name].focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add quote text to message
|
|
||||||
*/
|
|
||||||
function addquote(post_id, username)
|
|
||||||
{
|
|
||||||
var message_name = 'message_' + post_id;
|
|
||||||
var theSelection = '';
|
|
||||||
var divarea = false;
|
|
||||||
|
|
||||||
if (document.all) {
|
|
||||||
divarea = document.all[message_name];
|
|
||||||
} else {
|
|
||||||
divarea = document.getElementById(message_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get text selection - not only the post content :(
|
|
||||||
if (window.getSelection) {
|
|
||||||
theSelection = window.getSelection().toString();
|
|
||||||
} else if (document.getSelection) {
|
|
||||||
theSelection = document.getSelection();
|
|
||||||
} else if (document.selection) {
|
|
||||||
theSelection = document.selection.createRange().text;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (theSelection === '' || typeof theSelection === 'undefined' || theSelection === null) {
|
|
||||||
if (divarea.innerHTML) {
|
|
||||||
theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
|
|
||||||
theSelection = theSelection.replace(/<br\/>/ig, '\n');
|
|
||||||
theSelection = theSelection.replace(/<\;/ig, '<');
|
|
||||||
theSelection = theSelection.replace(/>\;/ig, '>');
|
|
||||||
theSelection = theSelection.replace(/&\;/ig, '&');
|
|
||||||
theSelection = theSelection.replace(/ \;/ig, ' ');
|
|
||||||
} else if (document.all) {
|
|
||||||
theSelection = divarea.innerText;
|
|
||||||
} else if (divarea.textContent) {
|
|
||||||
theSelection = divarea.textContent;
|
|
||||||
} else if (divarea.firstChild.nodeValue) {
|
|
||||||
theSelection = divarea.firstChild.nodeValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (theSelection) {
|
|
||||||
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* From http://www.massless.org/mozedit/
|
|
||||||
*/
|
|
||||||
function mozWrap(txtarea, open, close) {
|
|
||||||
var selLength = (typeof(txtarea.textLength) === 'undefined') ? txtarea.value.length : txtarea.textLength;
|
|
||||||
var selStart = txtarea.selectionStart;
|
|
||||||
var selEnd = txtarea.selectionEnd;
|
|
||||||
var scrollTop = txtarea.scrollTop;
|
|
||||||
|
|
||||||
if (selEnd === 1 || selEnd === 2) {
|
|
||||||
selEnd = selLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
var s1 = (txtarea.value).substring(0,selStart);
|
|
||||||
var s2 = (txtarea.value).substring(selStart, selEnd);
|
|
||||||
var s3 = (txtarea.value).substring(selEnd, selLength);
|
|
||||||
|
|
||||||
txtarea.value = s1 + open + s2 + close + s3;
|
|
||||||
txtarea.selectionStart = selStart + open.length;
|
|
||||||
txtarea.selectionEnd = selEnd + open.length;
|
|
||||||
txtarea.focus();
|
|
||||||
txtarea.scrollTop = scrollTop;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Insert at Caret position. Code from
|
|
||||||
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
|
|
||||||
*/
|
|
||||||
function storeCaret(textEl) {
|
|
||||||
if (textEl.createTextRange) {
|
|
||||||
textEl.caretPos = document.selection.createRange().duplicate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Color pallette
|
|
||||||
*/
|
|
||||||
function colorPalette(dir, width, height) {
|
|
||||||
var r = 0, g = 0, b = 0;
|
|
||||||
var numberList = new Array(6);
|
|
||||||
var color = '';
|
|
||||||
|
|
||||||
numberList[0] = '00';
|
|
||||||
numberList[1] = '40';
|
|
||||||
numberList[2] = '80';
|
|
||||||
numberList[3] = 'BF';
|
|
||||||
numberList[4] = 'FF';
|
|
||||||
|
|
||||||
document.writeln('<table class="type2">');
|
|
||||||
|
|
||||||
for (r = 0; r < 5; r++) {
|
|
||||||
if (dir === 'h') {
|
|
||||||
document.writeln('<tr>');
|
|
||||||
}
|
|
||||||
|
|
||||||
for (g = 0; g < 5; g++) {
|
|
||||||
if (dir === 'v') {
|
|
||||||
document.writeln('<tr>');
|
|
||||||
}
|
|
||||||
|
|
||||||
for (b = 0; b < 5; b++) {
|
|
||||||
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
|
|
||||||
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
|
|
||||||
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');
|
|
||||||
document.writeln('</td>');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir === 'v') {
|
|
||||||
document.writeln('</tr>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir === 'h') {
|
|
||||||
document.writeln('</tr>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.writeln('</table>');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Caret Position object
|
|
||||||
*/
|
|
||||||
function caretPosition() {
|
|
||||||
var start = null;
|
|
||||||
var end = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the caret position in an textarea
|
|
||||||
*/
|
|
||||||
function getCaretPosition(txtarea) {
|
|
||||||
var caretPos = new caretPosition();
|
|
||||||
|
|
||||||
// simple Gecko/Opera way
|
|
||||||
if (txtarea.selectionStart || txtarea.selectionStart === 0) {
|
|
||||||
caretPos.start = txtarea.selectionStart;
|
|
||||||
caretPos.end = txtarea.selectionEnd;
|
|
||||||
}
|
|
||||||
// dirty and slow IE way
|
|
||||||
else if (document.selection) {
|
|
||||||
// get current selection
|
|
||||||
var range = document.selection.createRange();
|
|
||||||
|
|
||||||
// a new selection of the whole textarea
|
|
||||||
var range_all = document.body.createTextRange();
|
|
||||||
range_all.moveToElementText(txtarea);
|
|
||||||
|
|
||||||
// calculate selection start point by moving beginning of range_all to beginning of range
|
|
||||||
var sel_start;
|
|
||||||
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) {
|
|
||||||
range_all.moveStart('character', 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
txtarea.sel_start = sel_start;
|
|
||||||
|
|
||||||
// we ignore the end value for IE, this is already dirty enough and we don't need it
|
|
||||||
caretPos.start = txtarea.sel_start;
|
|
||||||
caretPos.end = txtarea.sel_start;
|
|
||||||
}
|
|
||||||
|
|
||||||
return caretPos;
|
|
||||||
}
|
|
|
@ -22,7 +22,7 @@
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- IF S_LIST -->
|
<!-- IF S_LIST -->
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<caption>{L_AVAILABLE_CONVERTORS}</caption>
|
<caption>{L_AVAILABLE_CONVERTORS}</caption>
|
||||||
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
||||||
<thead>
|
<thead>
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
|
</div>
|
||||||
</div>
|
</div><!-- /#main -->
|
||||||
</div>
|
</div>
|
||||||
<span class="corners-bottom"><span></span></span>
|
</div><!-- /#acp -->
|
||||||
<div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="page-footer">
|
<div id="page-footer">
|
||||||
|
@ -14,6 +11,8 @@
|
||||||
|
|
||||||
<script type="text/javascript" src="{T_JQUERY_LINK}"></script>
|
<script type="text/javascript" src="{T_JQUERY_LINK}"></script>
|
||||||
<!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->
|
<!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->
|
||||||
|
<!-- INCLUDEJS admin.js -->
|
||||||
|
{$SCRIPTS}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
<!-- IF META -->{META}<!-- ENDIF -->
|
<!-- IF META -->{META}<!-- ENDIF -->
|
||||||
<title>{PAGE_TITLE}</title>
|
<title>{PAGE_TITLE}</title>
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ function dE(n, s, type)
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="{S_CONTENT_DIRECTION}">
|
<body class="{S_CONTENT_DIRECTION} nojs">
|
||||||
<div id="wrap">
|
<div id="wrap">
|
||||||
<div id="page-header">
|
<div id="page-header">
|
||||||
<h1>{L_INSTALL_PANEL}</h1>
|
<h1>{L_INSTALL_PANEL}</h1>
|
||||||
|
@ -54,16 +55,15 @@ function dE(n, s, type)
|
||||||
<div id="tabs">
|
<div id="tabs">
|
||||||
<ul>
|
<ul>
|
||||||
<!-- BEGIN t_block1 -->
|
<!-- BEGIN t_block1 -->
|
||||||
<li<!-- IF t_block1.S_SELECTED --> id="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li>
|
<li<!-- IF t_block1.S_SELECTED --> class="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li>
|
||||||
<!-- END t_block1 -->
|
<!-- END t_block1 -->
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="acp">
|
<div id="acp">
|
||||||
<div class="panel">
|
|
||||||
<span class="corners-top"><span></span></span>
|
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<div id="menu">
|
<div id="menu">
|
||||||
|
<div class="menu-block no-header">
|
||||||
<ul>
|
<ul>
|
||||||
<!-- BEGIN l_block1 -->
|
<!-- BEGIN l_block1 -->
|
||||||
<li<!-- IF l_block1.S_SELECTED --> id="activemenu"<!-- ENDIF -->><a href="{l_block1.U_TITLE}"><span>{l_block1.L_TITLE}</span></a></li>
|
<li<!-- IF l_block1.S_SELECTED --> id="activemenu"<!-- ENDIF -->><a href="{l_block1.U_TITLE}"><span>{l_block1.L_TITLE}</span></a></li>
|
||||||
|
@ -72,6 +72,8 @@ function dE(n, s, type)
|
||||||
<li<!-- IF l_block2.S_SELECTED --> id="activemenu"<!-- ENDIF -->><span<!-- IF l_block2.S_COMPLETE --> class="completed"<!-- ENDIF -->>{l_block2.L_TITLE}</span></li>
|
<li<!-- IF l_block2.S_SELECTED --> id="activemenu"<!-- ENDIF -->><span<!-- IF l_block2.S_COMPLETE --> class="completed"<!-- ENDIF -->>{l_block2.L_TITLE}</span></li>
|
||||||
<!-- END l_block2 -->
|
<!-- END l_block2 -->
|
||||||
</ul>
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="main" class="install-body">
|
<div id="main" class="install-body">
|
||||||
|
<div class="main">
|
||||||
|
|
|
@ -395,7 +395,7 @@
|
||||||
|
|
||||||
<p>{L_MAPPING_FILE_STRUCTURE}</p>
|
<p>{L_MAPPING_FILE_STRUCTURE}</p>
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<col class="row1" /><col class="row2" /><col class="row1" />
|
<col class="row1" /><col class="row2" /><col class="row1" />
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
<!-- IF META -->{META}<!-- ENDIF -->
|
<!-- IF META -->{META}<!-- ENDIF -->
|
||||||
<title>{PAGE_TITLE}</title>
|
<title>{PAGE_TITLE}</title>
|
||||||
|
|
||||||
|
@ -33,7 +34,7 @@ window.onresize = resize_panel;
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
/* <![CDATA[ */
|
/* <![CDATA[ */
|
||||||
|
|
||||||
#main {
|
#main, .rtl #main {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
line-height: 0.7em;
|
line-height: 0.7em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
@ -43,6 +44,7 @@ window.onresize = resize_panel;
|
||||||
|
|
||||||
#diff_content {
|
#diff_content {
|
||||||
padding: 30px 10px 10px;
|
padding: 30px 10px 10px;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
<!-- IF DIFF_MODE neq 'side_by_side' and DIFF_MODE neq 'raw' -->
|
<!-- IF DIFF_MODE neq 'side_by_side' and DIFF_MODE neq 'raw' -->
|
||||||
|
@ -238,15 +240,13 @@ table.hrdiff caption span {
|
||||||
|
|
||||||
<div id="page-body">
|
<div id="page-body">
|
||||||
<div id="acp">
|
<div id="acp">
|
||||||
<div class="panel" id="codepanel">
|
<div id="codepanel">
|
||||||
<span class="corners-top"><span></span></span>
|
|
||||||
<div id="diff_content">
|
<div id="diff_content">
|
||||||
<div id="main">
|
<div id="main">
|
||||||
{DIFF_CONTENT}
|
{DIFF_CONTENT}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span class="corners-bottom"><span></span></span>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
|
</div>
|
||||||
</div>
|
</div><!-- /#main -->
|
||||||
</div>
|
</div>
|
||||||
<span class="corners-bottom"><span></span></span>
|
</div><!-- /#acp -->
|
||||||
<div class="clear"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="page-footer">
|
<div id="page-footer">
|
||||||
|
@ -20,8 +17,8 @@
|
||||||
|
|
||||||
<div id="darkenwrapper" data-ajax-error-title="{L_AJAX_ERROR_TITLE}" data-ajax-error-text="{L_AJAX_ERROR_TEXT}" data-ajax-error-text-abort="{L_AJAX_ERROR_TEXT_ABORT}" data-ajax-error-text-timeout="{L_AJAX_ERROR_TEXT_TIMEOUT}" data-ajax-error-text-parsererror="{L_AJAX_ERROR_TEXT_PARSERERROR}">
|
<div id="darkenwrapper" data-ajax-error-title="{L_AJAX_ERROR_TITLE}" data-ajax-error-text="{L_AJAX_ERROR_TEXT}" data-ajax-error-text-abort="{L_AJAX_ERROR_TEXT_ABORT}" data-ajax-error-text-timeout="{L_AJAX_ERROR_TEXT_TIMEOUT}" data-ajax-error-text-parsererror="{L_AJAX_ERROR_TEXT_PARSERERROR}">
|
||||||
<div id="darken"> </div>
|
<div id="darken"> </div>
|
||||||
<div class="jalert" id="loadingalert"><h3>{L_LOADING}</h3><p>{L_PLEASE_WAIT}</p></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div id="loading_indicator"></div>
|
||||||
|
|
||||||
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
|
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
|
||||||
<a href="#" class="alert_close"></a>
|
<a href="#" class="alert_close"></a>
|
||||||
|
@ -38,9 +35,10 @@
|
||||||
<!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js?assets_version={T_ASSETS_VERSION}" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->
|
<!-- IF S_ALLOW_CDN --><script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="{T_ASSETS_PATH}/javascript/jquery.js?assets_version={T_ASSETS_VERSION}" type="text/javascript"%3E%3C/script%3E'));</script><!-- ENDIF -->
|
||||||
<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
<script type="text/javascript" src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
|
||||||
<!-- INCLUDEJS ajax.js -->
|
<!-- INCLUDEJS ajax.js -->
|
||||||
{$SCRIPTS}
|
<!-- INCLUDEJS admin.js -->
|
||||||
|
|
||||||
<!-- EVENT acp_overall_footer_after -->
|
<!-- EVENT acp_overall_footer_after -->
|
||||||
|
{$SCRIPTS}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
<html dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width" />
|
||||||
<!-- IF META -->{META}<!-- ENDIF -->
|
<!-- IF META -->{META}<!-- ENDIF -->
|
||||||
<title>{PAGE_TITLE}</title>
|
<title>{PAGE_TITLE}</title>
|
||||||
|
|
||||||
|
@ -14,9 +15,6 @@ var on_page = '{ON_PAGE}';
|
||||||
var per_page = '{PER_PAGE}';
|
var per_page = '{PER_PAGE}';
|
||||||
var base_url = '{BASE_URL|e('js')}';
|
var base_url = '{BASE_URL|e('js')}';
|
||||||
|
|
||||||
var menu_state = 'shown';
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Jump to page
|
* Jump to page
|
||||||
*/
|
*/
|
||||||
|
@ -103,62 +101,16 @@ function popup(url, width, height, name)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Hiding/Showing the side menu
|
|
||||||
*/
|
|
||||||
function switch_menu()
|
|
||||||
{
|
|
||||||
var menu = document.getElementById('menu');
|
|
||||||
var main = document.getElementById('main');
|
|
||||||
var toggle = document.getElementById('toggle');
|
|
||||||
var handle = document.getElementById('toggle-handle');
|
|
||||||
|
|
||||||
switch (menu_state)
|
|
||||||
{
|
|
||||||
// hide
|
|
||||||
case 'shown':
|
|
||||||
main.style.width = '93%';
|
|
||||||
menu_state = 'hidden';
|
|
||||||
menu.style.display = 'none';
|
|
||||||
toggle.style.width = '20px';
|
|
||||||
handle.style.backgroundImage = 'url(images/toggle.gif)';
|
|
||||||
handle.style.backgroundRepeat = 'no-repeat';
|
|
||||||
|
|
||||||
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
|
|
||||||
handle.style.backgroundPosition = '0% 50%';
|
|
||||||
toggle.style.left = '96%';
|
|
||||||
<!-- ELSE -->
|
|
||||||
handle.style.backgroundPosition = '100% 50%';
|
|
||||||
toggle.style.left = '0';
|
|
||||||
<!-- ENDIF -->
|
|
||||||
break;
|
|
||||||
|
|
||||||
// show
|
|
||||||
case 'hidden':
|
|
||||||
main.style.width = '76%';
|
|
||||||
menu_state = 'shown';
|
|
||||||
menu.style.display = 'block';
|
|
||||||
toggle.style.width = '5%';
|
|
||||||
handle.style.backgroundImage = 'url(images/toggle.gif)';
|
|
||||||
handle.style.backgroundRepeat = 'no-repeat';
|
|
||||||
|
|
||||||
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
|
|
||||||
handle.style.backgroundPosition = '100% 50%';
|
|
||||||
toggle.style.left = '75%';
|
|
||||||
<!-- ELSE -->
|
|
||||||
handle.style.backgroundPosition = '0% 50%';
|
|
||||||
toggle.style.left = '15%';
|
|
||||||
<!-- ENDIF -->
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- EVENT acp_overall_header_head_append -->
|
<!-- EVENT acp_overall_header_head_append -->
|
||||||
|
|
||||||
|
{$STYLESHEETS}
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="{S_CONTENT_DIRECTION}">
|
<body class="{S_CONTENT_DIRECTION} nojs">
|
||||||
|
|
||||||
<div id="wrap">
|
<div id="wrap">
|
||||||
<div id="page-header">
|
<div id="page-header">
|
||||||
|
@ -171,29 +123,25 @@ function switch_menu()
|
||||||
<div id="tabs">
|
<div id="tabs">
|
||||||
<ul>
|
<ul>
|
||||||
<!-- BEGIN t_block1 -->
|
<!-- BEGIN t_block1 -->
|
||||||
<li<!-- IF t_block1.S_SELECTED --> id="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li>
|
<li<!-- IF t_block1.S_SELECTED --> class="activetab"<!-- ENDIF -->><a href="{t_block1.U_TITLE}"><span>{t_block1.L_TITLE}</span></a></li>
|
||||||
<!-- END t_block1 -->
|
<!-- END t_block1 -->
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="acp">
|
<div id="acp">
|
||||||
<div class="panel">
|
|
||||||
<span class="corners-top"><span></span></span>
|
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<!-- IF not S_USER_NOTICE -->
|
|
||||||
<div id="toggle">
|
|
||||||
<a id="toggle-handle" accesskey="m" title="{L_MENU_TOGGLE}" onclick="switch_menu(); return false;" href="#"></a></div>
|
|
||||||
<!-- ENDIF -->
|
|
||||||
<div id="menu">
|
<div id="menu">
|
||||||
<p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [ <a href="{U_LOGOUT}">{L_LOGOUT}</a> ][ <a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a> ] </p>
|
<p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [ <a href="{U_LOGOUT}">{L_LOGOUT}</a> ][ <a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a> ] </p>
|
||||||
<ul>
|
|
||||||
<!-- DEFINE $LI_USED = 0 -->
|
<!-- DEFINE $LI_USED = 0 -->
|
||||||
<!-- BEGIN l_block1 -->
|
<!-- BEGIN l_block1 -->
|
||||||
<!-- IF l_block1.S_SELECTED -->
|
<!-- IF l_block1.S_SELECTED -->
|
||||||
|
|
||||||
<!-- BEGIN l_block2 -->
|
<!-- BEGIN l_block2 -->
|
||||||
<!-- IF .l_block1.l_block2.l_block3 -->
|
<!-- IF .l_block1.l_block2.l_block3 -->
|
||||||
<li class="header">{l_block1.l_block2.L_TITLE}</li>
|
<!-- IF $LI_USED --></ul></div><!-- ENDIF -->
|
||||||
|
<div class="menu-block">
|
||||||
|
<a class="header" href="javascript:void(0);">{l_block1.l_block2.L_TITLE}</a>
|
||||||
|
<ul>
|
||||||
<!-- DEFINE $LI_USED = 1 -->
|
<!-- DEFINE $LI_USED = 1 -->
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
|
@ -205,10 +153,11 @@ function switch_menu()
|
||||||
|
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<!-- END l_block1 -->
|
<!-- END l_block1 -->
|
||||||
<!-- IF not $LI_USED -->
|
<!-- IF $LI_USED -->
|
||||||
<li></li>
|
</ul>
|
||||||
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="main">
|
<div id="main">
|
||||||
|
<div class="main">
|
||||||
|
|
|
@ -75,9 +75,8 @@
|
||||||
|
|
||||||
<!-- BEGIN category -->
|
<!-- BEGIN category -->
|
||||||
<div class="permissions-panel" id="options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" <!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->>
|
<div class="permissions-panel" id="options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" <!-- IF p_mask.S_FIRST_ROW and p_mask.f_mask.S_FIRST_ROW and p_mask.f_mask.category.S_FIRST_ROW --><!-- ELSE --> style="display: none;"<!-- ENDIF -->>
|
||||||
<span class="corners-top"><span></span></span>
|
|
||||||
<div class="tablewrap">
|
<div class="tablewrap">
|
||||||
<table id="table{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" cellspacing="1">
|
<table id="table{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}" class="table1 not-responsive">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col class="permissions-name" />
|
<col class="permissions-name" />
|
||||||
<col class="permissions-yes" />
|
<col class="permissions-yes" />
|
||||||
|
@ -128,7 +127,6 @@
|
||||||
|
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<span class="corners-bottom"><span></span></span>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- END category -->
|
<!-- END category -->
|
||||||
<div class="clearfix"></div>
|
<div class="clearfix"></div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
<!-- BEGIN role_mask -->
|
<!-- BEGIN role_mask -->
|
||||||
|
|
||||||
<table cellspacing="1">
|
<table class="table1">
|
||||||
<caption><!-- IF role_mask.FORUM_ID -->{L_FORUM}{L_COLON} <!-- ENDIF -->{role_mask.NAME}</caption>
|
<caption><!-- IF role_mask.FORUM_ID -->{L_FORUM}{L_COLON} <!-- ENDIF -->{role_mask.NAME}</caption>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<table cellspacing="1" class="type1">
|
<table class="table1">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{L_TRACE_WHO}</th>
|
<th>{L_TRACE_WHO}</th>
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
<!-- INCLUDE simple_header.html -->
|
|
||||||
<div id="acp" style="padding: 0;">
|
|
||||||
<div class="panel" style="padding: 10px;">
|
|
||||||
<div style="overflow: auto;">
|
|
||||||
<h1>{FILENAME}</h1>
|
|
||||||
|
|
||||||
<table class="type2">
|
|
||||||
<tbody>
|
|
||||||
<!-- BEGIN source -->
|
|
||||||
<tr valign="top">
|
|
||||||
<td class="sourcenum">{source.LINENUM} </td>
|
|
||||||
<td class="source">{source.LINE}</td>
|
|
||||||
</tr>
|
|
||||||
<!-- END source -->
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- INCLUDE simple_footer.html -->
|
|
|
@ -1,50 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @package phpBB3
|
|
||||||
* @copyright (c) 2005 phpBB Group
|
|
||||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ignore
|
|
||||||
*/
|
|
||||||
define('IN_PHPBB', true);
|
|
||||||
define('ADMIN_START', true);
|
|
||||||
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
|
|
||||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
|
||||||
include($phpbb_root_path . 'common.' . $phpEx);
|
|
||||||
|
|
||||||
// Start session management
|
|
||||||
$user->session_begin(false);
|
|
||||||
$auth->acl($user->data);
|
|
||||||
$user->setup();
|
|
||||||
|
|
||||||
// Set custom template for admin area
|
|
||||||
$template->set_custom_style('adm', $phpbb_admin_path . 'style');
|
|
||||||
|
|
||||||
$template->set_filenames(array(
|
|
||||||
'body' => 'colour_swatch.html')
|
|
||||||
);
|
|
||||||
|
|
||||||
$form = request_var('form', '');
|
|
||||||
$name = request_var('name', '');
|
|
||||||
|
|
||||||
// We validate form and name here, only id/class allowed
|
|
||||||
$form = (!preg_match('/^[a-z0-9_-]+$/i', $form)) ? '' : $form;
|
|
||||||
$name = (!preg_match('/^[a-z0-9_-]+$/i', $name)) ? '' : $name;
|
|
||||||
|
|
||||||
$template->assign_vars(array(
|
|
||||||
'OPENER' => $form,
|
|
||||||
'NAME' => $name,
|
|
||||||
'T_IMAGES_PATH' => "{$phpbb_root_path}images/",
|
|
||||||
|
|
||||||
'S_USER_LANG' => $user->lang['USER_LANG'],
|
|
||||||
'S_CONTENT_DIRECTION' => $user->lang['DIRECTION'],
|
|
||||||
'S_CONTENT_ENCODING' => 'UTF-8',
|
|
||||||
));
|
|
||||||
|
|
||||||
$template->display('body');
|
|
||||||
|
|
||||||
garbage_collection();
|
|
|
@ -12,31 +12,28 @@ var keymap = {
|
||||||
};
|
};
|
||||||
|
|
||||||
var dark = $('#darkenwrapper');
|
var dark = $('#darkenwrapper');
|
||||||
var loadingAlert = $('#loadingalert');
|
var loadingIndicator = $('#loading_indicator');
|
||||||
var phpbbAlertTimer = null;
|
var phpbbAlertTimer = null;
|
||||||
|
|
||||||
|
var isTouch = (window && typeof window.ontouchstart !== 'undefined');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a loading screen
|
* Display a loading screen
|
||||||
*
|
*
|
||||||
* @returns object Returns loadingAlert.
|
* @returns object Returns loadingIndicator.
|
||||||
*/
|
*/
|
||||||
phpbb.loadingAlert = function() {
|
phpbb.loadingIndicator = function() {
|
||||||
if (dark.is(':visible')) {
|
if (!loadingIndicator.is(':visible')) {
|
||||||
loadingAlert.fadeIn(phpbb.alertTime);
|
loadingIndicator.fadeIn(phpbb.alertTime);
|
||||||
} else {
|
// Wait fifteen seconds and display an error if nothing has been returned by then.
|
||||||
loadingAlert.show();
|
phpbbAlertTimer = setTimeout(function() {
|
||||||
dark.fadeIn(phpbb.alertTime, function() {
|
if (loadingIndicator.is(':visible')) {
|
||||||
// Wait five seconds and display an error if nothing has been returned by then.
|
phpbb.alert($('#phpbb_alert').attr('data-l-err'), $('#phpbb_alert').attr('data-l-timeout-processing-req'));
|
||||||
phpbbAlertTimer = setTimeout(function() {
|
}
|
||||||
if (loadingAlert.is(':visible')) {
|
}, 15000);
|
||||||
phpbb.alert($('#phpbb_alert').attr('data-l-err'), $('#phpbb_alert').attr('data-l-timeout-processing-req'));
|
|
||||||
}
|
|
||||||
}, 5000);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return loadingAlert;
|
return loadingIndicator;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -66,6 +63,10 @@ phpbb.alert = function(title, msg, fadedark) {
|
||||||
div.find('.alert_title').html(title);
|
div.find('.alert_title').html(title);
|
||||||
div.find('.alert_text').html(msg);
|
div.find('.alert_text').html(msg);
|
||||||
|
|
||||||
|
if (!dark.is(':visible')) {
|
||||||
|
dark.fadeIn(phpbb.alertTime);
|
||||||
|
}
|
||||||
|
|
||||||
div.bind('click', function(e) {
|
div.bind('click', function(e) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
});
|
});
|
||||||
|
@ -97,8 +98,8 @@ phpbb.alert = function(title, msg, fadedark) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (loadingAlert.is(':visible')) {
|
if (loadingIndicator.is(':visible')) {
|
||||||
loadingAlert.fadeOut(phpbb.alertTime, function() {
|
loadingIndicator.fadeOut(phpbb.alertTime, function() {
|
||||||
dark.append(div);
|
dark.append(div);
|
||||||
div.fadeIn(phpbb.alertTime);
|
div.fadeIn(phpbb.alertTime);
|
||||||
});
|
});
|
||||||
|
@ -131,6 +132,10 @@ phpbb.confirm = function(msg, callback, fadedark) {
|
||||||
var div = $('#phpbb_confirm');
|
var div = $('#phpbb_confirm');
|
||||||
div.find('.alert_text').html(msg);
|
div.find('.alert_text').html(msg);
|
||||||
|
|
||||||
|
if (!dark.is(':visible')) {
|
||||||
|
dark.fadeIn(phpbb.alertTime);
|
||||||
|
}
|
||||||
|
|
||||||
div.bind('click', function(e) {
|
div.bind('click', function(e) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
});
|
});
|
||||||
|
@ -184,8 +189,8 @@ phpbb.confirm = function(msg, callback, fadedark) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (loadingAlert.is(':visible')) {
|
if (loadingIndicator.is(':visible')) {
|
||||||
loadingAlert.fadeOut(phpbb.alertTime, function() {
|
loadingIndicator.fadeOut(phpbb.alertTime, function() {
|
||||||
dark.append(div);
|
dark.append(div);
|
||||||
div.fadeIn(phpbb.alertTime);
|
div.fadeIn(phpbb.alertTime);
|
||||||
});
|
});
|
||||||
|
@ -326,12 +331,12 @@ phpbb.ajaxify = function(options) {
|
||||||
// If confirmation is required, display a dialog to the user.
|
// If confirmation is required, display a dialog to the user.
|
||||||
phpbb.confirm(res.MESSAGE_BODY, function(del) {
|
phpbb.confirm(res.MESSAGE_BODY, function(del) {
|
||||||
if (del) {
|
if (del) {
|
||||||
phpbb.loadingAlert();
|
phpbb.loadingIndicator();
|
||||||
data = $('<form>' + res.S_HIDDEN_FIELDS + '</form>').serialize();
|
data = $('<form>' + res.S_HIDDEN_FIELDS + '</form>').serialize();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: res.S_CONFIRM_ACTION,
|
url: res.S_CONFIRM_ACTION,
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: data + '&confirm=' + res.YES_VALUE,
|
data: data + '&confirm=' + res.YES_VALUE + '&' + $('#phpbb_confirm form').serialize(),
|
||||||
success: returnHandler,
|
success: returnHandler,
|
||||||
error: errorHandler
|
error: errorHandler
|
||||||
});
|
});
|
||||||
|
@ -369,16 +374,19 @@ phpbb.ajaxify = function(options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overlay && (typeof $this.attr('data-overlay') === 'undefined' || $this.attr('data-overlay') === 'true')) {
|
if (overlay && (typeof $this.attr('data-overlay') === 'undefined' || $this.attr('data-overlay') === 'true')) {
|
||||||
phpbb.loadingAlert();
|
phpbb.loadingIndicator();
|
||||||
}
|
}
|
||||||
|
|
||||||
$.ajax({
|
var request = $.ajax({
|
||||||
url: action,
|
url: action,
|
||||||
type: method,
|
type: method,
|
||||||
data: data,
|
data: data,
|
||||||
success: returnHandler,
|
success: returnHandler,
|
||||||
error: errorHandler
|
error: errorHandler
|
||||||
});
|
});
|
||||||
|
request.always(function() {
|
||||||
|
loadingIndicator.fadeOut(phpbb.alertTime);
|
||||||
|
});
|
||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
});
|
});
|
||||||
|
@ -616,8 +624,9 @@ phpbb.resizeTextArea = function(items, options) {
|
||||||
resetCallback: function(item) { }
|
resetCallback: function(item) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
if (arguments.length > 1)
|
if (isTouch) return;
|
||||||
{
|
|
||||||
|
if (arguments.length > 1) {
|
||||||
configuration = $.extend(configuration, options);
|
configuration = $.extend(configuration, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -829,6 +838,228 @@ phpbb.applyCodeEditor = function(textarea) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of classes that toggle dropdown menu,
|
||||||
|
* list of classes that contain visible dropdown menu
|
||||||
|
*
|
||||||
|
* Add your own classes to strings with comma (probably you
|
||||||
|
* will never need to do that)
|
||||||
|
*/
|
||||||
|
phpbb.dropdownHandles = '.dropdown-container.dropdown-visible .dropdown-toggle';
|
||||||
|
phpbb.dropdownVisibleContainers = '.dropdown-container.dropdown-visible';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dropdown toggle event handler
|
||||||
|
* This handler is used by phpBB.registerDropdown() and other functions
|
||||||
|
*/
|
||||||
|
phpbb.toggleDropdown = function() {
|
||||||
|
var $this = $(this),
|
||||||
|
options = $this.data('dropdown-options'),
|
||||||
|
parent = options.parent,
|
||||||
|
visible = parent.hasClass('dropdown-visible');
|
||||||
|
|
||||||
|
if (!visible) {
|
||||||
|
// Hide other dropdown menus
|
||||||
|
$(phpbb.dropdownHandles).each(phpbb.toggleDropdown);
|
||||||
|
|
||||||
|
// Figure out direction of dropdown
|
||||||
|
var direction = options.direction,
|
||||||
|
verticalDirection = options.verticalDirection,
|
||||||
|
offset = $this.offset();
|
||||||
|
|
||||||
|
if (direction == 'auto') {
|
||||||
|
if (($(window).width() - $this.outerWidth(true)) / 2 > offset.left) {
|
||||||
|
direction = 'right';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
direction = 'left';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parent.toggleClass(options.leftClass, direction == 'left').toggleClass(options.rightClass, direction == 'right');
|
||||||
|
|
||||||
|
if (verticalDirection == 'auto') {
|
||||||
|
var height = $(window).height(),
|
||||||
|
top = offset.top - $(window).scrollTop();
|
||||||
|
|
||||||
|
if (top < height * 0.7) {
|
||||||
|
verticalDirection = 'down';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
verticalDirection = 'up';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parent.toggleClass(options.upClass, verticalDirection == 'up').toggleClass(options.downClass, verticalDirection == 'down');
|
||||||
|
}
|
||||||
|
|
||||||
|
options.dropdown.toggle();
|
||||||
|
parent.toggleClass(options.visibleClass, !visible).toggleClass('dropdown-visible', !visible);
|
||||||
|
|
||||||
|
// Check dimensions when showing dropdown
|
||||||
|
// !visible because variable shows state of dropdown before it was toggled
|
||||||
|
if (!visible) {
|
||||||
|
options.dropdown.find('.dropdown-contents').each(function() {
|
||||||
|
var $this = $(this),
|
||||||
|
windowWidth = $(window).width();
|
||||||
|
|
||||||
|
$this.css({
|
||||||
|
marginLeft: 0,
|
||||||
|
left: 0,
|
||||||
|
maxWidth: (windowWidth - 4) + 'px'
|
||||||
|
});
|
||||||
|
|
||||||
|
var offset = $this.offset().left,
|
||||||
|
width = $this.outerWidth(true);
|
||||||
|
|
||||||
|
if (offset < 2) {
|
||||||
|
$this.css('left', (2 - offset) + 'px');
|
||||||
|
}
|
||||||
|
else if ((offset + width + 2) > windowWidth) {
|
||||||
|
$this.css('margin-left', (windowWidth - offset - width - 2) + 'px');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prevent event propagation
|
||||||
|
if (arguments.length > 0) {
|
||||||
|
try {
|
||||||
|
var e = arguments[0];
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
catch (error) { }
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle dropdown submenu
|
||||||
|
*/
|
||||||
|
phpbb.toggleSubmenu = function(e) {
|
||||||
|
$(this).siblings('.dropdown-submenu').toggle();
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register dropdown menu
|
||||||
|
* Shows/hides dropdown, decides which side to open to
|
||||||
|
*
|
||||||
|
* @param {jQuery} toggle Link that toggles dropdown.
|
||||||
|
* @param {jQuery} dropdown Dropdown menu.
|
||||||
|
* @param {Object} options List of options. Optional.
|
||||||
|
*/
|
||||||
|
phpbb.registerDropdown = function(toggle, dropdown, options)
|
||||||
|
{
|
||||||
|
var ops = {
|
||||||
|
parent: toggle.parent(), // Parent item to add classes to
|
||||||
|
direction: 'auto', // Direction of dropdown menu. Possible values: auto, left, right
|
||||||
|
verticalDirection: 'auto', // Vertical direction. Possible values: auto, up, down
|
||||||
|
visibleClass: 'visible', // Class to add to parent item when dropdown is visible
|
||||||
|
leftClass: 'dropdown-left', // Class to add to parent item when dropdown opens to left side
|
||||||
|
rightClass: 'dropdown-right', // Class to add to parent item when dropdown opens to right side
|
||||||
|
upClass: 'dropdown-up', // Class to add to parent item when dropdown opens above menu item
|
||||||
|
downClass: 'dropdown-down' // Class to add to parent item when dropdown opens below menu item
|
||||||
|
};
|
||||||
|
if (options) {
|
||||||
|
ops = $.extend(ops, options);
|
||||||
|
}
|
||||||
|
ops.dropdown = dropdown;
|
||||||
|
|
||||||
|
ops.parent.addClass('dropdown-container');
|
||||||
|
toggle.addClass('dropdown-toggle');
|
||||||
|
|
||||||
|
toggle.data('dropdown-options', ops);
|
||||||
|
|
||||||
|
toggle.click(phpbb.toggleDropdown);
|
||||||
|
$('.dropdown-toggle-submenu', ops.parent).click(phpbb.toggleSubmenu);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the HTML for a color palette table.
|
||||||
|
*
|
||||||
|
* @param string dir Palette direction - either v or h
|
||||||
|
* @param int width Palette cell width.
|
||||||
|
* @param int height Palette cell height.
|
||||||
|
*/
|
||||||
|
phpbb.colorPalette = function(dir, width, height) {
|
||||||
|
var r = 0,
|
||||||
|
g = 0,
|
||||||
|
b = 0,
|
||||||
|
numberList = new Array(6),
|
||||||
|
color = '',
|
||||||
|
html = '';
|
||||||
|
|
||||||
|
numberList[0] = '00';
|
||||||
|
numberList[1] = '40';
|
||||||
|
numberList[2] = '80';
|
||||||
|
numberList[3] = 'BF';
|
||||||
|
numberList[4] = 'FF';
|
||||||
|
|
||||||
|
html += '<table style="width: auto;">';
|
||||||
|
|
||||||
|
for (r = 0; r < 5; r++) {
|
||||||
|
if (dir == 'h') {
|
||||||
|
html += '<tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
for (g = 0; g < 5; g++) {
|
||||||
|
if (dir == 'v') {
|
||||||
|
html += '<tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
for (b = 0; b < 5; b++) {
|
||||||
|
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
|
||||||
|
html += '<td style="background-color: #' + color + '; width: ' + width + 'px; height: ' + height + 'px;">';
|
||||||
|
html += '<a href="#" data-color="' + color + '" style="display: block; width: ' + width + 'px; height: ' + height + 'px; " alt="#' + color + '" title="#' + color + '"></a>';
|
||||||
|
html += '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dir == 'v') {
|
||||||
|
html += '</tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dir == 'h') {
|
||||||
|
html += '</tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
html += '</table>';
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a color palette.
|
||||||
|
*
|
||||||
|
* @param object el jQuery object for the palette container.
|
||||||
|
*/
|
||||||
|
phpbb.registerPalette = function(el) {
|
||||||
|
var orientation = el.attr('data-orientation'),
|
||||||
|
height = el.attr('data-height'),
|
||||||
|
width = el.attr('data-width'),
|
||||||
|
target = el.attr('data-target'),
|
||||||
|
bbcode = el.attr('data-bbcode');
|
||||||
|
|
||||||
|
// Insert the palette HTML into the container.
|
||||||
|
el.html(phpbb.colorPalette(orientation, width, height));
|
||||||
|
|
||||||
|
// Add toggle control.
|
||||||
|
$('#color_palette_toggle').click(function(e) {
|
||||||
|
el.toggle();
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Attach event handler when a palette cell is clicked.
|
||||||
|
$(el).on('click', 'a', function(e) {
|
||||||
|
var color = $(this).attr('data-color');
|
||||||
|
|
||||||
|
if (bbcode) {
|
||||||
|
bbfontstyle('[color=#' + color + ']', '[/color]');
|
||||||
|
} else {
|
||||||
|
$(target).val(color);
|
||||||
|
}
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Apply code editor to all textarea elements with data-bbcode attribute
|
* Apply code editor to all textarea elements with data-bbcode attribute
|
||||||
*/
|
*/
|
||||||
|
@ -836,6 +1067,18 @@ $(document).ready(function() {
|
||||||
$('textarea[data-bbcode]').each(function() {
|
$('textarea[data-bbcode]').each(function() {
|
||||||
phpbb.applyCodeEditor(this);
|
phpbb.applyCodeEditor(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Hide active dropdowns when click event happens outside
|
||||||
|
$('body').click(function(e) {
|
||||||
|
var parents = $(e.target).parents();
|
||||||
|
if (!parents.is(phpbb.dropdownVisibleContainers)) {
|
||||||
|
$(phpbb.dropdownHandles).each(phpbb.toggleDropdown);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#color_palette_placeholder').each(function() {
|
||||||
|
phpbb.registerPalette($(this));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery); // Avoid conflicts with other libraries
|
})(jQuery); // Avoid conflicts with other libraries
|
||||||
|
|
|
@ -294,63 +294,6 @@ function storeCaret(textEl) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Color pallette
|
|
||||||
*/
|
|
||||||
function colorPalette(dir, width, height) {
|
|
||||||
var r = 0,
|
|
||||||
g = 0,
|
|
||||||
b = 0,
|
|
||||||
numberList = new Array(6),
|
|
||||||
color = '',
|
|
||||||
html = '';
|
|
||||||
|
|
||||||
numberList[0] = '00';
|
|
||||||
numberList[1] = '40';
|
|
||||||
numberList[2] = '80';
|
|
||||||
numberList[3] = 'BF';
|
|
||||||
numberList[4] = 'FF';
|
|
||||||
|
|
||||||
html += '<table>';
|
|
||||||
|
|
||||||
for (r = 0; r < 5; r++) {
|
|
||||||
if (dir == 'h') {
|
|
||||||
html += '<tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
for (g = 0; g < 5; g++) {
|
|
||||||
if (dir == 'v') {
|
|
||||||
html += '<tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
for (b = 0; b < 5; b++) {
|
|
||||||
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
|
|
||||||
html += '<td style="background-color: #' + color + '; width: ' + width + 'px; height: ' + height + 'px;">';
|
|
||||||
html += '<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="display: block; width: ' + width + 'px; height: ' + height + 'px; " alt="#' + color + '" title="#' + color + '"></a>';
|
|
||||||
html += '</td>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir == 'v') {
|
|
||||||
html += '</tr>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir == 'h') {
|
|
||||||
html += '</tr>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
html += '</table>';
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
(function($) {
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#color_palette_placeholder').each(function() {
|
|
||||||
$(this).html(colorPalette('h', 15, 12));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
})(jQuery);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Caret Position object
|
* Caret Position object
|
||||||
*/
|
*/
|
|
@ -7,18 +7,18 @@
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font: normal 12px sans-serif;
|
font: normal 12px sans-serif;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #42454a;
|
color: #42454a;
|
||||||
border: 1px solid #bababa;
|
border: 1px solid #bababa;
|
||||||
padding: 2px 8px 3px 20px;
|
padding: 2px 8px 3px 20px;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
background: #f3f3f3 url('../img/buttons.png') no-repeat 0 center;
|
background: #f3f3f3 url('../img/buttons.png') no-repeat 0 center;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
|
|
||||||
/* Optional rounded corners for browsers that support it */
|
/* Optional rounded corners for browsers that support it */
|
||||||
-moz-border-radius: 3px;
|
-moz-border-radius: 3px;
|
||||||
-khtml-border-radius: 3px;
|
-khtml-border-radius: 3px;
|
||||||
-webkit-border-radius: 3px;
|
-webkit-border-radius: 3px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.plupload_button:hover {
|
.plupload_button:hover {
|
||||||
|
@ -27,9 +27,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.plupload_disabled, a.plupload_disabled:hover {
|
.plupload_disabled, a.plupload_disabled:hover {
|
||||||
color: #737373;
|
color: #737373;
|
||||||
border-color: #c5c5c5;
|
border-color: #c5c5c5;
|
||||||
background: #ededed url('../img/buttons-disabled.png') no-repeat 0 center;
|
background: #ededed url('../img/buttons-disabled.png') no-repeat 0 center;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.plupload_wrapper {
|
.plupload_wrapper {
|
||||||
font: normal 11px Verdana,sans-serif;
|
font: normal 11px Verdana, sans-serif;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
1
phpBB/assets/plupload/jquery.plupload.queue/jquery.plupload.queue.min.js
vendored
Normal file
1
phpBB/assets/plupload/jquery.plupload.queue/jquery.plupload.queue.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
28
phpBB/assets/plupload/plupload.full.min.js
vendored
Normal file
28
phpBB/assets/plupload/plupload.full.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
36
phpBB/bin/phpbbcli.php
Executable file
36
phpBB/bin/phpbbcli.php
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package phpBB3
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (php_sapi_name() != 'cli')
|
||||||
|
{
|
||||||
|
echo 'This program must be run from the command line.' . PHP_EOL;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
define('IN_PHPBB', true);
|
||||||
|
$phpbb_root_path = __DIR__ . '/../';
|
||||||
|
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||||
|
require($phpbb_root_path . 'includes/startup.' . $phpEx);
|
||||||
|
require($phpbb_root_path . 'config.' . $phpEx);
|
||||||
|
require($phpbb_root_path . 'includes/constants.' . $phpEx);
|
||||||
|
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
||||||
|
require($phpbb_root_path . 'includes/functions_container.' . $phpEx);
|
||||||
|
require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
|
||||||
|
|
||||||
|
$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
|
||||||
|
$phpbb_class_loader->register();
|
||||||
|
$phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx);
|
||||||
|
$phpbb_class_loader_ext->register();
|
||||||
|
|
||||||
|
$phpbb_container = phpbb_create_update_container($phpbb_root_path, $phpEx, "$phpbb_root_path/config");
|
||||||
|
|
||||||
|
$application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION);
|
||||||
|
$application->register_container_commands($phpbb_container);
|
||||||
|
$application->run();
|
|
@ -3,6 +3,7 @@
|
||||||
"require": {
|
"require": {
|
||||||
"lusitanian/oauth": "0.2.*",
|
"lusitanian/oauth": "0.2.*",
|
||||||
"symfony/config": "2.3.*",
|
"symfony/config": "2.3.*",
|
||||||
|
"symfony/console": "2.3.*",
|
||||||
"symfony/dependency-injection": "2.3.*",
|
"symfony/dependency-injection": "2.3.*",
|
||||||
"symfony/event-dispatcher": "2.3.*",
|
"symfony/event-dispatcher": "2.3.*",
|
||||||
"symfony/http-kernel": "2.3.*",
|
"symfony/http-kernel": "2.3.*",
|
||||||
|
@ -14,6 +15,7 @@
|
||||||
"fabpot/goutte": "1.0.*",
|
"fabpot/goutte": "1.0.*",
|
||||||
"phpunit/dbunit": "1.2.*",
|
"phpunit/dbunit": "1.2.*",
|
||||||
"phpunit/phpunit": "3.7.*",
|
"phpunit/phpunit": "3.7.*",
|
||||||
"phing/phing": "2.4.*"
|
"phing/phing": "2.4.*",
|
||||||
|
"squizlabs/php_codesniffer": "1.*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
127
phpBB/composer.lock
generated
127
phpBB/composer.lock
generated
|
@ -3,7 +3,7 @@
|
||||||
"This file locks the dependencies of your project to a known state",
|
"This file locks the dependencies of your project to a known state",
|
||||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
||||||
],
|
],
|
||||||
"hash": "0bc0fd0d784720629ae0ba6d4be6a577",
|
"hash": "cc83663b780856890f787b9b4d6ea474",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "lusitanian/oauth",
|
"name": "lusitanian/oauth",
|
||||||
|
@ -154,6 +154,59 @@
|
||||||
"homepage": "http://symfony.com",
|
"homepage": "http://symfony.com",
|
||||||
"time": "2013-08-06 05:49:23"
|
"time": "2013-08-06 05:49:23"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/console",
|
||||||
|
"version": "v2.3.6",
|
||||||
|
"target-dir": "Symfony/Component/Console",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/Console.git",
|
||||||
|
"reference": "f880062d56edefb25b36f2defa65aafe65959dc7"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/Console/zipball/f880062d56edefb25b36f2defa65aafe65959dc7",
|
||||||
|
"reference": "f880062d56edefb25b36f2defa65aafe65959dc7",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/event-dispatcher": "~2.1"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/event-dispatcher": ""
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.3-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Symfony\\Component\\Console\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "http://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony Console Component",
|
||||||
|
"homepage": "http://symfony.com",
|
||||||
|
"time": "2013-09-25 06:04:15"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/debug",
|
"name": "symfony/debug",
|
||||||
"version": "v2.3.4",
|
"version": "v2.3.4",
|
||||||
|
@ -302,7 +355,7 @@
|
||||||
"Symfony\\Component\\EventDispatcher\\": ""
|
"Symfony\\Component\\EventDispatcher\\": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "http://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
"license": [
|
"license": [
|
||||||
"MIT"
|
"MIT"
|
||||||
],
|
],
|
||||||
|
@ -1375,6 +1428,76 @@
|
||||||
],
|
],
|
||||||
"time": "2013-01-13 10:24:48"
|
"time": "2013-01-13 10:24:48"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "squizlabs/php_codesniffer",
|
||||||
|
"version": "1.5.0RC4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||||
|
"reference": "146a9b54e4adeaca0a3ae073e0a8a03570d6cc43"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/146a9b54e4adeaca0a3ae073e0a8a03570d6cc43",
|
||||||
|
"reference": "146a9b54e4adeaca0a3ae073e0a8a03570d6cc43",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"php": ">=5.1.2"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"phpunit/php-timer": "dev-master"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"scripts/phpcs"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"CodeSniffer.php",
|
||||||
|
"CodeSniffer/CLI.php",
|
||||||
|
"CodeSniffer/Exception.php",
|
||||||
|
"CodeSniffer/File.php",
|
||||||
|
"CodeSniffer/Report.php",
|
||||||
|
"CodeSniffer/Reporting.php",
|
||||||
|
"CodeSniffer/Sniff.php",
|
||||||
|
"CodeSniffer/Tokens.php",
|
||||||
|
"CodeSniffer/Reports/",
|
||||||
|
"CodeSniffer/CommentParser/",
|
||||||
|
"CodeSniffer/Tokenizers/",
|
||||||
|
"CodeSniffer/DocGenerators/",
|
||||||
|
"CodeSniffer/Standards/AbstractPatternSniff.php",
|
||||||
|
"CodeSniffer/Standards/AbstractScopeSniff.php",
|
||||||
|
"CodeSniffer/Standards/AbstractVariableSniff.php",
|
||||||
|
"CodeSniffer/Standards/IncorrectPatternException.php",
|
||||||
|
"CodeSniffer/Standards/Generic/Sniffs/",
|
||||||
|
"CodeSniffer/Standards/MySource/Sniffs/",
|
||||||
|
"CodeSniffer/Standards/PEAR/Sniffs/",
|
||||||
|
"CodeSniffer/Standards/PSR1/Sniffs/",
|
||||||
|
"CodeSniffer/Standards/PSR2/Sniffs/",
|
||||||
|
"CodeSniffer/Standards/Squiz/Sniffs/",
|
||||||
|
"CodeSniffer/Standards/Zend/Sniffs/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Greg Sherwood",
|
||||||
|
"role": "lead"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP_CodeSniffer tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
||||||
|
"homepage": "http://www.squizlabs.com/php-codesniffer",
|
||||||
|
"keywords": [
|
||||||
|
"phpcs",
|
||||||
|
"standards"
|
||||||
|
],
|
||||||
|
"time": "2013-09-26 00:14:02"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/browser-kit",
|
"name": "symfony/browser-kit",
|
||||||
"version": "v2.3.4",
|
"version": "v2.3.4",
|
||||||
|
|
35
phpBB/config/console.yml
Normal file
35
phpBB/config/console.yml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
services:
|
||||||
|
console.command.extension.disable:
|
||||||
|
class: phpbb\console\command\extension\disable
|
||||||
|
arguments:
|
||||||
|
- @ext.manager
|
||||||
|
tags:
|
||||||
|
- { name: console.command }
|
||||||
|
|
||||||
|
console.command.extension.enable:
|
||||||
|
class: phpbb\console\command\extension\enable
|
||||||
|
arguments:
|
||||||
|
- @ext.manager
|
||||||
|
tags:
|
||||||
|
- { name: console.command }
|
||||||
|
|
||||||
|
console.command.extension.purge:
|
||||||
|
class: phpbb\console\command\extension\purge
|
||||||
|
arguments:
|
||||||
|
- @ext.manager
|
||||||
|
tags:
|
||||||
|
- { name: console.command }
|
||||||
|
|
||||||
|
console.command.extension.show:
|
||||||
|
class: phpbb\console\command\extension\show
|
||||||
|
arguments:
|
||||||
|
- @ext.manager
|
||||||
|
tags:
|
||||||
|
- { name: console.command }
|
||||||
|
|
||||||
|
console.command.fixup.recalculate_email_hash:
|
||||||
|
class: phpbb\console\command\fixup\recalculate_email_hash
|
||||||
|
arguments:
|
||||||
|
- @dbal.conn
|
||||||
|
tags:
|
||||||
|
- { name: console.command }
|
43
phpBB/config/mimetype_guessers.yml
Normal file
43
phpBB/config/mimetype_guessers.yml
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
parameters:
|
||||||
|
mimetype.guesser.priority.lowest: -2
|
||||||
|
mimetype.guesser.priority.low: -1
|
||||||
|
mimetype.guesser.priority.default: 0
|
||||||
|
mimetype.guesser.priority.high: 1
|
||||||
|
mimetype.guesser.priority.highest: 2
|
||||||
|
|
||||||
|
services:
|
||||||
|
mimetype.fileinfo_mimetype_guesser:
|
||||||
|
class: Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser
|
||||||
|
tags:
|
||||||
|
- { name: mimetype.guessers }
|
||||||
|
|
||||||
|
mimetype.filebinary_mimetype_guesser:
|
||||||
|
class: Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser
|
||||||
|
tags:
|
||||||
|
- { name: mimetype.guessers }
|
||||||
|
|
||||||
|
mimetype.content_guesser:
|
||||||
|
class: phpbb\mimetype\content_guesser
|
||||||
|
calls:
|
||||||
|
- [set_priority, [%mimetype.guesser.priority.low%]]
|
||||||
|
tags:
|
||||||
|
- { name: mimetype.guessers }
|
||||||
|
|
||||||
|
mimetype.extension_guesser:
|
||||||
|
class: phpbb\mimetype\extension_guesser
|
||||||
|
calls:
|
||||||
|
- [set_priority, [%mimetype.guesser.priority.lowest%]]
|
||||||
|
tags:
|
||||||
|
- { name: mimetype.guessers }
|
||||||
|
|
||||||
|
mimetype.guesser_collection:
|
||||||
|
class: phpbb\di\service_collection
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
tags:
|
||||||
|
- { name: service_collection, tag: mimetype.guessers }
|
||||||
|
|
||||||
|
mimetype.guesser:
|
||||||
|
class: phpbb\mimetype\guesser
|
||||||
|
arguments:
|
||||||
|
- @mimetype.guesser_collection
|
|
@ -266,7 +266,7 @@ services:
|
||||||
- { name: notification.type }
|
- { name: notification.type }
|
||||||
|
|
||||||
notification.type.report_post_closed:
|
notification.type.report_post_closed:
|
||||||
class: phpbb\notification\type\report_post
|
class: phpbb\notification\type\report_post_closed
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
arguments:
|
arguments:
|
||||||
- @user_loader
|
- @user_loader
|
||||||
|
@ -319,6 +319,24 @@ services:
|
||||||
tags:
|
tags:
|
||||||
- { name: notification.type }
|
- { name: notification.type }
|
||||||
|
|
||||||
|
notification.type.admin_activate_user:
|
||||||
|
class: phpbb\notification\type\admin_activate_user
|
||||||
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
|
arguments:
|
||||||
|
- @user_loader
|
||||||
|
- @dbal.conn
|
||||||
|
- @cache.driver
|
||||||
|
- @user
|
||||||
|
- @auth
|
||||||
|
- @config
|
||||||
|
- %core.root_path%
|
||||||
|
- %core.php_ext%
|
||||||
|
- %tables.notification_types%
|
||||||
|
- %tables.notifications%
|
||||||
|
- %tables.user_notifications%
|
||||||
|
tags:
|
||||||
|
- { name: notification.type }
|
||||||
|
|
||||||
notification.method.email:
|
notification.method.email:
|
||||||
class: phpbb\notification\method\email
|
class: phpbb\notification\method\email
|
||||||
scope: prototype # scope MUST be prototype for this to work!
|
scope: prototype # scope MUST be prototype for this to work!
|
||||||
|
|
|
@ -6,6 +6,8 @@ imports:
|
||||||
- { resource: avatars.yml }
|
- { resource: avatars.yml }
|
||||||
- { resource: feed.yml }
|
- { resource: feed.yml }
|
||||||
- { resource: auth_providers.yml }
|
- { resource: auth_providers.yml }
|
||||||
|
- { resource: console.yml }
|
||||||
|
- { resource: mimetype_guessers.yml }
|
||||||
|
|
||||||
services:
|
services:
|
||||||
acl.permissions:
|
acl.permissions:
|
||||||
|
@ -22,7 +24,6 @@ services:
|
||||||
arguments:
|
arguments:
|
||||||
- @config
|
- @config
|
||||||
- @avatar.driver_collection
|
- @avatar.driver_collection
|
||||||
- @service_container
|
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
class: phpbb\cache\service
|
class: phpbb\cache\service
|
||||||
|
@ -141,10 +142,17 @@ services:
|
||||||
class: phpbb\event\extension_subscriber_loader
|
class: phpbb\event\extension_subscriber_loader
|
||||||
arguments:
|
arguments:
|
||||||
- @dispatcher
|
- @dispatcher
|
||||||
- @ext.manager
|
- @event.listener_collection
|
||||||
calls:
|
calls:
|
||||||
- [load, []]
|
- [load, []]
|
||||||
|
|
||||||
|
event.listener_collection:
|
||||||
|
class: phpbb\di\service_collection
|
||||||
|
arguments:
|
||||||
|
- @service_container
|
||||||
|
tags:
|
||||||
|
- { name: service_collection, tag: event.listener }
|
||||||
|
|
||||||
ext.manager:
|
ext.manager:
|
||||||
class: phpbb\extension\manager
|
class: phpbb\extension\manager
|
||||||
arguments:
|
arguments:
|
||||||
|
@ -237,6 +245,7 @@ services:
|
||||||
- @notification.method_collection
|
- @notification.method_collection
|
||||||
- @service_container
|
- @service_container
|
||||||
- @user_loader
|
- @user_loader
|
||||||
|
- @config
|
||||||
- @dbal.conn
|
- @dbal.conn
|
||||||
- @cache
|
- @cache
|
||||||
- @user
|
- @user
|
||||||
|
@ -266,6 +275,7 @@ services:
|
||||||
- @request
|
- @request
|
||||||
- @user
|
- @user
|
||||||
- @php_ini
|
- @php_ini
|
||||||
|
- @mimetype.guesser
|
||||||
|
|
||||||
request:
|
request:
|
||||||
class: phpbb\request\request
|
class: phpbb\request\request
|
||||||
|
|
307
phpBB/develop/export_events_for_wiki.php
Normal file
307
phpBB/develop/export_events_for_wiki.php
Normal file
|
@ -0,0 +1,307 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (php_sapi_name() != 'cli')
|
||||||
|
{
|
||||||
|
die("This program must be run from the command line.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||||
|
$phpbb_root_path = __DIR__ . '/../';
|
||||||
|
|
||||||
|
function usage()
|
||||||
|
{
|
||||||
|
echo "Usage: export_events_for_wiki.php COMMAND\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "acp:\n";
|
||||||
|
echo " Export all events for files in the acp style.\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "styles:\n";
|
||||||
|
echo " Export all events for files in the prosilver and subsilver2 styles.\n";
|
||||||
|
echo "\n";
|
||||||
|
echo "php:\n";
|
||||||
|
echo " Export all events for php-files.\n";
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
function export_from_eventsmd($phpbb_root_path, $filter)
|
||||||
|
{
|
||||||
|
$file_content = file_get_contents($phpbb_root_path . 'docs/events.md');
|
||||||
|
|
||||||
|
$events = explode("\n\n", $file_content);
|
||||||
|
foreach ($events as $event)
|
||||||
|
{
|
||||||
|
// Last row of the file
|
||||||
|
if (strpos($event, "\n===\n") === false) continue;
|
||||||
|
|
||||||
|
list($event_name, $details) = explode("\n===\n", $event);
|
||||||
|
|
||||||
|
if ($filter == 'acp' && strpos($event_name, 'acp_') !== 0) continue;
|
||||||
|
if ($filter == 'styles' && strpos($event_name, 'acp_') === 0) continue;
|
||||||
|
|
||||||
|
list($file_details, $details) = explode("\n* Since: ", $details);
|
||||||
|
list($version, $explanition) = explode("\n* Purpose: ", $details);
|
||||||
|
|
||||||
|
echo "|- id=\"{$event_name}\"\n";
|
||||||
|
echo "| [[#{$event_name}|{$event_name}]] || ";
|
||||||
|
|
||||||
|
if (strpos($file_details, "* Locations:\n + ") === 0)
|
||||||
|
{
|
||||||
|
$file_details = substr($file_details, strlen("* Locations:\n + "));
|
||||||
|
$files = explode("\n + ", $file_details);
|
||||||
|
$prosilver = $subsilver2 = array();
|
||||||
|
foreach ($files as $file)
|
||||||
|
{
|
||||||
|
if (strpos($file, 'styles/prosilver/template/') === 0)
|
||||||
|
{
|
||||||
|
$prosilver[] = substr($file, strlen('styles/prosilver/template/'));
|
||||||
|
}
|
||||||
|
if (strpos($file, 'styles/subsilver2/template/') === 0)
|
||||||
|
{
|
||||||
|
$subsilver2[] = substr($file, strlen('styles/subsilver2/template/'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo implode(', ', $prosilver) . ' || ' . implode(', ', $subsilver2);
|
||||||
|
}
|
||||||
|
else if ($filter == 'acp')
|
||||||
|
{
|
||||||
|
echo substr($file_details, strlen("* Location: adm/style/"));
|
||||||
|
}
|
||||||
|
echo " || {$version} || " . str_replace("\n", ' ', $explanition) . "\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function export_from_php($phpbb_root_path)
|
||||||
|
{
|
||||||
|
$files = get_file_list($phpbb_root_path);
|
||||||
|
$events = array();
|
||||||
|
foreach ($files as $file)
|
||||||
|
{
|
||||||
|
$file_events = check_for_events($phpbb_root_path, $file);
|
||||||
|
if (!empty($file_events))
|
||||||
|
{
|
||||||
|
$events = array_merge($events, $file_events);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ksort($events);
|
||||||
|
|
||||||
|
foreach ($events as $event)
|
||||||
|
{
|
||||||
|
echo '|- id="' . $event['event'] . '"' . "\n";
|
||||||
|
echo '| [[#' . $event['event'] . '|' . $event['event'] . ']] || ' . $event['file'] . ' || ' . implode(', ', $event['arguments']) . ' || ' . $event['since'] . ' || ' . $event['description'] . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_for_events($phpbb_root_path, $file)
|
||||||
|
{
|
||||||
|
$events = array();
|
||||||
|
$content = file_get_contents($phpbb_root_path . $file);
|
||||||
|
|
||||||
|
if (strpos($content, "phpbb_dispatcher->trigger_event('") || strpos($content, "phpbb_dispatcher->dispatch('"))
|
||||||
|
{
|
||||||
|
$lines = explode("\n", $content);
|
||||||
|
for ($i = 0, $num_lines = sizeof($lines); $i < $num_lines; $i++)
|
||||||
|
{
|
||||||
|
$event_line = 0;
|
||||||
|
if ($found_trigger_event = strpos($lines[$i], "phpbb_dispatcher->trigger_event('"))
|
||||||
|
{
|
||||||
|
$event_line = $i;
|
||||||
|
$event_name = $lines[$event_line];
|
||||||
|
$event_name = substr($event_name, $found_trigger_event + strlen("phpbb_dispatcher->trigger_event('"));
|
||||||
|
$event_name = substr($event_name, 0, strpos($event_name, "'"));
|
||||||
|
|
||||||
|
// Find $vars array lines
|
||||||
|
$find_varsarray_line = 1;
|
||||||
|
while (strpos($lines[$event_line - $find_varsarray_line], "vars = array('") === false)
|
||||||
|
{
|
||||||
|
$find_varsarray_line++;
|
||||||
|
|
||||||
|
if ($find_varsarray_line > min(50, $event_line))
|
||||||
|
{
|
||||||
|
throw new LogicException('Can not find "$vars = array()"-line for event "' . $event_name . '" in file "' . $file . '"');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$varsarray = substr(trim($lines[$event_line - $find_varsarray_line]), strlen("\$vars = array('"), -3);
|
||||||
|
$arguments = explode("', '", $varsarray);
|
||||||
|
|
||||||
|
// Validate $vars array with @var
|
||||||
|
$find_vars_line = 3;
|
||||||
|
$doc_vars = array();
|
||||||
|
while (strpos(trim($lines[$event_line - $find_vars_line]), '*') === 0)
|
||||||
|
{
|
||||||
|
$var_line = trim($lines[$event_line - $find_vars_line]);
|
||||||
|
$var_line = preg_replace('!\s+!', ' ', $var_line);
|
||||||
|
if (strpos($var_line, '* @var ') === 0)
|
||||||
|
{
|
||||||
|
$doc_line = explode(' ', $var_line);
|
||||||
|
if (isset($doc_line[3]))
|
||||||
|
{
|
||||||
|
$doc_vars[] = $doc_line[3];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$find_vars_line++;
|
||||||
|
}
|
||||||
|
if (sizeof($arguments) !== sizeof($doc_vars) && array_intersect($arguments, $doc_vars))
|
||||||
|
{
|
||||||
|
throw new LogicException('$vars array does not match the list of @var tags for event "' . $event_name . '" in file "' . $file . '"');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ($found_trigger_event = strpos($lines[$i], "phpbb_dispatcher->dispatch('"))
|
||||||
|
{
|
||||||
|
$event_line = $i;
|
||||||
|
$event_name = $lines[$event_line];
|
||||||
|
$event_name = substr($event_name, $found_trigger_event + strlen("phpbb_dispatcher->dispatch('"));
|
||||||
|
$event_name = substr($event_name, 0, strpos($event_name, "'"));
|
||||||
|
$arguments = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($event_line)
|
||||||
|
{
|
||||||
|
// Validate @event name
|
||||||
|
$find_event_line = 1;
|
||||||
|
while (strpos($lines[$event_line - $find_event_line], '* @event ') === false)
|
||||||
|
{
|
||||||
|
$find_event_line++;
|
||||||
|
|
||||||
|
if ($find_event_line > min(50, $event_line))
|
||||||
|
{
|
||||||
|
throw new LogicException('Can not find @event tag for event "' . $event_name . '" in file "' . $file . '"');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$event_name_tag = substr(trim($lines[$event_line - $find_event_line]), strlen('* @event '));
|
||||||
|
if ($event_name_tag !== $event_name)
|
||||||
|
{
|
||||||
|
throw new LogicException('Event name does not match @event tag for event "' . $event_name . '" in file "' . $file . '"');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find @since
|
||||||
|
$find_since_line = 1;
|
||||||
|
while (strpos($lines[$event_line - $find_since_line], '* @since ') === false)
|
||||||
|
{
|
||||||
|
$find_since_line++;
|
||||||
|
|
||||||
|
if ($find_since_line > min(50, $event_line))
|
||||||
|
{
|
||||||
|
throw new LogicException('Can not find @since tag for event "' . $event_name . '" in file "' . $file . '"');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$since = substr(trim($lines[$event_line - $find_since_line]), strlen('* @since '));
|
||||||
|
$since = ($since == '3.1-A1') ? '3.1.0-a1' : $since;
|
||||||
|
|
||||||
|
// Find event description line
|
||||||
|
$find_description_line = 3;
|
||||||
|
while (strpos(trim($lines[$event_line - $find_description_line]), '*') === 0)
|
||||||
|
{
|
||||||
|
$find_description_line++;
|
||||||
|
|
||||||
|
if ($find_description_line > min(50, $event_line))
|
||||||
|
{
|
||||||
|
throw new LogicException('Can not find description-line for event "' . $event_name . '" in file "' . $file . '"');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$description = substr(trim($lines[$event_line - $find_description_line + 1]), strlen('* '));
|
||||||
|
|
||||||
|
$events[$event_name] = array(
|
||||||
|
'event' => $event_name,
|
||||||
|
'file' => $file,
|
||||||
|
'arguments' => $arguments,
|
||||||
|
'since' => $since,
|
||||||
|
'description' => $description,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $events;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a list of files in that directory
|
||||||
|
*
|
||||||
|
* Works recursive with any depth
|
||||||
|
*
|
||||||
|
* @param string $dir Directory to go through
|
||||||
|
* @return array List of files (including directories from within $dir
|
||||||
|
*/
|
||||||
|
function get_file_list($dir, $path = '')
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$iterator = new \DirectoryIterator($dir);
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$files = array();
|
||||||
|
foreach ($iterator as $file_info)
|
||||||
|
{
|
||||||
|
if ($file_info->isDot())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do not scan some directories
|
||||||
|
if ($file_info->isDir() && (
|
||||||
|
($path == '' && in_array($file_info->getFilename(), array('cache', 'develop', 'ext', 'files', 'language', 'store', 'vendor')))
|
||||||
|
|| ($path == '/includes' && in_array($file_info->getFilename(), array('utf')))
|
||||||
|
|| ($path == '/phpbb/db/migration' && in_array($file_info->getFilename(), array('data')))
|
||||||
|
|| ($path == '/phpbb' && in_array($file_info->getFilename(), array('event')))
|
||||||
|
))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if ($file_info->isDir())
|
||||||
|
{
|
||||||
|
$sub_dir = get_file_list($file_info->getPath() . '/' . $file_info->getFilename(), $path . '/' . $file_info->getFilename());
|
||||||
|
foreach ($sub_dir as $file)
|
||||||
|
{
|
||||||
|
$files[] = $file_info->getFilename() . '/' . $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ($file_info->getExtension() == 'php')
|
||||||
|
{
|
||||||
|
$files[] = $file_info->getFilename();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $files;
|
||||||
|
}
|
||||||
|
|
||||||
|
function validate_argument_count($arguments, $count)
|
||||||
|
{
|
||||||
|
if ($arguments <= $count)
|
||||||
|
{
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_argument_count($argc, 1);
|
||||||
|
|
||||||
|
$action = $argv[1];
|
||||||
|
|
||||||
|
switch ($action)
|
||||||
|
{
|
||||||
|
case 'acp':
|
||||||
|
export_from_eventsmd($phpbb_root_path, 'acp');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'styles':
|
||||||
|
export_from_eventsmd($phpbb_root_path, 'styles');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'php':
|
||||||
|
export_from_php($phpbb_root_path);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
}
|
|
@ -1,129 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @copyright (c) 2012 phpBB Group
|
|
||||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
define('IN_PHPBB', 1);
|
|
||||||
define('ANONYMOUS', 1);
|
|
||||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
|
||||||
$phpbb_root_path = __DIR__.'/../';
|
|
||||||
|
|
||||||
include($phpbb_root_path . 'common.'.$phpEx);
|
|
||||||
|
|
||||||
function usage()
|
|
||||||
{
|
|
||||||
echo "Usage: extensions.php COMMAND [OPTION]...\n";
|
|
||||||
echo "Console extension manager.\n";
|
|
||||||
echo "\n";
|
|
||||||
echo "list:\n";
|
|
||||||
echo " Lists all extensions in the database and the filesystem.\n";
|
|
||||||
echo "\n";
|
|
||||||
echo "enable NAME:\n";
|
|
||||||
echo " Enables the specified extension.\n";
|
|
||||||
echo "\n";
|
|
||||||
echo "disable NAME:\n";
|
|
||||||
echo " Disables the specified extension.\n";
|
|
||||||
echo "\n";
|
|
||||||
echo "purge NAME:\n";
|
|
||||||
echo " Purges the specified extension.\n";
|
|
||||||
exit(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
function list_extensions()
|
|
||||||
{
|
|
||||||
global $phpbb_extension_manager;
|
|
||||||
|
|
||||||
$phpbb_extension_manager->load_extensions();
|
|
||||||
$all = array_keys($phpbb_extension_manager->all_available());
|
|
||||||
|
|
||||||
if (empty($all))
|
|
||||||
{
|
|
||||||
echo "There were no extensions found.\n";
|
|
||||||
exit(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Enabled:\n";
|
|
||||||
$enabled = array_keys($phpbb_extension_manager->all_enabled());
|
|
||||||
print_extensions($enabled);
|
|
||||||
echo "\n";
|
|
||||||
|
|
||||||
echo "Disabled:\n";
|
|
||||||
$disabled = array_keys($phpbb_extension_manager->all_disabled());
|
|
||||||
print_extensions($disabled);
|
|
||||||
echo "\n";
|
|
||||||
|
|
||||||
echo "Available:\n";
|
|
||||||
$purged = array_diff($all, $enabled, $disabled);
|
|
||||||
print_extensions($purged);
|
|
||||||
}
|
|
||||||
|
|
||||||
function print_extensions($exts)
|
|
||||||
{
|
|
||||||
foreach ($exts as $ext)
|
|
||||||
{
|
|
||||||
echo "- $ext\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function enable_extension($name)
|
|
||||||
{
|
|
||||||
global $phpbb_extension_manager;
|
|
||||||
|
|
||||||
$phpbb_extension_manager->enable($name);
|
|
||||||
}
|
|
||||||
|
|
||||||
function disable_extension($name)
|
|
||||||
{
|
|
||||||
global $phpbb_extension_manager;
|
|
||||||
|
|
||||||
$phpbb_extension_manager->disable($name);
|
|
||||||
}
|
|
||||||
|
|
||||||
function purge_extension($name)
|
|
||||||
{
|
|
||||||
global $phpbb_extension_manager;
|
|
||||||
|
|
||||||
$phpbb_extension_manager->purge($name);
|
|
||||||
}
|
|
||||||
|
|
||||||
function validate_argument_count($count)
|
|
||||||
{
|
|
||||||
global $argv;
|
|
||||||
|
|
||||||
if (count($argv) <= $count)
|
|
||||||
{
|
|
||||||
usage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
validate_argument_count(1);
|
|
||||||
|
|
||||||
$action = $argv[1];
|
|
||||||
|
|
||||||
switch ($action)
|
|
||||||
{
|
|
||||||
case 'list':
|
|
||||||
list_extensions();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'enable':
|
|
||||||
validate_argument_count(2);
|
|
||||||
enable_extension($argv[2]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'disable':
|
|
||||||
validate_argument_count(2);
|
|
||||||
disable_extension($argv[2]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'purge':
|
|
||||||
validate_argument_count(2);
|
|
||||||
purge_extension($argv[2]);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
usage();
|
|
||||||
}
|
|
|
@ -46,6 +46,7 @@
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#changelog">Changelog</a>
|
<li><a href="#changelog">Changelog</a>
|
||||||
<ol style="list-style-type: lower-roman;">
|
<ol style="list-style-type: lower-roman;">
|
||||||
|
<li><a href="#v310a1">Changes since 3.1.0-a1</a></li>
|
||||||
<li><a href="#v30x">Changes since 3.0.x</a></li>
|
<li><a href="#v30x">Changes since 3.0.x</a></li>
|
||||||
<li><a href="#v3011">Changes since 3.0.11</a></li>
|
<li><a href="#v3011">Changes since 3.0.11</a></li>
|
||||||
<li><a href="#v3010">Changes since 3.0.10</a></li>
|
<li><a href="#v3010">Changes since 3.0.10</a></li>
|
||||||
|
@ -87,7 +88,83 @@
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<a name="v30x"></a><h3>1.i. Changes since 3.0.x</h3>
|
<a name="v310a1"></a><h3>1.i. Changes since 3.1.0-a1</h3>
|
||||||
|
|
||||||
|
<h4>Bug</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-4776">PHPBB3-4776</a>] - Long post gets hidden behind posting profile</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10449">PHPBB3-10449</a>] - Lines spilling in subscriptions view</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10948">PHPBB3-10948</a>] - Color swatch in 3.1 does not display properly</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11030">PHPBB3-11030</a>] - I beam cursor in prosilver when hovering on browse button for uploading attachments</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11073">PHPBB3-11073</a>] - Reported/Unapproved moderator information in viewtopic is striked through instead of underlined</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11138">PHPBB3-11138</a>] - Resync features in ACP should not use AJAX</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11280">PHPBB3-11280</a>] - Double clicking "mark topics read" produces an error the second time</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11525">PHPBB3-11525</a>] - phpbb_avatar_manager::clean_row collapses user_id and group_id</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11534">PHPBB3-11534</a>] - Remote avatar does not properly check if remote file is an image</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11626">PHPBB3-11626</a>] - Auth ACP options should be moved to separate html file</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11663">PHPBB3-11663</a>] - In generate_text_for_storage the function does not check for errors of parse_message:parse() and act accordingly</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11691">PHPBB3-11691</a>] - Soft delete migration conversion should be staggered</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11739">PHPBB3-11739</a>] - Wrong name for UCP Module "Edit "Remember Me" login keys"</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11842">PHPBB3-11842</a>] - Create a new group Error with avatar driver</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11857">PHPBB3-11857</a>] - Avatar manager must not depend on entire container</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11872">PHPBB3-11872</a>] - MCP: Users with most warnings list is invalid</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11896">PHPBB3-11896</a>] - "Mark all notifications read" does not work</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11899">PHPBB3-11899</a>] - New ajax poll vote should give feedback while waiting for servers response</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11916">PHPBB3-11916</a>] - Remove files from hidden attach list after deletion</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11922">PHPBB3-11922</a>] - Migrator fails to remove columns on MSSQL when they have/had an index</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11923">PHPBB3-11923</a>] - UCP avatar error when user has no permissions to change his/her avatar</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11924">PHPBB3-11924</a>] - Add a script to export the events in wiki format</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11926">PHPBB3-11926</a>] - Plupload Migration has a broken dependency.</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11927">PHPBB3-11927</a>] - Missing Files after 3.1.0-A1 Automatic Updater</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11930">PHPBB3-11930</a>] - Avatar paths are incorrect when using app.php</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11935">PHPBB3-11935</a>] - Invalid HTML in "Sort By" form elements in Prosilver</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11936">PHPBB3-11936</a>] - Fixes to Notifications Window</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11939">PHPBB3-11939</a>] - Quick reply editor has unnecessary data-ajax attribute</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11943">PHPBB3-11943</a>] - $VAR = false has unexpected result</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11945">PHPBB3-11945</a>] - Focused buttons are hard to notice</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11947">PHPBB3-11947</a>] - Notification popup does not appear when clicking number in text</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11948">PHPBB3-11948</a>] - Extensions should be allowed to have more then 1 routing file</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11949">PHPBB3-11949</a>] - cannot upgrade to 3.1</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11960">PHPBB3-11960</a>] - Responsive design removed teampage names</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11972">PHPBB3-11972</a>] - Add template event posting_editor_subject_after</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11977">PHPBB3-11977</a>] - Ajax delete should disable moving options</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11982">PHPBB3-11982</a>] - Navigation is shown above AJAX background in ACP</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11983">PHPBB3-11983</a>] - Subscriptions argument missing from docblock in ucp_notifications</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11986">PHPBB3-11986</a>] - Undefined index: poster_id in file.php</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11987">PHPBB3-11987</a>] - {ROOT_PATH} in ACP leads to adm/</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11990">PHPBB3-11990</a>] - Remove result_mssqlnative from acp_database</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11991">PHPBB3-11991</a>] - PHP notices when closing reported posts entries in MCP</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11992">PHPBB3-11992</a>] - Wrong variable to close "Users with most warnings" block at MCP</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11994">PHPBB3-11994</a>] - Admin options for extensions are bad/misleading</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11995">PHPBB3-11995</a>] - Reverting a config.remove fails</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12002">PHPBB3-12002</a>] - Extension management page should use generate/check link hash</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12007">PHPBB3-12007</a>] - Default last_result of callable steps must be integer instead of false</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12008">PHPBB3-12008</a>] - "Prune notifications" cron task always ran, blocking others</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12016">PHPBB3-12016</a>] - Event listeners should be services</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12017">PHPBB3-12017</a>] - Extension tests are broken on current develop</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12018">PHPBB3-12018</a>] - Use path_helper for admin style CSS in sql report</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12023">PHPBB3-12023</a>] - New css files missing after update</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Improvement</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11552">PHPBB3-11552</a>] - Responsive design for prosilver</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11746">PHPBB3-11746</a>] - Add "account activation required" notification for Administrators</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11921">PHPBB3-11921</a>] - Improve Notifications and PMs in the header</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11928">PHPBB3-11928</a>] - Replace AJAX loading info pop up with animation</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11957">PHPBB3-11957</a>] - Responsive design for admin control panel</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11973">PHPBB3-11973</a>] - Remove logic from language files where possible</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11974">PHPBB3-11974</a>] - All timezones should be translatable</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11975">PHPBB3-11975</a>] - Add ACP link next to MCP</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Task</h4>
|
||||||
|
<ul>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11031">PHPBB3-11031</a>] - Bring phpBB2 converter up to speed with 3.1 changes</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11980">PHPBB3-11980</a>] - Setup PHP Code Sniffer</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11981">PHPBB3-11981</a>] - Review/Fix Code Sniffer complaints</li>
|
||||||
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11998">PHPBB3-11998</a>] - Add console / command line client environment </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a name="v30x"></a><h3>1.ii. Changes since 3.0.x</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -768,7 +845,7 @@
|
||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11913">PHPBB3-11913</a>] - Apply reorganisation of download.phpbb.com to build_announcement.php</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11913">PHPBB3-11913</a>] - Apply reorganisation of download.phpbb.com to build_announcement.php</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v3011"></a><h3>1.ii. Changes since 3.0.11</h3>
|
<a name="v3011"></a><h3>1.iii. Changes since 3.0.11</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -923,7 +1000,7 @@
|
||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11753">PHPBB3-11753</a>] - Upgrade mysql_upgrader.php schema data.</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11753">PHPBB3-11753</a>] - Upgrade mysql_upgrader.php schema data.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v3010"></a><h3>1.iii. Changes since 3.0.10</h3>
|
<a name="v3010"></a><h3>1.iv. Changes since 3.0.10</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -1048,7 +1125,7 @@
|
||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10909">PHPBB3-10909</a>] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10909">PHPBB3-10909</a>] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v309"></a><h3>1.iv. Changes since 3.0.9</h3>
|
<a name="v309"></a><h3>1.v. Changes since 3.0.9</h3>
|
||||||
|
|
||||||
<h4>Bug</h4>
|
<h4>Bug</h4>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -1184,7 +1261,7 @@
|
||||||
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10480">PHPBB3-10480</a>] - Automate changelog building</li>
|
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10480">PHPBB3-10480</a>] - Automate changelog building</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v308"></a><h3>1.v. Changes since 3.0.8</h3>
|
<a name="v308"></a><h3>1.vi. Changes since 3.0.8</h3>
|
||||||
|
|
||||||
<h4> Bug
|
<h4> Bug
|
||||||
</h4>
|
</h4>
|
||||||
|
@ -1552,7 +1629,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v307-PL1"></a><h3>1.vi. Changes since 3.0.7-PL1</h3>
|
<a name="v307-PL1"></a><h3>1.vii. Changes since 3.0.7-PL1</h3>
|
||||||
<h4> Security
|
<h4> Security
|
||||||
</h4>
|
</h4>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -2010,13 +2087,13 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="v307"></a><h3>1.vii. Changes since 3.0.7</h3>
|
<a name="v307"></a><h3>1.viii. Changes since 3.0.7</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)</li>
|
<li>[Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v306"></a><h3>1.viii. Changes since 3.0.6</h3>
|
<a name="v306"></a><h3>1.ix. Changes since 3.0.6</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)</li>
|
<li>[Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)</li>
|
||||||
|
@ -2120,7 +2197,7 @@
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v305"></a><h3>1.ix. Changes since 3.0.5</h3>
|
<a name="v305"></a><h3>1.x. Changes since 3.0.5</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Allow whitespaces in avatar gallery names. (Bug #44955)</li>
|
<li>[Fix] Allow whitespaces in avatar gallery names. (Bug #44955)</li>
|
||||||
|
@ -2342,7 +2419,7 @@
|
||||||
<li>[Feature] Send anonymous statistical information to phpBB on installation and update (optional).</li>
|
<li>[Feature] Send anonymous statistical information to phpBB on installation and update (optional).</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v304"></a><h3>1.x. Changes since 3.0.4</h3>
|
<a name="v304"></a><h3>1.xi. Changes since 3.0.4</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)</li>
|
<li>[Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)</li>
|
||||||
|
@ -2431,7 +2508,7 @@
|
||||||
<li>[Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)</li>
|
<li>[Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v303"></a><h3>1.xi. Changes since 3.0.3</h3>
|
<a name="v303"></a><h3>1.xii. Changes since 3.0.3</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Allow mixed-case template directories to be inherited (Bug #36725)</li>
|
<li>[Fix] Allow mixed-case template directories to be inherited (Bug #36725)</li>
|
||||||
|
@ -2463,7 +2540,7 @@
|
||||||
<li>[Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)</li>
|
<li>[Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v302"></a><h3>1.xii. Changes since 3.0.2</h3>
|
<a name="v302"></a><h3>1.xiii. Changes since 3.0.2</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)</li>
|
<li>[Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)</li>
|
||||||
|
@ -2562,7 +2639,7 @@
|
||||||
<li>[Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)</li>
|
<li>[Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v301"></a><h3>1.xiii. Changes since 3.0.1</h3>
|
<a name="v301"></a><h3>1.xiv. Changes since 3.0.1</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Ability to set permissions on non-mysql dbms (Bug #24955)</li>
|
<li>[Fix] Ability to set permissions on non-mysql dbms (Bug #24955)</li>
|
||||||
|
@ -2610,7 +2687,7 @@
|
||||||
<li>[Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)</li>
|
<li>[Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v300"></a><h3>1.xiv Changes since 3.0.0</h3>
|
<a name="v300"></a><h3>1.xv Changes since 3.0.0</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Change] Validate birthdays (Bug #15004)</li>
|
<li>[Change] Validate birthdays (Bug #15004)</li>
|
||||||
|
@ -2681,7 +2758,7 @@
|
||||||
<li>[Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)</li>
|
<li>[Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc8"></a><h3>1.xv. Changes since 3.0.RC8</h3>
|
<a name="v30rc8"></a><h3>1.xvi. Changes since 3.0.RC8</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Cleaned usernames contain only single spaces, so "a_name" and "a__name" are treated as the same name (Bug #15634)</li>
|
<li>[Fix] Cleaned usernames contain only single spaces, so "a_name" and "a__name" are treated as the same name (Bug #15634)</li>
|
||||||
|
@ -2690,7 +2767,7 @@
|
||||||
<li>[Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)</li>
|
<li>[Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc7"></a><h3>1.xvi. Changes since 3.0.RC7</h3>
|
<a name="v30rc7"></a><h3>1.xvii. Changes since 3.0.RC7</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Fixed MSSQL related bug in the update system</li>
|
<li>[Fix] Fixed MSSQL related bug in the update system</li>
|
||||||
|
@ -2725,7 +2802,7 @@
|
||||||
<li>[Fix] No duplication of active topics (Bug #15474)</li>
|
<li>[Fix] No duplication of active topics (Bug #15474)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc6"></a><h3>1.xvii. Changes since 3.0.RC6</h3>
|
<a name="v30rc6"></a><h3>1.xviii. Changes since 3.0.RC6</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Submitting language changes using acp_language (Bug #14736)</li>
|
<li>[Fix] Submitting language changes using acp_language (Bug #14736)</li>
|
||||||
|
@ -2735,7 +2812,7 @@
|
||||||
<li>[Fix] Able to request new password (Bug #14743)</li>
|
<li>[Fix] Able to request new password (Bug #14743)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc5"></a><h3>1.xviii. Changes since 3.0.RC5</h3>
|
<a name="v30rc5"></a><h3>1.xix. Changes since 3.0.RC5</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.</li>
|
<li>[Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.</li>
|
||||||
|
@ -2798,7 +2875,7 @@
|
||||||
<li>[Sec] New password hashing mechanism for storing passwords (#i42)</li>
|
<li>[Sec] New password hashing mechanism for storing passwords (#i42)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc4"></a><h3>1.xix. Changes since 3.0.RC4</h3>
|
<a name="v30rc4"></a><h3>1.xx. Changes since 3.0.RC4</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
|
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
|
||||||
|
@ -2849,7 +2926,7 @@
|
||||||
<li>[Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)</li>
|
<li>[Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc3"></a><h3>1.xx. Changes since 3.0.RC3</h3>
|
<a name="v30rc3"></a><h3>1.xxi. Changes since 3.0.RC3</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Fixing some subsilver2 and prosilver style issues</li>
|
<li>[Fix] Fixing some subsilver2 and prosilver style issues</li>
|
||||||
|
@ -2958,7 +3035,7 @@
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc2"></a><h3>1.xxi. Changes since 3.0.RC2</h3>
|
<a name="v30rc2"></a><h3>1.xxii. Changes since 3.0.RC2</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] Re-allow searching within the memberlist</li>
|
<li>[Fix] Re-allow searching within the memberlist</li>
|
||||||
|
@ -3004,7 +3081,7 @@
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<a name="v30rc1"></a><h3>1.xxii. Changes since 3.0.RC1</h3>
|
<a name="v30rc1"></a><h3>1.xxiii. Changes since 3.0.RC1</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>[Fix] (X)HTML issues within the templates (Bug #11255, #11255)</li>
|
<li>[Fix] (X)HTML issues within the templates (Bug #11255, #11255)</li>
|
||||||
|
|
|
@ -1,41 +1,49 @@
|
||||||
acp_forums_normal_settings_append
|
acp_forums_normal_settings_append
|
||||||
===
|
===
|
||||||
* Location: adm/style/acp_forums.html
|
* Location: adm/style/acp_forums.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add settings to forums
|
* Purpose: Add settings to forums
|
||||||
|
|
||||||
acp_main_actions_append
|
acp_main_actions_append
|
||||||
===
|
===
|
||||||
* Location: adm/style/acp_main.html
|
* Location: adm/style/acp_main.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add actions to the ACP main page below the cache purge action
|
* Purpose: Add actions to the ACP main page below the cache purge action
|
||||||
|
|
||||||
acp_main_notice_after
|
acp_main_notice_after
|
||||||
===
|
===
|
||||||
* Location: adm/style/acp_main.html
|
* Location: adm/style/acp_main.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add notices or other blocks in the ACP below other configuration notices
|
* Purpose: Add notices or other blocks in the ACP below other configuration notices
|
||||||
|
|
||||||
acp_overall_footer_after
|
acp_overall_footer_after
|
||||||
===
|
===
|
||||||
* Location: adm/style/overall_footer.html
|
* Location: adm/style/overall_footer.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content below the footer in the ACP
|
* Purpose: Add content below the footer in the ACP
|
||||||
|
|
||||||
acp_overall_header_head_append
|
acp_overall_header_head_append
|
||||||
===
|
===
|
||||||
* Location: adm/style/overall_header.html
|
* Location: adm/style/overall_header.html
|
||||||
* Add assets within the `<head>` tags in the ACP
|
* Since: 3.1.0-a1
|
||||||
|
* Purpose: Add assets within the `<head>` tags in the ACP
|
||||||
|
|
||||||
acp_simple_footer_after
|
acp_simple_footer_after
|
||||||
===
|
===
|
||||||
* Location: adm/style/simple_footer.html
|
* Location: adm/style/simple_footer.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content below the simple footer in the ACP
|
* Purpose: Add content below the simple footer in the ACP
|
||||||
|
|
||||||
acp_simple_header_head_append
|
acp_simple_header_head_append
|
||||||
===
|
===
|
||||||
* Location: adm/style/overall_header.html
|
* Location: adm/style/overall_header.html
|
||||||
* Add assets within the `<head>` tags in the simple header of the ACP
|
* Since: 3.1.0-a1
|
||||||
|
* Purpose: Add assets within the `<head>` tags in the simple header of the ACP
|
||||||
|
|
||||||
acp_users_overview_options_append
|
acp_users_overview_options_append
|
||||||
===
|
===
|
||||||
* Location: adm/style/acp_users.html
|
* Location: adm/style/acp_users.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add options and settings on user overview page
|
* Purpose: Add options and settings on user overview page
|
||||||
|
|
||||||
forumlist_body_last_post_title_prepend
|
forumlist_body_last_post_title_prepend
|
||||||
|
@ -43,13 +51,23 @@ forumlist_body_last_post_title_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/forumlist_body.html
|
+ styles/prosilver/template/forumlist_body.html
|
||||||
+ styles/subsilver2/template/forumlist_body.html
|
+ styles/subsilver2/template/forumlist_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content before the post title of the latest post in a forum on the forum list.
|
* Purpose: Add content before the post title of the latest post in a forum on the forum list.
|
||||||
|
|
||||||
|
index_body_forumlist_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/index_body.html
|
||||||
|
+ styles/subsilver2/template/index_body.html
|
||||||
|
* Since: 3.1.0-a3
|
||||||
|
* Purpose: Add content above the forums list (on forum index only)
|
||||||
|
|
||||||
index_body_stat_blocks_before
|
index_body_stat_blocks_before
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/index_body.html
|
+ styles/prosilver/template/index_body.html
|
||||||
+ styles/subsilver2/template/index_body.html
|
+ styles/subsilver2/template/index_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add new statistic blocks above the Who Is Online and Board Statistics blocks
|
* Purpose: Add new statistic blocks above the Who Is Online and Board Statistics blocks
|
||||||
|
|
||||||
memberlist_body_username_append
|
memberlist_body_username_append
|
||||||
|
@ -57,6 +75,7 @@ memberlist_body_username_append
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/memberlist_body.html
|
+ styles/prosilver/template/memberlist_body.html
|
||||||
+ styles/subsilver2/template/memberlist_body.html
|
+ styles/subsilver2/template/memberlist_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add information after every username in the memberlist. Works in
|
* Purpose: Add information after every username in the memberlist. Works in
|
||||||
all display modes (leader, group and normal memberlist).
|
all display modes (leader, group and normal memberlist).
|
||||||
|
|
||||||
|
@ -65,6 +84,7 @@ memberlist_body_username_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/memberlist_body.html
|
+ styles/prosilver/template/memberlist_body.html
|
||||||
+ styles/subsilver2/template/memberlist_body.html
|
+ styles/subsilver2/template/memberlist_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add information before every username in the memberlist. Works in
|
* Purpose: Add information before every username in the memberlist. Works in
|
||||||
all display modes (leader, group and normal memberlist).
|
all display modes (leader, group and normal memberlist).
|
||||||
|
|
||||||
|
@ -73,6 +93,7 @@ memberlist_view_user_statistics_after
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/memberlist_view.html
|
+ styles/prosilver/template/memberlist_view.html
|
||||||
+ styles/subsilver2/template/memberlist_view.html
|
+ styles/subsilver2/template/memberlist_view.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add entries after the user statistics part of any user profile
|
* Purpose: Add entries after the user statistics part of any user profile
|
||||||
|
|
||||||
memberlist_view_user_statistics_before
|
memberlist_view_user_statistics_before
|
||||||
|
@ -80,6 +101,7 @@ memberlist_view_user_statistics_before
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/memberlist_view.html
|
+ styles/prosilver/template/memberlist_view.html
|
||||||
+ styles/subsilver2/template/memberlist_view.html
|
+ styles/subsilver2/template/memberlist_view.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add entries before the user statistics part of any user profile
|
* Purpose: Add entries before the user statistics part of any user profile
|
||||||
|
|
||||||
overall_footer_after
|
overall_footer_after
|
||||||
|
@ -87,18 +109,30 @@ overall_footer_after
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/overall_footer.html
|
+ styles/prosilver/template/overall_footer.html
|
||||||
+ styles/subsilver2/template/overall_footer.html
|
+ styles/subsilver2/template/overall_footer.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content at the end of the file, directly prior to the `</body>` tag
|
* Purpose: Add content at the end of the file, directly prior to the `</body>` tag
|
||||||
|
|
||||||
overall_footer_breadcrumb_append
|
overall_footer_breadcrumb_append
|
||||||
===
|
===
|
||||||
* Location: styles/prosilver/template/overall_footer.html
|
* Locations:
|
||||||
|
+ styles/prosilver/template/overall_footer.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add links to the list of breadcrumbs in the footer
|
* Purpose: Add links to the list of breadcrumbs in the footer
|
||||||
|
|
||||||
|
overall_footer_content_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/overall_footer.html
|
||||||
|
+ styles/subsilver2/template/overall_footer.html
|
||||||
|
* Since: 3.1.0-a3
|
||||||
|
* Purpose: Add content on all pages after the main content, before the footer
|
||||||
|
|
||||||
overall_footer_copyright_append
|
overall_footer_copyright_append
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/overall_footer.html
|
+ styles/prosilver/template/overall_footer.html
|
||||||
+ styles/subsilver2/template/overall_footer.html
|
+ styles/subsilver2/template/overall_footer.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content after the copyright line (no new line by default), before the ACP link
|
* Purpose: Add content after the copyright line (no new line by default), before the ACP link
|
||||||
|
|
||||||
overall_footer_copyright_prepend
|
overall_footer_copyright_prepend
|
||||||
|
@ -106,6 +140,7 @@ overall_footer_copyright_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/overall_footer.html
|
+ styles/prosilver/template/overall_footer.html
|
||||||
+ styles/subsilver2/template/overall_footer.html
|
+ styles/subsilver2/template/overall_footer.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content before the copyright line
|
* Purpose: Add content before the copyright line
|
||||||
|
|
||||||
overall_header_breadcrumb_append
|
overall_header_breadcrumb_append
|
||||||
|
@ -113,13 +148,23 @@ overall_header_breadcrumb_append
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/overall_header.html
|
+ styles/prosilver/template/overall_header.html
|
||||||
+ styles/subsilver2/template/breadcrumbs.html
|
+ styles/subsilver2/template/breadcrumbs.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add links to the list of breadcrumbs in the header
|
* Purpose: Add links to the list of breadcrumbs in the header
|
||||||
|
|
||||||
|
overall_header_content_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/overall_header.html
|
||||||
|
+ styles/subsilver2/template/overall_header.html
|
||||||
|
* Since: 3.1.0-a3
|
||||||
|
* Purpose: Add content on all pages before the main content, after the header
|
||||||
|
|
||||||
overall_header_head_append
|
overall_header_head_append
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/overall_header.html
|
+ styles/prosilver/template/overall_header.html
|
||||||
+ styles/subsilver2/template/overall_header.html
|
+ styles/subsilver2/template/overall_header.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add asset calls directly before the `</head>` tag
|
* Purpose: Add asset calls directly before the `</head>` tag
|
||||||
|
|
||||||
overall_header_navigation_append
|
overall_header_navigation_append
|
||||||
|
@ -127,6 +172,7 @@ overall_header_navigation_append
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/overall_header.html
|
+ styles/prosilver/template/overall_header.html
|
||||||
+ styles/subsilver2/template/overall_header.html
|
+ styles/subsilver2/template/overall_header.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add links after the navigation links in the header
|
* Purpose: Add links after the navigation links in the header
|
||||||
|
|
||||||
overall_header_navigation_prepend
|
overall_header_navigation_prepend
|
||||||
|
@ -134,18 +180,54 @@ overall_header_navigation_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/overall_header.html
|
+ styles/prosilver/template/overall_header.html
|
||||||
+ styles/subsilver2/template/overall_header.html
|
+ styles/subsilver2/template/overall_header.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add links before the navigation links in the header
|
* Purpose: Add links before the navigation links in the header
|
||||||
|
|
||||||
|
posting_editor_message_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/posting_editor.html
|
||||||
|
+ styles/subsilver2/template/posting_body.html
|
||||||
|
* Since: 3.1.0-a2
|
||||||
|
* Purpose: Add field (e.g. textbox) to the posting screen after the message
|
||||||
|
|
||||||
|
posting_editor_message_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/posting_editor.html
|
||||||
|
+ styles/subsilver2/template/posting_body.html
|
||||||
|
* Since: 3.1.0-a2
|
||||||
|
* Purpose: Add field (e.g. textbox) to the posting screen before the message
|
||||||
|
|
||||||
posting_editor_options_prepend
|
posting_editor_options_prepend
|
||||||
===
|
===
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/posting_editor.html
|
+ styles/prosilver/template/posting_editor.html
|
||||||
+ styles/prosilver/template/posting_body.html
|
+ styles/subsilver2/template/posting_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add posting options on the posting screen
|
* Purpose: Add posting options on the posting screen
|
||||||
|
|
||||||
|
posting_editor_subject_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/posting_editor.html
|
||||||
|
+ styles/subsilver2/template/posting_body.html
|
||||||
|
* Since: 3.1.0-a2
|
||||||
|
* Purpose: Add field (e.g. textbox) to the posting screen after the subject
|
||||||
|
|
||||||
|
posting_editor_subject_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/posting_editor.html
|
||||||
|
+ styles/subsilver2/template/posting_body.html
|
||||||
|
* Since: 3.1.0-a2
|
||||||
|
* Purpose: Add field (e.g. textbox) to the posting screen before the subject
|
||||||
|
|
||||||
simple_footer_after
|
simple_footer_after
|
||||||
===
|
===
|
||||||
* Location: styles/prosilver/template/simple_footer.html
|
* Locations:
|
||||||
|
+ styles/prosilver/template/simple_footer.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content directly prior to the `</body>` tag of the simple footer
|
* Purpose: Add content directly prior to the `</body>` tag of the simple footer
|
||||||
|
|
||||||
topiclist_row_prepend
|
topiclist_row_prepend
|
||||||
|
@ -155,6 +237,7 @@ topiclist_row_prepend
|
||||||
+ styles/prosilver/template/viewforum_body.html
|
+ styles/prosilver/template/viewforum_body.html
|
||||||
+ styles/subsilver2/template/search_results.html
|
+ styles/subsilver2/template/search_results.html
|
||||||
+ styles/subsilver2/template/viewforum_body.html
|
+ styles/subsilver2/template/viewforum_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content into topic rows (inside the elements containing topic titles)
|
* Purpose: Add content into topic rows (inside the elements containing topic titles)
|
||||||
|
|
||||||
topiclist_row_append
|
topiclist_row_append
|
||||||
|
@ -164,23 +247,30 @@ topiclist_row_append
|
||||||
+ styles/prosilver/template/viewforum_body.html
|
+ styles/prosilver/template/viewforum_body.html
|
||||||
+ styles/subsilver2/template/search_results.html
|
+ styles/subsilver2/template/search_results.html
|
||||||
+ styles/subsilver2/template/viewforum_body.html
|
+ styles/subsilver2/template/viewforum_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content into topic rows (inside the elements containing topic titles)
|
* Purpose: Add content into topic rows (inside the elements containing topic titles)
|
||||||
|
|
||||||
ucp_pm_viewmessage_custom_fields_after
|
ucp_pm_viewmessage_custom_fields_after
|
||||||
===
|
===
|
||||||
* Location: styles/prosilver/template/ucp_pm_viewmessage.html
|
* Locations:
|
||||||
|
+ styles/prosilver/template/ucp_pm_viewmessage.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add data after the custom fields on the user profile when viewing
|
* Purpose: Add data after the custom fields on the user profile when viewing
|
||||||
a private message
|
a private message
|
||||||
|
|
||||||
ucp_pm_viewmessage_custom_fields_before
|
ucp_pm_viewmessage_custom_fields_before
|
||||||
===
|
===
|
||||||
* Location: styles/prosilver/template/ucp_pm_viewmessage.html
|
* Locations:
|
||||||
|
+ styles/prosilver/template/ucp_pm_viewmessage.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add data before the custom fields on the user profile when viewing
|
* Purpose: Add data before the custom fields on the user profile when viewing
|
||||||
a private message
|
a private message
|
||||||
|
|
||||||
ucp_pm_viewmessage_print_head_append
|
ucp_pm_viewmessage_print_head_append
|
||||||
===
|
===
|
||||||
* Location: styles/prosilver/template/ucp_pm_viewmessage_print.html
|
* Locations:
|
||||||
|
+ styles/prosilver/template/ucp_pm_viewmessage_print.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add asset calls directly before the `</head>` tag of the Print PM screen
|
* Purpose: Add asset calls directly before the `</head>` tag of the Print PM screen
|
||||||
|
|
||||||
ucp_prefs_personal_prepend
|
ucp_prefs_personal_prepend
|
||||||
|
@ -188,6 +278,7 @@ ucp_prefs_personal_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_personal.html
|
+ styles/prosilver/template/ucp_prefs_personal.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_personal.html
|
+ styles/subsilver2/template/ucp_prefs_personal.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add user options to the top of the Edit Global Settings block
|
* Purpose: Add user options to the top of the Edit Global Settings block
|
||||||
|
|
||||||
ucp_prefs_personal_append
|
ucp_prefs_personal_append
|
||||||
|
@ -195,6 +286,7 @@ ucp_prefs_personal_append
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_personal.html
|
+ styles/prosilver/template/ucp_prefs_personal.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_personal.html
|
+ styles/subsilver2/template/ucp_prefs_personal.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add user options to the bottom of the Edit Global Settings block
|
* Purpose: Add user options to the bottom of the Edit Global Settings block
|
||||||
|
|
||||||
ucp_prefs_post_prepend
|
ucp_prefs_post_prepend
|
||||||
|
@ -202,6 +294,7 @@ ucp_prefs_post_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_post.html
|
+ styles/prosilver/template/ucp_prefs_post.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_post.html
|
+ styles/subsilver2/template/ucp_prefs_post.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add user options to the top of the Edit Posting Defaults block
|
* Purpose: Add user options to the top of the Edit Posting Defaults block
|
||||||
|
|
||||||
ucp_prefs_post_append
|
ucp_prefs_post_append
|
||||||
|
@ -209,6 +302,7 @@ ucp_prefs_post_append
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_post.html
|
+ styles/prosilver/template/ucp_prefs_post.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_post.html
|
+ styles/subsilver2/template/ucp_prefs_post.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add user options to the bottom of the Edit Posting Defaults block
|
* Purpose: Add user options to the bottom of the Edit Posting Defaults block
|
||||||
|
|
||||||
ucp_prefs_view_radio_buttons_prepend
|
ucp_prefs_view_radio_buttons_prepend
|
||||||
|
@ -216,6 +310,7 @@ ucp_prefs_view_radio_buttons_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_view.html
|
+ styles/prosilver/template/ucp_prefs_view.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_view.html
|
+ styles/subsilver2/template/ucp_prefs_view.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add options to the top of the radio buttons block of the Edit
|
* Purpose: Add options to the top of the radio buttons block of the Edit
|
||||||
Display Options screen
|
Display Options screen
|
||||||
|
|
||||||
|
@ -224,6 +319,7 @@ ucp_prefs_view_radio_buttons_append
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_view.html
|
+ styles/prosilver/template/ucp_prefs_view.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_view.html
|
+ styles/subsilver2/template/ucp_prefs_view.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add options to the bottom of the radio buttons block of the Edit
|
* Purpose: Add options to the bottom of the radio buttons block of the Edit
|
||||||
Display Options screen
|
Display Options screen
|
||||||
|
|
||||||
|
@ -232,6 +328,7 @@ ucp_prefs_view_select_menu_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_view.html
|
+ styles/prosilver/template/ucp_prefs_view.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_view.html
|
+ styles/subsilver2/template/ucp_prefs_view.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add options to the top of the drop-down lists block of the Edit
|
* Purpose: Add options to the top of the drop-down lists block of the Edit
|
||||||
Display Options screen
|
Display Options screen
|
||||||
|
|
||||||
|
@ -240,12 +337,15 @@ ucp_prefs_view_select_menu_append
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/ucp_prefs_view.html
|
+ styles/prosilver/template/ucp_prefs_view.html
|
||||||
+ styles/subsilver2/template/ucp_prefs_view.html
|
+ styles/subsilver2/template/ucp_prefs_view.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add options to the bottom of the drop-down lists block of the Edit
|
* Purpose: Add options to the bottom of the drop-down lists block of the Edit
|
||||||
Display Options screen
|
Display Options screen
|
||||||
|
|
||||||
viewtopic_print_head_append
|
viewtopic_print_head_append
|
||||||
===
|
===
|
||||||
* Location: styles/prosilver/template/viewtopic_print.html
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_print.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add asset calls directly before the `</head>` tag of the Print Topic screen
|
* Purpose: Add asset calls directly before the `</head>` tag of the Print Topic screen
|
||||||
|
|
||||||
viewtopic_body_footer_before
|
viewtopic_body_footer_before
|
||||||
|
@ -253,6 +353,7 @@ viewtopic_body_footer_before
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/viewtopic_body.html
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
+ styles/subsilver2/template/viewtopic_body.html
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content to the bottom of the View topic screen below the posts
|
* Purpose: Add content to the bottom of the View topic screen below the posts
|
||||||
and quick reply, directly before the jumpbox in Prosilver, breadcrumbs in
|
and quick reply, directly before the jumpbox in Prosilver, breadcrumbs in
|
||||||
Subsilver2.
|
Subsilver2.
|
||||||
|
@ -262,6 +363,7 @@ viewtopic_body_post_buttons_after
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/viewtopic_body.html
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
+ styles/subsilver2/template/viewtopic_body.html
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add post button to posts (next to edit, quote etc), at the end of
|
* Purpose: Add post button to posts (next to edit, quote etc), at the end of
|
||||||
the list.
|
the list.
|
||||||
|
|
||||||
|
@ -270,6 +372,7 @@ viewtopic_body_post_buttons_before
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/viewtopic_body.html
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
+ styles/subsilver2/template/viewtopic_body.html
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add post button to posts (next to edit, quote etc), at the start of
|
* Purpose: Add post button to posts (next to edit, quote etc), at the start of
|
||||||
the list.
|
the list.
|
||||||
|
|
||||||
|
@ -278,6 +381,7 @@ viewtopic_body_postrow_custom_fields_after
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/viewtopic_body.html
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
+ styles/subsilver2/template/viewtopic_body.html
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add data after the custom fields on the user profile when viewing
|
* Purpose: Add data after the custom fields on the user profile when viewing
|
||||||
a post
|
a post
|
||||||
|
|
||||||
|
@ -286,6 +390,7 @@ viewtopic_body_postrow_custom_fields_before
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/viewtopic_body.html
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
+ styles/subsilver2/template/viewtopic_body.html
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add data before the custom fields on the user profile when viewing
|
* Purpose: Add data before the custom fields on the user profile when viewing
|
||||||
a post
|
a post
|
||||||
|
|
||||||
|
@ -294,4 +399,19 @@ viewtopic_topic_title_prepend
|
||||||
* Locations:
|
* Locations:
|
||||||
+ styles/prosilver/template/viewtopic_body.html
|
+ styles/prosilver/template/viewtopic_body.html
|
||||||
+ styles/subsilver2/template/viewtopic_body.html
|
+ styles/subsilver2/template/viewtopic_body.html
|
||||||
|
* Since: 3.1.0-a1
|
||||||
* Purpose: Add content directly before the topic title link on the View topic screen
|
* Purpose: Add content directly before the topic title link on the View topic screen
|
||||||
|
|
||||||
|
viewtopic_topic_tools_after
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_topic_tools.html
|
||||||
|
* Since: 3.1.0-a3
|
||||||
|
* Purpose: Add a new topic tool after the rest of the existing ones
|
||||||
|
|
||||||
|
viewtopic_topic_tools_before
|
||||||
|
===
|
||||||
|
* Locations:
|
||||||
|
+ styles/prosilver/template/viewtopic_topic_tools.html
|
||||||
|
* Since: 3.1.0-a3
|
||||||
|
* Purpose: Add a new topic tool before the rest of the existing ones
|
||||||
|
|
|
@ -181,7 +181,7 @@ else
|
||||||
trigger_error('NO_ATTACHMENT_SELECTED');
|
trigger_error('NO_ATTACHMENT_SELECTED');
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT attach_id, post_msg_id, topic_id, in_message, is_orphan, physical_filename, real_filename, extension, mimetype, filesize, filetime
|
$sql = 'SELECT attach_id, post_msg_id, topic_id, in_message, poster_id, is_orphan, physical_filename, real_filename, extension, mimetype, filesize, filetime
|
||||||
FROM ' . ATTACHMENTS_TABLE . "
|
FROM ' . ATTACHMENTS_TABLE . "
|
||||||
WHERE $sql_where";
|
WHERE $sql_where";
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
|
@ -748,7 +748,6 @@ class acp_attachments
|
||||||
}
|
}
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PHPBB_ROOT_PATH' => $phpbb_root_path,
|
|
||||||
'IMG_PATH' => $img_path,
|
'IMG_PATH' => $img_path,
|
||||||
'ACTION' => $action,
|
'ACTION' => $action,
|
||||||
'GROUP_ID' => $group_id,
|
'GROUP_ID' => $group_id,
|
||||||
|
|
|
@ -108,11 +108,12 @@ class acp_bbcodes
|
||||||
'DISPLAY_ON_POSTING' => $display_on_posting)
|
'DISPLAY_ON_POSTING' => $display_on_posting)
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($user->lang['tokens'] as $token => $token_explain)
|
$bbcode_tokens = array('TEXT', 'SIMPLETEXT', 'INTTEXT', 'IDENTIFIER', 'NUMBER', 'EMAIL', 'URL', 'LOCAL_URL', 'RELATIVE_URL', 'COLOR');
|
||||||
|
foreach ($bbcode_tokens as $token)
|
||||||
{
|
{
|
||||||
$template->assign_block_vars('token', array(
|
$template->assign_block_vars('token', array(
|
||||||
'TOKEN' => '{' . $token . '}',
|
'TOKEN' => '{' . $token . '}',
|
||||||
'EXPLAIN' => ($token === 'LOCAL_URL') ? sprintf($token_explain, generate_board_url() . '/') : $token_explain,
|
'EXPLAIN' => ($token === 'LOCAL_URL') ? $user->lang(array('tokens', $token), generate_board_url() . '/') : $user->lang(array('tokens', $token)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -763,8 +763,8 @@ class acp_board
|
||||||
global $user, $config;
|
global $user, $config;
|
||||||
|
|
||||||
$act_ary = array(
|
$act_ary = array(
|
||||||
'ACC_DISABLE' => USER_ACTIVATION_DISABLE,
|
'ACC_DISABLE' => USER_ACTIVATION_DISABLE,
|
||||||
'ACC_NONE' => USER_ACTIVATION_NONE,
|
'ACC_NONE' => USER_ACTIVATION_NONE,
|
||||||
);
|
);
|
||||||
if ($config['email_enable'])
|
if ($config['email_enable'])
|
||||||
{
|
{
|
||||||
|
|
|
@ -94,29 +94,29 @@ class acp_database
|
||||||
case 'mysqli':
|
case 'mysqli':
|
||||||
case 'mysql4':
|
case 'mysql4':
|
||||||
case 'mysql':
|
case 'mysql':
|
||||||
$extractor = new mysql_extractor($download, $store, $format, $filename, $time);
|
$extractor = new mysql_extractor($format, $filename, $time, $download, $store);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'sqlite':
|
case 'sqlite':
|
||||||
$extractor = new sqlite_extractor($download, $store, $format, $filename, $time);
|
$extractor = new sqlite_extractor($format, $filename, $time, $download, $store);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'postgres':
|
case 'postgres':
|
||||||
$extractor = new postgres_extractor($download, $store, $format, $filename, $time);
|
$extractor = new postgres_extractor($format, $filename, $time, $download, $store);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'oracle':
|
case 'oracle':
|
||||||
$extractor = new oracle_extractor($download, $store, $format, $filename, $time);
|
$extractor = new oracle_extractor($format, $filename, $time, $download, $store);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'mssql':
|
case 'mssql':
|
||||||
case 'mssql_odbc':
|
case 'mssql_odbc':
|
||||||
case 'mssqlnative':
|
case 'mssqlnative':
|
||||||
$extractor = new mssql_extractor($download, $store, $format, $filename, $time);
|
$extractor = new mssql_extractor($format, $filename, $time, $download, $store);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'firebird':
|
case 'firebird':
|
||||||
$extractor = new firebird_extractor($download, $store, $format, $filename, $time);
|
$extractor = new firebird_extractor($format, $filename, $time, $download, $store);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -488,7 +488,7 @@ class base_extractor
|
||||||
var $format;
|
var $format;
|
||||||
var $run_comp = false;
|
var $run_comp = false;
|
||||||
|
|
||||||
function base_extractor($download = false, $store = false, $format, $filename, $time)
|
function base_extractor($format, $filename, $time, $download = false, $store = false)
|
||||||
{
|
{
|
||||||
global $request;
|
global $request;
|
||||||
|
|
||||||
|
@ -1607,16 +1607,17 @@ class mssql_extractor extends base_extractor
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT * FROM $table_name";
|
$sql = "SELECT COLUMN_NAME, DATA_TYPE
|
||||||
$result_fields = $db->sql_query_limit($sql, 1);
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_NAME = '" . $db->sql_escape($table_name) . "'";
|
||||||
|
$result_fields = $db->sql_query($sql);
|
||||||
|
|
||||||
$row = new result_mssqlnative($result_fields);
|
$i_num_fields = 0;
|
||||||
$i_num_fields = $row->num_fields();
|
while ($row = $db->sql_fetchrow($result_fields))
|
||||||
|
|
||||||
for ($i = 0; $i < $i_num_fields; $i++)
|
|
||||||
{
|
{
|
||||||
$ary_type[$i] = $row->field_type($i);
|
$ary_type[$i_num_fields] = $row['DATA_TYPE'];
|
||||||
$ary_name[$i] = $row->field_name($i);
|
$ary_name[$i_num_fields] = $row['COLUMN_NAME'];
|
||||||
|
$i_num_fields++;
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result_fields);
|
$db->sql_freeresult($result_fields);
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,11 @@ class acp_extensions
|
||||||
$ext_name = '';
|
$ext_name = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (in_array($action, array('enable', 'disable', 'delete_data')) && !check_link_hash($request->variable('hash', ''), $action . '.' . $ext_name))
|
||||||
|
{
|
||||||
|
trigger_error('FORM_INVALID', E_USER_WARNING);
|
||||||
|
}
|
||||||
|
|
||||||
// If they've specified an extension, let's load the metadata manager and validate it.
|
// If they've specified an extension, let's load the metadata manager and validate it.
|
||||||
if ($ext_name)
|
if ($ext_name)
|
||||||
{
|
{
|
||||||
|
@ -66,7 +71,7 @@ class acp_extensions
|
||||||
}
|
}
|
||||||
catch(\phpbb\extension\exception $e)
|
catch(\phpbb\extension\exception $e)
|
||||||
{
|
{
|
||||||
trigger_error($e);
|
trigger_error($e, E_USER_WARNING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,8 +101,9 @@ class acp_extensions
|
||||||
$this->tpl_name = 'acp_ext_enable';
|
$this->tpl_name = 'acp_ext_enable';
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PRE' => true,
|
'PRE' => true,
|
||||||
'U_ENABLE' => $this->u_action . '&action=enable&ext_name=' . urlencode($ext_name),
|
'L_CONFIRM_MESSAGE' => $this->user->lang('EXTENSION_ENABLE_CONFIRM', $md_manager->get_metadata('display-name')),
|
||||||
|
'U_ENABLE' => $this->u_action . '&action=enable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('enable.' . $ext_name),
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -116,7 +122,7 @@ class acp_extensions
|
||||||
{
|
{
|
||||||
$template->assign_var('S_NEXT_STEP', true);
|
$template->assign_var('S_NEXT_STEP', true);
|
||||||
|
|
||||||
meta_refresh(0, $this->u_action . '&action=enable&ext_name=' . urlencode($ext_name));
|
meta_refresh(0, $this->u_action . '&action=enable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('enable.' . $ext_name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,7 +134,7 @@ class acp_extensions
|
||||||
$this->tpl_name = 'acp_ext_enable';
|
$this->tpl_name = 'acp_ext_enable';
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'U_RETURN' => $this->u_action . '&action=list',
|
'U_RETURN' => $this->u_action . '&action=list',
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -141,8 +147,9 @@ class acp_extensions
|
||||||
$this->tpl_name = 'acp_ext_disable';
|
$this->tpl_name = 'acp_ext_disable';
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PRE' => true,
|
'PRE' => true,
|
||||||
'U_DISABLE' => $this->u_action . '&action=disable&ext_name=' . urlencode($ext_name),
|
'L_CONFIRM_MESSAGE' => $this->user->lang('EXTENSION_DISABLE_CONFIRM', $md_manager->get_metadata('display-name')),
|
||||||
|
'U_DISABLE' => $this->u_action . '&action=disable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('disable.' . $ext_name),
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -154,7 +161,7 @@ class acp_extensions
|
||||||
{
|
{
|
||||||
$template->assign_var('S_NEXT_STEP', true);
|
$template->assign_var('S_NEXT_STEP', true);
|
||||||
|
|
||||||
meta_refresh(0, $this->u_action . '&action=disable&ext_name=' . urlencode($ext_name));
|
meta_refresh(0, $this->u_action . '&action=disable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('disable.' . $ext_name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,16 +172,21 @@ class acp_extensions
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'purge_pre':
|
case 'delete_data_pre':
|
||||||
$this->tpl_name = 'acp_ext_purge';
|
if ($phpbb_extension_manager->enabled($ext_name))
|
||||||
|
{
|
||||||
|
redirect($this->u_action);
|
||||||
|
}
|
||||||
|
$this->tpl_name = 'acp_ext_delete_data';
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PRE' => true,
|
'PRE' => true,
|
||||||
'U_PURGE' => $this->u_action . '&action=purge&ext_name=' . urlencode($ext_name),
|
'L_CONFIRM_MESSAGE' => $this->user->lang('EXTENSION_DELETE_DATA_CONFIRM', $md_manager->get_metadata('display-name')),
|
||||||
|
'U_PURGE' => $this->u_action . '&action=delete_data&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('delete_data.' . $ext_name),
|
||||||
));
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'purge':
|
case 'delete_data':
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
while ($phpbb_extension_manager->purge_step($ext_name))
|
while ($phpbb_extension_manager->purge_step($ext_name))
|
||||||
|
@ -184,7 +196,7 @@ class acp_extensions
|
||||||
{
|
{
|
||||||
$template->assign_var('S_NEXT_STEP', true);
|
$template->assign_var('S_NEXT_STEP', true);
|
||||||
|
|
||||||
meta_refresh(0, $this->u_action . '&action=purge&ext_name=' . urlencode($ext_name));
|
meta_refresh(0, $this->u_action . '&action=delete_data&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('delete_data.' . $ext_name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,7 +205,7 @@ class acp_extensions
|
||||||
$template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($user));
|
$template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($user));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->tpl_name = 'acp_ext_purge';
|
$this->tpl_name = 'acp_ext_delete_data';
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'U_RETURN' => $this->u_action . '&action=list',
|
'U_RETURN' => $this->u_action . '&action=list',
|
||||||
|
@ -233,7 +245,6 @@ class acp_extensions
|
||||||
|
|
||||||
$this->output_actions('enabled', array(
|
$this->output_actions('enabled', array(
|
||||||
'DISABLE' => $this->u_action . '&action=disable_pre&ext_name=' . urlencode($name),
|
'DISABLE' => $this->u_action . '&action=disable_pre&ext_name=' . urlencode($name),
|
||||||
'PURGE' => $this->u_action . '&action=purge_pre&ext_name=' . urlencode($name),
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
catch(\phpbb\extension\exception $e)
|
catch(\phpbb\extension\exception $e)
|
||||||
|
@ -267,7 +278,7 @@ class acp_extensions
|
||||||
|
|
||||||
$this->output_actions('disabled', array(
|
$this->output_actions('disabled', array(
|
||||||
'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name),
|
'ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name),
|
||||||
'PURGE' => $this->u_action . '&action=purge_pre&ext_name=' . urlencode($name),
|
'DELETE_DATA' => $this->u_action . '&action=delete_data_pre&ext_name=' . urlencode($name),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
catch(\phpbb\extension\exception $e)
|
catch(\phpbb\extension\exception $e)
|
||||||
|
@ -325,8 +336,9 @@ class acp_extensions
|
||||||
foreach ($actions as $lang => $url)
|
foreach ($actions as $lang => $url)
|
||||||
{
|
{
|
||||||
$this->template->assign_block_vars($block . '.actions', array(
|
$this->template->assign_block_vars($block . '.actions', array(
|
||||||
'L_ACTION' => $this->user->lang($lang),
|
'L_ACTION' => $this->user->lang('EXTENSION_' . $lang),
|
||||||
'U_ACTION' => $url,
|
'L_ACTION_EXPLAIN' => (isset($this->user->lang['EXTENSION_' . $lang . '_EXPLAIN'])) ? $this->user->lang('EXTENSION_' . $lang . '_EXPLAIN') : '',
|
||||||
|
'U_ACTION' => $url,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1470,7 +1470,7 @@ class acp_forums
|
||||||
/**
|
/**
|
||||||
* Event when we move content from one forum to another
|
* Event when we move content from one forum to another
|
||||||
*
|
*
|
||||||
* @event core.acp_manage_forums_move_children
|
* @event core.acp_manage_forums_move_content
|
||||||
* @var int from_id If of the current parent forum
|
* @var int from_id If of the current parent forum
|
||||||
* @var int to_id If of the new parent forum
|
* @var int to_id If of the new parent forum
|
||||||
* @var bool sync Shall we sync the "to"-forum's data
|
* @var bool sync Shall we sync the "to"-forum's data
|
||||||
|
|
|
@ -324,7 +324,11 @@ class acp_groups
|
||||||
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
|
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
|
||||||
|
|
||||||
// This is normalised data, without the group_ prefix
|
// This is normalised data, without the group_ prefix
|
||||||
$avatar_data = \phpbb\avatar\manager::clean_row($group_row);
|
$avatar_data = \phpbb\avatar\manager::clean_row($group_row, 'group');
|
||||||
|
if (!isset($avatar_data['id']))
|
||||||
|
{
|
||||||
|
$avatar_data['id'] = 'g' . $group_id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -379,7 +383,7 @@ class acp_groups
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']);
|
$driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']);
|
||||||
if ($driver)
|
if ($driver)
|
||||||
{
|
{
|
||||||
$driver->delete($avatar_data);
|
$driver->delete($avatar_data);
|
||||||
|
@ -657,7 +661,6 @@ class acp_groups
|
||||||
'GROUP_HIDDEN' => $type_hidden,
|
'GROUP_HIDDEN' => $type_hidden,
|
||||||
|
|
||||||
'U_BACK' => $u_back,
|
'U_BACK' => $u_back,
|
||||||
'U_SWATCH' => append_sid("{$phpbb_admin_path}swatch.$phpEx", 'form=settings&name=group_colour'),
|
|
||||||
'U_ACTION' => "{$this->u_action}&action=$action&g=$group_id",
|
'U_ACTION' => "{$this->u_action}&action=$action&g=$group_id",
|
||||||
'L_AVATAR_EXPLAIN' => phpbb_avatar_explanation_string(),
|
'L_AVATAR_EXPLAIN' => phpbb_avatar_explanation_string(),
|
||||||
));
|
));
|
||||||
|
|
|
@ -307,7 +307,6 @@ class acp_icons
|
||||||
|
|
||||||
'IMG_SRC' => $phpbb_root_path . $img_path . '/' . $default_row['smiley_url'],
|
'IMG_SRC' => $phpbb_root_path . $img_path . '/' . $default_row['smiley_url'],
|
||||||
'IMG_PATH' => $img_path,
|
'IMG_PATH' => $img_path,
|
||||||
'PHPBB_ROOT_PATH' => $phpbb_root_path,
|
|
||||||
|
|
||||||
'CODE' => $default_row['code'],
|
'CODE' => $default_row['code'],
|
||||||
'EMOTION' => $default_row['emotion'],
|
'EMOTION' => $default_row['emotion'],
|
||||||
|
@ -480,7 +479,7 @@ class acp_icons
|
||||||
$icons_updated++;
|
$icons_updated++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$cache->destroy('_icons');
|
$cache->destroy('_icons');
|
||||||
|
|
|
@ -331,23 +331,30 @@ class acp_prune
|
||||||
$s_find_active_time .= '<option value="' . $key . '">' . $value . '</option>';
|
$s_find_active_time .= '<option value="' . $key . '">' . $value . '</option>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$s_group_list = '<option value="0"></option>';
|
|
||||||
$sql = 'SELECT group_id, group_name
|
$sql = 'SELECT group_id, group_name
|
||||||
FROM ' . GROUPS_TABLE . '
|
FROM ' . GROUPS_TABLE . '
|
||||||
WHERE group_type <> ' . GROUP_SPECIAL . '
|
WHERE group_type <> ' . GROUP_SPECIAL . '
|
||||||
ORDER BY group_name ASC';
|
ORDER BY group_name ASC';
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$s_group_list = '';
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$s_group_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
|
$s_group_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
if ($s_group_list)
|
||||||
|
{
|
||||||
|
// Only prepend the "All groups" option if there are groups,
|
||||||
|
// otherwise we don't want to display this option at all.
|
||||||
|
$s_group_list = '<option value="0">' . $user->lang['PRUNE_USERS_GROUP_NONE'] . '</option>' . $s_group_list;
|
||||||
|
}
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'U_ACTION' => $this->u_action,
|
'U_ACTION' => $this->u_action,
|
||||||
'S_ACTIVE_OPTIONS' => $s_find_active_time,
|
'S_ACTIVE_OPTIONS' => $s_find_active_time,
|
||||||
'S_GROUP_LIST' => $s_group_list,
|
'S_GROUP_LIST' => $s_group_list,
|
||||||
'S_COUNT_OPTIONS' => $s_find_count,
|
'S_COUNT_OPTIONS' => $s_find_count,
|
||||||
'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=acp_prune&field=users'),
|
'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=acp_prune&field=users'),
|
||||||
));
|
));
|
||||||
|
@ -358,12 +365,12 @@ class acp_prune
|
||||||
*/
|
*/
|
||||||
function get_prune_users(&$user_ids, &$usernames)
|
function get_prune_users(&$user_ids, &$usernames)
|
||||||
{
|
{
|
||||||
global $user, $db;
|
global $user, $db, $request;
|
||||||
|
|
||||||
$users_by_name = request_var('users', '', true);
|
$users_by_name = request_var('users', '', true);
|
||||||
$users_by_id = request_var('user_ids', array(0));
|
$users_by_id = request_var('user_ids', array(0));
|
||||||
$group_id = request_var('group_id', 0);
|
$group_id = request_var('group_id', 0);
|
||||||
$posts_on_queue = request_var('posts_on_queue', 0);
|
$posts_on_queue = (trim($request->variable('posts_on_queue', '')) === '') ? false : $request->variable('posts_on_queue', 0);
|
||||||
|
|
||||||
if ($users_by_name)
|
if ($users_by_name)
|
||||||
{
|
{
|
||||||
|
@ -450,8 +457,8 @@ class acp_prune
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Protect the admin, do not prune if no options are given...
|
// If no search criteria were provided, go no further.
|
||||||
if (!$where_sql)
|
if (!$where_sql && !$group_id && $posts_on_queue === false)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -468,34 +475,40 @@ class acp_prune
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
// Do not prune founder members
|
// Protect the admin, do not prune if no options are given...
|
||||||
$sql = 'SELECT user_id, username
|
if ($where_sql)
|
||||||
FROM ' . USERS_TABLE . '
|
|
||||||
WHERE user_id <> ' . ANONYMOUS . '
|
|
||||||
AND user_type <> ' . USER_FOUNDER . "
|
|
||||||
$where_sql";
|
|
||||||
$result = $db->sql_query($sql);
|
|
||||||
|
|
||||||
$user_ids = $usernames = array();
|
|
||||||
|
|
||||||
while ($row = $db->sql_fetchrow($result))
|
|
||||||
{
|
{
|
||||||
// Do not prune bots and the user currently pruning.
|
// Do not prune founder members
|
||||||
if ($row['user_id'] != $user->data['user_id'] && !in_array($row['user_id'], $bot_ids))
|
$sql = 'SELECT user_id, username
|
||||||
|
FROM ' . USERS_TABLE . '
|
||||||
|
WHERE user_id <> ' . ANONYMOUS . '
|
||||||
|
AND user_type <> ' . USER_FOUNDER . "
|
||||||
|
$where_sql";
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$user_ids = $usernames = array();
|
||||||
|
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$user_ids[] = $row['user_id'];
|
// Do not prune bots and the user currently pruning.
|
||||||
$usernames[$row['user_id']] = $row['username'];
|
if ($row['user_id'] != $user->data['user_id'] && !in_array($row['user_id'], $bot_ids))
|
||||||
|
{
|
||||||
|
$user_ids[] = $row['user_id'];
|
||||||
|
$usernames[$row['user_id']] = $row['username'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
if ($group_id)
|
if ($group_id)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT u.user_id, u.username
|
$sql = 'SELECT u.user_id, u.username
|
||||||
FROM ' . USER_GROUP_TABLE . ' ug, ' . USERS_TABLE . ' u
|
FROM ' . USER_GROUP_TABLE . ' ug, ' . USERS_TABLE . ' u
|
||||||
WHERE ug.group_id = ' . (int) $group_id . '
|
WHERE ug.group_id = ' . (int) $group_id . '
|
||||||
AND ug.user_pending = 0
|
AND ug.user_id <> ' . ANONYMOUS . '
|
||||||
AND ' . $db->sql_in_set('ug.user_id', $user_ids, false, true) . '
|
AND u.user_type <> ' . USER_FOUNDER . '
|
||||||
|
AND ug.user_pending = 0 ' .
|
||||||
|
((!empty($user_ids)) ? 'AND ' . $db->sql_in_set('ug.user_id', $user_ids) : '') . '
|
||||||
AND u.user_id = ug.user_id';
|
AND u.user_id = ug.user_id';
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
@ -505,28 +518,39 @@ class acp_prune
|
||||||
$user_ids = $usernames = array();
|
$user_ids = $usernames = array();
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$user_ids[] = $row['user_id'];
|
// Do not prune bots and the user currently pruning.
|
||||||
$usernames[$row['user_id']] = $row['username'];
|
if ($row['user_id'] != $user->data['user_id'] && !in_array($row['user_id'], $bot_ids))
|
||||||
|
{
|
||||||
|
$user_ids[] = $row['user_id'];
|
||||||
|
$usernames[$row['user_id']] = $row['username'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($posts_on_queue)
|
if ($posts_on_queue !== false)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT u.user_id, u.username, COUNT(p.post_id) AS queue_posts
|
$sql = 'SELECT u.user_id, u.username, COUNT(p.post_id) AS queue_posts
|
||||||
FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u
|
FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u
|
||||||
WHERE ' . $db->sql_in_set('p.poster_id', $user_ids, false, true) . '
|
WHERE u.user_id <> ' . ANONYMOUS . '
|
||||||
|
AND u.user_type <> ' . USER_FOUNDER .
|
||||||
|
((!empty($user_ids)) ? 'AND ' . $db->sql_in_set('p.poster_id', $user_ids) : '') . '
|
||||||
|
AND p.post_visibility = ' . ITEM_UNAPPROVED . '
|
||||||
AND u.user_id = p.poster_id
|
AND u.user_id = p.poster_id
|
||||||
GROUP BY p.poster_id
|
GROUP BY p.poster_id
|
||||||
HAVING queue_posts ' . $key_match[$queue_select] . ' ' . $posts_on_queue;
|
HAVING queue_posts ' . $key_match[$queue_select] . ' ' . $posts_on_queue;
|
||||||
$result = $db->sql_query($result);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
// same intersection logic as the above group ID portion
|
// same intersection logic as the above group ID portion
|
||||||
$user_ids = $usernames = array();
|
$user_ids = $usernames = array();
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$user_ids[] = $row['user_id'];
|
// Do not prune bots and the user currently pruning.
|
||||||
$usernames[$row['user_id']] = $row['username'];
|
if ($row['user_id'] != $user->data['user_id'] && !in_array($row['user_id'], $bot_ids))
|
||||||
|
{
|
||||||
|
$user_ids[] = $row['user_id'];
|
||||||
|
$usernames[$row['user_id']] = $row['username'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -888,7 +888,11 @@ class acp_styles
|
||||||
protected function list_style(&$style, $level)
|
protected function list_style(&$style, $level)
|
||||||
{
|
{
|
||||||
// Mark row as shown
|
// Mark row as shown
|
||||||
if (!empty($style['_shown'])) return;
|
if (!empty($style['_shown']))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$style['_shown'] = true;
|
$style['_shown'] = true;
|
||||||
|
|
||||||
// Generate template variables
|
// Generate template variables
|
||||||
|
|
|
@ -396,6 +396,9 @@ class acp_users
|
||||||
{
|
{
|
||||||
if ($config['require_activation'] == USER_ACTIVATION_ADMIN)
|
if ($config['require_activation'] == USER_ACTIVATION_ADMIN)
|
||||||
{
|
{
|
||||||
|
$phpbb_notifications = $phpbb_container->get('notification_manager');
|
||||||
|
$phpbb_notifications->delete_notifications('admin_activate_user', $user_row['user_id']);
|
||||||
|
|
||||||
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
|
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
|
||||||
|
|
||||||
$messenger = new messenger(false);
|
$messenger = new messenger(false);
|
||||||
|
@ -647,8 +650,8 @@ class acp_users
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
if ($topic_id_ary[$row['topic_id']][ITEM_APPROVED] == $row['topic_posts_approved']
|
if ($topic_id_ary[$row['topic_id']][ITEM_APPROVED] == $row['topic_posts_approved']
|
||||||
&& $topic_id_ary[$row['topic_id']][ITEM_UNAPPROVED] == $row['topic_posts_unapproved']
|
&& $topic_id_ary[$row['topic_id']][ITEM_UNAPPROVED] == $row['topic_posts_unapproved']
|
||||||
&& $topic_id_ary[$row['topic_id']][ITEM_DELETED] == $row['topic_posts_softdeleted'])
|
&& $topic_id_ary[$row['topic_id']][ITEM_DELETED] == $row['topic_posts_softdeleted'])
|
||||||
{
|
{
|
||||||
$move_topic_ary[] = $row['topic_id'];
|
$move_topic_ary[] = $row['topic_id'];
|
||||||
}
|
}
|
||||||
|
@ -1509,7 +1512,6 @@ class acp_users
|
||||||
'hideonline' => request_var('hideonline', !$user_row['user_allow_viewonline']),
|
'hideonline' => request_var('hideonline', !$user_row['user_allow_viewonline']),
|
||||||
'notifymethod' => request_var('notifymethod', $user_row['user_notify_type']),
|
'notifymethod' => request_var('notifymethod', $user_row['user_notify_type']),
|
||||||
'notifypm' => request_var('notifypm', $user_row['user_notify_pm']),
|
'notifypm' => request_var('notifypm', $user_row['user_notify_pm']),
|
||||||
'popuppm' => request_var('popuppm', $this->optionget($user_row, 'popuppm')),
|
|
||||||
'allowpm' => request_var('allowpm', $user_row['user_allow_pm']),
|
'allowpm' => request_var('allowpm', $user_row['user_allow_pm']),
|
||||||
|
|
||||||
'topic_sk' => request_var('topic_sk', ($user_row['user_topic_sortby_type']) ? $user_row['user_topic_sortby_type'] : 't'),
|
'topic_sk' => request_var('topic_sk', ($user_row['user_topic_sortby_type']) ? $user_row['user_topic_sortby_type'] : 't'),
|
||||||
|
@ -1553,7 +1555,6 @@ class acp_users
|
||||||
|
|
||||||
if (!sizeof($error))
|
if (!sizeof($error))
|
||||||
{
|
{
|
||||||
$this->optionset($user_row, 'popuppm', $data['popuppm']);
|
|
||||||
$this->optionset($user_row, 'viewimg', $data['view_images']);
|
$this->optionset($user_row, 'viewimg', $data['view_images']);
|
||||||
$this->optionset($user_row, 'viewflash', $data['view_flash']);
|
$this->optionset($user_row, 'viewflash', $data['view_flash']);
|
||||||
$this->optionset($user_row, 'viewsmilies', $data['view_smilies']);
|
$this->optionset($user_row, 'viewsmilies', $data['view_smilies']);
|
||||||
|
@ -1696,7 +1697,6 @@ class acp_users
|
||||||
'NOTIFY_IM' => ($data['notifymethod'] == NOTIFY_IM) ? true : false,
|
'NOTIFY_IM' => ($data['notifymethod'] == NOTIFY_IM) ? true : false,
|
||||||
'NOTIFY_BOTH' => ($data['notifymethod'] == NOTIFY_BOTH) ? true : false,
|
'NOTIFY_BOTH' => ($data['notifymethod'] == NOTIFY_BOTH) ? true : false,
|
||||||
'NOTIFY_PM' => $data['notifypm'],
|
'NOTIFY_PM' => $data['notifypm'],
|
||||||
'POPUP_PM' => $data['popuppm'],
|
|
||||||
'BBCODE' => $data['bbcode'],
|
'BBCODE' => $data['bbcode'],
|
||||||
'SMILIES' => $data['smilies'],
|
'SMILIES' => $data['smilies'],
|
||||||
'ATTACH_SIG' => $data['sig'],
|
'ATTACH_SIG' => $data['sig'],
|
||||||
|
@ -1742,7 +1742,7 @@ class acp_users
|
||||||
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
|
$avatar_drivers = $phpbb_avatar_manager->get_enabled_drivers();
|
||||||
|
|
||||||
// This is normalised data, without the user_ prefix
|
// This is normalised data, without the user_ prefix
|
||||||
$avatar_data = \phpbb\avatar\manager::clean_row($user_row);
|
$avatar_data = \phpbb\avatar\manager::clean_row($user_row, 'user');
|
||||||
|
|
||||||
if ($submit)
|
if ($submit)
|
||||||
{
|
{
|
||||||
|
@ -1775,7 +1775,7 @@ class acp_users
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']);
|
$driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']);
|
||||||
if ($driver)
|
if ($driver)
|
||||||
{
|
{
|
||||||
$driver->delete($avatar_data);
|
$driver->delete($avatar_data);
|
||||||
|
|
|
@ -506,7 +506,7 @@ class auth_admin extends \phpbb\auth\auth
|
||||||
'FORUM_ID' => $forum_id)
|
'FORUM_ID' => $forum_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assign_cat_array($ug_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, $show_trace, ($mode == 'view'));
|
$this->assign_cat_array($ug_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, ($mode == 'view'), $show_trace);
|
||||||
|
|
||||||
unset($content_array[$ug_id]);
|
unset($content_array[$ug_id]);
|
||||||
}
|
}
|
||||||
|
@ -593,7 +593,7 @@ class auth_admin extends \phpbb\auth\auth
|
||||||
'FORUM_ID' => $forum_id)
|
'FORUM_ID' => $forum_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assign_cat_array($forum_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, $show_trace, ($mode == 'view'));
|
$this->assign_cat_array($forum_array, $tpl_pmask . '.' . $tpl_fmask . '.' . $tpl_category, $tpl_mask, $ug_id, $forum_id, ($mode == 'view'), $show_trace);
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($hold_ary[$ug_id], $ug_names_ary[$ug_id]);
|
unset($hold_ary[$ug_id], $ug_names_ary[$ug_id]);
|
||||||
|
@ -1099,7 +1099,7 @@ class auth_admin extends \phpbb\auth\auth
|
||||||
* Assign category to template
|
* Assign category to template
|
||||||
* used by display_mask()
|
* used by display_mask()
|
||||||
*/
|
*/
|
||||||
function assign_cat_array(&$category_array, $tpl_cat, $tpl_mask, $ug_id, $forum_id, $show_trace = false, $s_view)
|
function assign_cat_array(&$category_array, $tpl_cat, $tpl_mask, $ug_id, $forum_id, $s_view, $show_trace = false)
|
||||||
{
|
{
|
||||||
global $template, $user, $phpbb_admin_path, $phpEx, $phpbb_container;
|
global $template, $user, $phpbb_admin_path, $phpEx, $phpbb_container;
|
||||||
|
|
||||||
|
|
|
@ -362,7 +362,7 @@ class bbcode
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace {L_*} lang strings
|
// Replace {L_*} lang strings
|
||||||
$bbcode_tpl = preg_replace('/{L_([A-Z_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $bbcode_tpl);
|
$bbcode_tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $bbcode_tpl);
|
||||||
|
|
||||||
if (!empty($rowset[$bbcode_id]['second_pass_replace']))
|
if (!empty($rowset[$bbcode_id]['second_pass_replace']))
|
||||||
{
|
{
|
||||||
|
@ -466,7 +466,7 @@ class bbcode
|
||||||
'email' => array('{EMAIL}' => '$1', '{DESCRIPTION}' => '$2')
|
'email' => array('{EMAIL}' => '$1', '{DESCRIPTION}' => '$2')
|
||||||
);
|
);
|
||||||
|
|
||||||
$tpl = preg_replace('/{L_([A-Z_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);
|
$tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);
|
||||||
|
|
||||||
if (!empty($replacements[$tpl_name]))
|
if (!empty($replacements[$tpl_name]))
|
||||||
{
|
{
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue