1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-10 16:20:46 +02:00

Compare commits

..

319 Commits

Author SHA1 Message Date
Andreas Fischer
11242dd07d [prep-release-3.0.14] Add security relevant changes to CHANGELOG.html. 2015-05-03 16:22:28 +02:00
Andreas Fischer
5382552fc8 [prep-release-3.0.14] Bump version numbers for 3.0.14 release. 2015-05-03 14:40:50 +02:00
Andreas Fischer
1a3350619f Merge remote-tracking branch 'phpbb-security/ticket/security-180' into prep-release-3.0.14
* phpbb-security/ticket/security-180:
  [ticket/security-180] Add tests for redirecting to main URL
  [ticket/security-180] Always fail when redirecting to an insecure URL
  [ticket/security-180] Make sure that redirect goes to full URL plus slash
  [ticket/security-180] Check if redirect URL contains board URL
2015-04-28 21:54:50 +02:00
Andreas Fischer
d833f29069 [3.0.x] Add changelog for 3.0.14 release. 2015-04-28 18:57:03 +02:00
Andreas Fischer
ce74a0bd6c [3.0.x] Bump version numbers for 3.0.14-RC1 release. 2015-04-27 23:22:44 +02:00
Andreas Fischer
cd6c0427fb [3.0.x] Bumping version numbers to final for 3.0.14 releases. 2015-04-27 23:13:56 +02:00
Andreas Fischer
4d63032024 Merge pull request #3549 from bantu/ticket/13765
[ticket/13765] Verify SERVER_PROTOCOL has the expected format before using it.

* bantu/ticket/13765:
  [ticket/13765] Verify SERVER_PROTOCOL has the expected format before using it.
2015-04-25 18:10:45 +02:00
Joas Schilling
463c62df18 [ticket/13765] Verify SERVER_PROTOCOL has the expected format before using it.
PHPBB3-13765
2015-04-25 17:22:10 +02:00
Marc Alexander
18fc621d73 [ticket/security-180] Add tests for redirecting to main URL
SECURITY-180
2015-04-23 15:27:30 +02:00
Joas Schilling
ee658bfe7b [ticket/security-180] Always fail when redirecting to an insecure URL
SECURITY-180
2015-04-11 17:08:28 +02:00
Marc Alexander
bca1b96b2e [ticket/security-180] Make sure that redirect goes to full URL plus slash
SECURITY-180
2015-04-11 16:41:20 +02:00
Marc Alexander
eed355b798 [ticket/security-180] Check if redirect URL contains board URL
SECURITY-180
2015-04-10 18:10:32 +02:00
Joas Schilling
35d2467c94 Merge pull request #3512 from bantu/ticket/13738
[ticket/13738] Use new branch names in sami-all.conf.php.
2015-04-03 18:41:41 +02:00
Andreas Fischer
d6d9ff51b2 [ticket/13738] Use new branch names in sami-all.conf.php.
PHPBB3-13738
2015-04-02 12:30:39 +02:00
Nicofuma
b9db47e3f5 Merge pull request #3359 from marc1706/ticket/13568
[ticket/13568] Validate imagick path as readable absolute path

closes #3359
2015-03-29 19:41:13 +02:00
Andreas Fischer
1efbb5b3bb Merge pull request #3493 from prototech/ticket/13555
[ticket/13555] Render poll options separately when previewing.

* prototech/ticket/13555:
  [ticket/13555] Render poll options separately when previewing.
2015-03-26 11:15:36 +01:00
Oliver Schramm
84d77d6cd5 Merge pull request #3505 from Nicofuma/ticket/13723
[ticket/13723] Add Elsensee to authors list
2015-03-25 21:44:09 +01:00
Nicofuma
44540b6112 [ticket/13723] Add Elsensee to authors list
PHPBB3-13723
2015-03-25 21:31:50 +01:00
JoshyPHP
1df97c205d [ticket/13555] Render poll options separately when previewing.
This prevents an option from being split into two when a line break is present
inside of it.

PHPBB3-13555
2015-03-19 15:32:31 -07:00
Joas Schilling
62973faf4b Merge pull request #3443 from naderman/ticket/13617
[ticket/13617] Enforce column size limit for session_forum_id
2015-02-27 22:43:32 +01:00
Nils Adermann
6f3f6282d1 [ticket/13617] Enforce column size limit for session_forum_id
PHPBB3-13617
2015-02-25 16:20:50 +01:00
Andreas Fischer
3db7ac0aad Merge pull request #3422 from VSEphpbb/ticket/13634-3.0.x
[ticket/13634] Update branch names on README

* VSEphpbb/ticket/13634-3.0.x:
  [ticket/13634] Update links to travis build icons
  [ticket/13634] Update branch names on README
2015-02-19 19:27:14 +01:00
Matt Friedman
bbf4bcc986 [ticket/13634] Update links to travis build icons
PHPBB3-13634
2015-02-18 08:42:14 -08:00
Matt Friedman
03f9c69e60 [ticket/13634] Update branch names on README
PHPBB3-13634
2015-02-18 08:37:36 -08:00
Marc Alexander
877774a296 Merge pull request #3393 from bantu/ticket/13599
[ticket/13599] Remove Travis CI PHP 5.2 environment. No longer supported.
2015-02-13 12:02:25 +01:00
Andreas Fischer
0a775e0433 [ticket/13599] Remove Travis CI PHP 5.2 environment. No longer supported.
PHPBB3-13599
2015-02-12 22:12:32 +01:00
Marc Alexander
7c5d872344 [ticket/13568] Also check if absolute_path_writable is writable
PHPBB3-13568
2015-02-06 10:15:36 +01:00
Andreas Fischer
2787e799e1 Merge pull request #3365 from marc1706/ticket/13348-olympus
[ticket/13348] Use close method to free query result handle

* marc1706/ticket/13348-olympus:
  [ticket/13348] Remove unnecessary global $cache
  [ticket/13348] Use close method to free query result handle
2015-02-03 20:36:27 +01:00
Marc Alexander
4e06ab16f0 [ticket/13348] Remove unnecessary global $cache
$cache is not used in the method get_item().

PHPBB3-13348
2015-02-03 18:24:16 +01:00
Marc Alexander
1f2cb69c8a [ticket/13348] Use close method to free query result handle
PHPBB3-13348
2015-02-03 18:23:13 +01:00
Marc Alexander
a3be531020 [ticket/13568] Use correct data provider on windows
PHPBB3-13568
2015-02-03 16:34:41 +01:00
Andreas Fischer
e86b7ce562 Merge pull request #3363 from Nicofuma/ticket/13572
[ticket/13572] Update composer to version 1.0.0-alpha9

* Nicofuma/ticket/13572:
  [ticket/13572] Update composer to version 1.0.0-alpha9
2015-02-03 10:30:02 +01:00
Nicofuma
f4f983c0f6 [ticket/13572] Update composer to version 1.0.0-alpha9
PHPBB3-13572
2015-02-03 10:25:39 +01:00
Marc Alexander
ffe0e46e82 [ticket/13568] Add imagick tests for windows
PHPBB3-13568
2015-02-02 20:39:58 +01:00
Marc Alexander
d50cec998c [ticket/13568] Correctly check rpath and rwpath validation options
PHPBB3-13568
2015-02-02 18:44:48 +01:00
Marc Alexander
b53fd867be [ticket/13568] Add more test cases for imagick path
PHPBB3-13568
2015-02-02 18:33:53 +01:00
Marc Alexander
a93df0e511 [ticket/13568] Use more descriptive validation names and merge with path block
PHPBB3-13568
2015-02-02 18:30:05 +01:00
Marc Alexander
99574cf5e5 [ticket/13568] Add functional test for imagick path setting
PHPBB3-13568
2015-02-02 16:11:00 +01:00
Marc Alexander
19421fcdef [ticket/13568] Validate imagick path as readable absolute path
PHPBB3-13568
2015-02-02 15:59:52 +01:00
Andreas Fischer
7273591560 Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [prep-release-3.0.13] Correct changelog link to 3.0.13 changes.
  [prep-release-3.0.13] Also update version in references to files.
  [prep-release-3.0.13] Add changelog for 3.0.13-PL1 release.
  [prep-release-3.0.13] Get rid of roman numbers in CHANGELOG.html.
  [prep-release-3.0.13] Bump version numbers for 3.0.13-PL1 release.

Conflicts:
	build/build.xml
	phpBB/includes/constants.php
	phpBB/install/database_update.php
	phpBB/install/schemas/schema_data.sql
2015-01-30 13:40:44 +01:00
Andreas Fischer
5f237a0426 [prep-release-3.0.13] Correct changelog link to 3.0.13 changes. 2015-01-30 01:32:34 +01:00
Andreas Fischer
1e94b0ae71 [prep-release-3.0.13] Also update version in references to files. 2015-01-29 23:32:05 +01:00
Andreas Fischer
5fea945b5b [prep-release-3.0.13] Add changelog for 3.0.13-PL1 release. 2015-01-29 23:27:12 +01:00
Andreas Fischer
208923563e [prep-release-3.0.13] Get rid of roman numbers in CHANGELOG.html. 2015-01-29 23:16:34 +01:00
Andreas Fischer
40e676ad03 [prep-release-3.0.13] Bump version numbers for 3.0.13-PL1 release. 2015-01-29 18:17:29 +01:00
Dhruv
cc210b1842 Merge remote-tracking branch 'upstream/prep-release-3.0.13' into develop-olympus 2015-01-29 11:51:33 +05:30
Dhruv Goel
36f8fb2b37 Merge pull request #3347 from bantu/ticket/13554
[ticket/13554] Show feature release upgrades in blue rather than red.
2015-01-29 11:47:37 +05:30
Andreas Fischer
6f5524de26 Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME.
2015-01-29 00:08:23 +01:00
Andreas Fischer
872caf805c Merge pull request #3348 from bantu/ticket/13549
[ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME...

* bantu/ticket/13549:
  [ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME.
2015-01-29 00:06:00 +01:00
Andreas Fischer
f48cc8bbe9 Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [ticket/12933] Handle case when * is last character of word
2015-01-29 00:03:16 +01:00
Andreas Fischer
8da3a6f117 Merge pull request #3349 from bantu/ticket/12933
[ticket/12933] Handle case when * is last character of word

* bantu/ticket/12933:
  [ticket/12933] Handle case when * is last character of word
2015-01-29 00:03:05 +01:00
Marc Alexander
7495055907 [ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME.
The ORIG_PATH_INFO on IIS also contains the script name. Only use that
for killing the script after removing the script name from ORIG_PATH_INFO.

PHPBB3-13549
2015-01-28 22:07:16 +01:00
Dhruv
5eb0d422c8 [ticket/12933] Handle case when * is last character of word
PHPBB3-12933
2015-01-28 21:59:58 +01:00
Andreas Fischer
dff1ea6b85 [ticket/13554] Show feature release upgrades in blue rather than red.
PHPBB3-13554
2015-01-28 21:59:03 +01:00
Andreas Fischer
9d72463824 Merge pull request #3343 from marc1706/ticket/13414
[ticket/13414] Set Content-Length header only if status is not 304

* marc1706/ticket/13414:
  [ticket/13414] Set Content-Length header only if status is not 304
2015-01-28 19:48:42 +01:00
Marc Alexander
a9fa20bb91 [ticket/13414] Set Content-Length header only if status is not 304
PHPBB3-13414
2015-01-28 15:50:48 +01:00
Nils Adermann
ebd5aace3f Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [prep-release-3.0.13] Bump version numbers for 3.0.13 release
  [prep-release-3.0.13] Highlight security relevant changes

Conflicts:
	build/build.xml
	phpBB/includes/constants.php
	phpBB/install/database_update.php
	phpBB/install/schemas/schema_data.sql
2015-01-26 18:57:06 +01:00
Nils Adermann
5ce89ae82f [prep-release-3.0.13] Bump version numbers for 3.0.13 release 2015-01-26 18:08:31 +01:00
Nils Adermann
4b42589cfa [prep-release-3.0.13] Highlight security relevant changes 2015-01-26 17:53:43 +01:00
Andreas Fischer
4c11ea97d5 Merge pull request #3339 from nickvergessen/ticket/12089
[ticket/12089] Add assert message on HTTP status code check

* nickvergessen/ticket/12089:
  [ticket/12089] Add assert message on HTTP status code check
2015-01-26 02:47:36 +01:00
Joas Schilling
ed2d080551 [ticket/12089] Add assert message on HTTP status code check
PHPBB3-12089
2015-01-25 23:06:56 +01:00
Andreas Fischer
14585fcb4f [develop-olympus] Increment version number to 3.0.14-dev. 2015-01-21 15:15:30 +01:00
Andreas Fischer
2c9e178a42 [develop-olympus] Add changelog for 3.0.13 release. 2015-01-21 01:45:23 +01:00
Andreas Fischer
9f7f366573 [develop-olympus] Bump version numbers for 3.0.13-RC1 release. 2015-01-21 01:32:18 +01:00
Andreas Fischer
c09023d1db [develop-olympus] Bumping version numbers to final for 3.0.13 releases. 2015-01-21 01:25:50 +01:00
Nils Adermann
eaeb88133f Merge pull request #3316 from bantu/ticket/13531
[ticket/13531] Explicitly disallow trailing paths (e.g. PATH_INFO).
2015-01-21 01:05:13 +01:00
Andreas Fischer
e34b92882a [ticket/13531] Send 404 Not Found.
PHPBB3-13531
2015-01-21 01:02:16 +01:00
Marc Alexander
4b9434bf1b [ticket/13531] Explicitly disallow trailing paths (e.g. PATH_INFO).
PHPBB3-13531
2015-01-21 01:02:08 +01:00
Andreas Fischer
d17904884e Merge pull request #3312 from bantu/ticket/13527
[ticket/13527] Escape information received from version server

* bantu/ticket/13527:
  [ticket/13527] Apply htmlspecialchars() to data from version server.
  [ticket/13527] Remove two unused variables.
2015-01-20 23:14:38 +01:00
Andreas Fischer
a8027c542f Merge pull request #3311 from bantu/ticket/13526
[ticket/13526] Correctly validate the ucp_pm_options form key.

* bantu/ticket/13526:
  [ticket/13526] Correctly validate the ucp_pm_options form key.
2015-01-20 23:12:00 +01:00
Andreas Fischer
3134b6b70e Merge pull request #3306 from marc1706/ticket/13519
[ticket/13519] Correctly validate imagick path as path and not string

* marc1706/ticket/13519:
  [ticket/13519] Correctly validate imagick path as path and not string
2015-01-20 23:10:19 +01:00
Andreas Fischer
92b5222295 [ticket/13527] Apply htmlspecialchars() to data from version server.
PHPBB3-13527
2015-01-20 22:40:39 +01:00
Andreas Fischer
251868dd7e [ticket/13527] Remove two unused variables.
PHPBB3-13527
2015-01-20 22:34:14 +01:00
Joas Schilling
23069a13e2 [ticket/13526] Correctly validate the ucp_pm_options form key.
PHPBB3-13526
2015-01-20 22:16:24 +01:00
Joas Schilling
03e3ee7f16 Merge pull request #3310 from bantu/ticket/13523
[ticket/13523] Install PHPUnit manually instead of from PEAR.
2015-01-20 20:47:36 +01:00
Andreas Fischer
0beb9128f9 [ticket/13523] Install PHPUnit manually instead of from PEAR.
The pear.phpunit.de channel has been shut down in 2014.

PHPBB3-13523
2015-01-20 20:31:08 +01:00
Nils Adermann
ebbe6a7791 Merge pull request #2990 from Senky/ticket/10985
[ticket/10985] Error bbcode.html not found when updating with custom style inheriting from prosilver
2015-01-19 22:27:14 +01:00
Marc Alexander
6564446b0f [ticket/13519] Correctly validate imagick path as path and not string
PHPBB3-13519
2015-01-19 20:47:47 +01:00
Tristan Darricau
b54dbe0df6 Merge pull request #3188 from marc1706/ticket/11613
[ticket/11613] Allow cookies for domains without dots

* marc1706/ticket/11613:
  [ticket/11613] Allow cookies to work on netbios domains
2014-11-27 10:38:45 +01:00
Jakub Senko
b67b67f2df [ticket/11613] Allow cookies to work on netbios domains
PHPBB3-11613
2014-11-26 14:58:33 +01:00
Joas Schilling
ff9b541070 Merge pull request #3180 from naderman/ticket/13376
[ticket/13376] Revert unnecessary change for cookies called GLOBALS 92f554e3
2014-11-25 16:36:18 +01:00
Nils Adermann
965042d015 [ticket/13376] Revert unnecessary change for cookies called GLOBALS 92f554e3
Also introduce a clear cookie message hardcoded just in case.

PHPBB3-13376
2014-11-25 15:57:12 +01:00
Joas Schilling
a415b8e37b Merge pull request #3164 from Crizz0/ticket/10442
[ticket/10442] Adds <dd>&nbsp;</dd> to <dl> for xhtml correctness
2014-11-22 11:31:31 +01:00
Crizzo
867bfa3f9e [ticket/10442] Adds <dd>&nbsp;</dd> to <dl> for xhtml correctness
PHPBB3-10442
2014-11-22 01:08:14 +01:00
Joas Schilling
d4fd5e3365 Merge pull request #3146 from bantu/ticket/13341
[ticket/13341] Change coverage to whitelist to prevent errors with temp ...
2014-11-17 22:47:17 +01:00
Andreas Fischer
c40d7f0896 [ticket/13341] Change coverage to whitelist to prevent errors with temp files.
b4f95deefc suggests that this can lead to issues
with classes having the same name. However, this does not seem to be a problem
with the current version of PHPUnit we are using.

Despite https://phpunit.de/manual/4.1/en/code-coverage-analysis.html saying
that addUncoveredFilesFromWhitelist="true" is optional, this seems to be on by
default in PHPUnit 4.1.0. As a result, all files are considered for code
coverage; which is what we want.

processUncoveredFilesFromWhitelist is however false (by default) and as such
even files that are considered for code coverage are not processed through PHP
when not used in actual tests. Since it is already impossible to test multiple
classes with the same name in the same test run (without process isolation),
because that would already lead to "cannot redeclare class" errors, it is also
impossible for "cannot redeclare class" errors to happen in test coverage.

PHPBB3-13341
2014-11-14 13:44:42 +01:00
Joas Schilling
b99fbd0be0 Merge pull request #3142 from bantu/ticket/13331
[ticket/13331] Use docs target for this branch, add docs-all for all branches
2014-11-12 22:55:30 +01:00
Andreas Fischer
b55d744e77 [ticket/13331] Use docs target for this branch, add docs-all for dev branches.
PHPBB3-13331
2014-11-12 21:40:26 +01:00
Tristan Darricau
6949f64d28 Merge pull request #3133 from bantu/ticket/13324
[ticket/13324] Update sami/sami and fabpot/goutte for new zipball location

* bantu/ticket/13324:
  [ticket/13324] Update sami/sami and fabpot/goutte for new zipball location.
2014-11-11 15:27:53 +01:00
Andreas Fischer
9bd24e2efb [ticket/13324] Update sami/sami and fabpot/goutte for new zipball location.
PHPBB3-13324
2014-11-11 12:23:02 +01:00
Joas Schilling
d2cd24e875 Merge pull request #3090 from Nicofuma/ticket/13234
Ticket/13234
2014-10-28 12:56:15 +01:00
Tristan Darricau
fcc320e385 [ticket/13234] Fix conditions and CS
PHPBB3-13234
2014-10-28 12:19:53 +01:00
Nils Adermann
64d97d0787 [ticket/13234] Never allow autologin/remember me to modify the userid
This prevents admin relogin with forced user id from overwriting
remember me cookies

PHPBB3-13234
2014-10-27 19:55:56 -07:00
Marc Alexander
d51c1707e3 Merge pull request #3051 from nickvergessen/ticket/12120
[ticket/12120] Remove EXreaction from active authors
2014-10-21 19:22:11 -05:00
Joas Schilling
9cf81ac7f5 [ticket/12120] Remove EXreaction from active authors
PHPBB3-12120
2014-10-21 18:17:59 +02:00
Andreas Fischer
b71cf56bda Merge pull request #3047 from Elsensee/ticket/13168
[ticket/13168] Fix mbstring warnings in ACP for PHP 5.6 compatibility

* Elsensee/ticket/13168:
  [ticket/13168] Fix mbstring warnings in ACP for PHP 5.6 compatibility
2014-10-20 23:20:42 +02:00
Nils Adermann
d4faeb064b Merge pull request #3039 from nickvergessen/ticket/13138
[ticket/13138] Only use cookie data when we do not force a user_id
2014-10-20 14:49:29 -04:00
Oliver Schramm
53f166274a [ticket/13168] Fix mbstring warnings in ACP for PHP 5.6 compatibility
PHPBB3-13168
2014-10-20 16:47:52 +02:00
Joas Schilling
e7e016637b [ticket/13138] Do not use cookie data and autologin while forcing a user_id
PHPBB3-13138
2014-10-16 12:32:48 +02:00
Joas Schilling
a12a7d0b90 Merge pull request #2460 from Nicofuma/ticket/11224
[ticket/11224] SQL cache destroy does not destroy queries to tables joined
2014-10-06 23:20:50 +02:00
Andreas Fischer
ce0c33f62a Merge pull request #2994 from Skouat/ticket/13086-olympus
[ticket/13086] Update ACP_MASS_EMAIL_EXPLAIN language key

* Skouat/ticket/13086-olympus:
  [ticket/13086] String replaces 50 with 20
2014-09-24 21:21:53 +02:00
Mario Skouat
077db77259 [ticket/13086] String replaces 50 with 20
PHPBB3-13086
2014-09-24 19:03:33 +02:00
Tristan Darricau
74a96bf7c2 [ticket/11224] Adds a test case
PHPBB3-11224
2014-09-24 16:16:47 +02:00
Jakub Senko
ca7f4fb531 [ticket/10985] Add fix to properly inherit style during update process
PHPBB3-10985
2014-09-23 23:03:07 +02:00
Andreas Fischer
2f773fca18 Merge pull request #2989 from Senky/ticket/13096
[ticket/13096] ldap_escape() added to PHP 5.6.0

* Senky/ticket/13096:
  [ticket/13096] Add phpbb_ prefix to ldap_escape()
2014-09-23 22:54:27 +02:00
Jakub Senko
ba464ec93a [ticket/13096] Add phpbb_ prefix to ldap_escape()
PHPBB3-13096
2014-09-23 22:43:52 +02:00
Marc Alexander
8bd1853b56 Merge pull request #2981 from nickvergessen/ticket/10729
Ticket/10729 Update editor information when user being deleted
2014-09-23 11:08:56 +02:00
Joas Schilling
bea5f94de6 [ticket/10729] Use mocked null cache for phpunit 3.6 on travis with php 5.2
PHPBB3-10729
2014-09-23 09:03:44 +02:00
Joas Schilling
e28b93e0cc [ticket/10729] Ensure that no bans exist before testing create_session
PHPBB3-10729
2014-09-22 23:56:31 +02:00
Joas Schilling
7fca351e05 [ticket/10729] Add assert messages and finish up tests
PHPBB3-10729
2014-09-22 02:01:54 +02:00
Joas Schilling
d7c12ccd60 [ticket/10729] Add tests for some special tables with unique conditions
PHPBB3-10729
2014-09-22 01:42:36 +02:00
Joas Schilling
74854ac65d [ticket/10729] Add tests for user posts, reports and attachments
PHPBB3-10729
2014-09-22 00:55:34 +02:00
Joas Schilling
d48e4b680e [ticket/10729] Fix doc block for user_delete
PHPBB3-10729
2014-09-22 00:55:08 +02:00
Andreas Fischer
f01b602e9f Merge pull request #2808 from nickvergessen/ticket/12917
[ticket/12917] Check commit message and image ICC profile on 5.3.3

* nickvergessen/ticket/12917:
  [ticket/12917] Check commit message and image ICC profile on 5.3.3
2014-08-07 14:30:41 +02:00
Joas Schilling
b700e871cf [ticket/12917] Check commit message and image ICC profile on 5.3.3
PHPBB3-12917
2014-08-07 13:40:31 +02:00
Joas Schilling
122898d221 Merge pull request #2350 from Nicofuma/ticket/11480
[ticket/11480] PM : "Unknown folder" returned when inbox folder is full

* Nicofuma/ticket/11480:
  [ticket/11480] Move the test into get_folder()
  [ticket/11480] Fix the double spaces in phpbb_functional_test_case
  [ticket/11480] Fix typos
  [ticket/11480] Add functionnal test
  [ticket/11480] PM : "Unknown folder" returned when inbox folder is full
2014-08-01 22:17:17 +02:00
Tristan Darricau
8bdfda723c [ticket/11480] Move the test into get_folder()
PHPBB3-11480
2014-07-30 15:28:02 +02:00
Joas Schilling
9a3af2a052 Merge pull request #2425 from Zoddo/ticket/12492
[ticket/12492] Add support of special chars

* Zoddo/ticket/12492:
  [ticket/12492] Add support of special chars
2014-07-30 15:00:32 +02:00
Oliver Schramm
da6b378e64 [ticket/10729] Update message_edit_user when user being deleted
PHPBB3-10729
2014-07-18 00:11:51 +02:00
Oliver Schramm
53f597b6d0 [ticket/10729] Update post_edit_user when user being deleted
PHPBB3-10729
2014-07-17 16:28:32 +02:00
Andreas Fischer
a58cc394bc Merge pull request #2716 from marc1706/ticket/12120
[ticket/12120] Remove imkingdavid from active authors

* marc1706/ticket/12120:
  [ticket/12120] Remove imkingdavid from active authors
2014-07-11 12:00:02 +02:00
Tristan Darricau
3a11fec5de Merge pull request #2722 from marc1706/ticket/12695
[ticket/12695] Add viewtopic language file for parse_attachments in mcp_...

* marc1706/ticket/12695:
  [ticket/12695] Add viewtopic language file for parse_attachments in mcp_post
2014-07-10 15:25:00 +02:00
Marc Alexander
83f4bd9ee7 [ticket/12695] Add viewtopic language file for parse_attachments in mcp_post
PHPBB3-12695
2014-07-10 14:39:53 +02:00
Marc Alexander
e68094679e [ticket/12120] Remove imkingdavid from active authors
PHPBB3-12120
2014-07-08 21:20:51 +02:00
Tristan Darricau
a6d66b2ab0 Merge pull request #2685 from nickvergessen/ticket/12120
[ticket/12120] Add nicofuma to the developers

* nickvergessen/ticket/12120:
  [ticket/12120] Add nicofuma to the developers
2014-07-02 22:43:12 +02:00
Joas Schilling
eff07032c0 [ticket/12120] Add nicofuma to the developers
PHPBB3-12120
2014-07-02 22:26:32 +02:00
Tristan Darricau
0ce27eacb1 [ticket/11480] Fix the double spaces in phpbb_functional_test_case
PHPBB3-11480
2014-06-30 00:33:33 +02:00
Andreas Fischer
66efb1889d Merge pull request #2662 from dhruvgoel92/ticket/12196
[ticket/12196] Revert Fix typo "referer" in acp/attachments

* dhruvgoel92/ticket/12196:
  [ticket/12196] Revert Fix typo "referer" in acp/attachments
2014-06-26 23:33:46 +02:00
Dhruv
a730c0291f [ticket/12196] Revert Fix typo "referer" in acp/attachments
This reverts commit 9bc1f7924d.
https://tracker.phpbb.com/browse/PHPBB3-12196

PHPBB3-12196
2014-06-27 00:07:15 +05:30
Dhruv
fbbf210747 Merge remote-tracking branch 'nickvergessen/ticket/12196' into develop-olympus
# By Joas Schilling
# Via Joas Schilling
* nickvergessen/ticket/12196:
  [ticket/12196] Fix typo "referer" in acp/attachments
2014-06-26 23:23:33 +05:30
Joas Schilling
9bc1f7924d [ticket/12196] Fix typo "referer" in acp/attachments
PHPBB3-12196
2014-06-25 23:17:02 +02:00
Andreas Fischer
2596dbc850 Merge pull request #2633 from marc1706/ticket/12755
[ticket/12755] Add timeout to remote upload to prevent infinite loop

* marc1706/ticket/12755:
  [ticket/12755] Apply de morgan to conditional
  [ticket/12755] Terminate upload loop if upload reaches filesize
  [ticket/12755] Change upload in remote_upload() method to fit get_remote_file
  [ticket/12755] Add language string for timed out remote upload
  [ticket/12755] Add timeout to remote upload to prevent infinite loop
2014-06-24 20:59:10 +02:00
Marc Alexander
8b3cc9a6c4 [ticket/12755] Apply de morgan to conditional
PHPBB3-12755
2014-06-24 19:53:52 +02:00
Marc Alexander
309dbb4ef9 [ticket/12755] Terminate upload loop if upload reaches filesize
Terminate the upload loop if the expected filesize has been reached instead
of trying to read more bytes until the timeout has been reached.

PHPBB3-12755
2014-06-24 19:07:49 +02:00
Marc Alexander
5ee1e07e17 [ticket/12755] Change upload in remote_upload() method to fit get_remote_file
PHPBB3-12755
2014-06-24 11:53:32 +02:00
Marc Alexander
8817b59377 [ticket/12755] Add language string for timed out remote upload
PHPBB3-12755
2014-06-23 20:35:36 +02:00
Marc Alexander
0499655ba4 [ticket/12755] Add timeout to remote upload to prevent infinite loop
PHPBB3-12755
2014-06-21 11:55:54 +02:00
Andreas Fischer
51b2cc14f8 Merge pull request #2622 from Nicofuma/ticket/12741
[ticket/12741] Functional tests on Travis fail since php update last night

* Nicofuma/ticket/12741:
  [ticket/12741] Change the mode of the socket file
2014-06-19 19:32:21 +02:00
Tristan Darricau
f62ec14926 [ticket/12741] Change the mode of the socket file
Since php 5.4.29, by default, php-fpm creates the socket with the 0600 mode
instead of 0666.

PHPBB3-12741
2014-06-19 18:44:44 +02:00
Andreas Fischer
d2aee6d2ea Merge pull request #2608 from dhruvgoel92/ticket/12720
[ticket/12720] Allow commit heading to begin with lowercase letters

* dhruvgoel92/ticket/12720:
  [ticket/12720] Allow commit heading to begin with lowercase letters
2014-06-16 15:28:25 +02:00
Dhruv
6db849cba5 [ticket/12720] Allow commit heading to begin with lowercase letters
PHPBB3-12720
2014-06-16 18:55:19 +05:30
Dhruv Goel
233cdbfd66 Merge pull request #2548 from bantu/ticket/12660
[ticket/12660] Improve check for when phpinfo() is disabled.
2014-06-09 13:22:15 +05:30
Andreas Fischer
a0c442d16e [ticket/12660] Improve check for when phpinfo() is disabled.
PHPBB3-12660
2014-06-09 03:28:57 +02:00
Tristan Darricau
5762af6180 [ticket/11480] Fix typos
PHPBB3-11480
2014-05-29 22:45:34 +02:00
Tristan Darricau
9c8e843def [ticket/11480] Add functionnal test
PHPBB3-11480
2014-05-29 14:56:45 +02:00
Joas Schilling
a396b647f3 Merge pull request #2282 from bantu/ticket/12384
[ticket/12384] Run Travis CI HHVM tests against MySQLi instead of MySQL.

* bantu/ticket/12384:
  [ticket/12384] Run Travis CI HHVM tests against MySQLi instead of MySQL.
2014-05-28 23:30:03 +02:00
Joas Schilling
f09799322e Merge pull request #2498 from bantu/ticket/12582
[ticket/12582] Strip away copyrighted ICC profile from images

* bantu/ticket/12582:
  [ticket/12582] Fix coding style.
  [ticket/12582] Remove set -e due to exiftool not liking 0 byte files.
  [ticket/12582] Strip away copyrighted ICC profile
  [ticket/12582] Change strip_icc_profiles.sh to only take a single file.
  [ticket/12582] Run strip_icc_profiles.sh on Travis CI.
  [ticket/12582] Overwrite inplace instead of creating _original files.
  [ticket/12582] Add script for strippping ICC profiles from images.
2014-05-28 21:49:54 +02:00
Andreas Fischer
de71837b71 [ticket/12582] Fix coding style.
PHPBB3-12582
2014-05-27 20:56:29 +02:00
Andreas Fischer
d7c143da24 [ticket/12582] Remove set -e due to exiftool not liking 0 byte files.
PHPBB3-12582
2014-05-27 20:51:48 +02:00
David Prévot
b485318ba9 [ticket/12582] Strip away copyrighted ICC profile
This images embed a non free ICC profile that doesn’t allow
modification:

http://web.archive.org/web/20020603153925/srgb.com/usingsrgb.html

Please use the proposed version stripping away this copyrighted binary
profile, probably embedded by an image software at one time:

	exiftool -icc_profile"-<=" phpBB/adm/images/phpbb_logo.png

I’ve checked the resulting image and trust it is identical to the
original.

Some more background on the issue:
https://lists.debian.org/debian-devel/2014/05/msg00339.html

PHPBB3-12582
2014-05-27 18:35:44 +02:00
Andreas Fischer
c02fba3f1c [ticket/12582] Change strip_icc_profiles.sh to only take a single file.
PHPBB3-12582
2014-05-27 17:23:54 +02:00
Andreas Fischer
4f9aa5e384 [ticket/12582] Run strip_icc_profiles.sh on Travis CI.
PHPBB3-12582
2014-05-27 17:23:54 +02:00
Andreas Fischer
ac3bc45874 [ticket/12582] Overwrite inplace instead of creating _original files.
PHPBB3-12582
2014-05-27 17:23:54 +02:00
Andreas Fischer
af05015a69 [ticket/12582] Add script for strippping ICC profiles from images.
PHPBB3-12582
2014-05-27 13:13:29 +02:00
Skouat
a0a5c852d5 [ticket/12492] Add support of special chars
Add support of special chars during db test in the installation

PHPBB3-12492
2014-05-24 14:33:02 +02:00
Joas Schilling
ac3e0e53b2 Merge pull request #2470 from bantu/task/sami
[task/sami] Add Sami to composer dependencies and build script

* bantu/task/sami:
  [task/sami] Establish alphabetical order.
  [task/sami] Also ignore ext/ directory.
  [task/sami] Replace phpdoctor with sami.
  [task/sami] Add sami/sami as a composer development dependency.
2014-05-18 18:56:52 +02:00
Andreas Fischer
223058c8c6 [task/sami] Establish alphabetical order.
PHPBB3-12495
2014-05-17 13:05:52 +02:00
Andreas Fischer
6a97d9f855 [task/sami] Also ignore ext/ directory.
PHPBB3-12495
2014-05-17 13:04:25 +02:00
Andreas Fischer
f08f283143 [task/sami] Replace phpdoctor with sami.
PHPBB3-12495
2014-05-16 17:56:03 +02:00
Andreas Fischer
b32f91b9c6 [task/sami] Add sami/sami as a composer development dependency.
PHPBB3-12495
2014-05-16 17:55:41 +02:00
Andreas Fischer
f2500da8ec Merge pull request #2454 from nickvergessen/ticket/12540
[ticket/12540] Fix broken placeholders in language files

* nickvergessen/ticket/12540:
  [ticket/12540] Fix broken placeholders in language files
2014-05-15 13:36:06 +02:00
Tristan Darricau
d53336af06 [ticket/11224] Remove new line in acm_memory.php
PHPBB3-11224
2014-05-15 12:36:22 +02:00
Tristan Darricau
292908ca4a [ticket/11224] Use assertNotEquals(false) instead of assertNotFalse()
assertNotFalse() is unavailable with the version of phpunit used with php
5.2

PHPBB3-11224
2014-05-15 01:50:44 +02:00
Tristan Darricau
7c99e30920 [ticket/11224] Fix coding style
PHPBB3-11224
2014-05-15 01:17:02 +02:00
Tristan Darricau
b7f54e42b2 [ticket/11224] Add unit test
PHPBB3-11224
2014-05-15 00:22:27 +02:00
Tristan Darricau
9dd71fa32e [ticket/11224] Fix the blank line after ?>
PHPBB3-11224
2014-05-14 20:23:27 +02:00
Tristan Darricau
0c4b53e2f1 [ticket/11224] Fix returned data
PHPBB3-11224
2014-05-14 20:22:36 +02:00
Tristan Darricau
0c109c9d37 [ticket/11224] SQL cache destroy does not destroy queries to tables joined
https://tracker.phpbb.com/browse/PHPBB3-11224

PHPBB3-11224
2014-05-14 20:00:04 +02:00
Joas Schilling
dceea23b1f [ticket/12540] Fix broken placeholders in language files
PHPBB3-12540
2014-05-13 21:41:11 +02:00
Andreas Fischer
cc0446dc17 Merge pull request #2430 from nickvergessen/ticket/10839-olympus
[Ticket/10839] olympus - Remove phpunit configuration files

* nickvergessen/ticket/10839-olympus:
  [ticket/10839] Fix note about running slow tests and build task
  [ticket/10839] Removing phpunit.xml.all
  [ticket/10839] Always run functional tests by default
2014-05-10 17:14:00 +02:00
Joas Schilling
333120a992 [ticket/10839] Fix note about running slow tests and build task
PHPBB3-10839
2014-05-09 11:19:49 +02:00
Joas Schilling
8a9b1a8fed [ticket/10839] Removing phpunit.xml.all
To run all tests, just append
    --group slow
to your call

PHPBB3-10839
2014-05-09 11:19:48 +02:00
Joas Schilling
d6ac4a1130 [ticket/10839] Always run functional tests by default
They are skipped anyway, if $phpbb_functional_url is not configured.
If you want to run tests without functional tests, just append
    --exclude-group functional
to your call

PHPBB3-10839
2014-05-09 11:19:48 +02:00
Joas Schilling
436e388b87 Merge pull request #2396 from Nicofuma/ticket/12485
[ticket/12485] Broken tests due to absolute 'exclude'

* Nicofuma/ticket/12485:
  [ticket/12485] Broken tests due to absolute exclude
2014-05-03 10:19:52 +02:00
Nicofuma
3dee1db260 [ticket/12485] Broken tests due to absolute exclude
PHPBB3-12485
2014-05-03 04:05:25 +02:00
Nils Adermann
af7ec71967 Merge remote-tracking branch 'github-bantu/ticket/11860' into develop-olympus
* github-bantu/ticket/11860:
  [ticket/11860] htaccess: Support for Apache 2.4's "Require" syntax.
2014-05-03 00:37:11 +02:00
Nils Adermann
7b94368d52 Merge remote-tracking branch 'github-bantu/ticket/12429' into develop-olympus
* github-bantu/ticket/12429:
  [ticket/12429] Update PHPUnit to 4.1, update DBUnit to 1.3.
2014-05-02 21:42:54 +02:00
Andreas Fischer
30dc3afb69 [ticket/12429] Update PHPUnit to 4.1, update DBUnit to 1.3.
PHPBB3-12429
2014-05-02 20:19:10 +02:00
Nils Adermann
1cd2aaf92f Merge remote-tracking branch 'github-nickvergessen/ticket/12472' into develop-olympus
* github-nickvergessen/ticket/12472:
  [ticket/12472] Set fast_finish for travis
2014-05-02 18:58:15 +02:00
Marc Alexander
cb2538dc84 Merge remote-tracking branch 'nickvergessen/ticket/12120' into develop-olympus
* nickvergessen/ticket/12120:
  [ticket/12120] Add Marc Alexander to AUTHORS
2014-05-02 18:36:08 +02:00
Joas Schilling
acdaad2625 [ticket/12472] Set fast_finish for travis
Now, a build will finish as soon as a job has failed,
or when the only jobs left allow failures.
http://docs.travis-ci.com/user/build-configuration/#Fast-finishing

PHPBB3-12472
2014-05-02 17:59:22 +02:00
Joas Schilling
797cb02f06 [ticket/12120] Add Marc Alexander to AUTHORS
PHPBB3-12120
2014-05-02 17:12:44 +02:00
Nils Adermann
c7450592d8 Merge remote-tracking branch 'github-bantu/ticket/12468' into develop-olympus
* github-bantu/ticket/12468:
  [ticket/12468] Having mbstring.http_input set to '' is as good as 'pass'.
  [ticket/12467] Add config*.php and tests_config*.php to .gitignore
2014-05-02 15:36:59 +02:00
Andreas Fischer
370015c1a5 [ticket/12468] Having mbstring.http_input set to '' is as good as 'pass'.
PHPBB3-12468
2014-05-02 14:41:08 +02:00
Andreas Fischer
43c6fd768f Merge pull request #2371 from nickvergessen/ticket/12467
[ticket/12467] Add config*.php and tests_config*.php to .gitignore

* nickvergessen/ticket/12467:
  [ticket/12467] Add config*.php and tests_config*.php to .gitignore
2014-05-02 14:21:54 +02:00
Joas Schilling
535cd5670f [ticket/12467] Add config*.php and tests_config*.php to .gitignore
PHPBB3-12467
2014-05-02 13:47:30 +02:00
Nils Adermann
fa230b48ec Merge remote-tracking branch 'github-marc1706/ticket/8960-olympus' into develop-olympus
* github-marc1706/ticket/8960-olympus:
  [ticket/8960] Allow changing avatar path if it's not writable
2014-05-02 13:25:29 +02:00
Joas Schilling
06e9d8871c Merge pull request #2319 from n-aleha/ticket/12186
[ticket/12186] Move PM reports below post reports while installing

* n-aleha/ticket/12186:
  [ticket/12186] Move PM reports below post reports while installing
2014-04-29 21:28:54 +02:00
Nicofuma
4f6441b411 [ticket/11480] PM : "Unknown folder" returned when inbox folder is full
https://tracker.phpbb.com/browse/PHPBB3-11480

PHPBB3-11480
2014-04-25 01:04:00 +02:00
n-aleha
5a91399dac [ticket/12186] Move PM reports below post reports while installing
In mcp, move PM reports below post reports while installing.

PHPBB3-12186
2014-04-23 22:43:20 +03:00
Andreas Fischer
c0f3011b53 Merge pull request #2341 from nickvergessen/ticket/12413
[ticket/12413] Revert e65a6dd8f4 in olympus

* nickvergessen/ticket/12413:
  [ticket/12413] Revert e65a6dd8f4
2014-04-22 19:24:43 +02:00
Joas Schilling
f9cdec90fc [ticket/12413] Revert e65a6dd8f4
"Merge remote-tracking branch 'dhruvgoel92/ticket/11271' into develop-olympus"

This reverts commit e65a6dd8f4, reversing
changes made to 214f515e9c.

PHPBB3-12413
2014-04-22 18:55:17 +02:00
Joas Schilling
d735129d6e Merge pull request #2324 from bantu/ticket/12417
[ticket/12417] Revert "No longer allow Travis CI HHVM environment to fai...

* bantu/ticket/12417:
  [ticket/12417] Revert "No longer allow Travis CI HHVM environment to fail."
2014-04-16 22:46:41 +02:00
Andreas Fischer
04893e3f98 [ticket/12417] Revert "No longer allow Travis CI HHVM environment to fail."
hhvm-nightly 2014.04.16~precise introduced "Attempted to serialize
unserializable builtin class DOMElement" errors when running functional tests.

This reverts commit ff7cc77f9d.

PHPBB3-12417
2014-04-16 22:16:52 +02:00
Andreas Fischer
e9807e1741 Merge pull request #2310 from n-aleha/ticket/12397
[ticket/12397] Fix sql_unique_index_exists doc block

* n-aleha/ticket/12397:
  [ticket/12397] Fix sql_unique_index_exists doc block
2014-04-15 23:59:39 +02:00
n-aleha
bff63be512 [ticket/12397] Fix sql_unique_index_exists doc block
db_tools::sql_unique_index_exists() searches for unique indexes but not
primary key indexes.

PHPBB3-12397
2014-04-16 00:55:05 +03:00
Joas Schilling
675cef9c2e Merge pull request #2195 from Elsensee/ticket/10423
[ticket/10423] Remove * from search or highlight string

* Elsensee/ticket/10423:
  [ticket/10423] Replace foreach with function in viewtopic.php
  [ticket/10423] Remove unnecessary include in test
  [ticket/10423] Match multiple wildcards
  [ticket/10423] Move code into a function and add tests for it
  [ticket/10423] Remove * from search or highlight string
2014-04-15 23:23:26 +02:00
Oliver Schramm
f3cd7f73e1 [ticket/10423] Replace foreach with function in viewtopic.php
PHPBB3-10423
2014-04-15 20:43:16 +02:00
Oliver Schramm
601ecd3da1 [ticket/10423] Remove unnecessary include in test
PHPBB3-10423
2014-04-15 20:43:01 +02:00
Marc Alexander
c6fd2f01eb [ticket/8960] Allow changing avatar path if it's not writable
This change will allow users to change the avatar path even if it's not
writable. However, this will get rid of the error message that the path is
not writable. Due to this, a minor addition to the explain message in the ACP
settings has been made.

PHPBB3-8960
2014-04-14 22:44:37 +02:00
Oliver Schramm
dde7ac3b2b [ticket/10423] Match multiple wildcards
Multiple wildcards are removed from the string if there is
no word before or after them. If there is a word before or
after them, they are just replaced with a single one.

PHPBB3-10423
2014-04-13 21:36:09 +02:00
Oliver Schramm
face175471 [ticket/10423] Move code into a function and add tests for it
PHPBB3-10423
2014-04-13 21:15:14 +02:00
Andreas Fischer
b19ee00b9c [ticket/12384] Run Travis CI HHVM tests against MySQLi instead of MySQL.
HHVM MySQLi has been fixed and works for us now.

PHPBB3-12384
2014-04-12 01:58:54 +02:00
Cesar G
e64c2326bd Merge remote-tracking branch 'marc1706/ticket/10687' into develop-olympus
* marc1706/ticket/10687:
  [ticket/10687] Improve error message if unable to get image dimensions
2014-04-10 17:42:14 -07:00
Andreas Fischer
7d54fbd31a Merge pull request #2279 from Elsensee/ticket/12381
[ticket/12381] Fix broken error message when selecting invalid DB driver

* Elsensee/ticket/12381:
  [ticket/12381] Fix broken error message when selecting invalid DB driver
2014-04-10 15:44:35 +02:00
Oliver Schramm
87cfcda638 [ticket/12381] Fix broken error message when selecting invalid DB driver
PHPBB3-12381
2014-04-10 15:05:16 +02:00
Joas Schilling
f0f479c517 Merge remote-tracking branch 'bantu/ticket/12320' into develop-olympus
* bantu/ticket/12320:
  [ticket/12320] Install a nightly build of HHVM.
  [ticket/12320] No longer allow Travis CI HHVM environment to fail.
2014-04-10 13:38:01 +02:00
Andreas Fischer
4d206e2ced [ticket/12320] Install a nightly build of HHVM.
PHPBB3-12320
2014-04-10 11:37:25 +02:00
Andreas Fischer
ff7cc77f9d [ticket/12320] No longer allow Travis CI HHVM environment to fail.
PHPBB3-12320
2014-04-10 11:36:48 +02:00
Marc Alexander
5c34b9c371 [ticket/10687] Improve error message if unable to get image dimensions
The error message that is presented if getimagesize() was unable to determine
an image's dimensions now additionally states that this might be caused by an
incorrect URL.

PHPBB3-10687
2014-04-09 14:55:49 +02:00
Andreas Fischer
8920ca5d43 Merge remote-tracking branch 'VSEphpbb/ticket/12359' into develop-olympus
* VSEphpbb/ticket/12359:
  [ticket/12359] Remove inline width styling on UCP birthday fields
2014-04-06 11:04:38 +02:00
Matt Friedman
399f2f5a1f [ticket/12359] Remove inline width styling on UCP birthday fields
PHPBB3-12359
2014-04-05 21:13:38 -07:00
Joas Schilling
352b523889 Merge remote-tracking branch 'Marc/ticket/10851' into develop-olympus
* Marc/ticket/10851:
  [ticket/10851] Set disallowed content to empty array if checking is disabled
2014-04-05 10:00:17 +02:00
Joas Schilling
67e049b7ff Merge remote-tracking branch 'Elsensee/ticket/12353' into develop-olympus
* Elsensee/ticket/12353:
  [ticket/12353] Fix displayed attachments in ACP
2014-04-04 17:39:51 +02:00
Oliver Schramm
744b39e6c4 [ticket/12353] Fix displayed attachments in ACP
PHPBB3-12353
2014-04-04 17:07:54 +02:00
Joas Schilling
296e573b6b Merge remote-tracking branch 'bantu/ticket/12318' into develop-olympus
* bantu/ticket/12318:
  [ticket/12318] Revert "Pin HHVM version to 3.0.0~precise."
2014-04-03 23:07:35 +02:00
Andreas Fischer
1a044711fb [ticket/12318] Revert "Pin HHVM version to 3.0.0~precise."
This reverts commit f6614f2078 as the install
command started failing with "Version '3.0.0~precise' for 'hhvm' was not found"
in the meantime.

PHPBB3-12318
2014-04-03 22:33:46 +02:00
Marc Alexander
519adb5060 [ticket/10851] Set disallowed content to empty array if checking is disabled
The disallowed content defaults to a standard set of mimetype triggers by
default. If one doesn't want to check the attachments mimetype triggers then
we need to set the disallowed content to an empty array.

PHPBB3-10851
2014-04-03 16:06:46 +02:00
Joas Schilling
801a1f9ab9 Merge remote-tracking branch 'Elsensee/ticket/12341' into develop-olympus
* Elsensee/ticket/12341:
  [ticket/12341] Add tests for get_username_string()
2014-04-03 15:20:30 +02:00
Oliver Schramm
31e1d7be8d [ticket/12341] Add tests for get_username_string()
PHPBB3-12341
2014-04-01 23:53:04 +02:00
Joas Schilling
c2fbaf3af2 Merge remote-tracking branch 'bantu/ticket/12318-olympus' into develop-olympus
* bantu/ticket/12318-olympus:
  [ticket/12318] Use MySQL instead of MySQLi for now on HHVM.
  [ticket/12318] Pin HHVM version to 3.0.0~precise.
  [ticket/12318] Always install new config file on HHVM upgrade conflict.
  [ticket/12318] Add PPA providing dependencies for recent HHVM on Ubuntu 12.04.
  [ticket/12318] Upgrade to a recent stable version of HHVM.
  [ticket/12318] Correctly setup HHVM for functional tests.
2014-03-31 20:53:55 +02:00
Andreas Fischer
297729aa32 [ticket/12318] Use MySQL instead of MySQLi for now on HHVM.
PHPBB3-12318
2014-03-30 15:43:55 +02:00
Andreas Fischer
e1be4943d8 [ticket/12318] Pin HHVM version to 3.0.0~precise.
PHPBB3-12318
2014-03-30 15:43:55 +02:00
Andreas Fischer
d53c411d90 [ticket/12318] Always install new config file on HHVM upgrade conflict.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
a53312636a [ticket/12318] Add PPA providing dependencies for recent HHVM on Ubuntu 12.04.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
672eab3a9c [ticket/12318] Upgrade to a recent stable version of HHVM.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
04707cbf8d [ticket/12318] Correctly setup HHVM for functional tests.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
dc3cb2205b Merge remote-tracking branch 'VSEphpbb/ticket/12316' into develop-olympus
* VSEphpbb/ticket/12316:
  [ticket/12316] Add Build Status Icon for develop-ascraeus to README.md
2014-03-30 15:40:30 +02:00
Matt Friedman
a6b988c844 [ticket/12316] Add Build Status Icon for develop-ascraeus to README.md
PHPBB3-12316
2014-03-30 00:07:08 -07:00
Joas Schilling
1663a0a5fe Merge remote-tracking branch 'bantu/ticket/12319' into develop-olympus
* bantu/ticket/12319:
  [ticket/12319] Backport Travis CI HHVM environment to develop-olympus.
2014-03-29 17:49:51 +01:00
Andreas Fischer
f7f18a3c66 [ticket/12319] Backport Travis CI HHVM environment to develop-olympus.
PHPBB3-12319
2014-03-29 12:08:52 +01:00
Joas Schilling
4e8aef7cd6 Merge remote-tracking branch 'noxwizard/ticket/naderman/9725' into develop-olympus
* noxwizard/ticket/naderman/9725:
  [ticket/9725] Code sniffer fixes
  [ticket/9725] Do not use deprecated views to remove default constraints
  [ticket/9725] Move primary key creation to the correct location
  [ticket/9725] Remove trailing spaces from MSSQL schema
  [ticket/9725] Create MSSQL primary keys if none exist
  [ticket/9725] Remove explicit filegroup designations
  [ticket/9725] Fetch Azure db stats from proper table
  [ticket/9725] Add dummy indexes for Azure
  [ticket/9725] Create an Azure SQL compatible Schema
2014-03-29 10:43:09 +01:00
Patrick Webster
79492d4110 [ticket/9725] Code sniffer fixes
PHPBB3-9725
2014-03-28 17:07:50 -05:00
Patrick Webster
aaa846cb3a [ticket/9725] Do not use deprecated views to remove default constraints
PHPBB3-9725
2014-03-28 17:05:37 -05:00
Patrick Webster
31e610f0b1 [ticket/9725] Move primary key creation to the correct location
PHPBB3-9725
2014-03-28 17:05:25 -05:00
Patrick Webster
a2580687ee [ticket/9725] Remove trailing spaces from MSSQL schema
PHPBB3-9725
2014-03-28 17:05:13 -05:00
Patrick Webster
83be990701 [ticket/9725] Create MSSQL primary keys if none exist
PHPBB3-9725
2014-03-28 17:04:56 -05:00
Patrick Webster
68ae8dfa97 [ticket/9725] Remove explicit filegroup designations
PHPBB3-9725
2014-03-28 17:04:41 -05:00
Patrick Webster
80a844d38c [ticket/9725] Fetch Azure db stats from proper table
PHPBB3-9725
2014-03-28 17:04:29 -05:00
Oliver Schramm
02378e94e7 [ticket/10423] Remove * from search or highlight string
PHPBB3-10423
2014-03-28 22:28:14 +01:00
Joas Schilling
40ed3f6776 Merge remote-tracking branch 'bantu/ticket/12257' into develop-olympus
* bantu/ticket/12257:
  [ticket/12257] Use MyISAM in PHP 5.3 environment such that FULLTEXT tests run.
2014-03-27 14:31:23 +01:00
Nils Adermann
47ab801440 Merge remote-tracking branch 'marshalrusty/ticket/12310' into develop-olympus
* marshalrusty/ticket/12310:
  [ticket/12310] Don't autocomplete SMTP user/pass on install
2014-03-26 23:35:48 -04:00
Yuriy Rusko
dc9ae231e5 [ticket/12310] Don't autocomplete SMTP user/pass on install
PHPBB3-12310
2014-03-26 23:16:39 -04:00
Andreas Fischer
0b9752a594 Merge pull request #2183 from s9e/ticket/12302
Upgrade all composer.phar to 1.0.0-alpha8

* s9e/ticket/12302:
  [ticket/12302] Added `--no-dev` to composer call in build.xml
  [ticket/12302] Updated composer.phar to 1.0.0-alpha8
2014-03-25 17:27:15 +01:00
s9e
55e7459922 [ticket/12302] Added --no-dev to composer call in build.xml
PHPBB3-12302
2014-03-25 17:20:59 +01:00
s9e
53740111f6 [ticket/12302] Updated composer.phar to 1.0.0-alpha8
wget -N https://getcomposer.org/download/1.0.0-alpha8/composer.phar

PHPBB3-12302
2014-03-25 17:09:00 +01:00
Andreas Fischer
ca8fa03659 [ticket/12257] Use MyISAM in PHP 5.3 environment such that FULLTEXT tests run.
PHPBB3-12257
2014-03-24 21:42:06 +01:00
Joas Schilling
574a9f4f2a Merge remote-tracking branch 'schosser/ticket/10174' into develop-olympus
* schosser/ticket/10174:
  [ticket/10174] Rename "Ban usernames" to "Ban users" in ACP
2014-03-24 20:58:11 +01:00
Daniel Schosser
a46ad06c19 [ticket/10174] Rename "Ban usernames" to "Ban users" in ACP
Changing the language string from "Ban usernames" to "Ban users"
to clarify its use. It bans users by their name and not the username itself

PHPBB3-10174
2014-03-23 14:06:32 +01:00
Joas Schilling
5197e5afe3 Merge remote-tracking branch 'geetakshi/ticket/12035' into develop-olympus
* geetakshi/ticket/12035:
  [ticket/12035] Correcting the condition
  [ticket/12035] Adding necessary conditions
  [ticket/12035] Adding link to user posts to ACP page
2014-03-22 15:07:01 +01:00
geetakshi
663eb74cf3 [ticket/12035] Correcting the condition
PHPBB3-12035
2014-03-20 14:17:03 +05:30
geetakshi
5316c32b10 [ticket/12035] Adding necessary conditions
PHPBB3-12035
2014-03-20 03:36:53 +05:30
Joas Schilling
bdab6dede0 Merge remote-tracking branch 'Elsensee/ticket/11766' into develop-olympus
* Elsensee/ticket/11766:
  [ticket/11766] Hide edit, quote and delete buttons if topic is locked
2014-03-19 20:34:22 +01:00
Oliver Schramm
d71fd5d660 [ticket/11766] Hide edit, quote and delete buttons if topic is locked
But show quote button to guests if topic isn't locked

PHPBB3-11766
2014-03-19 20:23:56 +01:00
geetakshi
418034af0e [ticket/12035] Adding link to user posts to ACP page
Adding link of posts behind displayed number of posts of the user

PHPBB3-12035
2014-03-17 00:52:11 +05:30
Joas Schilling
c1b48bdd01 Merge remote-tracking branch 'Elsensee/ticket/12072' into develop-olympus
* Elsensee/ticket/12072:
  [ticket/12072] Fix comment about NEW MEMBERS permission
2014-03-14 14:35:56 +01:00
Oliver Schramm
647f976c30 [ticket/12072] Fix comment about NEW MEMBERS permission
PHPBB3-12072
2014-03-14 14:33:56 +01:00
Joas Schilling
bdce7abc84 Merge remote-tracking branch 'marcosbc/ticket/12247' into develop-olympus
* marcosbc/ticket/12247:
  [ticket/12247] Makes static usernames work
  [ticket/12247] Add ['username'] to mcp_queue.php's user_notification()
2014-03-14 13:58:17 +01:00
Joas Schilling
943e4e35ee Merge remote-tracking branch 'exreaction/ticket/12202' into develop-olympus
* exreaction/ticket/12202:
  [ticket/12202] Use an array in the data provider instead of exploding manually
  [ticket/12202] Can't call htmlspecialchars before checking for quotes
  [ticket/12202] Fix tests
  [ticket/12202] Test for parse_cfg_file
  [ticket/12202] Use copyright symbol in style.cfg files
  [ticket/12202] Apply htmlspecialchars to style.cfg data
2014-03-14 13:53:55 +01:00
Nathan Guse
a6b274e8ab Merge pull request #11 from nickvergessen/ticket/exreaction/12202
[ticket/12202] Use an array in the data provider instead of exploding manually
2014-03-14 07:29:22 -05:00
Joas Schilling
1f8ab1c196 [ticket/12202] Use an array in the data provider instead of exploding manually
PHPBB3-12202
2014-03-14 13:18:30 +01:00
Marcos Bjorkelund
4333401a27 [ticket/12247] Makes static usernames work
Relative to the last ticket, this allows static usernames to
work correctly (those inserted in the post-column post_username)
when sending the e-mail, instead of showing just "Anonymous".

PHPBB3-12247
2014-03-14 00:49:20 +01:00
Marcos Bjorkelund
b322cb4c11 [ticket/12247] Add ['username'] to mcp_queue.php's user_notification()
It includes the poster's username in the email notifications of
posts that get approved by moderators.

This is done by adding the username to every user_notification()
function located in /phpBB/includes/mcp/mcp_queue.php.

PHPBB3-12247
2014-03-13 23:54:06 +01:00
Joas Schilling
03eb23cbae Merge remote-tracking branch 'bantu/ticket/12176' into develop-olympus
* bantu/ticket/12176:
  [ticket/12176] Reword comment about config entries.
  [ticket/12176] Add newest_user_colour to config array to ensure it exists
  [ticket/12176] Display correct message when trying to delete founder.
  [ticket/12176] Add functional test for founder deletion message.
2014-03-13 10:16:41 +01:00
Andreas Fischer
e123b0c0a0 [ticket/12176] Reword comment about config entries.
PHPBB3-12176
2014-03-13 00:53:07 +01:00
Andreas Fischer
d3ddf29e59 Merge pull request #6 from nickvergessen/ticket/bantu/12176
[ticket/12176] Add newest_user_colour to config array to ensure it exists

* nickvergessen/ticket/bantu/12176:
  [ticket/12176] Add newest_user_colour to config array to ensure it exists
2014-03-13 00:17:59 +01:00
Joas Schilling
ca92ed918a [ticket/12176] Add newest_user_colour to config array to ensure it exists
PHPBB3-12176
2014-03-12 20:08:55 +01:00
Andreas Fischer
d81a604ef8 Merge remote-tracking branch 'Crizz0/ticket/10549' into develop-olympus
* Crizz0/ticket/10549:
  [ticket/10549] using correct variable in includes/functions_module.php too
  [ticket/10549] changed "right" to "incorrect"
2014-03-12 16:25:01 +01:00
Crizzo
d95d062a42 [ticket/10549] using correct variable in includes/functions_module.php too
PHPBB3-10549
2014-03-11 18:45:46 +01:00
Crizzo
239f72ddda [ticket/10549] changed "right" to "incorrect"
PHPBB3-10549
2014-03-11 18:24:35 +01:00
Joas Schilling
e65a6dd8f4 Merge remote-tracking branch 'dhruvgoel92/ticket/11271' into develop-olympus
* dhruvgoel92/ticket/11271:
  [ticket/11271] Make path conversion more precise
  [ticket/11271] Add docblock of feed_generate_content( )
  [ticket/11271] Fix tabs and use !empty( ) instead of count( )
  [ticket/11271] Remove unnecessary inclusion of functions_display
  [ticket/11271] Typecast forum and topic id to integer
  [ticket/11271] Use absolute path for displaying inline attachments in feeds
  [ticket/11271] Changed executable bit.
  [ticket/11271] Formatting code and removing null assignment.
  [ticket/11271] Removing unnecessary database object
  [ticket/11271] Separated attachment fetching query
  [ticket/11271] Fetched feed attachments before loop.
  [ticket/11271] Removed in-line attachment comments properly.
  [ticket/11271] Displaying in-line attached images in ATOM feed.
2014-03-11 09:53:18 +01:00
Joas Schilling
214f515e9c Merge remote-tracking branch 'dhruvgoel92/ticket/11288' into develop-olympus
* dhruvgoel92/ticket/11288:
  [ticket/11288] Handle +,- without preceeding whitespace characters
2014-03-11 09:46:31 +01:00
Joas Schilling
a35901c29b Merge remote-tracking branch 'EXreaction/ticket/12259-olympus' into develop-olympus
* EXreaction/ticket/12259-olympus:
  [ticket/12259] Reduce the size of our test matrix
2014-03-11 09:13:37 +01:00
Nathan Guse
9aa947f7fb Merge pull request #2105 from Crizz0/ticket/12106
[ticket/12106] Adds a explaination that admin/mods still able to use the...
2014-03-10 21:49:29 -05:00
Nathan Guse
ea63e1412b Merge pull request #2100 from Crizz0/ticket/10549
[ticket/10549] Adds language variables to Error messages MODULE...
2014-03-10 21:40:44 -05:00
Nathan Guse
a4810405d2 [ticket/12259] Reduce the size of our test matrix
Only test MariaDB or PostgreSQL once on PHP 5.4. This reduces our build matrix
by 10 builds (over half).

PHPBB3-12259
2014-03-10 21:34:55 -05:00
Crizzo
957e9aabc3 [ticket/12106] Combined first and second sentence
PHPBB3-12106
2014-03-10 21:19:25 +01:00
Crizzo
13327a13a0 [ticket/12106] Adds a explaination that admin/mods still able to use the board
PHPBB3-12106
2014-03-10 18:50:39 +01:00
Crizzo
ec4c9833ca [ticket/10549] Adds language variables
PHPBB3-10549
2014-03-10 18:35:23 +01:00
Nathaniel Guse
f3d8dfd1e3 [ticket/12202] Can't call htmlspecialchars before checking for quotes
PHPBB3-12202
2014-03-09 17:17:33 -05:00
Nathaniel Guse
50dd76aef3 [ticket/12202] Fix tests
PHPBB3-12202
2014-03-09 17:16:45 -05:00
Nathan Guse
49734db9cd [ticket/12202] Test for parse_cfg_file
PHPBB3-12202
2014-03-09 15:20:42 -05:00
Nathan Guse
224e3f139f [ticket/12202] Use copyright symbol in style.cfg files
PHPBB3-12202
2014-03-09 15:20:18 -05:00
Nathan Guse
f2d3879da4 [ticket/12202] Apply htmlspecialchars to style.cfg data
PHPBB3-12202
2014-03-09 15:19:52 -05:00
Nathan Guse
00f8fe24d2 Merge remote-tracking branch 'remotes/dhruvgoel92/ticket/10945' into develop-olympus
* remotes/dhruvgoel92/ticket/10945:
  [ticket/10945] Fix return values for split_keywords function
  [ticket/10945] Display search query when search fails in native search
  [ticket/10945] remove trigger_error call
2014-03-09 11:15:10 -05:00
Dhruv
c51dcbe6a0 [ticket/10945] Fix return values for split_keywords function
The function now returns false if all the words are common words and true
otherwise.

PHPBB3-10945
2014-03-08 21:23:08 +05:30
Dhruv
b6eec5c142 [ticket/10945] Display search query when search fails in native search
If search fails and common words are present, split_keywords returns false
and search.php file prints appropriate message of common words.
If search fails and there are no common words, split_keywords returns true
and keyword_search returns false so that the search query is displayed in
search box.

PHPBB3-10945
2014-03-08 21:20:37 +05:30
Dhruv Goel
f4645a6376 [ticket/10945] remove trigger_error call
removes trigger_error call incase no search results are found or start
variable exceeds the amount. So that search query is displayed in the
search box even if no results are returned.

PHPBB3-10945
2014-03-08 21:15:51 +05:30
Henry Sudhof
b993fa54a5 [ticket/9725] Add dummy indexes for Azure
SQL Azure requires a primary AKA clustered key on every table.
This adds a dummy INT column to act as key,
avoiding possible duplicate entries.
so that these columns can support bigger (speak: huge) tables

PHPBB3-9725
2014-03-01 21:03:25 -06:00
Henry Sudhof
fd4f973440 [ticket/9725] Create an Azure SQL compatible Schema
Two problems were encountered when installing on AzureSQL:
-Azure SQL does not support the ON clause of T-SQL
-Azure SQL requries a clustered index AKA primary key on all tables

The fix is makeshift; it introduces questionable primary indices, which should be replaced with auto--increment columns.

PHPBB3-9725
2014-03-01 20:59:11 -06:00
Joas Schilling
9f4908f0f2 Merge remote-tracking branch 'bantu/ticket/11509' into develop-olympus
* bantu/ticket/11509:
  [ticket/11509] Exit with the expected (non-zero) exit status on failure.
  [ticket/11509] Output which commit is being inspected.
  [ticket/11509] Three dots means sym. difference, but we only want new commits.
2014-03-01 19:13:58 +01:00
Nils Adermann
05d921fbbc Merge pull request #2059 from nickvergessen/ticket/12205
[ticket/12205] Do not display 0 for empty integers when show_novalue is off
2014-02-25 19:48:54 +01:00
Joas Schilling
ffbc7ccb64 [ticket/12205] Do not display 0 for empty integers when show_novalue is off
PHPBB3-12205
2014-02-25 18:24:45 +01:00
Andreas Fischer
42e8c2e8cf [ticket/11509] Exit with the expected (non-zero) exit status on failure.
PHPBB3-11509
2014-02-21 01:48:55 +01:00
Andreas Fischer
fe5858902e [ticket/11509] Output which commit is being inspected.
PHPBB3-11509
2014-02-21 01:47:45 +01:00
Andreas Fischer
ccd30912d9 [ticket/11509] Three dots means sym. difference, but we only want new commits.
PHPBB3-11509
2014-02-21 01:47:37 +01:00
Nathan Guse
823dca737f Merge remote-tracking branch 'remotes/prototech/ticket/12093' into develop-olympus
* remotes/prototech/ticket/12093:
  [ticket/12093] Check that document.selection is supported.
2014-02-19 09:06:57 -06:00
Nils Adermann
14017b7032 Merge remote-tracking branch 'github-exreaction/ticket/12210' into develop-olympus
* github-exreaction/ticket/12210:
  [ticket/12210] dbtools::sql_create_table incorrectly throws error related to auto-increment length on non auto-increment fields
2014-02-18 19:33:36 +01:00
Nathaniel Guse
602f4a2b54 [ticket/12210] dbtools::sql_create_table incorrectly throws error
related to auto-increment length on non auto-increment fields

PHPBB3-12210
2014-02-17 23:46:39 -06:00
Andreas Fischer
8960e6d777 [ticket/12176] Display correct message when trying to delete founder.
PHPBB3-12176
2014-02-15 02:27:54 +01:00
Andreas Fischer
587241f3a9 [ticket/12176] Add functional test for founder deletion message.
PHPBB3-12176
2014-02-15 02:27:54 +01:00
Nils Adermann
f245198652 Merge remote-tracking branch 'github-nickvergessen/ticket/12188' into develop-olympus
* github-nickvergessen/ticket/12188:
  [ticket/12188] Add php 5.6 to travis enviroments
2014-02-13 15:42:50 +01:00
Joas Schilling
9d1d90e336 [ticket/12188] Add php 5.6 to travis enviroments
PHPBB3-12188
2014-02-13 14:47:51 +01:00
Cesar G
43ccfbc6f4 [ticket/12093] Check that document.selection is supported.
PHPBB3-12093
2014-01-25 15:37:33 -08:00
Dhruv
1aa27f400c [ticket/11271] Make path conversion more precise
PHPBB3-11271
2013-12-27 03:31:28 +05:30
Dhruv
a71625ca76 [ticket/11271] Add docblock of feed_generate_content( )
PHPBB3-11271
2013-12-27 00:38:42 +05:30
Dhruv
f7c764986f [ticket/11271] Fix tabs and use !empty( ) instead of count( )
PHPBB3-11271
2013-12-27 00:22:29 +05:30
Dhruv
6611329d83 [ticket/11271] Remove unnecessary inclusion of functions_display
PHPBB3-11271
2013-12-27 00:22:28 +05:30
Dhruv
3bae72d164 [ticket/11271] Typecast forum and topic id to integer
PHPBB3-11271
2013-12-27 00:22:27 +05:30
Dhruv
dc37f3a0e3 [ticket/11271] Use absolute path for displaying inline attachments in feeds
PHPBB3-11271
2013-12-27 00:22:26 +05:30
erangamapa
62263c13d4 [ticket/11271] Changed executable bit.
Changed executable bit value from 755 to 644.

PHPBB3-11271
2013-12-27 00:22:25 +05:30
erangamapa
08d69de933 [ticket/11271] Formatting code and removing null assignment.
Formatted code and replaced null assignment with empty array
assignment to attachments parameter in method 'feed_generate_content'.

PHPBB3-11271
2013-12-27 00:22:24 +05:30
erangamapa
cca4067694 [ticket/11271] Removing unnecessary database object
Removed unnecessary global database object from 'feed_generate_content'
Method.

PHPBB3-11271
2013-12-27 00:22:22 +05:30
erangamapa
8586171187 [ticket/11271] Separated attachment fetching query
Removed external query used to fetch related attachments.
Added attachments fetching method with database query to
post based feed.

PHPBB3-11271
2013-12-27 00:22:21 +05:30
erangamapa
91a14a9e63 [ticket/11271] Fetched feed attachments before loop.
Fetched feed attachments before looping through feed items and
send them to method 'feed_generate_content' for each feed item.

PHPBB3-11271
2013-12-27 00:22:20 +05:30
erangamapa
a41e2ca380 [ticket/11271] Removed in-line attachment comments properly.
Added a new regex to remove in-line attachment comments.

PHPBB3-11271
2013-12-27 00:22:19 +05:30
erangamapa
5bf4726195 [ticket/11271] Displaying in-line attached images in ATOM feed.
In-line attached images are not displaying as they are not parsing.
Included 'parse_attachments' column name for data fetching queries
in feed.php. Checked weather feeds have in-line attachments and
parsed them by using parse_attachments() method.

PHPBB3-11271
2013-12-27 00:22:18 +05:30
Dhruv
2b959e3331 [ticket/11288] Handle +,- without preceeding whitespace characters
PHPBB3-11288
2013-10-05 21:09:52 +05:30
Andreas Fischer
6c3f3ec893 [ticket/11860] htaccess: Support for Apache 2.4's "Require" syntax.
PHPBB3-11860
2013-09-23 14:10:21 +02:00
1679 changed files with 41686 additions and 109204 deletions

7
.gitignore vendored
View File

@@ -1,13 +1,10 @@
*~
/phpunit.xml
/phpBB/cache/twig/*
/phpBB/cache/*.html
/phpBB/cache/*.php
/phpBB/cache/*.lock
/phpBB/composer.phar
/phpBB/config.php
/phpBB/config_dev.php
/phpBB/config_test.php
/phpBB/config*.php
/phpBB/ext/*
/phpBB/files/*
/phpBB/images/avatars/gallery/*
@@ -15,5 +12,5 @@
/phpBB/store/*
/phpBB/vendor
/tests/phpbb_unit_tests.sqlite2
/tests/test_config.php
/tests/test_config*.php
/tests/tmp/*

View File

@@ -4,36 +4,35 @@ php:
- 5.3
- 5.4
- 5.5
- 5.6
- hhvm
env:
- DB=mariadb
- DB=mysql
- DB=postgres
services:
- redis-server
install:
- sh -c "if [ '$DB' = 'mariadb' ]; then travis/setup-mariadb.sh; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' != 'hhvm' ]; then travis/setup-php-extensions.sh; fi"
- sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi"
- cd phpBB
- php ../composer.phar install --dev --no-interaction --prefer-source
- cd ..
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' = 'mariadb' ]; then travis/setup-mariadb.sh; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3' -a '$DB' = 'mysql' ]; then mysql -e 'SET GLOBAL storage_engine=MyISAM;'; fi"
- sh -c "if [ '$DB' = 'mysql' -o '$DB' = 'mariadb' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi"
- cd phpBB
- php ../composer.phar install --dev --no-interaction --prefer-source
- cd ..
- sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' -a '$DB' = 'mysql' ]; then sudo apt-get update; sudo apt-get install -y parallel libimage-exiftool-perl; fi"
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
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' -a '$DB' = 'mysql' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH...FETCH_HEAD; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' -a '$DB' = 'mysql' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH..FETCH_HEAD; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' -a '$DB' = 'mysql' ]; then find . -type f -not -path './phpBB/vendor/*' -iregex '.*\.\(gif\|jpg\|jpeg\|png\)$' | parallel --gnu --keep-order 'phpBB/develop/strip_icc_profiles.sh {}' || exit 1; fi"
matrix:
include:
- php: 5.4
env: DB=mariadb
- php: 5.4
env: DB=postgres
allow_failures:
- php: hhvm
fast_finish: true

View File

@@ -8,14 +8,6 @@ phpBB is a free bulletin board written in PHP.
Find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
## INSTALLING DEPENDENCIES
To be able to run an installation from the repo (and not from a pre-built package) you need to run the following commands to install phpBB's dependencies.
cd phpBB
php ../composer.phar install --dev
## CONTRIBUTE
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
@@ -25,9 +17,11 @@ To be able to run an installation from the repo (and not from a pre-built packag
## 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.
develop - [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=develop)](http://travis-ci.org/phpbb/phpbb)
develop-olympus - [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=develop-olympus)](http://travis-ci.org/phpbb/phpbb)
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:
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=master)](http://travis-ci.org/phpbb/phpbb) **master** - Latest development version
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=3.1.x)](http://travis-ci.org/phpbb/phpbb) **3.1.x** - Development of version 3.1.x
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=3.0.x)](http://travis-ci.org/phpbb/phpbb) **3.0.x** - Development of version 3.0.x
## LICENSE

View File

@@ -2,9 +2,9 @@
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
<!-- a few settings for the build -->
<property name="newversion" value="3.1.0-a3" />
<property name="prevversion" value="3.1.0-a2" />
<property name="olderversions" value="3.0.12, 3.1.0-a1" />
<property name="newversion" value="3.0.14" />
<property name="prevversion" value="3.0.14-RC1" />
<property name="olderversions" value="3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0.7-PL1, 3.0.8, 3.0.9, 3.0.10, 3.0.11, 3.0.12, 3.0.13, 3.0.13-PL1" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />
@@ -67,56 +67,22 @@
<exec dir="."
command="phpBB/vendor/bin/phpunit
--log-junit build/logs/phpunit.xml
--configuration phpunit.xml.all
--group slow
--coverage-clover build/logs/clover-slow.xml
--coverage-html build/coverage-slow"
passthru="true" />
</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>
<!-- Builds docs for current branch into build/api/output/master -->
<target name="docs">
<!-- only works if you setup phpdoctor:
git clone https://github.com/peej/phpdoctor.git
and then create an executable phpdoctor in your path containing
#!/bin/sh
php -f /path/to/phpdoctor/phpdoc.php $@
-->
<exec dir="build"
command="phpdoctor phpdoc-phpbb.ini"
<exec dir="."
command="phpBB/vendor/bin/sami.php update build/sami-checkout.conf.php"
passthru="true" />
</target>
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
<target name="docs-all">
<exec dir="."
command="phpBB/vendor/bin/sami.php update build/sami-all.conf.php"
passthru="true" />
</target>
@@ -255,7 +221,7 @@
command="git archive ${revision} composer.phar | tar -xf - -C ${dir}"
checkreturn="true" />
<exec dir="${dir}"
command="php composer.phar install"
command="php composer.phar install --no-dev"
checkreturn="true"
passthru="true" />
<delete file="${dir}/composer.phar" />

View File

@@ -22,20 +22,16 @@ $checksum_algorithm = $_SERVER['argv'][4];
$series_version = substr($version, 0, 3);
$base_url = "https://download.phpbb.com/pub/release/$series_version";
if (version_compare($version, "$series_version.0", '<'))
if (strpos($version, 'RC') === false)
{
// Everything before 3.x.0, i.e. unstable (e.g. alpha, beta, rc)
$url = "$base_url/unstable/$version";
}
else if (strpos($version, 'RC') !== false)
{
// Release candidate of stable release
$url = "$base_url/qa/$version";
// Final release
$install_url = "$base_url/$version";
$update_url = "$base_url/update/to_$version";
}
else
{
// Stable release (e.g. 3.x.0, 3.x.1, 3.x.2, 3.x.3-PL1)
$url = "$base_url/$version";
$install_url = "$base_url/release_candidates/$version";
$update_url = "$base_url/release_candidates/update/other_to_$version";
}
if ($mode === 'bbcode')
@@ -62,19 +58,41 @@ function phpbb_string_ends_with($haystack, $needle)
return substr($haystack, -strlen($needle)) === $needle;
}
function phpbb_is_update_file($filename)
{
return strpos($filename, '_to_') !== false;
}
function phpbb_get_checksum($checksum_file)
{
return array_shift(explode(' ', file_get_contents($checksum_file)));
}
$install_files = $update_files = array();
foreach (phpbb_rnatsort(array_diff(scandir($root), array('.', '..'))) as $filename)
{
if (phpbb_string_ends_with($filename, $checksum_algorithm))
{
continue;
}
else if (phpbb_is_update_file($filename))
{
$update_files[] = $filename;
}
else
{
printf($template, $url, $filename, phpbb_get_checksum("$root/$filename.$checksum_algorithm"));
$install_files[] = $filename;
}
}
foreach ($install_files as $filename)
{
printf($template, $install_url, $filename, phpbb_get_checksum("$root/$filename.$checksum_algorithm"));
}
echo "\n";
foreach ($update_files as $filename)
{
printf($template, $update_url, $filename, phpbb_get_checksum("$root/$filename.$checksum_algorithm"));
}

View File

@@ -1,210 +0,0 @@
<?php
/**
*
* @package code_sniffer
* @version $Id: $
* @copyright (c) 2007 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
/**
* Checks that each source file contains the standard header.
*
* Based on Coding Guidelines 1.ii File Header.
*
* @package code_sniffer
* @author Manuel Pichler <mapi@phpundercontrol.org>
*/
class phpbb_Sniffs_Commenting_FileCommentSniff implements PHP_CodeSniffer_Sniff
{
/**
* Returns an array of tokens this test wants to listen for.
*
* @return array
*/
public function register()
{
return array(T_OPEN_TAG);
}
/**
* Processes this test, when one of its tokens is encountered.
*
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
* @param int $stackPtr The position of the current token
* in the stack passed in $tokens.
*
* @return null
*/
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
{
// We are only interested in the first file comment.
if ($stackPtr !== 0)
{
if ($phpcsFile->findPrevious(T_OPEN_TAG, $stackPtr - 1) !== false)
{
return;
}
}
// Fetch next non whitespace token
$tokens = $phpcsFile->getTokens();
$start = $phpcsFile->findNext(T_WHITESPACE, $stackPtr + 1, null, true);
// Skip empty files
if ($tokens[$start]['code'] === T_CLOSE_TAG)
{
return;
}
// Mark as error if this is not a doc comment
else if ($start === false || $tokens[$start]['code'] !== T_DOC_COMMENT)
{
$phpcsFile->addError('Missing required file doc comment.', $stackPtr);
return;
}
// Find comment end token
$end = $phpcsFile->findNext(T_DOC_COMMENT, $start + 1, null, true) - 1;
// If there is no end, skip processing here
if ($end === false)
{
return;
}
// List of found comment tags
$tags = array();
// check comment lines without the first(/**) an last(*/) line
for ($i = $start + 1, $c = ($end - $start); $i <= $c; ++$i)
{
$line = $tokens[$i]['content'];
// Check that each line starts with a '*'
if (substr($line, 0, 1) !== '*')
{
$message = 'The file doc comment should not be idented.';
$phpcsFile->addWarning($message, $i);
}
else if (preg_match('/^\*\s+@([\w]+)\s+(.*)$/', $line, $match) !== 0)
{
$tags[$match[1]] = array($match[2], $i);
}
}
// Check that the first and last line is empty
if (trim($tokens[$start + 1]['content']) !== '*')
{
$message = 'The first file comment line should be empty.';
$phpcsFile->addWarning($message, ($start + 1));
}
if (trim($tokens[$end - $start]['content']) !== '*')
{
$message = 'The last file comment line should be empty.';
$phpcsFile->addWarning($message, ($end - $start));
}
$this->processPackage($phpcsFile, $start, $tags);
$this->processVersion($phpcsFile, $start, $tags);
$this->processCopyright($phpcsFile, $start, $tags);
$this->processLicense($phpcsFile, $start, $tags);
//print_r($tags);
}
/**
* Checks that the tags array contains a valid package tag
*
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
* @param integer The stack pointer for the first comment token.
* @param array(string=>array) $tags The found file doc comment tags.
*
* @return null
*/
protected function processPackage(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
{
if (!isset($tags['package']))
{
$message = 'Missing require @package tag in file doc comment.';
$phpcsFile->addError($message, $ptr);
}
else if (preg_match('/^([\w]+)$/', $tags['package'][0]) === 0)
{
$message = 'Invalid content found for @package tag.';
$phpcsFile->addWarning($message, $tags['package'][1]);
}
}
/**
* Checks that the tags array contains a valid version tag
*
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
* @param integer The stack pointer for the first comment token.
* @param array(string=>array) $tags The found file doc comment tags.
*
* @return null
*/
protected function processVersion(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
{
if (!isset($tags['version']))
{
$message = 'Missing require @version tag in file doc comment.';
$phpcsFile->addError($message, $ptr);
}
else if (preg_match('/^\$Id:[^\$]+\$$/', $tags['version'][0]) === 0)
{
$message = 'Invalid content found for @version tag, use "$Id: $".';
$phpcsFile->addError($message, $tags['version'][1]);
}
}
/**
* Checks that the tags array contains a valid copyright tag
*
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
* @param integer The stack pointer for the first comment token.
* @param array(string=>array) $tags The found file doc comment tags.
*
* @return null
*/
protected function processCopyright(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
{
if (!isset($tags['copyright']))
{
$message = 'Missing require @copyright tag in file doc comment.';
$phpcsFile->addError($message, $ptr);
}
else if (preg_match('/^\(c\) 2[0-9]{3} phpBB Group\s*$/', $tags['copyright'][0]) === 0)
{
$message = 'Invalid content found for @copyright tag, use "(c) <year> phpBB Group".';
$phpcsFile->addError($message, $tags['copyright'][1]);
}
}
/**
* Checks that the tags array contains a valid license tag
*
* @param PHP_CodeSniffer_File $phpcsFile The context source file instance.
* @param integer The stack pointer for the first comment token.
* @param array(string=>array) $tags The found file doc comment tags.
*
* @return null
*/
protected function processLicense(PHP_CodeSniffer_File $phpcsFile, $ptr, $tags)
{
$license = 'http://opensource.org/licenses/gpl-license.php GNU Public License';
if (!isset($tags['license']))
{
$message = 'Missing require @license tag in file doc comment.';
$phpcsFile->addError($message, $ptr);
}
else if (trim($tags['license'][0]) !== $license)
{
$message = 'Invalid content found for @license tag, use '
. '"' . $license . '".';
$phpcsFile->addError($message, $tags['license'][1]);
}
}
}

View File

@@ -1,19 +0,0 @@
<?php
/**
*
* @package code_sniffer³
* @version $Id: $
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php BSD License
*
*/
?>
<?php
/**
* Broken but not first file doc comment.
*
* @version @package_version@
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
* @copyright (c) 2007 phpBB Group
*
*/

View File

@@ -1,51 +0,0 @@
<?php
/**
*
* @package code_sniffer
* @version $Id: $
* @copyright (c) 2007 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
/**
* Unit test class for the EmptyStatement sniff.
*
* @package code_sniffer
* @author Manuel Pichler <mapi@phpundercontrol.org>
*/
class phpbb_Tests_Commenting_FileCommentUnitTest extends AbstractSniffUnitTest
{
/**
* Returns the lines where errors should occur.
*
* The key of the array should represent the line number and the value
* should represent the number of errors that should occur on that line.
*
* @return array(int => int)
*/
public function getErrorList()
{
return array(
7 => 1 // BSD License error :)
);
}//end getErrorList()
/**
* Returns the lines where warnings should occur.
*
* The key of the array should represent the line number and the value
* should represent the number of warnings that should occur on that line.
*
* @return array(int => int)
*/
public function getWarningList()
{
return array(
4 => 1,
8 => 1
);
}//end getWarningList()
}

View File

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="code_sniffer" basedir="." default="install">
<property name="working.dir" value="${basedir}" />
<property name="target.dir" value="/usr/share/php/PHP/CodeSniffer/Standards" />
<!--
Install phpbb sniff
-->
<target name="install">
<delete dir="${target.dir}/phpbb" />
<mkdir dir="${target.dir}/phpbb"/>
<copy todir="${target.dir}/phpbb">
<fileset file="${working.dir}/phpbbCodingStandard.php" />
</copy>
<copy todir="${target.dir}/phpbb/Sniffs">
<fileset dir="${working.dir}/Sniffs" />
</copy>
</target>
</project>

View File

@@ -1,43 +0,0 @@
<?php
/**
*
* @package code_sniffer
* @version $Id: $
* @copyright (c) 2007 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
/**
* @ignore
*/
if (class_exists('PHP_CodeSniffer_Standards_CodingStandard', true) === false) {
throw new PHP_CodeSniffer_Exception(
'Class PHP_CodeSniffer_Standards_CodingStandard not found'
);
}
/**
* Primary class for the phpbb coding standard.
*
* @package code_sniffer
*/
class PHP_CodeSniffer_Standards_phpbb_phpbbCodingStandard extends PHP_CodeSniffer_Standards_CodingStandard
{
/**
* Return a list of external sniffs to include with this standard.
*
* External locations can be single sniffs, a whole directory of sniffs, or
* an entire coding standard. Locations start with the standard name. For
* example:
* PEAR => include all sniffs in this standard
* PEAR/Sniffs/Files => include all sniffs in this dir
* PEAR/Sniffs/Files/LineLengthSniff => include this single sniff
*
* @return array
*/
public function getIncludedSniffs()
{
return array();
}
}

View File

@@ -1,15 +0,0 @@
<?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>

View File

@@ -1,44 +0,0 @@
<?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>

View File

@@ -1,51 +0,0 @@
<?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>

View File

@@ -121,7 +121,6 @@ if (sizeof($package->old_packages))
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $dest_filename_dir);
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $dest_filename_dir);
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/vendor ' . $dest_filename_dir);
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update');
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update/old');
@@ -174,27 +173,6 @@ if (sizeof($package->old_packages))
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
}
/**
* We try to keep the update packages as small as possible while creating them.
* However, we sometimes need to include additional files that are not included
* in the diff in order to be able to correctly include the relatively
* referenced files from the same or subsequent directories.
*/
$copy_relative_directories = array(
'adm/style/admin.css' => array(
'copied' => false,
'copy' => array(
'adm/images/*' => 'adm/images',
),
),
'config/' => array(
'copied' => false,
'copy' => array(
'config/*.yml' => 'config',
),
),
);
// Then fill the 'new' directory
foreach ($file_contents['all'] as $file)
{
@@ -206,8 +184,6 @@ if (sizeof($package->old_packages))
continue;
}
$filename = $file;
// Create Directories along the way?
$file = explode('/', $file);
// Remove filename portion
@@ -228,37 +204,6 @@ if (sizeof($package->old_packages))
}
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
foreach ($copy_relative_directories as $reference => $data)
{
// Copy all relative referenced files if needed
if (strpos($filename, $reference) === 0 && !$data['copied'])
{
foreach ($data['copy'] as $source_dir_files => $destination_dir)
{
// Create directories along the way?
$directories = explode('/', $destination_dir);
chdir($dest_filename_dir . '/install/update/new');
foreach ($directories as $dir)
{
$dir = trim($dir);
if ($dir)
{
if (!file_exists('./' . $dir))
{
$package->run_command('mkdir ' . $dir);
}
chdir('./' . $dir);
}
}
$source_dir_files = $package->locations['old_versions'] . $package->get('simple_name') . '/' . $source_dir_files;
$destination_dir = $dest_filename_dir . '/install/update/new/' . $destination_dir;
$package->run_command('cp ' . $source_dir_files . ' ' . $destination_dir);
}
$copy_relative_directories[$reference]['copied'] = true;
}
}
}
// Build index.php file for holding the file structure
@@ -311,7 +256,6 @@ $update_info = array(
// Copy the install files to their respective locations
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $package->get('patch_directory'));
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $package->get('patch_directory'));
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/vendor ' . $package->get('patch_directory'));
// Remove some files
chdir($package->get('patch_directory') . '/install');

View File

@@ -1,145 +0,0 @@
; Default configuration file for PHPDoctor
; This config file will cause PHPDoctor to generate API documentation of
; itself.
; PHPDoctor settings
; -----------------------------------------------------------------------------
; Names of files to parse. This can be a single filename, or a comma separated
; list of filenames. Wildcards are allowed.
files = "*.php"
; Names of files or directories to ignore. This can be a single filename, or a
; comma separated list of filenames. Wildcards are NOT allowed.
;ignore = "CVS, .svn, .git, _compiled"
ignore = templates_c/,*HTML/default/*,spec/,*config.php*,*CVS/,test_chora.php,testupdate/,cache/,store/,*proSilver/,develop/,includes/utf/data/,includes/captcha/fonts/,install/update/,install/update.new/,files/,*phpinfo.php*,*update_script.php*,*upgrade.php*,*convert.php*,install/converter/,language/de/,script/,*swatch.php*,*test.php*,*test2.php*,*install.php*,*functions_diff.php*,*acp_update.php*,acm_xcache.php
; The directory to look for files in, if not used the PHPDoctor will look in
; the current directory (the directory it is run from).
source_path = "../phpBB/"
; If you do not want PHPDoctor to look in each sub directory for files
; uncomment this line.
;subdirs = off
; Set how loud PHPDoctor is as it runs. Quiet mode suppresses all output other
; than warnings and errors. Verbose mode outputs additional messages during
; execution.
quiet = on
;verbose = on
; Select the doclet to use for generating output.
doclet = standard
;doclet = debug
; The directory to find the doclet in. Doclets control the HTML output of
; phpDoctor and can be modified to suit your needs. They are expected to be
; in a directory named after themselves at the location given.
;doclet_path = ./doclets
; Select the formatter to use for generating output.
;formatter = htmlStandardFormatter
; The directory to find the formatter in. Formatters convert textual markup
; for use by the doclet.
;formatter_path = ./formatters
; The directory to find taglets in. Taglets allow you to make PHPDoctor handle
; new tags and to alter the behavour of existing tags and their output.
;taglet_path = ./taglets
; If the code you are parsing does not use package tags or not all elements
; have package tags, use this setting to place unbound elements into a
; particular package.
default_package = "phpBB"
use_class_path_as_package = off
ignore_package_tags = off
; Specifies the name of a HTML file containing text for the overview
; documentation to be placed on the overview page. The path is relative to
; "source_path" unless an absolute path is given.
overview = ../README.md
; Package comments will be looked for in a file named package.html in the same
; directory as the first source file parsed in that package or in the directory
; given below. If package comments are placed in the directory given below then
; they should be named "<packageName>.html".
package_comment_dir = ./
; Parse out global variables and/or global constants?
;globals = off
;constants = off
; Generate documentation for all class members
;private = on
; Generate documentation for public and protected class members
;protected = on
; Generate documentation for only public class members
;public = on
; Use the PEAR compatible handling of the docblock first sentence
;pear_compat = on
; Standard doclet settings
; -----------------------------------------------------------------------------
; The directory to place generated documentation in. If the given path is
; relative to it will be relative to "source_path".
d = "../build/api/"
; Specifies the title to be placed in the HTML <title> tag.
windowtitle = "phpBB3"
; Specifies the title to be placed near the top of the overview summary file.
doctitle = "phpBB3 Sourcecode Documentation"
; Specifies the header text to be placed at the top of each output file. The
; header will be placed to the right of the upper navigation bar.
header = "phpBB3"
; Specifies the footer text to be placed at the bottom of each output file. The
; footer will be placed to the right of the lower navigation bar.
footer = "phpBB3"
; Specifies the text to be placed at the bottom of each output file. The text
; will be placed at the bottom of the page, below the lower navigation bar.
;bottom = "This document was generated by <a href="http://peej.github.com/phpdoctor/">PHPDoctor: The PHP Documentation Creator</a>"
; Create a class tree?
;tree = off
; Use GeSHi to include formatted source files in the documentation. PHPDoctor will look in the current doclet directory for a /geshi subdirectory. Unpack the GeSHi archive from http://qbnz.com/highlighter to get this directory - it will contain a php script and a subdirectory with formatting files.
include_source = off

30
build/sami-all.conf.php Normal file
View File

@@ -0,0 +1,30 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
require __DIR__ . '/sami-checkout.conf.php';
$config['versions'] = Sami\Version\GitVersionCollection::create(__DIR__ . '/../')
/*
This would be nice, but currently causes various problems that need
debugging.
->addFromTags('release-3.0.*')
->add('3.0.x', '3.0-next (olympus)')
->addFromTags('release-3.1.*')
->add('3.1.x', '3.1-next (ascraeus)')
->add('master')
*/
->add('3.0.x')
->add('3.1.x')
;
return new Sami\Sami($iterator, $config);

View File

@@ -0,0 +1,44 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
// Prevent 'Class "acm" does not exist.' exception on removeClass().
class PhpbbArrayStore extends Sami\Store\ArrayStore
{
public function removeClass(Sami\Project $project, $name)
{
unset($this->classes[$name]);
}
}
$iterator = Symfony\Component\Finder\Finder::create()
->files()
->name('*.php')
->in(__DIR__ . '/../phpBB/')
->notPath('#^cache/#')
->notPath('#^develop/#')
->notPath('#^ext/#')
->notPath('#^vendor/#')
->notPath('data')
;
$config = array(
'theme' => 'enhanced',
'title' => 'phpBB API Documentation',
'build_dir' => __DIR__.'/api/output/%version%',
'cache_dir' => __DIR__.'/api/cache/%version%',
'default_opened_level' => 2,
// Do not use JsonStore. See https://github.com/fabpot/Sami/issues/79
'store' => new PhpbbArrayStore,
);
return new Sami\Sami($iterator, $config);

Binary file not shown.

View File

@@ -5,26 +5,47 @@
#
# Calls the git commit-msg hook on all non-merge commits in a given commit range.
#
set -e
if [ "$#" -ne 1 ];
then
echo "Expected one argument (commit range, e.g. eef1b586...1666476b)."
echo "Expected one argument (commit range, e.g. phpbb/develop..ticket/12345)."
exit
fi
DIR=$(dirname "$0")
COMMIT_MSG_HOOK_PATH="$DIR/hooks/commit-msg"
COMMIT_RANGE="$1"
COMMIT_MSG_HOOK_PATH="$DIR/hooks/commit-msg"
COMMIT_MSG_HOOK_FATAL=$(git config --bool phpbb.hooks.commit-msg.fatal 2> /dev/null)
git config phpbb.hooks.commit-msg.fatal true
EXIT_STATUS=0
for COMMIT_HASH in $(git rev-list --no-merges "$COMMIT_RANGE")
do
echo "Inspecting commit message of commit $COMMIT_HASH"
# The git commit-msg hook takes a path to a file containing a commit
# message. So we have to extract the commit message into a file first,
# which then also needs to be deleted after our work is done.
COMMIT_MESSAGE_PATH="$DIR/commit_msg.$COMMIT_HASH"
git log -n 1 --pretty=format:%B "$COMMIT_HASH" > "$COMMIT_MESSAGE_PATH"
# Invoke hook on commit message file.
"$COMMIT_MSG_HOOK_PATH" "$COMMIT_MESSAGE_PATH"
# If any commit message hook complains with a non-zero exit status, we
# will send a non-zero exit status upstream.
if [ $? -ne 0 ]
then
EXIT_STATUS=1
fi
rm "$COMMIT_MESSAGE_PATH"
done
# Restore phpbb.hooks.commit-msg.fatal config
if [ -n "$COMMIT_MSG_HOOK_FATAL" ]
then
git config phpbb.hooks.commit-msg.fatal "$COMMIT_MSG_HOOK_FATAL"
fi
exit $EXIT_STATUS

View File

@@ -191,12 +191,12 @@ do
err=$ERR_HEADER;
echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] .+$"
result=$?
if ! echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [A-Z].+$"
if ! echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [a-zA-Z].+$"
then
# Don't be too strict.
# Commits may be temporary, intended to be squashed later.
# Just issue a warning here.
complain "$severity: heading should be a sentence beginning with a capital letter." 1>&2
complain "$severity: heading should be a sentence beginning with a letter." 1>&2
complain "You entered:" 1>&2
complain "$line" 1>&2
fi

View File

@@ -1,37 +1,57 @@
<IfModule mod_rewrite.c>
RewriteEngine on
#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#</IfModule>
#
# The following 3 lines will rewrite URLs passed through the front controller
# to not require app.php in the actual URL. In other words, a controller is
# by default accessed at /app.php/my/controller, but can also be accessed at
# /my/controller
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ app.php [QSA,L]
#
# If symbolic links are not already being followed,
# uncomment the line below.
# http://anothersysadmin.wordpress.com/2008/06/10/mod_rewrite-forbidden-403-with-apache-228/
#
#Options +FollowSymLinks
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
# module mod_authz_host to a new module called mod_access_compat (which may be
# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
# We could just conditionally provide both versions, but unfortunately Apache
# does not explicitly tell us its version if the module mod_version is not
# available. In this case, we check for the availability of module
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
<IfModule mod_version.c>
<IfVersion < 2.4>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
</IfVersion>
<IfVersion >= 2.4>
<Files "config.php">
Require all denied
</Files>
<Files "common.php">
Require all denied
</Files>
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
</IfModule>
<IfModule mod_authz_core.c>
<Files "config.php">
Require all denied
</Files>
<Files "common.php">
Require all denied
</Files>
</IfModule>
</IfModule>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 930 B

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
phpBB/adm/images/toggle.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

View File

@@ -2,8 +2,9 @@
/**
*
* @package acp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
@@ -17,7 +18,6 @@ define('NEED_SID', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_acp.' . $phpEx);
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);
@@ -42,6 +42,7 @@ if (!$auth->acl_get('a_'))
// We define the admin variables now, because the user is now able to use the admin related features...
define('IN_ADMIN', true);
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : './';
// Some oft used variables
$safe_mode = (@ini_get('safe_mode') == '1' || strtolower(@ini_get('safe_mode')) === 'on') ? true : false;
@@ -49,11 +50,13 @@ $file_uploads = (@ini_get('file_uploads') == '1' || strtolower(@ini_get('file_up
$module_id = request_var('i', '');
$mode = request_var('mode', '');
// Set custom style for admin area
$template->set_custom_style('adm', $phpbb_admin_path . 'style');
$template->assign_var('T_ASSETS_PATH', $phpbb_root_path . 'assets');
// Set custom template for admin area
$template->set_custom_template($phpbb_admin_path . 'style', 'admin');
$template->assign_var('T_TEMPLATE_PATH', $phpbb_admin_path . 'style');
// the acp template is never stored in the database
$user->theme['template_storedb'] = false;
// Instantiate new module
$module = new p_master();
@@ -78,3 +81,558 @@ $template->set_filenames(array(
));
adm_page_footer();
/**
* Header for acp pages
*/
function adm_page_header($page_title)
{
global $config, $db, $user, $template;
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $SID, $_SID;
if (defined('HEADER_INC'))
{
return;
}
define('HEADER_INC', true);
// gzip_compression
if ($config['gzip_compress'])
{
if (@extension_loaded('zlib') && !headers_sent())
{
ob_start('ob_gzhandler');
}
}
$template->assign_vars(array(
'PAGE_TITLE' => $page_title,
'USERNAME' => $user->data['username'],
'SID' => $SID,
'_SID' => $_SID,
'SESSION_ID' => $user->session_id,
'ROOT_PATH' => $phpbb_admin_path,
'U_LOGOUT' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=logout'),
'U_ADM_LOGOUT' => append_sid("{$phpbb_admin_path}index.$phpEx", 'action=admlogout'),
'U_ADM_INDEX' => append_sid("{$phpbb_admin_path}index.$phpEx"),
'U_INDEX' => append_sid("{$phpbb_root_path}index.$phpEx"),
'T_IMAGES_PATH' => "{$phpbb_root_path}images/",
'T_SMILIES_PATH' => "{$phpbb_root_path}{$config['smilies_path']}/",
'T_AVATAR_PATH' => "{$phpbb_root_path}{$config['avatar_path']}/",
'T_AVATAR_GALLERY_PATH' => "{$phpbb_root_path}{$config['avatar_gallery_path']}/",
'T_ICONS_PATH' => "{$phpbb_root_path}{$config['icons_path']}/",
'T_RANKS_PATH' => "{$phpbb_root_path}{$config['ranks_path']}/",
'T_UPLOAD_PATH' => "{$phpbb_root_path}{$config['upload_path']}/",
'ICON_MOVE_UP' => '<img src="' . $phpbb_admin_path . 'images/icon_up.gif" alt="' . $user->lang['MOVE_UP'] . '" title="' . $user->lang['MOVE_UP'] . '" />',
'ICON_MOVE_UP_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_up_disabled.gif" alt="' . $user->lang['MOVE_UP'] . '" title="' . $user->lang['MOVE_UP'] . '" />',
'ICON_MOVE_DOWN' => '<img src="' . $phpbb_admin_path . 'images/icon_down.gif" alt="' . $user->lang['MOVE_DOWN'] . '" title="' . $user->lang['MOVE_DOWN'] . '" />',
'ICON_MOVE_DOWN_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_down_disabled.gif" alt="' . $user->lang['MOVE_DOWN'] . '" title="' . $user->lang['MOVE_DOWN'] . '" />',
'ICON_EDIT' => '<img src="' . $phpbb_admin_path . 'images/icon_edit.gif" alt="' . $user->lang['EDIT'] . '" title="' . $user->lang['EDIT'] . '" />',
'ICON_EDIT_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_edit_disabled.gif" alt="' . $user->lang['EDIT'] . '" title="' . $user->lang['EDIT'] . '" />',
'ICON_DELETE' => '<img src="' . $phpbb_admin_path . 'images/icon_delete.gif" alt="' . $user->lang['DELETE'] . '" title="' . $user->lang['DELETE'] . '" />',
'ICON_DELETE_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_delete_disabled.gif" alt="' . $user->lang['DELETE'] . '" title="' . $user->lang['DELETE'] . '" />',
'ICON_SYNC' => '<img src="' . $phpbb_admin_path . 'images/icon_sync.gif" alt="' . $user->lang['RESYNC'] . '" title="' . $user->lang['RESYNC'] . '" />',
'ICON_SYNC_DISABLED' => '<img src="' . $phpbb_admin_path . 'images/icon_sync_disabled.gif" alt="' . $user->lang['RESYNC'] . '" title="' . $user->lang['RESYNC'] . '" />',
'S_USER_LANG' => $user->lang['USER_LANG'],
'S_CONTENT_DIRECTION' => $user->lang['DIRECTION'],
'S_CONTENT_ENCODING' => 'UTF-8',
'S_CONTENT_FLOW_BEGIN' => ($user->lang['DIRECTION'] == 'ltr') ? 'left' : 'right',
'S_CONTENT_FLOW_END' => ($user->lang['DIRECTION'] == 'ltr') ? 'right' : 'left',
));
// application/xhtml+xml not used because of IE
header('Content-type: text/html; charset=UTF-8');
header('Cache-Control: private, no-cache="set-cookie"');
header('Expires: 0');
header('Pragma: no-cache');
return;
}
/**
* Page footer for acp pages
*/
function adm_page_footer($copyright_html = true)
{
global $db, $config, $template, $user, $auth, $cache;
global $starttime, $phpbb_root_path, $phpbb_admin_path, $phpEx;
// Output page creation time
if (defined('DEBUG'))
{
$mtime = explode(' ', microtime());
$totaltime = $mtime[0] + $mtime[1] - $starttime;
if (!empty($_REQUEST['explain']) && $auth->acl_get('a_') && defined('DEBUG_EXTRA') && method_exists($db, 'sql_report'))
{
$db->sql_report('display');
}
$debug_output = sprintf('Time : %.3fs | ' . $db->sql_num_queries() . ' Queries | GZIP : ' . (($config['gzip_compress']) ? 'On' : 'Off') . (($user->load) ? ' | Load : ' . $user->load : ''), $totaltime);
if ($auth->acl_get('a_') && defined('DEBUG_EXTRA'))
{
if (function_exists('memory_get_usage'))
{
if ($memory_usage = memory_get_usage())
{
global $base_memory_usage;
$memory_usage -= $base_memory_usage;
$memory_usage = get_formatted_filesize($memory_usage);
$debug_output .= ' | Memory Usage: ' . $memory_usage;
}
}
$debug_output .= ' | <a href="' . build_url() . '&amp;explain=1">Explain</a>';
}
}
$template->assign_vars(array(
'DEBUG_OUTPUT' => (defined('DEBUG')) ? $debug_output : '',
'TRANSLATION_INFO' => (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',
'S_COPYRIGHT_HTML' => $copyright_html,
'CREDIT_LINE' => $user->lang('POWERED_BY', '<a href="https://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group'),
'VERSION' => $config['version'])
);
$template->display('body');
garbage_collection();
exit_handler();
}
/**
* Generate back link for acp pages
*/
function adm_back_link($u_action)
{
global $user;
return '<br /><br /><a href="' . $u_action . '">&laquo; ' . $user->lang['BACK_TO_PREV'] . '</a>';
}
/**
* Build select field options in acp pages
*/
function build_select($option_ary, $option_default = false)
{
global $user;
$html = '';
foreach ($option_ary as $value => $title)
{
$selected = ($option_default !== false && $value == $option_default) ? ' selected="selected"' : '';
$html .= '<option value="' . $value . '"' . $selected . '>' . $user->lang[$title] . '</option>';
}
return $html;
}
/**
* Build radio fields in acp pages
*/
function h_radio($name, $input_ary, $input_default = false, $id = false, $key = false, $separator = '')
{
global $user;
$html = '';
$id_assigned = false;
foreach ($input_ary as $value => $title)
{
$selected = ($input_default !== false && $value == $input_default) ? ' checked="checked"' : '';
$html .= '<label><input type="radio" name="' . $name . '"' . (($id && !$id_assigned) ? ' id="' . $id . '"' : '') . ' value="' . $value . '"' . $selected . (($key) ? ' accesskey="' . $key . '"' : '') . ' class="radio" /> ' . $user->lang[$title] . '</label>' . $separator;
$id_assigned = true;
}
return $html;
}
/**
* Build configuration template for acp configuration pages
*/
function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
{
global $user, $module;
$tpl = '';
$name = 'config[' . $config_key . ']';
// Make sure there is no notice printed out for non-existent config options (we simply set them)
if (!isset($new[$config_key]))
{
$new[$config_key] = '';
}
switch ($tpl_type[0])
{
case 'text':
case 'password':
$size = (int) $tpl_type[1];
$maxlength = (int) $tpl_type[2];
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '"' . (($tpl_type[0] === 'password') ? ' autocomplete="off"' : '') . ' />';
break;
case 'dimension':
$size = (int) $tpl_type[1];
$maxlength = (int) $tpl_type[2];
$tpl = '<input id="' . $key . '" type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_width]" value="' . $new[$config_key . '_width'] . '" /> x <input type="text"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="config[' . $config_key . '_height]" value="' . $new[$config_key . '_height'] . '" />';
break;
case 'textarea':
$rows = (int) $tpl_type[1];
$cols = (int) $tpl_type[2];
$tpl = '<textarea id="' . $key . '" name="' . $name . '" rows="' . $rows . '" cols="' . $cols . '">' . $new[$config_key] . '</textarea>';
break;
case 'radio':
$key_yes = ($new[$config_key]) ? ' checked="checked"' : '';
$key_no = (!$new[$config_key]) ? ' checked="checked"' : '';
$tpl_type_cond = explode('_', $tpl_type[1]);
$type_no = ($tpl_type_cond[0] == 'disabled' || $tpl_type_cond[0] == 'enabled') ? false : true;
$tpl_no = '<label><input type="radio" name="' . $name . '" value="0"' . $key_no . ' class="radio" /> ' . (($type_no) ? $user->lang['NO'] : $user->lang['DISABLED']) . '</label>';
$tpl_yes = '<label><input type="radio" id="' . $key . '" name="' . $name . '" value="1"' . $key_yes . ' class="radio" /> ' . (($type_no) ? $user->lang['YES'] : $user->lang['ENABLED']) . '</label>';
$tpl = ($tpl_type_cond[0] == 'yes' || $tpl_type_cond[0] == 'enabled') ? $tpl_yes . $tpl_no : $tpl_no . $tpl_yes;
break;
case 'select':
case 'custom':
$return = '';
if (isset($vars['method']))
{
$call = array($module->module, $vars['method']);
}
else if (isset($vars['function']))
{
$call = $vars['function'];
}
else
{
break;
}
if (isset($vars['params']))
{
$args = array();
foreach ($vars['params'] as $value)
{
switch ($value)
{
case '{CONFIG_VALUE}':
$value = $new[$config_key];
break;
case '{KEY}':
$value = $key;
break;
}
$args[] = $value;
}
}
else
{
$args = array($new[$config_key], $key);
}
$return = call_user_func_array($call, $args);
if ($tpl_type[0] == 'select')
{
$tpl = '<select id="' . $key . '" name="' . $name . '">' . $return . '</select>';
}
else
{
$tpl = $return;
}
break;
default:
break;
}
if (isset($vars['append']))
{
$tpl .= $vars['append'];
}
return $tpl;
}
/**
* Going through a config array and validate values, writing errors to $error. The validation method accepts parameters separated by ':' for string and int.
* The first parameter defines the type to be used, the second the lower bound and the third the upper bound. Only the type is required.
*/
function validate_config_vars($config_vars, &$cfg_array, &$error)
{
global $phpbb_root_path, $user;
$type = 0;
$min = 1;
$max = 2;
foreach ($config_vars as $config_name => $config_definition)
{
if (!isset($cfg_array[$config_name]) || strpos($config_name, 'legend') !== false)
{
continue;
}
if (!isset($config_definition['validate']))
{
continue;
}
$validator = explode(':', $config_definition['validate']);
// Validate a bit. ;) (0 = type, 1 = min, 2= max)
switch ($validator[$type])
{
case 'string':
$length = utf8_strlen($cfg_array[$config_name]);
// the column is a VARCHAR
$validator[$max] = (isset($validator[$max])) ? min(255, $validator[$max]) : 255;
if (isset($validator[$min]) && $length < $validator[$min])
{
$error[] = sprintf($user->lang['SETTING_TOO_SHORT'], $user->lang[$config_definition['lang']], $validator[$min]);
}
else if (isset($validator[$max]) && $length > $validator[2])
{
$error[] = sprintf($user->lang['SETTING_TOO_LONG'], $user->lang[$config_definition['lang']], $validator[$max]);
}
break;
case 'bool':
$cfg_array[$config_name] = ($cfg_array[$config_name]) ? 1 : 0;
break;
case 'int':
$cfg_array[$config_name] = (int) $cfg_array[$config_name];
if (isset($validator[$min]) && $cfg_array[$config_name] < $validator[$min])
{
$error[] = sprintf($user->lang['SETTING_TOO_LOW'], $user->lang[$config_definition['lang']], $validator[$min]);
}
else if (isset($validator[$max]) && $cfg_array[$config_name] > $validator[$max])
{
$error[] = sprintf($user->lang['SETTING_TOO_BIG'], $user->lang[$config_definition['lang']], $validator[$max]);
}
if (strpos($config_name, '_max') !== false)
{
// Min/max pairs of settings should ensure that min <= max
// Replace _max with _min to find the name of the minimum
// corresponding configuration variable
$min_name = str_replace('_max', '_min', $config_name);
if (isset($cfg_array[$min_name]) && is_numeric($cfg_array[$min_name]) && $cfg_array[$config_name] < $cfg_array[$min_name])
{
// A minimum value exists and the maximum value is less than it
$error[] = sprintf($user->lang['SETTING_TOO_LOW'], $user->lang[$config_definition['lang']], (int) $cfg_array[$min_name]);
}
}
break;
case 'email':
if (!preg_match('/^' . get_preg_expression('email') . '$/i', $cfg_array[$config_name]))
{
$error[] = $user->lang['EMAIL_INVALID_EMAIL'];
}
break;
// Absolute path
case 'script_path':
if (!$cfg_array[$config_name])
{
break;
}
$destination = str_replace('\\', '/', $cfg_array[$config_name]);
if ($destination !== '/')
{
// Adjust destination path (no trailing slash)
if (substr($destination, -1, 1) == '/')
{
$destination = substr($destination, 0, -1);
}
$destination = str_replace(array('../', './'), '', $destination);
if ($destination[0] != '/')
{
$destination = '/' . $destination;
}
}
$cfg_array[$config_name] = trim($destination);
break;
// Absolute path
case 'lang':
if (!$cfg_array[$config_name])
{
break;
}
$cfg_array[$config_name] = basename($cfg_array[$config_name]);
if (!file_exists($phpbb_root_path . 'language/' . $cfg_array[$config_name] . '/'))
{
$error[] = $user->lang['WRONG_DATA_LANG'];
}
break;
// Relative path (appended $phpbb_root_path)
case 'rpath':
case 'rwpath':
if (!$cfg_array[$config_name])
{
break;
}
$destination = $cfg_array[$config_name];
// Adjust destination path (no trailing slash)
if (substr($destination, -1, 1) == '/' || substr($destination, -1, 1) == '\\')
{
$destination = substr($destination, 0, -1);
}
$destination = str_replace(array('../', '..\\', './', '.\\'), '', $destination);
if ($destination && ($destination[0] == '/' || $destination[0] == "\\"))
{
$destination = '';
}
$cfg_array[$config_name] = trim($destination);
// Absolute file path
case 'absolute_path':
case 'absolute_path_writable':
// Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir...
case 'path':
case 'wpath':
if (!$cfg_array[$config_name])
{
break;
}
$cfg_array[$config_name] = trim($cfg_array[$config_name]);
// Make sure no NUL byte is present...
if (strpos($cfg_array[$config_name], "\0") !== false || strpos($cfg_array[$config_name], '%00') !== false)
{
$cfg_array[$config_name] = '';
break;
}
$path = in_array($config_definition['validate'], array('wpath', 'path', 'rpath', 'rwpath')) ? $phpbb_root_path . $cfg_array[$config_name] : $cfg_array[$config_name];
if (!file_exists($path))
{
$error[] = sprintf($user->lang['DIRECTORY_DOES_NOT_EXIST'], $cfg_array[$config_name]);
}
if (file_exists($path) && !is_dir($path))
{
$error[] = sprintf($user->lang['DIRECTORY_NOT_DIR'], $cfg_array[$config_name]);
}
// Check if the path is writable
if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath' || $config_definition['validate'] === 'absolute_path_writable')
{
if (file_exists($path) && !phpbb_is_writable($path))
{
$error[] = sprintf($user->lang['DIRECTORY_NOT_WRITABLE'], $cfg_array[$config_name]);
}
}
break;
}
}
return;
}
/**
* Checks whatever or not a variable is OK for use in the Database
* param mixed $value_ary An array of the form array(array('lang' => ..., 'value' => ..., 'column_type' =>))'
* param mixed $error The error array
*/
function validate_range($value_ary, &$error)
{
global $user;
$column_types = array(
'BOOL' => array('php_type' => 'int', 'min' => 0, 'max' => 1),
'USINT' => array('php_type' => 'int', 'min' => 0, 'max' => 65535),
'UINT' => array('php_type' => 'int', 'min' => 0, 'max' => (int) 0x7fffffff),
// Do not use (int) 0x80000000 - it evaluates to different
// values on 32-bit and 64-bit systems.
// Apparently -2147483648 is a float on 32-bit systems,
// despite fitting in an int, thus explicit cast is needed.
'INT' => array('php_type' => 'int', 'min' => (int) -2147483648, 'max' => (int) 0x7fffffff),
'TINT' => array('php_type' => 'int', 'min' => -128, 'max' => 127),
'VCHAR' => array('php_type' => 'string', 'min' => 0, 'max' => 255),
);
foreach ($value_ary as $value)
{
$column = explode(':', $value['column_type']);
$max = $min = 0;
$type = 0;
if (!isset($column_types[$column[0]]))
{
continue;
}
else
{
$type = $column_types[$column[0]];
}
switch ($type['php_type'])
{
case 'string' :
$max = (isset($column[1])) ? min($column[1],$type['max']) : $type['max'];
if (utf8_strlen($value['value']) > $max)
{
$error[] = sprintf($user->lang['SETTING_TOO_LONG'], $user->lang[$value['lang']], $max);
}
break;
case 'int':
$min = (isset($column[1])) ? max($column[1],$type['min']) : $type['min'];
$max = (isset($column[2])) ? min($column[2],$type['max']) : $type['max'];
if ($value['value'] < $min)
{
$error[] = sprintf($user->lang['SETTING_TOO_LOW'], $user->lang[$value['lang']], $min);
}
else if ($value['value'] > $max)
{
$error[] = sprintf($user->lang['SETTING_TOO_BIG'], $user->lang[$value['lang']], $max);
}
break;
}
}
}
?>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF U_BACK -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
@@ -54,7 +54,7 @@
<!-- ELSE -->
<dl>
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
</dl>
@@ -78,11 +78,11 @@
<legend>{L_SECURE_TITLE}</legend>
<p>{L_DOWNLOAD_ADD_IPS_EXPLAIN}</p>
<dl>
<dt><label for="ip_hostname">{L_IP_HOSTNAME}{L_COLON}</label></dt>
<dt><label for="ip_hostname">{L_IP_HOSTNAME}:</label></dt>
<dd><textarea id="ip_hostname" cols="40" rows="3" name="ips"></textarea></dd>
</dl>
<dl>
<dt><label for="exclude">{L_IP_EXCLUDE}{L_COLON}</label><br /><span>{L_EXCLUDE_ENTERED_IP}</span></dt>
<dt><label for="exclude">{L_IP_EXCLUDE}:</label><br /><span>{L_EXCLUDE_ENTERED_IP}</span></dt>
<dd><label><input type="radio" id="exclude" name="ipexclude" value="1" class="radio" /> {L_YES}</label>
<label><input type="radio" name="ipexclude" value="0" checked="checked" class="radio" /> {L_NO}</label></dd>
</dl>
@@ -97,7 +97,7 @@
<!-- IF S_DEFINED_IPS -->
<p>{L_DOWNLOAD_REMOVE_IPS_EXPLAIN}</p>
<dl>
<dt><label for="remove_ip_hostname">{L_IP_HOSTNAME}{L_COLON}</label></dt>
<dt><label for="remove_ip_hostname">{L_IP_HOSTNAME}:</label></dt>
<dd><select name="unip[]" id="remove_ip_hostname" multiple="multiple" size="10">{DEFINED_IPS}</select></dd>
</dl>
@@ -122,11 +122,11 @@
{
if (newimage == 'no_image')
{
document.getElementById('image_upload_icon').src = "{ROOT_PATH}images/spacer.gif";
document.getElementById('image_upload_icon').src = "{PHPBB_ROOT_PATH}images/spacer.gif";
}
else
{
document.getElementById('image_upload_icon').src = "{ROOT_PATH}{IMG_PATH}/" + newimage;
document.getElementById('image_upload_icon').src = "{PHPBB_ROOT_PATH}{IMG_PATH}/" + newimage;
}
}
@@ -172,39 +172,39 @@
<legend>{L_LEGEND}</legend>
<dl>
<dt><label for="group_name">{L_GROUP_NAME}{L_COLON}</label></dt>
<dt><label for="group_name">{L_GROUP_NAME}:</label></dt>
<dd><input type="text" id="group_name" size="20" maxlength="100" name="group_name" value="{GROUP_NAME}" /></dd>
</dl>
<dl>
<dt><label for="category">{L_SPECIAL_CATEGORY}{L_COLON}</label><br /><span>{L_SPECIAL_CATEGORY_EXPLAIN}</span></dt>
<dt><label for="category">{L_SPECIAL_CATEGORY}:</label><br /><span>{L_SPECIAL_CATEGORY_EXPLAIN}</span></dt>
<dd>{S_CATEGORY_SELECT}</dd>
</dl>
<dl>
<dt><label for="allowed">{L_ALLOWED}{L_COLON}</label></dt>
<dt><label for="allowed">{L_ALLOWED}:</label></dt>
<dd><input type="checkbox" class="radio" id="allowed" name="allow_group" value="1"<!-- IF ALLOW_GROUP --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="allow_in_pm">{L_ALLOW_IN_PM}{L_COLON}</label></dt>
<dt><label for="allow_in_pm">{L_ALLOW_IN_PM}:</label></dt>
<dd><input type="checkbox" class="radio" id="allow_in_pm" name="allow_in_pm" value="1"<!-- IF ALLOW_IN_PM --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="upload_icon">{L_UPLOAD_ICON}{L_COLON}</label></dt>
<dt><label for="upload_icon">{L_UPLOAD_ICON}:</label></dt>
<dd><select name="upload_icon" id="upload_icon" onchange="update_image(this.options[selectedIndex].value);">
<option value="no_image"<!-- IF S_NO_IMAGE --> selected="selected"<!-- ENDIF -->>{L_NO_IMAGE}</option>{S_FILENAME_LIST}
</select></dd>
<dd>&nbsp;<img <!-- IF S_NO_IMAGE -->src="{ROOT_PATH}images/spacer.gif"<!-- ELSE -->src="{UPLOAD_ICON_SRC}"<!-- ENDIF --> id="image_upload_icon" alt="" title="" />&nbsp;</dd>
<dd>&nbsp;<img <!-- IF S_NO_IMAGE -->src="{PHPBB_ROOT_PATH}images/spacer.gif"<!-- ELSE -->src="{UPLOAD_ICON_SRC}"<!-- ENDIF --> id="image_upload_icon" alt="" title="" />&nbsp;</dd>
</dl>
<dl>
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}{L_COLON}</label></dt>
<dd><input type="number" id="extgroup_filesize" size="3" maxlength="15" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> <select name="size_select">{S_EXT_GROUP_SIZE_OPTIONS}</select></dd>
<dt><label for="extgroup_filesize">{L_MAX_EXTGROUP_FILESIZE}:</label></dt>
<dd><input type="text" id="extgroup_filesize" size="3" maxlength="15" name="max_filesize" value="{EXTGROUP_FILESIZE}" /> <select name="size_select">{S_EXT_GROUP_SIZE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="assigned_extensions">{L_ASSIGNED_EXTENSIONS}{L_COLON}</label></dt>
<dt><label for="assigned_extensions">{L_ASSIGNED_EXTENSIONS}:</label></dt>
<dd><div id="ext">{ASSIGNED_EXTENSIONS}</div> <span>[<a href="{U_EXTENSIONS}">{L_GO_TO_EXTENSIONS}</a> ]</span></dd>
<dd><select name="extensions[]" id="assigned_extensions" class="narrow" onchange="show_extensions(this);" multiple="multiple" size="8">{S_EXTENSION_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="allowed_forums">{L_ALLOWED_FORUMS}{L_COLON}</label><br /><span>{L_ALLOWED_FORUMS_EXPLAIN}</span></dt>
<dt><label for="allowed_forums">{L_ALLOWED_FORUMS}:</label><br /><span>{L_ALLOWED_FORUMS_EXPLAIN}</span></dt>
<dd><label><input type="radio" id="allowed_forums" class="radio" name="forum_select" value="0"<!-- IF not S_FORUM_IDS --> checked="checked"<!-- ENDIF --> /> {L_ALLOW_ALL_FORUMS}</label>
<label><input type="radio" class="radio" name="forum_select" value="1"<!-- IF S_FORUM_IDS --> checked="checked"<!-- ENDIF --> /> {L_ALLOW_SELECTED_FORUMS}</label></dd>
<dd><select name="allowed_forums[]" multiple="multiple" size="8">{S_FORUM_ID_OPTIONS}</select></dd>
@@ -224,7 +224,7 @@
<fieldset class="tabulated">
<legend>{L_TITLE}</legend>
<table class="table1">
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" />
<thead>
<tr>
@@ -248,13 +248,13 @@
<!-- ELSE --><br /><span>&raquo; {L_ALLOWED_IN_PM_POST}</span><!-- ENDIF -->
</td>
<td>{groups.CATEGORY}</td>
<td align="center" valign="middle" style="white-space: nowrap;">&nbsp;<a href="{groups.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{groups.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>&nbsp;</td>
<td align="center" valign="middle" style="white-space: nowrap;">&nbsp;<a href="{groups.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{groups.U_DELETE}">{ICON_DELETE}</a>&nbsp;</td>
</tr>
<!-- END groups -->
</tbody>
</table>
<p class="quick">
{L_CREATE_GROUP}{L_COLON} <input type="text" name="group_name" maxlength="30" />
{L_CREATE_GROUP}: <input type="text" name="group_name" maxlength="30" />
<input class="button2" name="add" type="submit" value="{L_SUBMIT}" />
</p>
{S_FORM_TOKEN}
@@ -291,7 +291,7 @@
<fieldset class="tabulated">
<legend>{L_TITLE}</legend>
<table class="table1">
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" />
<thead>
<tr>
@@ -331,7 +331,7 @@
<fieldset class="tabulated">
<legend>{L_TITLE}</legend>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_FILENAME}</th>
@@ -344,11 +344,11 @@
</thead>
<tbody>
<!-- BEGIN orphan -->
<tr>
<!-- IF orphan.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{orphan.U_FILE}">{orphan.REAL_FILENAME}</a></td>
<td>{orphan.FILETIME}</td>
<td>{orphan.FILESIZE}</td>
<td><strong>{L_ATTACH_ID}{L_COLON} </strong><input type="number" name="post_id[{orphan.ATTACH_ID}]" size="7" maxlength="10" value="{orphan.POST_ID}" /></td>
<td><strong>{L_ATTACH_ID}: </strong><input type="text" name="post_id[{orphan.ATTACH_ID}]" size="7" maxlength="10" value="{orphan.POST_ID}" /></td>
<td><input type="checkbox" class="radio" name="add[{orphan.ATTACH_ID}]" /></td>
<td><input type="checkbox" class="radio" name="delete[{orphan.ATTACH_ID}]" /></td>
</tr>
@@ -371,89 +371,6 @@
</fieldset>
</form>
<!-- ELSEIF S_MANAGE -->
<form id="attachments" method="post" action="{U_ACTION}">
<fieldset class="tabulated">
<legend>{L_TITLE}</legend>
<div class="pagination">
<!-- IF .pagination or TOTAL_FILES -->
{L_NUMBER_FILES}{L_COLON} {TOTAL_FILES} &bull; {L_TOTAL_SIZE}{L_COLON} {TOTAL_SIZE}
<!-- IF .pagination -->
&bull; <!-- INCLUDE pagination.html -->
<!-- ELSE -->
&bull; {S_ON_PAGE}
<!-- ENDIF -->
<!-- ENDIF -->
</div>
<table class="table1 zebra-table">
<thead>
<tr>
<th>{L_FILENAME}</th>
<th>{L_POSTED}</th>
<th>{L_FILESIZE}</th>
<th>{L_DELETE}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN attachments -->
<tr>
<td>
<!-- IF attachments.S_IN_MESSAGE -->{L_EXTENSION_GROUP}{L_COLON} <strong><!-- IF attachments.EXT_GROUP_NAME -->{attachments.EXT_GROUP_NAME}<!-- ELSE -->{L_NO_EXT_GROUP}<!-- ENDIF --></strong><br />{attachments.L_DOWNLOAD_COUNT}<br />{L_IN} {L_PRIVATE_MESSAGE}
<!-- ELSE --><a href="{attachments.U_FILE}" style="font-weight: bold;">{attachments.REAL_FILENAME}</a><br /><!-- IF attachments.COMMENT -->{attachments.COMMENT}<br /><!-- ENDIF -->{attachments.L_DOWNLOAD_COUNT}<br />{L_TOPIC}{L_COLON} <a href="{attachments.U_VIEW_TOPIC}">{attachments.TOPIC_TITLE}</a><!-- ENDIF -->
</td>
<td>{attachments.FILETIME}<br />{L_POST_BY_AUTHOR} {attachments.ATTACHMENT_POSTER}</td>
<td>{attachments.FILESIZE}</td>
<td><input type="checkbox" class="radio" name="delete[{attachments.ATTACH_ID}]" /></td>
</tr>
<!-- END attachments -->
<tr class="row4">
<td colspan="3">&nbsp;</td>
<td class="small"><a href="#" onclick="marklist('attachments', 'delete', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('attachments', 'delete', false); return false;">{L_UNMARK_ALL}</a></td>
</tr>
</tbody>
</table>
<!-- IF TOTAL_FILES -->
<fieldset class="display-options">
{L_DISPLAY_LOG}{L_COLON} &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<hr />
<div class="pagination">
{L_NUMBER_FILES}{L_COLON} {TOTAL_FILES} &bull; {L_TOTAL_SIZE}{L_COLON} {TOTAL_SIZE}
<!-- IF .pagination -->
&bull; <!-- INCLUDE pagination.html -->
<!-- ELSE -->
&bull; {S_ON_PAGE}
<!-- ENDIF -->
</div>
<!-- ENDIF -->
<p class="submit-buttons">
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
</p>
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- IF S_ACTION_OPTIONS -->
<fieldset>
<legend>{L_RESYNC_STATS}</legend>
<form id="action_stats_form" method="post" action="{U_ACTION}">
<dl>
<dt><label for="action_stats">{L_RESYNC_FILES_STATS}</label><br /><span>{L_RESYNC_FILES_STATS_EXPLAIN}</span></dt>
<dd><input type="hidden" name="action" value="stats" /><input class="button2" type="submit" id="action_stats" name="action_stats" value="{L_RUN}" /></dd>
</dl>
</form>
</fieldset>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,11 +0,0 @@
<dl>
<dt><label for="avatar_gravatar_email">{L_GRAVATAR_AVATAR_EMAIL}{L_COLON}</label><br /><span>{L_GRAVATAR_AVATAR_EMAIL_EXPLAIN}</span></dt>
<dd><input type="email" name="avatar_gravatar_email" id="avatar_gravatar_email" value="{AVATAR_GRAVATAR_EMAIL}" class="inputbox" /></dd>
</dl>
<dl>
<dt><label for="avatar_gravatar_width">{L_GRAVATAR_AVATAR_SIZE}{L_COLON}</label><br /><span>{L_GRAVATAR_AVATAR_SIZE_EXPLAIN}</span></dt>
<dd>
<input type="number" name="avatar_gravatar_width" id="avatar_gravatar_width" size="3" value="{AVATAR_GRAVATAR_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} &times;&nbsp;
<input type="number" name="avatar_gravatar_height" id="avatar_gravatar_height" size="3" value="{AVATAR_GRAVATAR_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
</dd>
</dl>

View File

@@ -1,21 +0,0 @@
<dl>
<dt><label for="category">{L_AVATAR_CATEGORY}{L_COLON}</label></dt>
<dd><select name="avatar_local_cat" id="category">
<option value="">{L_NO_AVATAR_CATEGORY}</option>
<!-- BEGIN avatar_local_cats -->
<option value="{avatar_local_cats.NAME}"<!-- IF avatar_local_cats.SELECTED --> selected="selected"<!-- ENDIF -->>{avatar_local_cats.NAME}</option>
<!-- END avatar_local_cats -->
</select>&nbsp;<input type="submit" value="{L_GO}" name="avatar_local_go" class="button2" /></dd>
</dl>
<!-- IF AVATAR_LOCAL_SHOW -->
<ul id="gallery">
<!-- BEGIN avatar_local_row -->
<!-- BEGIN avatar_local_col -->
<li>
<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 />
<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>
</li>
<!-- END avatar_local_col -->
<!-- END avatar_local_row -->
</ul>
<!-- ENDIF -->

View File

@@ -1,11 +0,0 @@
<dl>
<dt><label for="avatar_remote_url">{L_LINK_REMOTE_AVATAR}{L_COLON}</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
<dd><input type="url" name="avatar_remote_url" id="avatar_remote_url" value="{AVATAR_REMOTE_URL}" class="inputbox" /></dd>
</dl>
<dl>
<dt><label for="avatar_remote_width">{L_LINK_REMOTE_SIZE}{L_COLON}</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
<dd>
<input type="number" name="avatar_remote_width" id="avatar_remote_width" size="3" value="{AVATAR_REMOTE_WIDTH}" class="inputbox autowidth" /> {L_PIXEL} &times;&nbsp;
<input type="number" name="avatar_remote_height" id="avatar_remote_height" size="3" value="{AVATAR_REMOTE_HEIGHT}" class="inputbox autowidth" /> {L_PIXEL}
</dd>
</dl>

View File

@@ -1,11 +0,0 @@
<dl>
<dt><label for="avatar_upload_file">{L_UPLOAD_AVATAR_FILE}{L_COLON}</label></dt>
<dd><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_UPLOAD_SIZE}" /><input type="file" name="avatar_upload_file" id="avatar_upload_file" class="inputbox autowidth" /></dd>
</dl>
<!-- IF S_UPLOAD_AVATAR_URL -->
<dl>
<dt><label for="avatar_upload_url">{L_UPLOAD_AVATAR_URL}{L_COLON}</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
<dd><input type="url" name="avatar_upload_url" id="avatar_upload_url" value="" class="inputbox" /></dd>
</dl>
<!-- ENDIF -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<p>{L_ACP_BAN_EXPLAIN}</p>
@@ -44,26 +44,26 @@
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="ban">{L_BAN_CELL}{L_COLON}</label></dt>
<dt><label for="ban">{L_BAN_CELL}:</label></dt>
<dd><textarea name="ban" cols="40" rows="3" id="ban"></textarea></dd>
<!-- IF S_USERNAME_BAN --><dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd><!-- ENDIF -->
</dl>
<dl>
<dt><label for="banlength">{L_BAN_LENGTH}{L_COLON}</label></dt>
<dt><label for="banlength">{L_BAN_LENGTH}:</label></dt>
<dd><label for="banlength"><select name="banlength" id="banlength" onchange="if(this.value==-1){document.getElementById('banlengthother').style.display = 'block';}else{document.getElementById('banlengthother').style.display='none';}">{S_BAN_END_OPTIONS}</select></label></dd>
<dd id="banlengthother" style="display: none;"><label><input type="text" name="banlengthother" class="inputbox" /><br /><span>{L_YEAR_MONTH_DAY}</span></label></dd>
</dl>
<dl>
<dt><label for="banexclude">{L_BAN_EXCLUDE}{L_COLON}</label><br /><span>{L_BAN_EXCLUDE_EXPLAIN}</span></dt>
<dt><label for="banexclude">{L_BAN_EXCLUDE}:</label><br /><span>{L_BAN_EXCLUDE_EXPLAIN}</span></dt>
<dd><label><input type="radio" name="banexclude" value="1" class="radio" /> {L_YES}</label>
<label><input type="radio" name="banexclude" id="banexclude" value="0" checked="checked" class="radio" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="banreason">{L_BAN_REASON}{L_COLON}</label></dt>
<dt><label for="banreason">{L_BAN_REASON}:</label></dt>
<dd><input name="banreason" type="text" class="text medium" maxlength="255" id="banreason" /></dd>
</dl>
<dl>
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
<dt><label for="bangivereason">{L_BAN_GIVE_REASON}:</label></dt>
<dd><input name="bangivereason" type="text" class="text medium" maxlength="255" id="bangivereason" /></dd>
</dl>
@@ -88,19 +88,19 @@
<!-- IF S_BANNED_OPTIONS -->
<dl>
<dt><label for="unban">{L_BAN_CELL}{L_COLON}</label></dt>
<dt><label for="unban">{L_BAN_CELL}:</label></dt>
<dd><select id="unban" name="unban[]" multiple="multiple" size="10" style="width: 50%" onchange="if (this.selectedIndex > -1) display_details(this.options[this.selectedIndex].value); else display_details(-1);">{BANNED_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="unbanlength">{L_BAN_LENGTH}{L_COLON}</label></dt>
<dt><label for="unbanlength">{L_BAN_LENGTH}:</label></dt>
<dd><input style="border: 0;" type="text" class="text full" readonly="readonly" name="unbanlength" id="unbanlength" /></dd>
</dl>
<dl>
<dt><label for="unbanreason">{L_BAN_REASON}{L_COLON}</label></dt>
<dt><label for="unbanreason">{L_BAN_REASON}:</label></dt>
<dd><textarea style="border: 0;" class="text full" readonly="readonly" name="unbanreason" id="unbanreason" rows="5" cols="80">&nbsp;</textarea></dd>
</dl>
<dl>
<dt><label for="unbangivereason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
<dt><label for="unbangivereason">{L_BAN_GIVE_REASON}:</label></dt>
<dd><textarea style="border: 0;" class="text full" readonly="readonly" name="unbangivereason" id="unbangivereason" rows="5" cols="80">&nbsp;</textarea></dd>
</dl>
@@ -121,4 +121,4 @@
</form>
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT_BBCODE -->
@@ -47,8 +47,6 @@
</dl>
</fieldset>
<!-- EVENT acp_bbcodes_edit_fieldsets_after -->
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
@@ -58,7 +56,7 @@
<br />
<table class="table1" id="down">
<table cellspacing="1" id="down">
<thead>
<tr>
<th colspan="2">{L_TOKENS}</th>
@@ -73,7 +71,7 @@
</thead>
<tbody>
<!-- BEGIN token -->
<tr style="vertical-align: top;">
<tr valign="top">
<td class="row1">{token.TOKEN}</td>
<td class="row2">{token.EXPLAIN}</td>
</tr>
@@ -92,7 +90,7 @@
<fieldset class="tabulated">
<legend>{L_ACP_BBCODES}</legend>
<table class="table1 zebra-table" id="down">
<table cellspacing="1" id="down">
<thead>
<tr>
<th>{L_BBCODE_TAG}</th>
@@ -101,9 +99,9 @@
</thead>
<tbody>
<!-- BEGIN bbcodes -->
<tr>
<!-- IF bbcodes.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;">{bbcodes.BBCODE_TAG}</td>
<td class="actions"><!-- EVENT acp_bbcodes_actions_prepend --> <a href="{bbcodes.U_EDIT}">{ICON_EDIT}</a> <a href="{bbcodes.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a> <!-- EVENT acp_bbcodes_actions_append --></td>
<td style="text-align: right; width: 40px;"><a href="{bbcodes.U_EDIT}">{ICON_EDIT}</a> <a href="{bbcodes.U_DELETE}">{ICON_DELETE}</a></td>
</tr>
<!-- BEGINELSE -->
<tr class="row3">

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
@@ -25,7 +25,7 @@
<!-- ELSE -->
<dl>
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span>{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
</dl>
@@ -34,7 +34,7 @@
<!-- IF S_AUTH -->
<!-- BEGIN auth_tpl -->
<!-- INCLUDE {auth_tpl.TEMPLATE_FILE} -->
{auth_tpl.TPL}
<!-- END auth_tpl -->
<!-- ENDIF -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT_BOT -->
@@ -22,27 +22,27 @@
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="bot_name">{L_BOT_NAME}{L_COLON}</label><br /><span>{L_BOT_NAME_EXPLAIN}</span></dt>
<dt><label for="bot_name">{L_BOT_NAME}:</label><br /><span>{L_BOT_NAME_EXPLAIN}</span></dt>
<dd><input name="bot_name" type="text" id="bot_name" value="{BOT_NAME}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="bot_style">{L_BOT_STYLE}{L_COLON}</label><br /><span>{L_BOT_STYLE_EXPLAIN}</span></dt>
<dt><label for="bot_style">{L_BOT_STYLE}:</label><br /><span>{L_BOT_STYLE_EXPLAIN}</span></dt>
<dd><select id="bot_style" name="bot_style">{S_STYLE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="bot_lang">{L_BOT_LANG}{L_COLON}</label><br /><span>{L_BOT_LANG_EXPLAIN}</span></dt>
<dt><label for="bot_lang">{L_BOT_LANG}:</label><br /><span>{L_BOT_LANG_EXPLAIN}</span></dt>
<dd><select id="bot_lang" name="bot_lang">{S_LANG_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="bot_active">{L_BOT_ACTIVE}{L_COLON}</label></dt>
<dt><label for="bot_active">{L_BOT_ACTIVE}:</label></dt>
<dd><select id="bot_active" name="bot_active">{S_ACTIVE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="bot_agent">{L_BOT_AGENT}{L_COLON}</label><br /><span>{L_BOT_AGENT_EXPLAIN}</span></dt>
<dt><label for="bot_agent">{L_BOT_AGENT}:</label><br /><span>{L_BOT_AGENT_EXPLAIN}</span></dt>
<dd><input name="bot_agent" type="text" id="bot_agent" value="{BOT_AGENT}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="bot_ip">{L_BOT_IP}{L_COLON}</label><br /><span>{L_BOT_IP_EXPLAIN}</span></dt>
<dt><label for="bot_ip">{L_BOT_IP}:</label><br /><span>{L_BOT_IP_EXPLAIN}</span></dt>
<dd><input name="bot_ip" type="text" id="bot_ip" value="{BOT_IP}" maxlength="255" /></dd>
</dl>
@@ -62,7 +62,7 @@
<form id="acp_bots" method="post" action="{U_ACTION}">
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_BOT_NAME}</th>
@@ -73,12 +73,12 @@
</thead>
<tbody>
<!-- BEGIN bots -->
<tr>
<!-- IF bots.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="width: 50%;">{bots.BOT_NAME}</td>
<td style="width: 15%; white-space: nowrap;" align="center">&nbsp;{bots.LAST_VISIT}&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_ACTIVATE_DEACTIVATE}" data-ajax="activate_deactivate">{bots.L_ACTIVATE_DEACTIVATE}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_ACTIVATE_DEACTIVATE}">{bots.L_ACTIVATE_DEACTIVATE}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_EDIT}">{L_EDIT}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_DELETE}" data-ajax="row_delete">{L_DELETE}</a>&nbsp;</td>
<td style="text-align: center;">&nbsp;<a href="{bots.U_DELETE}">{L_DELETE}</a>&nbsp;</td>
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{bots.BOT_ID}" /></td>
</tr>
<!-- END bots -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_ACP_VC_SETTINGS}</h1>
@@ -13,25 +13,25 @@
<legend>{L_GENERAL_OPTIONS}</legend>
<dl>
<dt><label for="enable_confirm">{L_VISUAL_CONFIRM_REG}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_REG_EXPLAIN}</span></dt>
<dt><label for="enable_confirm">{L_VISUAL_CONFIRM_REG}:</label><br /><span>{L_VISUAL_CONFIRM_REG_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"<!-- IF REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
<label><input type="radio" class="radio" name="enable_confirm" value="0"<!-- IF not REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
</dl>
<dl>
<dt><label for="max_reg_attempts">{L_REG_LIMIT}{L_COLON}</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
<dd><input id="max_reg_attempts" type="number" size="4" maxlength="4" min="0" max="9999" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
<dt><label for="max_reg_attempts">{L_REG_LIMIT}:</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
<dd><input id="max_reg_attempts" type="text" size="4" maxlength="4" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
</dl>
<dl>
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}{L_COLON}</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
<dd><input id="max_login_attempts" type="number" size="4" maxlength="4" min="0" max="9999" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}:</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
<dd><input id="max_login_attempts" type="text" size="4" maxlength="4" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
</dl>
<dl>
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}:</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="enable_post_confirm" name="enable_post_confirm" value="1"<!-- IF POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
<label><input type="radio" class="radio" name="enable_post_confirm" value="0"<!-- IF not POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
</dl>
<dl>
<dt><label for="confirm_refresh">{L_VISUAL_CONFIRM_REFRESH}{L_COLON}</label><br /><span>{L_VISUAL_CONFIRM_REFRESH_EXPLAIN}</span></dt>
<dt><label for="confirm_refresh">{L_VISUAL_CONFIRM_REFRESH}:</label><br /><span>{L_VISUAL_CONFIRM_REFRESH_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="confirm_refresh" name="confirm_refresh" value="1"<!-- IF CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
<label><input type="radio" class="radio" name="confirm_refresh" value="0"<!-- IF not CONFIRM_REFRESH --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
</dl>
@@ -40,12 +40,12 @@
<fieldset>
<legend>{L_AVAILABLE_CAPTCHAS}</legend>
<dl>
<dt><label for="captcha_select">{L_CAPTCHA_SELECT}{L_COLON}</label><br /><span>{L_CAPTCHA_SELECT_EXPLAIN}</span></dt>
<dt><label for="captcha_select">{L_CAPTCHA_SELECT}:</label><br /><span>{L_CAPTCHA_SELECT_EXPLAIN}</span></dt>
<dd><select id="captcha_select" name="select_captcha" onchange="(document.getElementById('acp_captcha')).submit()" >{CAPTCHA_SELECT}</select></dd>
</dl>
<!-- IF S_CAPTCHA_HAS_CONFIG -->
<dl>
<dt><label for="configure">{L_CAPTCHA_CONFIGURE}{L_COLON}</label><br /><span>{L_CAPTCHA_CONFIGURE_EXPLAIN}</span></dt>
<dt><label for="configure">{L_CAPTCHA_CONFIGURE}:</label><br /><span>{L_CAPTCHA_CONFIGURE_EXPLAIN}</span></dt>
<dd><input class="button2" type="submit" id="configure" name="configure" value="{L_CONFIGURE}" /></dd>
</dl>
<!-- ENDIF -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF MODE eq 'restore' -->
<h1>{L_ACP_RESTORE}</h1>
@@ -13,7 +13,7 @@
<fieldset>
<legend>{L_RESTORE_OPTIONS}</legend>
<dl>
<dt><label for="file">{L_SELECT_FILE}{L_COLON}</label></dt>
<dt><label for="file">{L_SELECT_FILE}:</label></dt>
<dd><select id="file" name="file" size="10"><!-- BEGIN files --><option value="{files.FILE}"<!-- IF files.S_LAST_ROW --> selected="selected"<!-- ENDIF -->>{files.NAME}</option><!-- END files --></select></dd>
</dl>
@@ -57,26 +57,26 @@
<fieldset>
<legend>{L_BACKUP_OPTIONS}</legend>
<dl>
<dt><label for="type">{L_BACKUP_TYPE}{L_COLON}</label></dt>
<dt><label for="type">{L_BACKUP_TYPE}:</label></dt>
<dd><label><input type="radio" class="radio" name="type" value="full" id="type" checked="checked" /> {L_FULL_BACKUP}</label>
<label><input type="radio" name="type" class="radio" value="structure" /> {L_STRUCTURE_ONLY}</label>
<label><input type="radio" class="radio" name="type" value="data" /> {L_DATA_ONLY}</label></dd>
</dl>
<dl>
<dt><label for="method">{L_FILE_TYPE}{L_COLON}</label></dt>
<dt><label for="method">{L_FILE_TYPE}:</label></dt>
<dd><!-- BEGIN methods -->
<label><input name="method"<!-- IF methods.S_FIRST_ROW --> id="method" checked="checked"<!-- ENDIF --> type="radio" class="radio" value="{methods.TYPE}" /> {methods.TYPE}</label>
<!-- END methods --></dd>
</dl>
<dl>
<dt><label for="where">{L_ACTION}{L_COLON}</label></dt>
<dt><label for="where">{L_ACTION}:</label></dt>
<dd>
<label><input id="where" type="radio" class="radio" name="where" value="store" checked="checked" /> {L_STORE_LOCAL}</label>
<label><input type="radio" class="radio" name="where" value="download" /> {L_DOWNLOAD}</label>
</dd>
</dl>
<dl>
<dt><label for="table">{L_TABLE_SELECT}{L_COLON}</label></dt>
<dt><label for="table">{L_TABLE_SELECT}:</label></dt>
<dd><select id="table" name="table[]" size="10" multiple="multiple">
<!-- BEGIN tables -->
<option value="{tables.TABLE}">{tables.TABLE}</option>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_ACP_DISALLOW_USERNAMES}</h1>
@@ -11,7 +11,7 @@
<fieldset>
<legend>{L_ADD_DISALLOW_TITLE}</legend>
<dl>
<dt><label for="user">{L_USERNAME}{L_COLON}</label><br /><span>{L_ADD_DISALLOW_EXPLAIN}</span></dt>
<dt><label for="user">{L_USERNAME}:</label><br /><span>{L_ADD_DISALLOW_EXPLAIN}</span></dt>
<dd><input id="user" type="text" class="text medium" maxlength="255" name="disallowed_user" /></dd>
</dl>
@@ -28,7 +28,7 @@
<legend>{L_DELETE_DISALLOW_TITLE}</legend>
<!-- IF S_DISALLOWED_NAMES -->
<dl>
<dt><label for="disallowed">{L_USERNAME}{L_COLON}</label></dt>
<dt><label for="disallowed">{L_USERNAME}:</label></dt>
<dd><select name="disallowed_id" id="disallowed">{S_DISALLOWED_NAMES}</select></dd>
</dl>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_ACP_MASS_EMAIL}</h1>
@@ -18,32 +18,32 @@
<fieldset>
<legend>{L_COMPOSE}</legend>
<dl>
<dt><label for="group">{L_SEND_TO_GROUP}{L_COLON}</label></dt>
<dt><label for="group">{L_SEND_TO_GROUP}:</label></dt>
<dd><select id="group" name="g">{S_GROUP_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="usernames">{L_SEND_TO_USERS}{L_COLON}</label><br /><span>{L_SEND_TO_USERS_EXPLAIN}</span></dt>
<dt><label for="usernames">{L_SEND_TO_USERS}:</label><br /><span>{L_SEND_TO_USERS_EXPLAIN}</span></dt>
<dd><textarea name="usernames" id="usernames" rows="5" cols="40">{USERNAMES}</textarea></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
<dl>
<dt><label for="subject">{L_SUBJECT}{L_COLON}</label></dt>
<dt><label for="subject">{L_SUBJECT}:</label></dt>
<dd><input name="subject" type="text" id="subject" value="{SUBJECT}" /></dd>
</dl>
<dl>
<dt><label for="message">{L_MASS_MESSAGE}{L_COLON}</label><br /><span>{L_MASS_MESSAGE_EXPLAIN}</span></dt>
<dt><label for="message">{L_MASS_MESSAGE}:</label><br /><span>{L_MASS_MESSAGE_EXPLAIN}</span></dt>
<dd><textarea id="message" name="message" rows="10" cols="60">{MESSAGE}</textarea></dd>
</dl>
<dl>
<dt><label for="priority">{L_MAIL_PRIORITY}{L_COLON}</label></dt>
<dt><label for="priority">{L_MAIL_PRIORITY}:</label></dt>
<dd><select id="priority" name="mail_priority_flag">{S_PRIORITY_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="banned">{L_MAIL_BANNED}{L_COLON}</label><br /><span>{L_MAIL_BANNED_EXPLAIN}</span></dt>
<dt><label for="banned">{L_MAIL_BANNED}:</label><br /><span>{L_MAIL_BANNED_EXPLAIN}</span></dt>
<dd><input id="banned" name="mail_banned_flag" type="checkbox" class="radio" /></dd>
</dl>
<dl>
<dt><label for="send">{L_SEND_IMMEDIATELY}{L_COLON}</label></dt>
<dt><label for="send">{L_SEND_IMMEDIATELY}:</label></dt>
<dd><input id="send" type="checkbox" class="radio" name="send_immediately" checked="checked" /></dd>
</dl>

View File

@@ -1,40 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_EXTENSIONS_ADMIN}</h1>
<p>{L_EXTENSIONS_EXPLAIN}</p>
<p>{L_EXTENSION_DELETE_DATA_EXPLAIN}</p>
<!-- IF MIGRATOR_ERROR -->
<div class="errorbox">
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
<p>{MIGRATOR_ERROR}</p>
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div>
<!-- ELSEIF PRE -->
<div class="errorbox">
<p>{L_CONFIRM_MESSAGE}</p>
</div>
<form id="acp_extensions" method="post" action="{U_PURGE}">
<fieldset class="submit-buttons">
<legend>{L_EXTENSION_DELETE_DATA}</legend>
<input class="button1" type="submit" name="delete_data" value="{L_EXTENSION_DELETE_DATA}" />
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset>
</form>
<!-- ELSEIF S_NEXT_STEP -->
<div class="errorbox">
<p>{L_EXTENSION_DELETE_DATA_IN_PROGRESS}</p>
</div>
<!-- ELSE -->
<div class="successbox">
<p>{L_EXTENSION_DELETE_DATA_SUCCESS}</p>
<br />
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,97 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_EXTENSIONS_ADMIN}</h1>
<fieldset>
<legend>{L_EXT_DETAILS}</legend>
<!-- IF META_DISPLAY_NAME -->
<dl>
<dt><label for="meta_display_name">{L_DISPLAY_NAME}{L_COLON}</label></dt>
<dd><strong id="meta_display_name">{META_DISPLAY_NAME}</strong></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="meta_name">{L_CLEAN_NAME}{L_COLON}</label></dt>
<dd><strong id="meta_name">{META_NAME}</strong></dd>
</dl>
<!-- IF META_DESCRIPTION -->
<dl>
<dt><label for="meta_description">{L_DESCRIPTION}{L_COLON}</label></dt>
<dd><p id="meta_description">{META_DESCRIPTION}</p></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="meta_version">{L_VERSION}{L_COLON}</label></dt>
<dd><p id="meta_version">{META_VERSION}</p></dd>
</dl>
<!-- IF META_HOMEPAGE -->
<dl>
<dt><label for="meta_homepage">{L_HOMEPAGE}{L_COLON}</label></dt>
<dd><p id="meta_homepage">{META_HOMEPAGE}</p></dd>
</dl>
<!-- ENDIF -->
<!-- IF META_TIME -->
<dl>
<dt><label for="meta_time">{L_TIME}{L_COLON}</label></dt>
<dd><p id="meta_time">{META_TIME}</p></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="meta_license">{L_LICENCE}{L_COLON}</label></dt>
<dd><p id="meta_license">{META_LICENCE}</p></dd>
</dl>
</fieldset>
<!-- IF META_REQUIRE_PHPBB || META_REQUIRE_PHP -->
<fieldset>
<legend>{L_REQUIREMENTS}</legend>
<!-- IF META_REQUIRE_PHPBB -->
<dl<!-- IF META_REQUIRE_PHPBB_FAIL --> class="requirements_not_met"<!-- ENDIF -->>
<dt><label for="require_phpbb">{L_PHPBB_VERSION}{L_COLON}</label></dt>
<dd><p id="require_phpbb">{META_REQUIRE_PHPBB}</p></dd>
</dl>
<!-- ENDIF -->
<!-- IF META_REQUIRE_PHP -->
<dl<!-- IF META_REQUIRE_PHP_FAIL --> class="requirements_not_met"<!-- ENDIF -->>
<dt><label for="require_php">{L_PHP_VERSION}{L_COLON}</label></dt>
<dd><p id="require_php">{META_REQUIRE_PHP}</p></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<!-- ENDIF -->
<fieldset>
<legend>{L_AUTHOR_INFORMATION}</legend>
<!-- BEGIN meta_authors -->
<fieldset>
<dl>
<dt><label for="meta_author_name">{L_AUTHOR_NAME}{L_COLON}</label></dt>
<dd><strong id="meta_author_name">{meta_authors.AUTHOR_NAME}</strong></dd>
</dl>
<!-- IF meta_authors.AUTHOR_EMAIL -->
<dl>
<dt><label for="meta_author_email">{L_AUTHOR_EMAIL}{L_COLON}</label></dt>
<dd><strong id="meta_author_email"><a href="mailto:{meta_authors.AUTHOR_EMAIL}">{meta_authors.AUTHOR_EMAIL}</a></strong></dd>
</dl>
<!-- ENDIF -->
<!-- IF meta_authors.AUTHOR_HOMEPAGE -->
<dl>
<dt><label for="meta_author_url">{L_AUTHOR_HOMEPAGE}{L_COLON}</label></dt>
<dd><strong id="meta_author_url"><a href="{meta_authors.AUTHOR_HOMEPAGE}">{meta_authors.AUTHOR_HOMEPAGE}</a></strong></dd>
</dl>
<!-- ENDIF -->
<!-- IF meta_authors.AUTHOR_ROLE -->
<dl>
<dt><label for="author_role">{L_AUTHOR_ROLE}{L_COLON}</label></dt>
<dd><strong id="meta_author_role">{meta_authors.AUTHOR_ROLE}</strong></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<!-- END meta_authors -->
</fieldset>
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,34 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_EXTENSIONS_ADMIN}</h1>
<p>{L_EXTENSIONS_EXPLAIN}</p>
<p>{L_EXTENSION_DISABLE_EXPLAIN}</p>
<!-- IF PRE -->
<div class="errorbox">
<p>{L_CONFIRM_MESSAGE}</p>
</div>
<form id="acp_extensions" method="post" action="{U_DISABLE}">
<fieldset class="submit-buttons">
<legend>{L_EXTENSION_DISABLE}</legend>
<input class="button1" type="submit" name="disable" value="{L_EXTENSION_DISABLE}" />
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset>
</form>
<!-- ELSEIF S_NEXT_STEP -->
<div class="errorbox">
<p>{L_EXTENSION_DISABLE_IN_PROGRESS}</p>
</div>
<!-- ELSE -->
<div class="successbox">
<p>{L_EXTENSION_DISABLE_SUCCESS}</p>
<br />
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,40 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_EXTENSIONS_ADMIN}</h1>
<p>{L_EXTENSIONS_EXPLAIN}</p>
<p>{L_EXTENSION_ENABLE_EXPLAIN}</p>
<!-- IF MIGRATOR_ERROR -->
<div class="errorbox">
<p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
<p>{MIGRATOR_ERROR}</p>
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div>
<!-- ELSEIF PRE -->
<div class="errorbox">
<p>{L_CONFIRM_MESSAGE}</p>
</div>
<form id="acp_extensions" method="post" action="{U_ENABLE}">
<fieldset class="submit-buttons">
<legend>{L_EXTENSION_ENABLE}</legend>
<input class="button1" type="submit" name="enable" value="{L_EXTENSION_ENABLE}" />
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset>
</form>
<!-- ELSEIF S_NEXT_STEP -->
<div class="errorbox">
<p>{L_EXTENSION_ENABLE_IN_PROGRESS}</p>
</div>
<!-- ELSE -->
<div class="successbox">
<p>{L_EXTENSION_ENABLE_SUCCESS}</p>
<br />
<p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
</div>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,76 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<h1>{L_EXTENSIONS_ADMIN}</h1>
<p>{L_EXTENSIONS_EXPLAIN}</p>
<table class="table1">
<col class="row1" ><col class="row2" ><col class="row2" >
<thead>
<tr>
<th>{L_EXTENSION_NAME}</th>
<th>{L_EXTENSION_OPTIONS}</th>
<th>{L_EXTENSION_ACTIONS}</th>
</tr>
</thead>
<tbody>
<!-- IF .enabled -->
<tr>
<td class="row3" colspan="3"><strong>{L_EXTENSIONS_ENABLED}</strong></td>
</tr>
<!-- BEGIN enabled -->
<tr class="ext_enabled">
<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;">
<!-- BEGIN actions -->
<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 -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
</td>
</tr>
<!-- END enabled -->
<!-- ENDIF -->
<!-- IF .disabled -->
<tr>
<td class="row3" colspan="3"><strong>{L_EXTENSIONS_DISABLED}</strong></td>
</tr>
<!-- BEGIN disabled -->
<tr class="ext_disabled">
<td><strong>{disabled.META_DISPLAY_NAME}</strong></td>
<td style="text-align: center;">
<!-- IF disabled.U_DETAILS --><a href="{disabled.U_DETAILS}">{L_DETAILS}</a><!-- ENDIF -->
</td>
<td style="text-align: center;">
<!-- BEGIN actions -->
<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 -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
</td>
</tr>
<!-- END disabled -->
<!-- ENDIF -->
</tbody>
</table>
<br />
<table class="table1">
<tr>
<th>{L_EXTENSION_UPDATE_HEADLINE}</th>
</tr>
<tr>
<td class="row3">{L_EXTENSION_UPDATE_EXPLAIN}</td>
</tr>
<tr>
<th>{L_EXTENSION_REMOVE_HEADLINE}</th>
</tr>
<tr>
<td class="row3">{L_EXTENSION_REMOVE_EXPLAIN}</td>
</tr>
</tbody>
</table>
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT_FORUM -->
@@ -112,13 +112,13 @@
<fieldset>
<legend>{L_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="forum_type">{L_FORUM_TYPE}{L_COLON}</label></dt>
<dt><label for="forum_type">{L_FORUM_TYPE}:</label></dt>
<dd><select id="forum_type" name="forum_type" onchange="display_options(this.options[this.selectedIndex].value);">{S_FORUM_TYPE_OPTIONS}</select></dd>
</dl>
<!-- IF not S_ADD_ACTION and S_FORUM_ORIG_POST -->
<div id="type_actions">
<dl>
<dt><label for="type_action">{L_DECIDE_MOVE_DELETE_CONTENT}{L_COLON}</label></dt>
<dt><label for="type_action">{L_DECIDE_MOVE_DELETE_CONTENT}:</label></dt>
<dd><label><input type="radio" class="radio" name="type_action" value="delete"<!-- IF not S_MOVE_FORUM_OPTIONS --> checked="checked" id="type_action"<!-- ENDIF --> /> {L_DELETE_ALL_POSTS}</label></dd>
<!-- IF S_MOVE_FORUM_OPTIONS --><dd><label><input type="radio" class="radio" name="type_action" id="type_action" value="move" checked="checked" /> {L_MOVE_POSTS_TO}</label> <select name="to_forum_id">{S_MOVE_FORUM_OPTIONS}</select></dd><!-- ENDIF -->
</dl>
@@ -127,7 +127,7 @@
<!-- IF not S_ADD_ACTION and S_FORUM_ORIG_CAT and S_HAS_SUBFORUMS -->
<div id="cat_to_link_actions">
<dl>
<dt><label for="action_subforums">{L_DECIDE_MOVE_DELETE_SUBFORUMS}{L_COLON}</label></dt>
<dt><label for="action_subforums">{L_DECIDE_MOVE_DELETE_SUBFORUMS}:</label></dt>
<!-- IF S_FORUMS_LIST -->
<dd><label><input type="radio" class="radio" id="action_subforums" name="action_subforums" value="move" checked="checked" /> {L_MOVE_SUBFORUMS_TO}</label> <select name="subforums_to_id">{S_FORUMS_LIST}</select></dd>
<!-- ELSE -->
@@ -137,49 +137,49 @@
</div>
<!-- ENDIF -->
<dl>
<dt><label for="parent">{L_FORUM_PARENT}{L_COLON}</label></dt>
<dt><label for="parent">{L_FORUM_PARENT}:</label></dt>
<dd><select id="parent" name="forum_parent_id"><option value="0"<!-- IF not S_FORUM_PARENT_ID --> selected="selected"<!-- ENDIF -->>{L_NO_PARENT}</option>{S_PARENT_OPTIONS}</select></dd>
</dl>
<!-- IF S_CAN_COPY_PERMISSIONS -->
<dl>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="forum_name">{L_FORUM_NAME}{L_COLON}</label></dt>
<dt><label for="forum_name">{L_FORUM_NAME}:</label></dt>
<dd><input class="text medium" type="text" id="forum_name" name="forum_name" value="{FORUM_NAME}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="forum_desc">{L_FORUM_DESC}{L_COLON}</label><br /><span>{L_FORUM_DESC_EXPLAIN}</span></dt>
<dd><textarea id="forum_desc" name="forum_desc" rows="5" cols="45" data-bbcode="true">{FORUM_DESC}</textarea></dd>
<dt><label for="forum_desc">{L_FORUM_DESC}:</label><br /><span>{L_FORUM_DESC_EXPLAIN}</span></dt>
<dd><textarea id="forum_desc" name="forum_desc" rows="5" cols="45">{FORUM_DESC}</textarea></dd>
<dd><label><input type="checkbox" class="radio" name="desc_parse_bbcode"<!-- IF S_DESC_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE}</label>
<label><input type="checkbox" class="radio" name="desc_parse_smilies"<!-- IF S_DESC_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES}</label>
<label><input type="checkbox" class="radio" name="desc_parse_urls"<!-- IF S_DESC_URLS_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_URLS}</label></dd>
</dl>
<dl>
<dt><label for="forum_image">{L_FORUM_IMAGE}{L_COLON}</label><br /><span>{L_FORUM_IMAGE_EXPLAIN}</span></dt>
<dt><label for="forum_image">{L_FORUM_IMAGE}:</label><br /><span>{L_FORUM_IMAGE_EXPLAIN}</span></dt>
<dd><input class="text medium" type="text" id="forum_image" name="forum_image" value="{FORUM_IMAGE}" maxlength="255" /></dd>
<!-- IF FORUM_IMAGE_SRC -->
<dd><img src="{FORUM_IMAGE_SRC}" alt="{L_FORUM_IMAGE}" /></dd>
<!-- ENDIF -->
</dl>
<dl>
<dt><label for="forum_password">{L_FORUM_PASSWORD}{L_COLON}</label><br /><span>{L_FORUM_PASSWORD_EXPLAIN}</span></dt>
<dt><label for="forum_password">{L_FORUM_PASSWORD}:</label><br /><span>{L_FORUM_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="forum_password" name="forum_password" value="<!-- IF S_FORUM_PASSWORD_SET -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- ENDIF -->" autocomplete="off" /></dd>
</dl>
<dl>
<dt><label for="forum_password_confirm">{L_FORUM_PASSWORD_CONFIRM}{L_COLON}</label><br /><span>{L_FORUM_PASSWORD_CONFIRM_EXPLAIN}</span></dt>
<dt><label for="forum_password_confirm">{L_FORUM_PASSWORD_CONFIRM}:</label><br /><span>{L_FORUM_PASSWORD_CONFIRM_EXPLAIN}</span></dt>
<dd><input type="password" id="forum_password_confirm" name="forum_password_confirm" value="<!-- IF S_FORUM_PASSWORD_SET -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- ENDIF -->" autocomplete="off" /></dd>
</dl>
<!-- IF S_FORUM_PASSWORD_SET -->
<dl>
<dt><label for="forum_password_unset">{L_FORUM_PASSWORD_UNSET}{L_COLON}</label><br /><span>{L_FORUM_PASSWORD_UNSET_EXPLAIN}</span></dt>
<dt><label for="forum_password_unset">{L_FORUM_PASSWORD_UNSET}:</label><br /><span>{L_FORUM_PASSWORD_UNSET_EXPLAIN}</span></dt>
<dd><input id="forum_password_unset" name="forum_password_unset" type="checkbox" /></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="forum_style">{L_FORUM_STYLE}{L_COLON}</label></dt>
<dt><label for="forum_style">{L_FORUM_STYLE}:</label></dt>
<dd><select id="forum_style" name="forum_style"><option value="0">{L_DEFAULT_STYLE}</option>{S_STYLES_OPTIONS}</select></dd>
</dl>
</fieldset>
@@ -188,7 +188,7 @@
<fieldset>
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="display_active">{L_DISPLAY_ACTIVE_TOPICS}{L_COLON}</label><br /><span>{L_DISPLAY_ACTIVE_TOPICS_EXPLAIN}</span></dt>
<dt><label for="display_active">{L_DISPLAY_ACTIVE_TOPICS}:</label><br /><span>{L_DISPLAY_ACTIVE_TOPICS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="display_active" value="1"<!-- IF S_ENABLE_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="display_active" value="0"<!-- IF not S_ENABLE_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
@@ -199,82 +199,81 @@
<fieldset>
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="forum_status">{L_FORUM_STATUS}{L_COLON}</label></dt>
<dt><label for="forum_status">{L_FORUM_STATUS}:</label></dt>
<dd><select id="forum_status" name="forum_status">{S_STATUS_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="display_subforum_list">{L_LIST_SUBFORUMS}{L_COLON}</label><br /><span>{L_LIST_SUBFORUMS_EXPLAIN}</span></dt>
<dt><label for="display_subforum_list">{L_LIST_SUBFORUMS}:</label><br /><span>{L_LIST_SUBFORUMS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="display_subforum_list" value="1"<!-- IF S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="display_subforum_list" value="0"<!-- IF not S_DISPLAY_SUBFORUM_LIST --> id="display_subforum_list" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="display_on_index">{L_LIST_INDEX}{L_COLON}</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
<dt><label for="display_on_index">{L_LIST_INDEX}:</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="display_on_index" value="0"<!-- IF not S_DISPLAY_ON_INDEX --> id="display_on_index" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="enable_post_review">{L_ENABLE_POST_REVIEW}{L_COLON}</label><br /><span>{L_ENABLE_POST_REVIEW_EXPLAIN}</span></dt>
<dt><label for="enable_post_review">{L_ENABLE_POST_REVIEW}:</label><br /><span>{L_ENABLE_POST_REVIEW_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="enable_post_review" value="1"<!-- IF S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="enable_post_review" value="0"<!-- IF not S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="enable_quick_reply">{L_ENABLE_QUICK_REPLY}{L_COLON}</label><br /><span>{L_ENABLE_QUICK_REPLY_EXPLAIN}</span></dt>
<dt><label for="enable_quick_reply">{L_ENABLE_QUICK_REPLY}:</label><br /><span>{L_ENABLE_QUICK_REPLY_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="enable_quick_reply" value="1"<!-- IF S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="enable_quick_reply" value="0"<!-- IF not S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="enable_indexing">{L_ENABLE_INDEXING}{L_COLON}</label><br /><span>{L_ENABLE_INDEXING_EXPLAIN}</span></dt>
<dt><label for="enable_indexing">{L_ENABLE_INDEXING}:</label><br /><span>{L_ENABLE_INDEXING_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="enable_indexing" value="1"<!-- IF S_ENABLE_INDEXING --> id="enable_indexing" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="enable_indexing" value="0"<!-- IF not S_ENABLE_INDEXING --> id="enable_indexing" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="enable_icons">{L_ENABLE_TOPIC_ICONS}{L_COLON}</label></dt>
<dt><label for="enable_icons">{L_ENABLE_TOPIC_ICONS}:</label></dt>
<dd><label><input type="radio" class="radio" name="enable_icons" value="1"<!-- IF S_TOPIC_ICONS --> id="enable_icons" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="enable_icons" value="0"<!-- IF not S_TOPIC_ICONS --> id="enable_icons" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="display_recent">{L_ENABLE_RECENT}{L_COLON}</label><br /><span>{L_ENABLE_RECENT_EXPLAIN}</span></dt>
<dt><label for="display_recent">{L_ENABLE_RECENT}:</label><br /><span>{L_ENABLE_RECENT_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="display_recent" value="1"<!-- IF S_DISPLAY_ACTIVE_TOPICS --> id="display_recent" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="display_recent" value="0"<!-- IF not S_DISPLAY_ACTIVE_TOPICS --> id="display_recent" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}{L_COLON}</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
<dd><input type="number" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" size="4" maxlength="4" min="0" max="9999" /></dd>
<dt><label for="topics_per_page">{L_FORUM_TOPICS_PAGE}:</label><br /><span>{L_FORUM_TOPICS_PAGE_EXPLAIN}</span></dt>
<dd><input type="text" id="topics_per_page" name="topics_per_page" value="{TOPICS_PER_PAGE}" size="4" maxlength="4" /></dd>
</dl>
<!-- EVENT acp_forums_normal_settings_append -->
</fieldset>
<fieldset>
<legend>{L_FORUM_PRUNE_SETTINGS}</legend>
<dl>
<dt><label for="enable_prune">{L_FORUM_AUTO_PRUNE}{L_COLON}</label><br /><span>{L_FORUM_AUTO_PRUNE_EXPLAIN}</span></dt>
<dt><label for="enable_prune">{L_FORUM_AUTO_PRUNE}:</label><br /><span>{L_FORUM_AUTO_PRUNE_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="enable_prune" value="1"<!-- IF S_PRUNE_ENABLE --> id="enable_prune" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="enable_prune" value="0"<!-- IF not S_PRUNE_ENABLE --> id="enable_prune" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="prune_freq">{L_AUTO_PRUNE_FREQ}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_FREQ_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dt><label for="prune_freq">{L_AUTO_PRUNE_FREQ}:</label><br /><span>{L_AUTO_PRUNE_FREQ_EXPLAIN}</span></dt>
<dd><input type="text" id="prune_freq" name="prune_freq" value="{PRUNE_FREQ}" maxlength="4" size="4" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_days">{L_AUTO_PRUNE_DAYS}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_DAYS_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dt><label for="prune_days">{L_AUTO_PRUNE_DAYS}:</label><br /><span>{L_AUTO_PRUNE_DAYS_EXPLAIN}</span></dt>
<dd><input type="text" id="prune_days" name="prune_days" value="{PRUNE_DAYS}" maxlength="4" size="4" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_viewed">{L_AUTO_PRUNE_VIEWED}{L_COLON}</label><br /><span>{L_AUTO_PRUNE_VIEWED_EXPLAIN}</span></dt>
<dd><input type="number" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" maxlength="4" size="4" min="0" max="9999" /> {L_DAYS}</dd>
<dt><label for="prune_viewed">{L_AUTO_PRUNE_VIEWED}:</label><br /><span>{L_AUTO_PRUNE_VIEWED_EXPLAIN}</span></dt>
<dd><input type="text" id="prune_viewed" name="prune_viewed" value="{PRUNE_VIEWED}" maxlength="4" size="4" /> {L_DAYS}</dd>
</dl>
<dl>
<dt><label for="prune_old_polls">{L_PRUNE_OLD_POLLS}{L_COLON}</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
<dt><label for="prune_old_polls">{L_PRUNE_OLD_POLLS}:</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="prune_old_polls" value="1"<!-- IF S_PRUNE_OLD_POLLS --> id="prune_old_polls" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="prune_old_polls" value="0"<!-- IF not S_PRUNE_OLD_POLLS --> id="prune_old_polls" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="prune_announce">{L_PRUNE_ANNOUNCEMENTS}{L_COLON}</label></dt>
<dt><label for="prune_announce">{L_PRUNE_ANNOUNCEMENTS}:</label></dt>
<dd><label><input type="radio" class="radio" name="prune_announce" value="1"<!-- IF S_PRUNE_ANNOUNCE --> id="prune_announce" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="prune_announce" value="0"<!-- IF not S_PRUNE_ANNOUNCE --> id="prune_announce" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="prune_sticky">{L_PRUNE_STICKY}{L_COLON}</label></dt>
<dt><label for="prune_sticky">{L_PRUNE_STICKY}:</label></dt>
<dd><label><input type="radio" class="radio" name="prune_sticky" value="1"<!-- IF S_PRUNE_STICKY --> id="prune_sticky" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="prune_sticky" value="0"<!-- IF not S_PRUNE_STICKY --> id="prune_sticky" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
@@ -285,16 +284,16 @@
<fieldset>
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
<dl>
<dt><label for="link_display_on_index">{L_LIST_INDEX}{L_COLON}</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
<dt><label for="link_display_on_index">{L_LIST_INDEX}:</label><br /><span>{L_LIST_INDEX_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="link_display_on_index" value="1"<!-- IF S_DISPLAY_ON_INDEX --> id="link_display_on_index" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="link_display_on_index" value="0"<!-- IF not S_DISPLAY_ON_INDEX --> id="link_display_on_index" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="forum_link">{L_FORUM_LINK}{L_COLON}</label><br /><span>{L_FORUM_LINK_EXPLAIN}</span></dt>
<dt><label for="forum_link">{L_FORUM_LINK}:</label><br /><span>{L_FORUM_LINK_EXPLAIN}</span></dt>
<dd><input class="text medium" type="text" id="forum_link" name="forum_link" value="{FORUM_DATA_LINK}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="forum_link_track">{L_FORUM_LINK_TRACK}{L_COLON}</label><br /><span>{L_FORUM_LINK_TRACK_EXPLAIN}</span></dt>
<dt><label for="forum_link_track">{L_FORUM_LINK_TRACK}:</label><br /><span>{L_FORUM_LINK_TRACK_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="forum_link_track" value="1"<!-- IF S_FORUM_LINK_TRACK --> id="forum_link_track" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="forum_link_track" value="0"<!-- IF not S_FORUM_LINK_TRACK --> id="forum_link_track" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
@@ -305,18 +304,18 @@
<fieldset>
<legend>{L_FORUM_RULES}</legend>
<dl>
<dt><label for="forum_rules_link">{L_FORUM_RULES_LINK}{L_COLON}</label><br /><span>{L_FORUM_RULES_LINK_EXPLAIN}</span></dt>
<dt><label for="forum_rules_link">{L_FORUM_RULES_LINK}:</label><br /><span>{L_FORUM_RULES_LINK_EXPLAIN}</span></dt>
<dd><input class="text medium" type="text" id="forum_rules_link" name="forum_rules_link" value="{FORUM_RULES_LINK}" maxlength="255" /></dd>
</dl>
<!-- IF FORUM_RULES_PREVIEW -->
<dl>
<dt><label>{L_FORUM_RULES_PREVIEW}{L_COLON}</label></dt>
<dt><label>{L_FORUM_RULES_PREVIEW}:</label></dt>
<dd>{FORUM_RULES_PREVIEW}</dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="forum_rules">{L_FORUM_RULES}{L_COLON}</label><br /><span>{L_FORUM_RULES_EXPLAIN}</span></dt>
<dd><textarea id="forum_rules" name="forum_rules" rows="4" cols="70" data-bbcode="true">{FORUM_RULES_PLAIN}</textarea></dd>
<dt><label for="forum_rules">{L_FORUM_RULES}:</label><br /><span>{L_FORUM_RULES_EXPLAIN}</span></dt>
<dd><textarea id="forum_rules" name="forum_rules" rows="4" cols="70">{FORUM_RULES_PLAIN}</textarea></dd>
<dd><label><input type="checkbox" class="radio" name="rules_parse_bbcode"<!-- IF S_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE}</label>
<label><input type="checkbox" class="radio" name="rules_parse_smilies"<!-- IF S_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES}</label>
<label><input type="checkbox" class="radio" name="rules_parse_urls"<!-- IF S_URLS_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_URLS}</label></dd>
@@ -352,12 +351,12 @@
<fieldset>
<legend>{L_FORUM_DELETE}</legend>
<dl>
<dt><label>{L_FORUM_NAME}{L_COLON}</label></dt>
<dt><label>{L_FORUM_NAME}:</label></dt>
<dd><strong>{FORUM_NAME}</strong></dd>
</dl>
<!-- IF S_FORUM_POST -->
<dl>
<dt><label for="delete_action">{L_ACTION}{L_COLON}</label></dt>
<dt><label for="delete_action">{L_ACTION}:</label></dt>
<dd><label><input type="radio" class="radio" id="delete_action" name="action_posts" value="delete" checked="checked" /> {L_DELETE_ALL_POSTS}</label></dd>
<!-- IF S_MOVE_FORUM_OPTIONS -->
<dd><label><input type="radio" class="radio" name="action_posts" value="move" /> {L_MOVE_POSTS_TO}</label> <select name="posts_to_id">{S_MOVE_FORUM_OPTIONS}</select></dd>
@@ -366,7 +365,7 @@
<!-- ENDIF -->
<!-- IF S_HAS_SUBFORUMS -->
<dl>
<dt><label for="sub_delete_action">{L_ACTION}{L_COLON}</label></dt>
<dt><label for="sub_delete_action">{L_ACTION}:</label></dt>
<dd><label><input type="radio" class="radio" id="sub_delete_action" name="action_subforums" value="delete" checked="checked" /> {L_DELETE_SUBFORUMS}</label></dd>
<!-- IF S_FORUMS_LIST -->
<dd><label><input type="radio" class="radio" name="action_subforums" value="move" /> {L_MOVE_SUBFORUMS_TO}</label> <select name="subforums_to_id">{S_FORUMS_LIST}</select></dd>
@@ -437,26 +436,35 @@
</div>
<!-- ENDIF -->
<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 -->
<table class="table1 forums">
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" />
<tbody>
<!-- BEGIN forums -->
<tr>
<td class="folder">{forums.FOLDER_IMAGE}</td>
<td class="forum-desc">
<td style="width: 5%; text-align: center;">{forums.FOLDER_IMAGE}</td>
<td>
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
<strong><!-- IF forums.S_FORUM_LINK -->{forums.FORUM_NAME}<!-- ELSE --><a href="{forums.U_FORUM}">{forums.FORUM_NAME}</a><!-- ENDIF --></strong>
<!-- IF forums.FORUM_DESCRIPTION --><br /><span>{forums.FORUM_DESCRIPTION}</span><!-- ENDIF -->
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}{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}: <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}: <strong>{forums.FORUM_POSTS}</strong></span><!-- ENDIF -->
</td>
<td class="actions">
<span class="up-disabled" style="display:none;">{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-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{forums.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED}
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF not forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
<a href="{forums.U_MOVE_UP}">{ICON_MOVE_UP}</a>
<a href="{forums.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF forums.S_LAST_ROW && not forums.S_FIRST_ROW -->
<a href="{forums.U_MOVE_UP}">{ICON_MOVE_UP}</a>
{ICON_MOVE_DOWN_DISABLED}
<!-- ELSE -->
{ICON_MOVE_UP_DISABLED}
{ICON_MOVE_DOWN_DISABLED}
<!-- ENDIF -->
<a href="{forums.U_EDIT}">{ICON_EDIT}</a>
<!-- IF not forums.S_FORUM_LINK -->
<a href="{forums.U_SYNC}" onclick="popup_progress_bar();">{ICON_SYNC}</a>
@@ -474,7 +482,7 @@
<form id="fselect" method="post" action="{U_SEL_ACTION}">
<fieldset class="quick">
{L_SELECT_FORUM}{L_COLON} <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{FORUM_BOX}</select>
{L_SELECT_FORUM}: <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{FORUM_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
{S_FORM_TOKEN}

View File

@@ -9,7 +9,7 @@
<fieldset>
<dl>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
<div style="text-align: center;">{S_FORM_TOKEN}{S_HIDDEN_FIELDS}

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT -->
@@ -17,16 +17,16 @@
</div>
<!-- ENDIF -->
<form id="settings" method="post" action="{U_ACTION}" enctype="multipart/form-data">
<form id="settings" method="post" action="{U_ACTION}"<!-- IF S_CAN_UPLOAD --> enctype="multipart/form-data"<!-- ENDIF -->>
<fieldset>
<legend>{L_GROUP_DETAILS}</legend>
<dl>
<dt><label<!-- IF not S_SPECIAL_GROUP --> for="group_name"<!-- ENDIF -->>{L_GROUP_NAME}{L_COLON}</label></dt>
<dt><label<!-- IF not S_SPECIAL_GROUP --> for="group_name"<!-- ENDIF -->>{L_GROUP_NAME}:</label></dt>
<dd><!-- IF S_SPECIAL_GROUP --><strong>{GROUP_NAME}</strong><!-- ENDIF --><input name="group_name" type="<!-- IF S_SPECIAL_GROUP -->hidden<!-- ELSE -->text<!-- ENDIF -->" id="group_name" value="{GROUP_INTERNAL_NAME}" /></dd>
</dl>
<dl>
<dt><label for="group_desc">{L_GROUP_DESC}{L_COLON}</label></dt>
<dt><label for="group_desc">{L_GROUP_DESC}:</label></dt>
<dd><textarea id="group_desc" name="group_desc" rows="5" cols="45">{GROUP_DESC}</textarea></dd>
<dd><label><input type="checkbox" class="radio" name="desc_parse_bbcode"<!-- IF S_DESC_BBCODE_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_BBCODE}</label>
<label><input type="checkbox" class="radio" name="desc_parse_smilies"<!-- IF S_DESC_SMILIES_CHECKED --> checked="checked"<!-- ENDIF --> /> {L_PARSE_SMILIES}</label>
@@ -34,7 +34,7 @@
</dl>
<!-- IF not S_SPECIAL_GROUP -->
<dl>
<dt><label for="group_type">{L_GROUP_TYPE}{L_COLON}</label><br /><span>{L_GROUP_TYPE_EXPLAIN}</span></dt>
<dt><label for="group_type">{L_GROUP_TYPE}:</label><br /><span>{L_GROUP_TYPE_EXPLAIN}</span></dt>
<dd>
<label><input name="group_type" type="radio" class="radio" id="group_type" value="{GROUP_TYPE_FREE}"{GROUP_FREE} /> {L_GROUP_OPEN}</label>
<label><input name="group_type" type="radio" class="radio" value="{GROUP_TYPE_OPEN}"{GROUP_OPEN} /> {L_GROUP_REQUEST}</label>
@@ -48,7 +48,7 @@
<!-- IF S_ADD_GROUP and S_GROUP_PERM -->
<dl>
<dt><label for="group_perm_from">{L_COPY_PERMISSIONS}{L_COLON}</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dt><label for="group_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="group_perm_from" name="group_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_GROUP_OPTIONS}</select></dd>
</dl>
<!-- ENDIF -->
@@ -58,24 +58,20 @@
<legend>{L_GROUP_OPTIONS_SAVE}</legend>
<!-- IF S_USER_FOUNDER -->
<dl>
<dt><label for="group_founder_manage">{L_GROUP_FOUNDER_MANAGE}{L_COLON}</label><br /><span>{L_GROUP_FOUNDER_MANAGE_EXPLAIN}</span></dt>
<dt><label for="group_founder_manage">{L_GROUP_FOUNDER_MANAGE}:</label><br /><span>{L_GROUP_FOUNDER_MANAGE_EXPLAIN}</span></dt>
<dd><input name="group_founder_manage" type="checkbox" value="1" class="radio" id="group_founder_manage"{GROUP_FOUNDER_MANAGE} /></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="group_skip_auth">{L_GROUP_SKIP_AUTH}{L_COLON}</label><br /><span>{L_GROUP_SKIP_AUTH_EXPLAIN}</span></dt>
<dt><label for="group_skip_auth">{L_GROUP_SKIP_AUTH}:</label><br /><span>{L_GROUP_SKIP_AUTH_EXPLAIN}</span></dt>
<dd><input name="group_skip_auth" type="checkbox" value="1" class="radio" id="group_skip_auth"{GROUP_SKIP_AUTH} /></dd>
</dl>
<dl>
<dt><label for="group_legend">{L_GROUP_LEGEND}{L_COLON}</label></dt>
<dt><label for="group_legend">{L_GROUP_LEGEND}:</label></dt>
<dd><input name="group_legend" type="checkbox" value="1" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
</dl>
<dl>
<dt><label for="group_teampage">{L_GROUP_TEAMPAGE}{L_COLON}</label></dt>
<dd><input name="group_teampage" type="checkbox" value="1" class="radio" id="group_teampage"{GROUP_TEAMPAGE} /></dd>
</dl>
<dl>
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}{L_COLON}</label><br /><span>{L_GROUP_RECEIVE_PM_EXPLAIN}</span></dt>
<dt><label for="group_receive_pm">{L_GROUP_RECEIVE_PM}:</label><br /><span>{L_GROUP_RECEIVE_PM_EXPLAIN}</span></dt>
<dd><input name="group_receive_pm" type="checkbox" value="1" class="radio" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
</dl>
</fieldset>
@@ -83,24 +79,19 @@
<fieldset>
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
<dl>
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}{L_COLON}</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
<dd><input name="group_message_limit" type="number" id="group_message_limit" maxlength="4" size="4" min="0" max="9999" value="{GROUP_MESSAGE_LIMIT}" /></dd>
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}:</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
<dd><input name="group_message_limit" type="text" id="group_message_limit" maxlength="4" size="4" value="{GROUP_MESSAGE_LIMIT}" /></dd>
</dl>
<dl>
<dt><label for="group_max_recipients">{L_GROUP_MAX_RECIPIENTS}{L_COLON}</label><br /><span>{L_GROUP_MAX_RECIPIENTS_EXPLAIN}</span></dt>
<dd><input name="group_max_recipients" type="number" id="group_max_recipients" maxlength="10" size="4" value="{GROUP_MAX_RECIPIENTS}" /></dd>
<dt><label for="group_max_recipients">{L_GROUP_MAX_RECIPIENTS}:</label><br /><span>{L_GROUP_MAX_RECIPIENTS_EXPLAIN}</span></dt>
<dd><input name="group_max_recipients" type="text" id="group_max_recipients" maxlength="10" size="4" value="{GROUP_MAX_RECIPIENTS}" /></dd>
</dl>
<dl>
<dt><label for="group_colour">{L_GROUP_COLOR}{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 -->&nbsp;<span style="background-color: #{GROUP_COLOUR}">&nbsp; &nbsp;</span><!-- ENDIF -->&nbsp;&nbsp;<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>
<dt><label for="group_colour">{L_GROUP_COLOR}:</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 -->&nbsp;<span style="background-color: #{GROUP_COLOUR}">&nbsp; &nbsp;</span><!-- ENDIF -->&nbsp;&nbsp;<span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
</dl>
<dl>
<dt><label for="group_rank">{L_GROUP_RANK}{L_COLON}</label></dt>
<dt><label for="group_rank">{L_GROUP_RANK}:</label></dt>
<dd><select name="group_rank" id="group_rank">{S_RANK_OPTIONS}</select></dd>
</dl>
</fieldset>
@@ -108,27 +99,67 @@
<fieldset>
<legend>{L_GROUP_AVATAR}</legend>
<dl>
<dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd>{AVATAR}</dd>
<dd><label for="avatar_delete"><input type="checkbox" name="avatar_delete" id="avatar_delete" /> {L_DELETE_AVATAR}</label></dd>
<dt><label>{L_CURRENT_IMAGE}:</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd>{AVATAR_IMAGE}</dd>
<dd><label><input type="checkbox" class="radio" name="delete" /> {L_DELETE_AVATAR}</label></dd>
</dl>
<dl>
<dt><label>{L_AVATAR_TYPE}{L_COLON}</label></dt>
<dd><select name="avatar_driver" id="avatar_driver">
<option value="">{L_NO_AVATAR_CATEGORY}</option>
<!-- BEGIN avatar_drivers -->
<option value="{avatar_drivers.DRIVER}"<!-- IF avatar_drivers.SELECTED --> selected="selected"<!-- ENDIF -->>{avatar_drivers.L_TITLE}</option>
<!-- END avatar_drivers -->
</select></dd>
</dl>
<div id="avatar_options">
<!-- BEGIN avatar_drivers -->
<div id="avatar_option_{avatar_drivers.DRIVER}">
<p>{avatar_drivers.L_EXPLAIN}</p>
{avatar_drivers.OUTPUT}
</div>
<!-- END avatar_drivers -->
</div>
<!-- IF not S_IN_AVATAR_GALLERY -->
<!-- IF S_CAN_UPLOAD -->
<dl>
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></dt>
<dd><input type="file" id="uploadfile" name="uploadfile" /></dd>
</dl>
<dl>
<dt><label for="uploadurl">{L_UPLOAD_AVATAR_URL}:</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
<dd><input name="uploadurl" type="text" id="uploadurl" value="" /></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="remotelink">{L_LINK_REMOTE_AVATAR}:</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
<dd><input name="remotelink" type="text" id="remotelink" value="" /></dd>
</dl>
<dl>
<dt><label for="width">{L_LINK_REMOTE_SIZE}:</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
<dd><input name="width" type="text" id="width" size="3" value="{AVATAR_WIDTH}" /> <span>{L_PIXEL} &times; </span> <input type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
</dl>
<!-- IF S_DISPLAY_GALLERY -->
<dl>
<dt><label>{L_AVATAR_GALLERY}:</label></dt>
<dd><input class="button2" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></dd>
</dl>
<!-- ENDIF -->
<!-- ELSE -->
</fieldset>
<fieldset>
<legend>{L_AVATAR_GALLERY}</legend>
<dl>
<dt><label for="category">{L_AVATAR_CATEGORY}:</label></dt>
<dd><select name="category" id="category">{S_CAT_OPTIONS}</select>&nbsp;<input class="button2" type="submit" value="{L_GO}" name="display_gallery" /></dd>
</dl>
<dl>
<table cellspacing="1">
<!-- BEGIN avatar_row -->
<tr>
<!-- BEGIN avatar_column -->
<td class="row1" style="text-align: center;"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" alt="{avatar_row.avatar_column.AVATAR_NAME}" title="{avatar_row.avatar_column.AVATAR_NAME}" /></td>
<!-- END avatar_column -->
</tr>
<tr>
<!-- BEGIN avatar_option_column -->
<td class="row2" style="text-align: center;"><input type="radio" class="radio" name="avatar_select" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
<!-- END avatar_option_column -->
</tr>
<!-- END avatar_row -->
</table>
</dl>
</fieldset>
<fieldset class="quick" style="margin-top: -15px;">
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset>
<!-- ENDIF -->
</fieldset>
<fieldset class="submit-buttons">
@@ -139,8 +170,6 @@
</fieldset>
</form>
<!-- INCLUDEJS avatars.js -->
<!-- ELSEIF S_LIST -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
@@ -155,7 +184,7 @@
<a href="{U_DEFAULT_ALL}">&raquo; {L_MAKE_DEFAULT_FOR_ALL}</a>
</fieldset>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
@@ -170,7 +199,7 @@
<td class="row3" colspan="5"><strong>{L_GROUP_LEAD}</strong></td>
</tr>
<!-- BEGIN leader -->
<tr>
<!-- IF leader.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><!-- IF leader.USERNAME_COLOUR --><a href="{leader.U_USER_EDIT}" style="color: #{leader.USERNAME_COLOUR};" class="username-coloured">{leader.USERNAME}</a><!-- ELSE --><a href="{leader.U_USER_EDIT}">{leader.USERNAME}</a><!-- ENDIF --></td>
<td style="text-align: center;"><!-- IF leader.S_GROUP_DEFAULT -->{L_YES}<!-- ELSE -->{L_NO}<!-- ENDIF --></td>
<td style="text-align: center;">{leader.JOINED}</td>
@@ -179,7 +208,7 @@
</tr>
<!-- BEGINELSE -->
<tr>
<td colspan="5" style="text-align: center;">{L_GROUPS_NO_MODS}</td>
<td class="row1" colspan="5" style="text-align: center;">{L_GROUPS_NO_MODS}</td>
</tr>
<!-- END leader -->
<tr>
@@ -191,7 +220,7 @@
<td class="row3" colspan="5"><strong>{L_GROUP_PENDING}</strong></td>
</tr>
<!-- ELSE -->
<tr>
<!-- IF member.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><!-- IF member.USERNAME_COLOUR --><a href="{member.U_USER_EDIT}" style="color: #{member.USERNAME_COLOUR};" class="username-coloured">{member.USERNAME}</a><!-- ELSE --><a href="{member.U_USER_EDIT}">{member.USERNAME}</a><!-- ENDIF --></td>
<td style="text-align: center;"><!-- IF member.S_GROUP_DEFAULT -->{L_YES}<!-- ELSE -->{L_NO}<!-- ENDIF --></td>
<td style="text-align: center;">{member.JOINED}</td>
@@ -201,16 +230,16 @@
<!-- ENDIF -->
<!-- BEGINELSE -->
<tr>
<td colspan="5" style="text-align: center;">{L_GROUPS_NO_MEMBERS}</td>
<td class="row1" colspan="5" style="text-align: center;">{L_GROUPS_NO_MEMBERS}</td>
</tr>
<!-- END member -->
</tbody>
</table>
<!-- IF PAGINATION -->
<div class="pagination">
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ENDIF -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<fieldset class="quick">
<select name="action"><option class="sep" value="">{L_SELECT_OPTION}</option>{S_ACTION_OPTIONS}</select>
@@ -225,17 +254,17 @@
<fieldset>
<legend>{L_ADD_USERS}</legend>
<dl>
<dt><label for="leader">{L_USER_GROUP_LEADER}{L_COLON}</label></dt>
<dt><label for="leader">{L_USER_GROUP_LEADER}:</label></dt>
<dd><label><input name="leader" type="radio" class="radio" value="1" /> {L_YES}</label>
<label><input name="leader" type="radio" class="radio" id="leader" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="default">{L_USER_GROUP_DEFAULT}{L_COLON}</label><br /><span>{L_USER_GROUP_DEFAULT_EXPLAIN}</span></dt>
<dt><label for="default">{L_USER_GROUP_DEFAULT}:</label><br /><span>{L_USER_GROUP_DEFAULT_EXPLAIN}</span></dt>
<dd><label><input name="default" type="radio" class="radio" value="1" /> {L_YES}</label>
<label><input name="default" type="radio" class="radio" id="default" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="usernames">{L_USERNAME}{L_COLON}</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt>
<dt><label for="usernames">{L_USERNAME}:</label><br /><span>{L_USERNAMES_EXPLAIN}</span></dt>
<dd><textarea id="usernames" name="usernames" cols="40" rows="5"></textarea></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
@@ -266,7 +295,7 @@
<form id="acp_groups" method="post" action="{U_ACTION}">
<table class="table1">
<table cellspacing="1">
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
<thead>
<tr>
@@ -289,7 +318,7 @@
<fieldset class="quick">
<!-- IF S_GROUP_ADD -->
{L_CREATE_GROUP}{L_COLON} <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
{L_CREATE_GROUP}: <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
<input type="hidden" name="add" value="1" />
<!-- ENDIF -->
{S_FORM_TOKEN}
@@ -300,7 +329,7 @@
<p>{L_SPECIAL_GROUPS_EXPLAIN}</p>
<table class="table1">
<table cellspacing="1">
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
<thead>
<tr>
@@ -317,7 +346,7 @@
<td style="text-align: center;">{groups.TOTAL_MEMBERS}</td>
<td style="text-align: center;"><a href="{groups.U_EDIT}">{L_SETTINGS}</a></td>
<td style="text-align: center;"><a href="{groups.U_LIST}">{L_MEMBERS}</a></td>
<td style="text-align: center;"><!-- IF not groups.S_GROUP_SPECIAL and groups.U_DELETE --><a href="{groups.U_DELETE}" data-ajax="row_delete">{L_DELETE}</a><!-- ELSE -->{L_DELETE}<!-- ENDIF --></td>
<td style="text-align: center;"><!-- IF not groups.S_GROUP_SPECIAL and groups.U_DELETE --><a href="{groups.U_DELETE}">{L_DELETE}</a><!-- ELSE -->{L_DELETE}<!-- ENDIF --></td>
</tr>
<!-- ENDIF -->
<!-- END groups -->

View File

@@ -1,171 +0,0 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<h1>{L_MANAGE_LEGEND}</h1>
<form id="legend_settings" method="post" action="{U_ACTION}"<!-- IF S_CAN_UPLOAD --> enctype="multipart/form-data"<!-- ENDIF -->>
<fieldset>
<legend>{L_LEGEND_SETTINGS}</legend>
<dl>
<dt><label for="legend_sort_groupname">{L_LEGEND_SORT_GROUPNAME}{L_COLON}</label><br /><span>{L_LEGEND_SORT_GROUPNAME_EXPLAIN}</span></dt>
<dd>
<label><input type="radio" name="legend_sort_groupname" class="radio" value="1"<!-- IF LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="legend_sort_groupname" class="radio" value="0"<!-- IF not LEGEND_SORT_GROUPNAME --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<p class="submit-buttons">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" name="reset" value="{L_RESET}" />
<input type="hidden" name="action" value="set_config_legend" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<p>{L_LEGEND_EXPLAIN}</p>
<table class="table1">
<col class="col1" /><col class="col2" /><col class="col2" />
<thead>
<tr>
<th style="width: 50%">{L_GROUP}</th>
<th>{L_GROUP_TYPE}</th>
<th>{L_ACTION}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN legend -->
<tr>
<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 class="actions">
<span class="up-disabled" style="display: none;">{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-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{legend.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
<a href="{legend.U_DELETE}">{ICON_DELETE}</a>
</td>
</tr>
<!-- BEGINELSE -->
<tr>
<td colspan="3" class="row3">{L_NO_GROUPS_ADDED}</td>
</tr>
<!-- END legend -->
</tbody>
</table>
<form id="legend_add_group" method="post" action="{U_ACTION_LEGEND}">
<fieldset class="quick">
<select name="g">
<option value="0">{L_SELECT_GROUP}</option>
<!-- BEGIN add_legend -->
<option<!-- IF add_legend.GROUP_SPECIAL --> class="sep"<!-- ENDIF --> value="{add_legend.GROUP_ID}">{add_legend.GROUP_NAME}</option>
<!-- END add_legend -->
</select>
<input class="button2" type="submit" name="submit" value="{L_ADD}" />
<input type="hidden" name="action" value="add" />
{S_FORM_TOKEN}
</fieldset>
</form>
<h1>{L_MANAGE_TEAMPAGE}</h1>
<form id="teampage_settings" method="post" action="{U_ACTION}"<!-- IF S_CAN_UPLOAD --> enctype="multipart/form-data"<!-- ENDIF -->>
<fieldset>
<legend>{L_TEAMPAGE_SETTINGS}</legend>
<dl>
<dt><label for="teampage_memberships">{L_TEAMPAGE_MEMBERSHIPS}{L_COLON}</label></dt>
<dd>
<label><input type="radio" name="teampage_memberships" class="radio" value="0"<!-- IF DISPLAY_MEMBERSHIPS == 0 --> checked="checked"<!-- ENDIF --> /> {L_TEAMPAGE_DISP_FIRST}</label><br />
<label><input type="radio" name="teampage_memberships" class="radio" value="1"<!-- IF DISPLAY_MEMBERSHIPS == 1 --> checked="checked"<!-- ENDIF --> /> {L_TEAMPAGE_DISP_DEFAULT}</label><br />
<label><input type="radio" name="teampage_memberships" class="radio" value="2"<!-- IF DISPLAY_MEMBERSHIPS == 2 --> checked="checked"<!-- ENDIF --> /> {L_TEAMPAGE_DISP_ALL}</label>
</dd>
</dl>
<dl>
<dt><label for="teampage_forums">{L_TEAMPAGE_FORUMS}{L_COLON}</label><br /><span>{L_TEAMPAGE_FORUMS_EXPLAIN}</span></dt>
<dd>
<label><input type="radio" name="teampage_forums" class="radio" value="1"<!-- IF DISPLAY_FORUMS --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" name="teampage_forums" class="radio" value="0"<!-- IF not DISPLAY_FORUMS --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<p class="submit-buttons">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" name="reset" value="{L_RESET}" />
<input type="hidden" name="action" value="set_config_teampage" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<p>{L_TEAMPAGE_EXPLAIN}</p>
<!-- IF S_TEAMPAGE_CATEGORY and CURRENT_CATEGORY_NAME --><p><strong><a href="{U_ACTION}">{L_TEAMPAGE}</a> &raquo; {CURRENT_CATEGORY_NAME}</strong></p><!-- ENDIF -->
<table class="table1">
<col class="col1" /><col class="col2" /><col class="col2" />
<thead>
<tr>
<th style="width: 50%">{L_GROUP}</th>
<th>{L_GROUP_TYPE}</th>
<th>{L_ACTION}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN teampage -->
<tr>
<td>
<!-- IF teampage.U_CATEGORY -->
<a href="{teampage.U_CATEGORY}">{teampage.GROUP_NAME}</a>
<!-- ELSE -->
<strong<!-- IF teampage.GROUP_COLOUR --> style="color: {teampage.GROUP_COLOUR}"<!-- ENDIF -->>{teampage.GROUP_NAME}</strong>
<!-- ENDIF -->
</td>
<td style="text-align: center;"><!-- IF teampage.GROUP_TYPE -->{teampage.GROUP_TYPE}<!-- ELSE -->-<!-- ENDIF -->
</td></td>
<td class="actions">
<span class="up-disabled" style="display: none;">{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-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{teampage.U_MOVE_DOWN}" data-ajax="row_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
<a href="{teampage.U_DELETE}">{ICON_DELETE}</a>
</td>
</tr>
<!-- BEGINELSE -->
<tr>
<td colspan="3" class="row3">{L_NO_GROUPS_ADDED}</td>
</tr>
<!-- END teampage -->
</tbody>
</table>
<!-- IF not S_TEAMPAGE_CATEGORY -->
<form id="teampage_add_category" method="post" action="{U_ACTION_TEAMPAGE}">
<fieldset class="quick">
<input class="inputbox autowidth" type="text" maxlength="255" name="category_name" placeholder="{L_GROUP_CATEGORY_NAME}" />
<input class="button2" type="submit" name="submit" value="{L_ADD_GROUP_CATEGORY}" />
<input type="hidden" name="action" value="add_category" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ENDIF -->
<form id="teampage_add_group" method="post" action="{U_ACTION_TEAMPAGE}">
<fieldset class="quick">
<select name="g">
<option value="0">{L_SELECT_GROUP}</option>
<!-- BEGIN add_teampage -->
<option<!-- IF add_teampage.GROUP_SPECIAL --> class="sep"<!-- ENDIF --> value="{add_teampage.GROUP_ID}">{add_teampage.GROUP_NAME}</option>
<!-- END add_teampage -->
</select>
<input class="button2" type="submit" name="submit" value="{L_ADD}" />
<input type="hidden" name="action" value="add" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT -->
@@ -22,7 +22,7 @@
{
var use_element = smiley[newimage];
document.getElementById('add_image_src').src = '{ROOT_PATH}{IMG_PATH}/' + encodeURI(newimage);
document.getElementById('add_image_src').src = '{PHPBB_ROOT_PATH}{IMG_PATH}/' + encodeURI(newimage);
document.getElementById('add_code').value = use_element['code'];
document.getElementById('add_emotion').value = use_element['emotion'];
document.getElementById('add_width').value = use_element['width'];
@@ -74,7 +74,7 @@
<fieldset class="tabulated">
<legend>{L_TITLE}</legend>
<table class="table1 zebra-table" id="smilies">
<table cellspacing="1" id="smilies">
<thead>
<tr>
<th colspan="{COLSPAN}">{L_CONFIG}</th>
@@ -100,7 +100,7 @@
</thead>
<tbody>
<!-- BEGIN items -->
<tr>
<!-- IF items.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;"><img src="{items.IMG_SRC}" alt="" title="" /><input type="hidden" name="image[{items.IMG}]" value="1" /></td>
<td style="vertical-align: top;">[{items.IMG}]</td>
@@ -108,8 +108,8 @@
<td><input class="text post" type="text" name="code[{items.IMG}]" value="{items.CODE}" size="10" maxlength="50" /></td>
<td><input class="text post" type="text" name="emotion[{items.IMG}]" value="{items.EMOTION}" size="10" maxlength="50" /></td>
<!-- ENDIF -->
<td><input class="text post" type="number" size="3" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
<td><input class="text post" type="number" size="3" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
<td><input class="text post" type="text" size="3" name="width[{items.IMG}]" value="{items.WIDTH}" /></td>
<td><input class="text post" type="text" size="3" name="height[{items.IMG}]" value="{items.HEIGHT}" /></td>
<td>
<input type="checkbox" class="radio" name="display_on_posting[{items.IMG}]"{items.POSTING_CHECKED} onclick="toggle_select('{items.A_IMG}', this.checked, '{items.S_ROW_COUNT}');"/>
<!-- IF items.S_ID -->
@@ -136,8 +136,8 @@
<td style="vertical-align: top;"><img src="{IMG_SRC}" id="add_image_src" alt="" title="" /></td>
<td><input class="text post" type="text" name="add_code" id="add_code" value="{CODE}" size="10" maxlength="50" /></td>
<td><input class="text post" type="text" name="add_emotion" id="add_emotion" value="{EMOTION}" size="10" maxlength="50" /></td>
<td><input class="text post" type="number" size="3" name="add_width" id="add_width" value="{WIDTH}" /></td>
<td><input class="text post" type="number" size="3" name="add_height" id="add_height" value="{HEIGHT}" /></td>
<td><input class="text post" type="text" size="3" name="add_width" id="add_width" value="{WIDTH}" /></td>
<td><input class="text post" type="text" size="3" name="add_height" id="add_height" value="{HEIGHT}" /></td>
<td><input type="checkbox" class="radio" name="add_display_on_posting" checked="checked" onclick="toggle_select('add', this.checked, 'add_order');"/></td>
<td><select id="order_add_order" name="add_order">
<optgroup id="order_disp_add_order" label="{L_DISPLAY_POSTING}">{S_ADD_ORDER_LIST_DISPLAY}</optgroup>
@@ -218,7 +218,7 @@
<legend>{L_TITLE}</legend>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_TITLE}</th>
@@ -236,18 +236,16 @@
<td class="row3" colspan="{COLSPAN}" style="text-align: center;">{L_NOT_DISPLAYED}</td>
</tr>
<!-- ENDIF -->
<tr>
<!-- IF items.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="width: 85%; text-align: center;"><img src="{items.IMG_SRC}" width="{items.WIDTH}" height="{items.HEIGHT}" alt="{items.ALT_TEXT}" title="{items.ALT_TEXT}" /></td>
<!-- IF S_SMILIES -->
<td style="text-align: center;">{items.CODE}</td>
<td style="text-align: center;">{items.EMOTION}</td>
<!-- ENDIF -->
<td class="actions" style="text-align: right;">
<span class="up-disabled" style="display:none;">{ICON_MOVE_UP_DISABLED}</span>
<span class="up"><a href="{items.U_MOVE_UP}" data-ajax="row_up">{ICON_MOVE_UP}</a></span>
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{items.U_MOVE_DOWN}" data-ajax="row_down">{ICON_MOVE_DOWN}</a></span>
<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
<td style="text-align: right; white-space: nowrap;">
<!-- IF items.S_FIRST_ROW and not PREVIOUS_PAGE -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
<!-- IF items.S_LAST_ROW and not NEXT_PAGE -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
&nbsp;<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}">{ICON_DELETE}</a>
</td>
</tr>
<!-- BEGINELSE -->
@@ -257,11 +255,7 @@
<!-- END items -->
</tbody>
</table>
<div class="pagination">
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ENDIF -->
</div>
<div>{PAGINATION}</div>
<p class="quick">
<input class="button2" name="add" type="submit" value="{L_ICON_ADD}" />&nbsp; &nbsp;<input class="button2" type="submit" name="edit" value="{L_ICON_EDIT}" />
</p>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h2>{L_INACTIVE_USERS}</h2>
@@ -10,13 +10,13 @@
<div class="clearfix"></div>
<!-- IF .pagination -->
<!-- IF PAGINATION -->
<div class="pagination">
<!-- INCLUDE pagination.html -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
@@ -29,10 +29,11 @@
</thead>
<tbody>
<!-- BEGIN inactive -->
<tr>
<!-- IF inactive.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="vertical-align: top;">
{inactive.USERNAME_FULL}
<!-- IF inactive.POSTS --><br />{L_POSTS}{L_COLON} <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
<!-- IF inactive.POSTS --><br />{L_POSTS}: <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
</td>
<td style="vertical-align: top;">{inactive.JOINED}</td>
<td style="vertical-align: top;">{inactive.INACTIVE_DATE}</td>
@@ -52,15 +53,15 @@
</table>
<fieldset class="display-options">
{L_DISPLAY_LOG}{L_COLON} &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}<!-- IF .pagination -->&nbsp;{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 -->
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}<!-- IF PAGINATION -->&nbsp;{L_USERS_PER_PAGE}: <input class="inputbox autowidth" type="text" name="users_per_page" id="users_per_page" size="3" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<hr />
<!-- IF .pagination -->
<!-- IF PAGINATION -->
<div class="pagination">
<!-- INCLUDE pagination.html -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
@@ -73,4 +74,4 @@
</form>
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_ACP_JABBER_SETTINGS}</h1>
@@ -21,36 +21,36 @@
<p>{L_JAB_GTALK_NOTE}</p>
<!-- ENDIF -->
<dl>
<dt><label for="jab_enable">{L_JAB_ENABLE}{L_COLON}</label><br /><span>{L_JAB_ENABLE_EXPLAIN}</span></dt>
<dt><label for="jab_enable">{L_JAB_ENABLE}:</label><br /><span>{L_JAB_ENABLE_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="jab_enable" name="jab_enable" value="1"<!-- IF JAB_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
<label><input type="radio" class="radio" name="jab_enable" value="0"<!-- IF not JAB_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
</dl>
<dl>
<dt><label for="jab_host">{L_JAB_SERVER}{L_COLON}</label><br /><span>{L_JAB_SERVER_EXPLAIN}</span></dt>
<dt><label for="jab_host">{L_JAB_SERVER}:</label><br /><span>{L_JAB_SERVER_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_host" name="jab_host" value="{JAB_HOST}" /></dd>
</dl>
<dl>
<dt><label for="jab_port">{L_JAB_PORT}{L_COLON}</label><br /><span>{L_JAB_PORT_EXPLAIN}</span></dt>
<dd><input type="number" id="jab_port" name="jab_port" value="{JAB_PORT}" maxlength="5" size="5" /></dd>
<dt><label for="jab_port">{L_JAB_PORT}:</label><br /><span>{L_JAB_PORT_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_port" name="jab_port" value="{JAB_PORT}" maxlength="5" size="5" /></dd>
</dl>
<dl>
<dt><label for="jab_username">{L_JAB_USERNAME}{L_COLON}</label><br /><span>{L_JAB_USERNAME_EXPLAIN}</span></dt>
<dt><label for="jab_username">{L_JAB_USERNAME}:</label><br /><span>{L_JAB_USERNAME_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_username" name="jab_username" value="{JAB_USERNAME}" /></dd>
</dl>
<dl>
<dt><label for="jab_password">{L_JAB_PASSWORD}{L_COLON}</label><br /><span>{L_JAB_PASSWORD_EXPLAIN}</span></dt>
<dt><label for="jab_password">{L_JAB_PASSWORD}:</label><br /><span>{L_JAB_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="jab_password" name="jab_password" value="{JAB_PASSWORD}" /></dd>
</dl>
<!-- IF S_CAN_USE_SSL -->
<dl>
<dt><label for="jab_use_ssl">{L_JAB_USE_SSL}{L_COLON}</label><br /><span>{L_JAB_USE_SSL_EXPLAIN}</span></dt>
<dt><label for="jab_use_ssl">{L_JAB_USE_SSL}:</label><br /><span>{L_JAB_USE_SSL_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="jab_use_ssl" name="jab_use_ssl" value="1"<!-- IF JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="jab_use_ssl" value="0"<!-- IF not JAB_USE_SSL --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}{L_COLON}</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
<dd><input type="number" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" maxlength="5" size="5" min="0" max="99999" /></dd>
<dt><label for="jab_package_size">{L_JAB_PACKAGE_SIZE}:</label><br /><span>{L_JAB_PACKAGE_SIZE_EXPLAIN}</span></dt>
<dd><input type="text" id="jab_package_size" name="jab_package_size" value="{JAB_PACKAGE_SIZE}" maxlength="5" size="5" /></dd>
</dl>
</fieldset>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_SELECT_METHOD -->
@@ -13,7 +13,7 @@
<fieldset>
<legend>{L_DOWNLOAD_AS}</legend>
<dl>
<dt><label for="use_method">{L_DOWNLOAD_AS}{L_COLON}</label></dt>
<dt><label for="use_method">{L_DOWNLOAD_AS}:</label></dt>
<dd>{RADIO_BUTTONS}</dd>
</dl>
@@ -35,19 +35,19 @@
<fieldset>
<legend>{LANG_LOCAL_NAME}</legend>
<dl>
<dt><label for="lang_english_name">{L_LANG_ENGLISH_NAME}{L_COLON}</label></dt>
<dt><label for="lang_english_name">{L_LANG_ENGLISH_NAME}:</label></dt>
<dd><input type="text" id="lang_english_name" name="lang_english_name" value="{LANG_ENGLISH_NAME}" maxlength="100" /></dd>
</dl>
<dl>
<dt><label for="lang_local_name">{L_LANG_LOCAL_NAME}{L_COLON}</label></dt>
<dt><label for="lang_local_name">{L_LANG_LOCAL_NAME}:</label></dt>
<dd><input type="text" id="lang_local_name" name="lang_local_name" value="{LANG_LOCAL_NAME}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label>{L_LANG_ISO_CODE}{L_COLON}</label></dt>
<dt><label>{L_LANG_ISO_CODE}:</label></dt>
<dd><strong>{LANG_ISO}</strong></dd>
</dl>
<dl>
<dt><label for="lang_author">{L_LANG_AUTHOR}{L_COLON}</label></dt>
<dt><label for="lang_author">{L_LANG_AUTHOR}:</label></dt>
<dd><input type="text" id="lang_author" name="lang_author" value="{LANG_AUTHOR}" maxlength="255" /></dd>
</dl>
@@ -75,7 +75,7 @@
<form id="missing" method="post" action="{U_MISSING_ACTION}">
<table class="table1">
<table cellspacing="1">
<thead>
<tr>
<th>{L_LANGUAGE_KEY}</th>
@@ -98,7 +98,7 @@
<br /><br />
<!-- ENDIF -->
<a id="entries"></a>
<a name="entries"></a>
<h1>{L_LANGUAGE_ENTRIES}</h1>
@@ -129,7 +129,7 @@
</style>
<![endif]-->
<table class="table1">
<table cellspacing="1">
<thead>
<!-- IF S_EMAIL_FILE -->
<tr>
@@ -147,7 +147,7 @@
</tr>
<tr>
<td class="row3" style="text-align: right;">
<!-- IF ALLOW_UPLOAD -->&nbsp;&nbsp;{L_UPLOAD_METHOD}{L_COLON}&nbsp;<!-- BEGIN buttons --><input type="radio" class="radio"<!-- IF buttons.S_FIRST_ROW --> id="method" checked="checked"<!-- ENDIF --> value="{buttons.VALUE}" name="method" />&nbsp;{buttons.VALUE}&nbsp;<!-- END buttons --><input type="submit" name="upload_file" class="button2" value="{L_SUBMIT_AND_UPLOAD}" /><!-- ENDIF --></td>
<!-- IF ALLOW_UPLOAD -->&nbsp;&nbsp;{L_UPLOAD_METHOD}:&nbsp;<!-- BEGIN buttons--><input type="radio" class="radio"<!-- IF buttons.S_FIRST_ROW --> id="method" checked="checked"<!-- ENDIF --> value="{buttons.VALUE}" name="method" />&nbsp;{buttons.VALUE}&nbsp;<!-- END buttons --><input type="submit" name="upload_file" class="button2" value="{L_SUBMIT_AND_UPLOAD}" /><!-- ENDIF --></td>
</tr>
</thead>
<tbody>
@@ -186,12 +186,12 @@
<fieldset>
<legend>{L_UPLOAD_SETTINGS}</legend>
<dl>
<dt><label>{L_UPLOAD_METHOD}{L_COLON}</label></dt>
<dt><label>{L_UPLOAD_METHOD}:</label></dt>
<dd><strong>{NAME}</strong></dd>
</dl>
<!-- BEGIN data -->
<dl>
<dt><label for="{data.DATA}">{data.NAME}{L_COLON}</label><br /><span>{data.EXPLAIN}</span></dt>
<dt><label for="{data.DATA}">{data.NAME}:</label><br /><span>{data.EXPLAIN}</span></dt>
<dd><input type="<!-- IF data.DATA == 'password' -->password<!-- ELSE -->text<!-- ENDIF -->" id="{data.DATA}" name="{data.DATA}" value="{data.DEFAULT}" /></dd>
</dl>
<!-- END data -->
@@ -211,7 +211,7 @@
<p>{L_ACP_LANGUAGE_PACKS_EXPLAIN}</p>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_LANGUAGE_PACK_NAME}</th>
@@ -226,7 +226,7 @@
<td class="row3" colspan="5"><strong>{L_INSTALLED_LANGUAGE_PACKS}</strong></td>
</tr>
<!-- BEGIN lang -->
<tr>
<!-- IF lang.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{lang.U_DETAILS}">{lang.ENGLISH_NAME}</a> {lang.TAG}</td>
<td>{lang.LOCAL_NAME}</td>
<td style="text-align: center;"><strong>{lang.ISO}</strong></td>
@@ -240,7 +240,7 @@
</tr>
<!-- ENDIF -->
<!-- BEGIN notinst -->
<tr>
<!-- IF notinst.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{notinst.NAME}</td>
<td>{notinst.LOCAL_NAME}</td>
<td style="text-align: center;"><strong>{notinst.ISO}</strong></td>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
@@ -9,12 +9,12 @@
<form id="list" method="post" action="{U_ACTION}">
<fieldset class="display-options" style="float: left">
{L_SEARCH_KEYWORDS}{L_COLON} <input type="text" name="keywords" value="{S_KEYWORDS}" />&nbsp;<input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
{L_SEARCH_KEYWORDS}: <input type="text" name="keywords" value="{S_KEYWORDS}" />&nbsp;<input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
</fieldset>
<!-- IF .pagination -->
<!-- IF PAGINATION -->
<div class="pagination" style="float: right; margin: 15px 0 2px 0">
<!-- INCLUDE pagination.html -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
@@ -22,7 +22,7 @@
<div><br style="clear: both;" /></div>
<!-- IF .log -->
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
@@ -36,7 +36,7 @@
</thead>
<tbody>
<!-- BEGIN log -->
<tr>
<!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>
{log.USERNAME}
<!-- IF log.REPORTEE_USERNAME -->
@@ -54,9 +54,9 @@
</tbody>
</table>
<!-- IF .pagination -->
<!-- IF PAGINATION -->
<div class="pagination">
<!-- INCLUDE pagination.html -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
@@ -67,7 +67,7 @@
<!-- ENDIF -->
<fieldset class="display-options">
{L_DISPLAY_LOG}{L_COLON} &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
<input class="button2" type="submit" value="{L_GO}" name="sort" />
{S_FORM_TOKEN}
</fieldset>
@@ -75,7 +75,7 @@
<!-- IF S_SHOW_FORUMS -->
<fieldset class="quick">
{L_SELECT_FORUM}{L_COLON} <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
{L_SELECT_FORUM}: <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
</fieldset>
<!-- ENDIF -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_RESTORE_PERMISSIONS -->
@@ -26,12 +26,6 @@
</div>
<!-- ENDIF -->
<!-- IF S_SEARCH_INDEX_MISSING -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{L_NO_SEARCH_INDEX}</p>
</div>
<!-- ENDIF -->
<!-- IF S_REMOVE_INSTALL -->
<div class="errorbox">
@@ -82,9 +76,7 @@
</div>
<!-- ENDIF -->
<!-- EVENT acp_main_notice_after -->
<table class="table1 two-columns no-header" data-no-responsive-header="true">
<table cellspacing="1">
<caption>{L_FORUM_STATS}</caption>
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
<thead>
@@ -97,56 +89,56 @@
</thead>
<tbody>
<tr>
<td>{L_NUMBER_POSTS}{L_COLON} </td>
<td>{L_NUMBER_POSTS}: </td>
<td><strong>{TOTAL_POSTS}</strong></td>
<td>{L_POSTS_PER_DAY}{L_COLON} </td>
<td>{L_POSTS_PER_DAY}: </td>
<td><strong>{POSTS_PER_DAY}</strong></td>
</tr>
<tr>
<td>{L_NUMBER_TOPICS}{L_COLON} </td>
<td>{L_NUMBER_TOPICS}: </td>
<td><strong>{TOTAL_TOPICS}</strong></td>
<td>{L_TOPICS_PER_DAY}{L_COLON} </td>
<td>{L_TOPICS_PER_DAY}: </td>
<td><strong>{TOPICS_PER_DAY}</strong></td>
</tr>
<tr>
<td>{L_NUMBER_USERS}{L_COLON} </td>
<td>{L_NUMBER_USERS}: </td>
<td><strong>{TOTAL_USERS}</strong></td>
<td>{L_USERS_PER_DAY}{L_COLON} </td>
<td>{L_USERS_PER_DAY}: </td>
<td><strong>{USERS_PER_DAY}</strong></td>
</tr>
<tr>
<td>{L_NUMBER_FILES}{L_COLON} </td>
<td>{L_NUMBER_FILES}: </td>
<td><strong>{TOTAL_FILES}</strong></td>
<td>{L_FILES_PER_DAY}{L_COLON} </td>
<td>{L_FILES_PER_DAY}: </td>
<td><strong>{FILES_PER_DAY}</strong></td>
</tr>
<tr>
<td>{L_BOARD_STARTED}{L_COLON} </td>
<td>{L_BOARD_STARTED}: </td>
<td><strong>{START_DATE}</strong></td>
<td>{L_AVATAR_DIR_SIZE}{L_COLON} </td>
<td>{L_AVATAR_DIR_SIZE}: </td>
<td><strong>{AVATAR_DIR_SIZE}</strong></td>
</tr>
<tr>
<td>{L_DATABASE_SIZE}{L_COLON} </td>
<td>{L_DATABASE_SIZE}: </td>
<td><strong>{DBSIZE}</strong></td>
<td>{L_UPLOAD_DIR_SIZE}{L_COLON} </td>
<td>{L_UPLOAD_DIR_SIZE}: </td>
<td><strong>{UPLOAD_DIR_SIZE}</strong></td>
</tr>
<tr>
<td>{L_DATABASE_SERVER_INFO}{L_COLON} </td>
<td>{L_DATABASE_SERVER_INFO}: </td>
<td><strong>{DATABASE_INFO}</strong></td>
<td>{L_GZIP_COMPRESSION}{L_COLON} </td>
<td>{L_GZIP_COMPRESSION}: </td>
<td><strong>{GZIP_COMPRESSION}</strong></td>
</tr>
<tr>
<td>{L_BOARD_VERSION}{L_COLON} </td>
<td>{L_BOARD_VERSION}: </td>
<td>
<strong><a href="{U_VERSIONCHECK}" <!-- IF S_VERSION_UP_TO_DATE -->style="color: #228822;"<!-- ELSE -->style="color: #BC2A4D;"<!-- ENDIF --> title="{L_MORE_INFORMATION}">{BOARD_VERSION}</a></strong> [&nbsp;<a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a>&nbsp;]
</td>
<!-- IF S_TOTAL_ORPHAN -->
<td>{L_NUMBER_ORPHAN}{L_COLON} </td>
<td>{L_NUMBER_ORPHAN}: </td>
<td><strong>{TOTAL_ORPHAN}</strong></td>
<!-- ELSE -->
<td>&nbsp;</td>
@@ -160,14 +152,14 @@
<fieldset>
<legend>{L_STATISTIC_RESYNC_OPTIONS}</legend>
<form id="action_online_form" method="post" action="{U_ACTION}" data-ajax="true">
<form id="action_online_form" method="post" action="{U_ACTION}">
<dl>
<dt><label for="action_online">{L_RESET_ONLINE}</label><br /><span>&nbsp;</span></dt>
<dd><input type="hidden" name="action" value="online" /><input class="button2" type="submit" id="action_online" name="action_online" value="{L_RUN}" /></dd>
</dl>
</form>
<form id="action_date_form" method="post" action="{U_ACTION}" data-ajax="true">
<form id="action_date_form" method="post" action="{U_ACTION}">
<dl>
<dt><label for="action_date">{L_RESET_DATE}</label><br /><span>&nbsp;</span></dt>
<dd><input type="hidden" name="action" value="date" /><input class="button2" type="submit" id="action_date" name="action_date" value="{L_RUN}" /></dd>
@@ -196,22 +188,19 @@
</form>
<!-- IF S_FOUNDER -->
<form id="action_purge_sessions_form" method="post" action="{U_ACTION}" data-ajax="true">
<form id="action_purge_sessions_form" method="post" action="{U_ACTION}">
<dl>
<dt><label for="action_purge_sessions">{L_PURGE_SESSIONS}</label><br /><span>{L_PURGE_SESSIONS_EXPLAIN}</span></dt>
<dd><input type="hidden" name="action" value="purge_sessions" /><input class="button2" type="submit" id="action_purge_sessions" name="action_purge_sessions" value="{L_RUN}" /></dd>
</dl>
</form>
<!-- ENDIF -->
<form id="action_purge_cache_form" method="post" action="{U_ACTION}" data-ajax="true">
<form id="action_purge_cache_form" method="post" action="{U_ACTION}">
<dl>
<dt><label for="action_purge_cache">{L_PURGE_CACHE}</label><br /><span>{L_PURGE_CACHE_EXPLAIN}</span></dt>
<dd><input type="hidden" name="action" value="purge_cache" /><input class="button2" type="submit" id="action_purge_cache" name="action_purge_cache" value="{L_RUN}" /></dd>
</dl>
</form>
<!-- EVENT acp_main_actions_append -->
<!-- ENDIF -->
</fieldset>
<!-- ENDIF -->
@@ -222,7 +211,7 @@
<div style="text-align: right;"><a href="{U_ADMIN_LOG}">&raquo; {L_VIEW_ADMIN_LOG}</a></div>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
@@ -233,7 +222,8 @@
</thead>
<tbody>
<!-- BEGIN log -->
<tr>
<!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{log.USERNAME}</td>
<td style="text-align: center;">{log.IP}</td>
<td style="text-align: center;">{log.DATE}</td>
@@ -254,7 +244,7 @@
<div style="text-align: right;"><a href="{U_INACTIVE_USERS}">&raquo; {L_VIEW_INACTIVE_USERS}</a></div>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_USERNAME}</th>
@@ -266,10 +256,11 @@
</thead>
<tbody>
<!-- BEGIN inactive -->
<tr>
<!-- IF inactive.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="vertical-align: top;">
{inactive.USERNAME_FULL}
<!-- IF inactive.POSTS --><br />{L_POSTS}{L_COLON} <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
<!-- IF inactive.POSTS --><br />{L_POSTS}: <strong>{inactive.POSTS}</strong> [<a href="{inactive.U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a>]<!-- ENDIF -->
</td>
<td style="vertical-align: top;">{inactive.JOINED}</td>
<td style="vertical-align: top;">{inactive.INACTIVE_DATE}</td>
@@ -291,4 +282,4 @@
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT_MODULE -->
@@ -72,37 +72,37 @@
<fieldset>
<legend>{L_GENERAL_OPTIONS}</legend>
<dl>
<dt><label for="module_langname">{L_MODULE_LANGNAME}{L_COLON}</label><br />
<dt><label for="module_langname">{L_MODULE_LANGNAME}:</label><br />
<span>{L_MODULE_LANGNAME_EXPLAIN}</span></dt>
<dd><input name="module_langname" type="text" class="text medium" id="module_langname" value="{MODULE_LANGNAME}" /></dd>
</dl>
<dl>
<dt><label for="module_type">{L_MODULE_TYPE}{L_COLON}</label></dt>
<dt><label for="module_type">{L_MODULE_TYPE}:</label></dt>
<dd><select name="module_type" id="module_type" onchange="display_options(this.value);"><option value="category"<!-- IF S_IS_CAT --> selected="selected"<!-- ENDIF -->>{L_CATEGORY}</option><option value="module"<!-- IF not S_IS_CAT --> selected="selected"<!-- ENDIF -->>{L_MODULE}</option></select></dd>
</dl>
<dl>
<dt><label for="parent_id">{L_PARENT}{L_COLON}</label></dt>
<dt><label for="parent_id">{L_PARENT}:</label></dt>
<dd><select name="module_parent_id" id="parent_id">{S_CAT_OPTIONS}</select></dd>
</dl>
<hr />
<dl>
<dt><label for="module_enabled">{L_MODULE_ENABLED}{L_COLON}</label></dt>
<dt><label for="module_enabled">{L_MODULE_ENABLED}:</label></dt>
<dd><label><input type="radio" class="radio" name="module_enabled" id="module_enabled" value="1"<!-- IF MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="module_enabled" value="0"<!-- IF not MODULE_ENABLED --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<div id="modoptions"<!-- IF S_IS_CAT --> style="display: none;"<!-- ENDIF -->>
<dl>
<dt><label for="module_display">{L_MODULE_DISPLAYED}{L_COLON}</label><br /><span>{L_MODULE_DISPLAYED_EXPLAIN}</span></dt>
<dt><label for="module_display">{L_MODULE_DISPLAYED}:</label><br /><span>{L_MODULE_DISPLAYED_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="module_display" id="module_display" value="1"<!-- IF MODULE_DISPLAY --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="module_display" value="0"<!-- IF not MODULE_DISPLAY --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="module_basename">{L_CHOOSE_MODULE}{L_COLON}</label><br />
<dt><label for="module_basename">{L_CHOOSE_MODULE}:</label><br />
<span>{L_CHOOSE_MODULE_EXPLAIN}</span></dt>
<dd><select name="module_basename" id="module_basename" onchange="display_modes(this.value);">{S_MODULE_NAMES}</select></dd>
</dl>
<dl>
<dt><label for="module_mode">{L_CHOOSE_MODE}{L_COLON}</label><br />
<dt><label for="module_mode">{L_CHOOSE_MODE}:</label><br />
<span>{L_CHOOSE_MODE_EXPLAIN}</span></dt>
<dd><select name="module_mode" id="module_mode">{S_MODULE_MODES}</select></dd>
</dl>
@@ -132,7 +132,7 @@
</div>
<!-- ENDIF -->
<table class="table1">
<table cellspacing="1">
<tbody>
<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>
@@ -141,7 +141,7 @@
</table>
<!-- IF .modules -->
<table class="table1">
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" /><col class="row2" />
<tbody>
<!-- BEGIN modules -->
@@ -149,13 +149,22 @@
<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 style="width: 15%; white-space: nowrap; text-align: center; vertical-align: middle;">&nbsp;<!-- IF modules.MODULE_ENABLED --><a href="{modules.U_DISABLE}">{L_DISABLE}</a><!-- ELSE --><a href="{modules.U_ENABLE}">{L_ENABLE}</a><!-- ENDIF -->&nbsp;</td>
<td class="actions">
<span class="up-disabled" style="display:none;">{ICON_MOVE_UP_DISABLED}</span>
<span class="up"><a href="{modules.U_MOVE_UP}" data-ajax="row_up">{ICON_MOVE_UP}</a></span>
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{modules.U_MOVE_DOWN}" data-ajax="row_down">{ICON_MOVE_DOWN}</a></span>
<td style="width:90px; white-space: nowrap; text-align: right; vertical-align: middle;">
<!-- IF modules.S_FIRST_ROW && not modules.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED}
<a href="{modules.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF not modules.S_FIRST_ROW && not modules.S_LAST_ROW-->
<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_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
<a href="{modules.U_DELETE}">{ICON_DELETE}</a>
</td>
</tr>
<!-- END modules -->
@@ -192,7 +201,7 @@
<form id="mselect" method="post" action="{U_SEL_ACTION}">
<fieldset class="quick">
{L_SELECT_MODULE}{L_COLON} <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{MODULE_BOX}</select>
{L_SELECT_MODULE}: <select name="parent_id" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{MODULE_BOX}</select>
<input class="button2" type="submit" value="{L_GO}" />
</fieldset>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT -->
@@ -36,11 +36,11 @@
<fieldset>
<legend>{L_ROLE_DETAILS}</legend>
<dl>
<dt><label for="role_name">{L_ROLE_NAME}{L_COLON}</label></dt>
<dt><label for="role_name">{L_ROLE_NAME}:</label></dt>
<dd><input name="role_name" type="text" id="role_name" value="{ROLE_NAME}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="role_description">{L_ROLE_DESCRIPTION}{L_COLON}</label><br /><span>{L_ROLE_DESCRIPTION_EXPLAIN}</span></dt>
<dt><label for="role_description">{L_ROLE_DESCRIPTION}:</label><br /><span>{L_ROLE_DESCRIPTION_EXPLAIN}</span></dt>
<dd><textarea id="role_description" name="role_description" rows="3" cols="45">{ROLE_DESCRIPTION}</textarea></dd>
</dl>
@@ -60,7 +60,7 @@
<p>
<a id="acl"></a>
<a name="acl"></a>
<a href="#maincontent">&raquo; {L_BACK_TO_TOP}</a><br />
<br /><br />
@@ -90,8 +90,9 @@
</div>
<!-- BEGIN auth -->
<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">
<table id="table00{auth.S_ROW_COUNT}" class="table1 not-responsive">
<table id="table00{auth.S_ROW_COUNT}" cellspacing="1">
<colgroup>
<col class="permissions-name" />
<col class="permissions-yes" />
@@ -119,6 +120,7 @@
</tbody>
</table>
</div>
<span class="corners-bottom"><span></span></span>
</div>
<!-- END auth -->
</div>
@@ -142,7 +144,7 @@
<form id="acp_roles" method="post" action="{U_ACTION}">
<table class="table1">
<table cellspacing="1">
<col class="col2" /><col class="col2" /><col class="col1" /><col class="col2" /><col class="col2" />
<thead>
<tr>
@@ -157,13 +159,22 @@
<!-- IF roles.ROLE_DESCRIPTION --><br /><span>{roles.ROLE_DESCRIPTION}</span><!-- ENDIF -->
</td>
<td style="width: 30%; text-align: center; vertical-align: top; white-space: nowrap;"><!-- IF roles.U_DISPLAY_ITEMS --><a href="{roles.U_DISPLAY_ITEMS}">{L_VIEW_ASSIGNED_ITEMS}</a><!-- ELSE -->{L_VIEW_ASSIGNED_ITEMS}<!-- ENDIF --></td>
<td class="actions">
<span class="up-disabled" style="display:none;">{ICON_MOVE_UP_DISABLED}</span>
<span class="up"><a href="{roles.U_MOVE_UP}" data-ajax="row_up">{ICON_MOVE_UP}</a></span>
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{roles.U_MOVE_DOWN}" data-ajax="row_down">{ICON_MOVE_DOWN}</a></span>
<td style="width: 80px; text-align: right; vertical-align: top; white-space: nowrap;">
<!-- IF roles.S_FIRST_ROW && not roles.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED}
<a href="{roles.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF not roles.S_FIRST_ROW && not roles.S_LAST_ROW-->
<a href="{roles.U_MOVE_UP}">{ICON_MOVE_UP}</a>
<a href="{roles.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF roles.S_LAST_ROW && not roles.S_FIRST_ROW -->
<a href="{roles.U_MOVE_UP}">{ICON_MOVE_UP}</a>
{ICON_MOVE_DOWN_DISABLED}
<!-- ELSE -->
{ICON_MOVE_UP_DISABLED}
{ICON_MOVE_DOWN_DISABLED}
<!-- ENDIF -->
<a href="{roles.U_EDIT}" title="{L_EDIT_ROLE}">{ICON_EDIT}</a>
<a href="{roles.U_REMOVE}" title="{L_REMOVE_ROLE}" data-ajax="row_delete">{ICON_DELETE}</a>
<a href="{roles.U_REMOVE}" title="{L_REMOVE_ROLE}">{ICON_DELETE}</a>
</td>
</tr>
<!-- END roles -->
@@ -171,14 +182,14 @@
</table>
<fieldset class="quick">
{L_CREATE_ROLE}{L_COLON} <input type="text" name="role_name" value="" maxlength="255" /><!-- IF S_ROLE_OPTIONS --> <select name="options_from"><option value="0" selected="selected">{L_CREATE_ROLE_FROM}</option>{S_ROLE_OPTIONS}</select><!-- ENDIF --> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" /><br />
{L_CREATE_ROLE}: <input type="text" name="role_name" value="" maxlength="255" /><!-- IF S_ROLE_OPTIONS --> <select name="options_from"><option value="0" selected="selected">{L_CREATE_ROLE_FROM}</option>{S_ROLE_OPTIONS}</select><!-- ENDIF --> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" /><br />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- IF S_DISPLAY_ROLE_MASK -->
<a id="assigned_to"></a>
<a name="assigned_to"></a>
<h1>{L_ROLE_ASSIGNED_TO}</h1>
@@ -188,4 +199,4 @@
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_INTRO -->
@@ -19,7 +19,7 @@
<p>{L_EXPLAIN}</p>
<!-- IF S_FORUM_NAMES -->
<p><strong>{L_FORUMS}{L_COLON}</strong> {FORUM_NAMES}</p>
<p><strong>{L_FORUMS}:</strong> {FORUM_NAMES}</p>
<!-- ENDIF -->
<!-- IF S_SELECT_FORUM -->
@@ -30,7 +30,7 @@
<legend>{L_LOOK_UP_FORUM}</legend>
<!-- IF S_FORUM_MULTIPLE --><p>{L_LOOK_UP_FORUMS_EXPLAIN}</p><!-- ENDIF -->
<dl>
<dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
<dt><label for="forum">{L_LOOK_UP_FORUM}:</label></dt>
<dd><select id="forum" name="forum_id[]"<!-- IF S_FORUM_MULTIPLE --> multiple="multiple"<!-- ENDIF --> size="10">{S_FORUM_OPTIONS}</select></dd>
<!-- IF S_FORUM_ALL --><dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd><!-- ENDIF -->
</dl>
@@ -52,7 +52,7 @@
<legend>{L_LOOK_UP_FORUM}</legend>
<p>{L_SELECT_FORUM_SUBFORUM_EXPLAIN}</p>
<dl>
<dt><label for="sforum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
<dt><label for="sforum">{L_LOOK_UP_FORUM}:</label></dt>
<dd><select id="sforum" name="subforum_id">{S_SUBFORUM_OPTIONS}</select></dd>
</dl>
@@ -74,7 +74,7 @@
<fieldset>
<legend>{L_LOOK_UP_USER}</legend>
<dl>
<dt><label for="username">{L_FIND_USERNAME}{L_COLON}</label></dt>
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
<dd><input class="text medium" type="text" id="username" name="username[]" /></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
@@ -95,7 +95,7 @@
<fieldset>
<legend>{L_LOOK_UP_GROUP}</legend>
<dl>
<dt><label for="group">{L_LOOK_UP_GROUP}{L_COLON}</label></dt>
<dt><label for="group">{L_LOOK_UP_GROUP}:</label></dt>
<dd><select name="group_id[]" id="group">{S_GROUP_OPTIONS}</select></dd>
</dl>
@@ -110,7 +110,7 @@
<!-- ELSEIF S_SELECT_USERGROUP -->
<div class="column1">
<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;">
<!-- IF S_CAN_SELECT_USER -->
@@ -155,7 +155,7 @@
</div>
<div class="column2">
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
<!-- IF S_CAN_SELECT_GROUP -->
@@ -200,7 +200,7 @@
<!-- ELSEIF S_SELECT_USERGROUP_VIEW -->
<div class="column1">
<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;">
<h1>{L_USERS}</h1>
@@ -225,7 +225,7 @@
<fieldset>
<legend>{L_LOOK_UP_USER}</legend>
<dl>
<dt><label for="username">{L_FIND_USERNAME}{L_COLON}</label></dt>
<dt><label for="username">{L_FIND_USERNAME}:</label></dt>
<dd><input type="text" id="username" name="username[]" /></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="user_id[]" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
@@ -241,7 +241,7 @@
</div>
<div class="column2">
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
<h1>{L_USERGROUPS}</h1>
@@ -266,7 +266,7 @@
<fieldset>
<legend>{L_LOOK_UP_GROUP}</legend>
<dl>
<dt><label for="group_select">{L_LOOK_UP_GROUP}{L_COLON}</label></dt>
<dt><label for="group_select">{L_LOOK_UP_GROUP}:</label></dt>
<dd><select name="group_id[]" id="group_select">{S_ADD_GROUP_OPTIONS}</select></dd>
<dd>&nbsp;</dd>
</dl>
@@ -317,14 +317,14 @@
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
{L_SELECT_TYPE}{L_COLON} <select name="type">{S_PERMISSION_DROPDOWN}</select>
{L_SELECT_TYPE}: <select name="type">{S_PERMISSION_DROPDOWN}</select>
<input class="button2" type="submit" name="submit" value="{L_GO}" />
</fieldset>
</form>
<!-- ENDIF -->
<br class="responsive-hide" /><br class="responsive-hide" />
<br /><br />
<!-- include tooltip file -->
<script type="text/javascript" src="style/tooltip.js"></script>
@@ -340,7 +340,7 @@
<!-- INCLUDE permission_mask.html -->
<br class="responsive-hide" /><br class="responsive-hide" />
<br /><br />
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
@@ -348,10 +348,10 @@
{S_FORM_TOKEN}
</fieldset>
<br class="responsive-hide" /><br class="responsive-hide" />
<br /><br />
</form>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_ACP_PHP_INFO}</h1>
@@ -10,4 +10,4 @@
{PHPINFO}
</div>
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT -->
@@ -24,22 +24,22 @@
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label>{L_FIELD_TYPE}{L_COLON}</label><br /><span>{L_FIELD_TYPE_EXPLAIN}</span></dt>
<dt><label>{L_FIELD_TYPE}:</label><br /><span>{L_FIELD_TYPE_EXPLAIN}</span></dt>
<dd><strong>{FIELD_TYPE}</strong></dd>
</dl>
<!-- IF S_EDIT_MODE -->
<dl>
<dt><label>{L_FIELD_IDENT}{L_COLON}</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
<dt><label>{L_FIELD_IDENT}:</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
<dd><input type="hidden" name="field_ident" value="{FIELD_IDENT}" /><strong>{FIELD_IDENT}</strong></dd>
</dl>
<!-- ELSE -->
<dl>
<dt><label for="field_ident">{L_FIELD_IDENT}{L_COLON}</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
<dt><label for="field_ident">{L_FIELD_IDENT}:</label><br /><span>{L_FIELD_IDENT_EXPLAIN}</span></dt>
<dd><input class="text medium" type="text" id="field_ident" name="field_ident" value="{FIELD_IDENT}" /></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="field_no_view">{L_DISPLAY_PROFILE_FIELD}{L_COLON}</label><br /><span>{L_DISPLAY_PROFILE_FIELD_EXPLAIN}</span></dt>
<dt><label for="field_no_view">{L_DISPLAY_PROFILE_FIELD}:</label><br /><span>{L_DISPLAY_PROFILE_FIELD_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="field_no_view" name="field_no_view" value="0"<!-- IF not S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="field_no_view" value="1"<!-- IF S_FIELD_NO_VIEW --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
@@ -48,31 +48,27 @@
<fieldset>
<legend>{L_VISIBILITY_OPTION}</legend>
<dl>
<dt><label for="field_show_profile">{L_DISPLAY_AT_PROFILE}{L_COLON}</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
<dt><label for="field_show_profile">{L_DISPLAY_AT_PROFILE}:</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_show_profile" name="field_show_profile" value="1"<!-- IF S_SHOW_PROFILE --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTER}{L_COLON}</label><br /><span>{L_DISPLAY_AT_REGISTER_EXPLAIN}</span></dt>
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTER}:</label><br /><span>{L_DISPLAY_AT_REGISTER_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_show_on_reg" name="field_show_on_reg" value="1"<!-- IF S_SHOW_ON_REG --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_show_on_pm">{L_DISPLAY_ON_PM}{L_COLON}</label><br /><span>{L_DISPLAY_ON_PM_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_show_on_pm" name="field_show_on_pm" value="1"<!-- IF S_SHOW_ON_PM --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_show_on_vt">{L_DISPLAY_ON_VT}{L_COLON}</label><br /><span>{L_DISPLAY_ON_VT_EXPLAIN}</span></dt>
<dt><label for="field_show_on_vt">{L_DISPLAY_ON_VT}:</label><br /><span>{L_DISPLAY_ON_VT_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_show_on_vt" name="field_show_on_vt" value="1"<!-- IF S_SHOW_ON_VT --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_required">{L_REQUIRED_FIELD}{L_COLON}</label><br /><span>{L_REQUIRED_FIELD_EXPLAIN}</span></dt>
<dt><label for="field_required">{L_REQUIRED_FIELD}:</label><br /><span>{L_REQUIRED_FIELD_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_required" name="field_required" value="1"<!-- IF S_FIELD_REQUIRED --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_show_novalue">{L_SHOW_NOVALUE_FIELD}{L_COLON}</label><br /><span>{L_SHOW_NOVALUE_FIELD_EXPLAIN}</span></dt>
<dt><label for="field_show_novalue">{L_SHOW_NOVALUE_FIELD}:</label><br /><span>{L_SHOW_NOVALUE_FIELD_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_show_novalue" name="field_show_novalue" value="1"<!-- IF S_FIELD_SHOW_NOVALUE --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
<dl>
<dt><label for="field_hide">{L_HIDE_PROFILE_FIELD}{L_COLON}</label><br /><span>{L_HIDE_PROFILE_FIELD_EXPLAIN}</span></dt>
<dt><label for="field_hide">{L_HIDE_PROFILE_FIELD}:</label><br /><span>{L_HIDE_PROFILE_FIELD_EXPLAIN}</span></dt>
<dd><input type="checkbox" class="radio" id="field_hide" name="field_hide" value="1"<!-- IF S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
</dl>
</fieldset>
@@ -86,22 +82,22 @@
<fieldset>
<legend>{L_LANG_SPECIFIC}</legend>
<dl>
<dt><label for="lang_name">{L_USER_FIELD_NAME}{L_COLON}</label></dt>
<dt><label for="lang_name">{L_USER_FIELD_NAME}:</label></dt>
<dd><input class="text medium" type="text" id="lang_name" name="lang_name" value="{LANG_NAME}" /></dd>
</dl>
<dl>
<dt><label for="lang_explain">{L_FIELD_DESCRIPTION}{L_COLON}</label><br /><span>{L_FIELD_DESCRIPTION_EXPLAIN}</span></dt>
<dt><label for="lang_explain">{L_FIELD_DESCRIPTION}:</label><br /><span>{L_FIELD_DESCRIPTION_EXPLAIN}</span></dt>
<dd><textarea id="lang_explain" name="lang_explain" rows="3" cols="80">{LANG_EXPLAIN}</textarea></dd>
</dl>
<!-- IF S_TEXT or S_STRING -->
<dl>
<dt><label for="lang_default_value">{L_DEFAULT_VALUE}{L_COLON}</label><br /><span>{L_DEFAULT_VALUE_EXPLAIN}</span></dt>
<dt><label for="lang_default_value">{L_DEFAULT_VALUE}:</label><br /><span>{L_DEFAULT_VALUE_EXPLAIN}</span></dt>
<dd><!-- IF S_STRING --><input class="text medium" type="text" id="lang_default_value" name="lang_default_value" value="{LANG_DEFAULT_VALUE}" /><!-- ELSE --><textarea id="lang_default_value" name="lang_default_value" rows="5" cols="80">{LANG_DEFAULT_VALUE}</textarea><!-- ENDIF --></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_BOOL or S_DROPDOWN -->
<dl>
<dt><label for="lang_options">{L_ENTRIES}{L_COLON}</label>
<dt><label for="lang_options">{L_ENTRIES}:</label>
<!-- IF S_EDIT_MODE and S_DROPDOWN -->
<br /><span>{L_EDIT_DROPDOWN_LANG_EXPLAIN}</span>
<!-- ELSE -->
@@ -130,7 +126,7 @@
<legend>{L_TITLE}</legend>
<!-- BEGIN option -->
<dl>
<dt><label>{option.TITLE}{L_COLON}</label><!-- IF option.EXPLAIN --><br /><span>{option.EXPLAIN}</span><!-- ENDIF --></dt>
<dt><label>{option.TITLE}:</label><!-- IF option.EXPLAIN --><br /><span>{option.EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{option.FIELD}</dd>
</dl>
<!-- END option -->
@@ -153,7 +149,7 @@
<legend>{options.LANGUAGE}</legend>
<!-- BEGIN field -->
<dl>
<dt><label>{options.field.L_TITLE}{L_COLON}</label><!-- IF options.field.L_EXPLAIN --><br /><span>{options.field.L_EXPLAIN}</span><!-- ENDIF --></dt>
<dt><label>{options.field.L_TITLE}:</label><!-- IF options.field.L_EXPLAIN --><br /><span>{options.field.L_EXPLAIN}</span><!-- ENDIF --></dt>
{options.field.FIELD}
</dl>
<!-- END field -->
@@ -185,7 +181,7 @@
</div>
<!-- ENDIF -->
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_FIELD_IDENT}</th>
@@ -195,22 +191,29 @@
</thead>
<tbody>
<!-- BEGIN fields -->
<tr>
<!-- IF fields.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{fields.FIELD_IDENT}</td>
<td>{fields.FIELD_TYPE}</td>
<td style="text-align: center;"><a href="{fields.U_ACTIVATE_DEACTIVATE}" data-ajax="activate_deactivate">{fields.L_ACTIVATE_DEACTIVATE}</a><!-- IF fields.S_NEED_EDIT --> | <a href="{fields.U_TRANSLATE}" style="color: red;">{L_TRANSLATE}</a><!-- ENDIF --></td>
<td style="text-align: center;"><a href="{fields.U_ACTIVATE_DEACTIVATE}">{fields.L_ACTIVATE_DEACTIVATE}</a><!-- IF fields.S_NEED_EDIT --> | <a href="{fields.U_TRANSLATE}" style="color: red;">{L_TRANSLATE}</a><!-- ENDIF --></td>
<td class="actions" style="width: 80px;">
<span class="up-disabled" style="display:none;">{ICON_MOVE_UP_DISABLED}</span>
<span class="up"><a href="{fields.U_MOVE_UP}" data-ajax="row_up">{ICON_MOVE_UP}</a></span>
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{fields.U_MOVE_DOWN}" data-ajax="row_down">{ICON_MOVE_DOWN}</a></span>
<td style="width: 80px; text-align: right; white-space: nowrap;">
<!-- IF fields.S_FIRST_ROW && not fields.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED}
<a href="{fields.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF not fields.S_FIRST_ROW && not fields.S_LAST_ROW-->
<a href="{fields.U_MOVE_UP}">{ICON_MOVE_UP}</a>
<a href="{fields.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF fields.S_LAST_ROW && not fields.S_FIRST_ROW -->
<a href="{fields.U_MOVE_UP}">{ICON_MOVE_UP}</a>
{ICON_MOVE_DOWN_DISABLED}
<!-- ENDIF -->
<!-- IF not fields.S_NEED_EDIT -->
<a href="{fields.U_EDIT}">{ICON_EDIT}</a>
<!-- ELSE -->
{ICON_EDIT_DISABLED}
<!-- ENDIF -->
<a href="{fields.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
<a href="{fields.U_DELETE}">{ICON_DELETE}</a>
</td>
</tr>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_PRUNED -->
@@ -8,7 +8,7 @@
<p>{L_PRUNE_SUCCESS}</p>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_FORUM}</th>
@@ -18,7 +18,7 @@
</thead>
<tbody>
<!-- BEGIN pruned -->
<tr>
<!-- IF pruned.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;">{pruned.FORUM_NAME}</td>
<td style="text-align: center;">{pruned.NUM_TOPICS}</td>
<td style="text-align: center;">{pruned.NUM_POSTS}</td>
@@ -43,7 +43,7 @@
<legend>{L_SELECT_FORUM}</legend>
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
<dl>
<dt><label for="forum">{L_LOOK_UP_FORUM}{L_COLON}</label></dt>
<dt><label for="forum">{L_LOOK_UP_FORUM}:</label></dt>
<dd><select id="forum" name="f[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
<dd><label><input type="checkbox" class="radio" name="all_forums" value="1" /> {L_ALL_FORUMS}</label></dd>
</dl>
@@ -65,32 +65,32 @@
<h2>{L_FORUM}</h2>
<p>{L_SELECTED_FORUMS}{L_COLON} {FORUM_LIST}</p>
<p>{L_SELECTED_FORUMS}: {FORUM_LIST}</p>
<form id="acp_prune" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_FORUM_PRUNE}</legend>
<dl>
<dt><label for="prune_days">{L_PRUNE_NOT_POSTED}{L_COLON}</label></dt>
<dd><input type="number" id="prune_days" name="prune_days" /></dd>
<dt><label for="prune_days">{L_PRUNE_NOT_POSTED}:</label></dt>
<dd><input type="text" id="prune_days" name="prune_days" /></dd>
</dl>
<dl>
<dt><label for="prune_vieweddays">{L_PRUNE_NOT_VIEWED}{L_COLON}</label></dt>
<dd><input type="number" id="prune_vieweddays" name="prune_vieweddays" /></dd>
<dt><label for="prune_vieweddays">{L_PRUNE_NOT_VIEWED}:</label></dt>
<dd><input type="text" id="prune_vieweddays" name="prune_vieweddays" /></dd>
</dl>
<dl>
<dt><label for="polls">{L_PRUNE_OLD_POLLS}{L_COLON}</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
<dt><label for="polls">{L_PRUNE_OLD_POLLS}:</label><br /><span>{L_PRUNE_OLD_POLLS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="prune_old_polls" value="1" /> {L_YES}</label>
<label><input type="radio" class="radio" id="polls" name="prune_old_polls" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="announce">{L_PRUNE_ANNOUNCEMENTS}{L_COLON}</label></dt>
<dt><label for="announce">{L_PRUNE_ANNOUNCEMENTS}:</label></dt>
<dd><label><input type="radio" class="radio" name="prune_announce" value="1" /> {L_YES}</label>
<label><input type="radio" class="radio" id="announce" name="prune_announce" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="sticky">{L_PRUNE_STICKY}{L_COLON}</label></dt>
<dt><label for="sticky">{L_PRUNE_STICKY}:</label></dt>
<dd><label><input type="radio" class="radio" name="prune_sticky" value="1" /> {L_YES}</label>
<label><input type="radio" class="radio" id="sticky" name="prune_sticky" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_ACP_PRUNE_USERS}</h1>
@@ -9,64 +9,39 @@
<form id="acp_prune" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_CRITERIA}</legend>
<legend>{L_ACP_PRUNE_USERS}</legend>
<dl>
<dt><label for="username">{L_USERNAME}{L_COLON}</label></dt>
<dt><label for="username">{L_USERNAME}:</label></dt>
<dd><input type="text" id="username" name="username" /></dd>
</dl>
<dl>
<dt><label for="email">{L_EMAIL}{L_COLON}</label></dt>
<dt><label for="email">{L_EMAIL}:</label></dt>
<dd><input type="text" id="email" name="email" /></dd>
</dl>
<dl>
<dt><label for="email">{L_WEBSITE}{L_COLON}</label></dt>
<dd><input type="text" id="website" name="website" /></dd>
<dt><label for="joined">{L_JOINED}:</label><br /><span>{L_JOINED_EXPLAIN}</span></dt>
<dd><select name="joined_select">{S_JOINED_OPTIONS}</select> <input type="text" id="joined" name="joined" /></dd>
</dl>
<dl>
<dt><label for="joined">{L_JOINED}{L_COLON}</label><br /><span>{L_JOINED_EXPLAIN}</span></dt>
<dd>
<strong>{L_AFTER}</strong> <input type="text" id="joined_after" name="joined_after" />
<br /> <br /> <strong>{L_BEFORE}</strong> <input type="text" id="joined_before" name="joined_before" />
</dd>
</dl>
<dl>
<dt><label for="active">{L_LAST_ACTIVE}{L_COLON}</label><br /><span>{L_LAST_ACTIVE_EXPLAIN}</span></dt>
<dt><label for="active">{L_LAST_ACTIVE}:</label><br /><span>{L_LAST_ACTIVE_EXPLAIN}</span></dt>
<dd><select name="active_select">{S_ACTIVE_OPTIONS}</select> <input type="text" id="active" name="active" /></dd>
</dl>
<dl>
<dt><label for="count">{L_POSTS}{L_COLON}</label></dt>
<dd><select name="count_select">{S_COUNT_OPTIONS}</select> <input type="number" id="count" name="count" /></dd>
<dt><label for="count">{L_POSTS}:</label></dt>
<dd><select name="count_select">{S_COUNT_OPTIONS}</select> <input type="text" id="count" name="count" /></dd>
</dl>
<dl>
<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" /></dd>
</dl>
<!-- IF S_GROUP_LIST -->
<dl>
<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>
</dl>
<!-- ENDIF -->
</fieldset>
<fieldset>
<legend>{L_USERNAMES}</legend>
<dl>
<dt><label for="users">{L_ACP_PRUNE_USERS}{L_COLON}</label><br /><span>{L_SELECT_USERS_EXPLAIN}</span></dt>
<dt><label for="users">{L_ACP_PRUNE_USERS}:</label><br /><span>{L_SELECT_USERS_EXPLAIN}</span></dt>
<dd><textarea id="users" name="users" cols="40" rows="5"></textarea></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_OPTIONS}</legend>
<dl>
<dt><label for="deleteposts">{L_DELETE_USER_POSTS}{L_COLON}</label><br /><span>{L_DELETE_USER_POSTS_EXPLAIN}</span></dt>
<dt><label for="deleteposts">{L_DELETE_USER_POSTS}:</label><br /><span>{L_DELETE_USER_POSTS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="deleteposts" value="1" /> {L_YES}</label>
<label><input type="radio" class="radio" id="deleteposts" name="deleteposts" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="deactivate">{L_DEACTIVATE_DELETE}{L_COLON}</label><br /><span>{L_DEACTIVATE_DELETE_EXPLAIN}</span></dt>
<dt><label for="deactivate">{L_DEACTIVATE_DELETE}:</label><br /><span>{L_DEACTIVATE_DELETE_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="action" value="delete" /> {L_DELETE_USERS}</label>
<label><input type="radio" class="radio" id="deactivate" name="action" value="deactivate" checked="checked" /> {L_DEACTIVATE}</label></dd>
</dl>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT -->
@@ -25,23 +25,23 @@
<fieldset>
<legend>{L_ACP_RANKS}</legend>
<dl>
<dt><label for="title">{L_RANK_TITLE}{L_COLON}</label></dt>
<dt><label for="title">{L_RANK_TITLE}:</label></dt>
<dd><input name="title" type="text" id="title" value="{RANK_TITLE}" maxlength="255" /></dd>
</dl>
<dl>
<dt><label for="rank_image">{L_RANK_IMAGE}{L_COLON}</label></dt>
<dt><label for="rank_image">{L_RANK_IMAGE}:</label></dt>
<dd><select name="rank_image" id="rank_image" onchange="update_image(this.options[selectedIndex].value);">{S_FILENAME_LIST}</select></dd>
<dd><img src="{RANK_IMAGE}" id="image" alt="" /></dd>
</dl>
<dl>
<dt><label for="special_rank">{L_RANK_SPECIAL}{L_COLON}</label></dt>
<dt><label for="special_rank">{L_RANK_SPECIAL}:</label></dt>
<dd><label><input onclick="dE('posts', -1)" type="radio" class="radio" name="special_rank" value="1" id="special_rank"<!-- IF S_SPECIAL_RANK --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input onclick="dE('posts', 1)" type="radio" class="radio" name="special_rank" value="0"<!-- IF not S_SPECIAL_RANK --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<!-- IF S_SPECIAL_RANK --><div id="posts" style="display: none;"><!-- ELSE --><div id="posts"><!-- ENDIF -->
<dl>
<dt><label for="min_posts">{L_RANK_MINIMUM}{L_COLON}</label></dt>
<dd><input name="min_posts" type="number" id="min_posts" maxlength="10" value="{MIN_POSTS}" /></dd>
<dt><label for="min_posts">{L_RANK_MINIMUM}:</label></dt>
<dd><input name="min_posts" type="text" id="min_posts" maxlength="10" value="{MIN_POSTS}" /></dd>
</dl>
</div>
@@ -65,7 +65,7 @@
<fieldset class="tabulated">
<legend>{L_ACP_MANAGE_RANKS}</legend>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_RANK_IMAGE}</th>
@@ -76,11 +76,11 @@
</thead>
<tbody>
<!-- BEGIN ranks -->
<tr>
<!-- IF ranks.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;"><!-- IF ranks.S_RANK_IMAGE --><img src="{ranks.RANK_IMAGE}" alt="{ranks.RANK_TITLE}" title="{ranks.RANK_TITLE}" /><!-- ELSE -->&nbsp; - &nbsp;<!-- ENDIF --></td>
<td style="text-align: center;">{ranks.RANK_TITLE}</td>
<td style="text-align: center;"><!-- IF ranks.S_SPECIAL_RANK -->&nbsp; - &nbsp;<!-- ELSE -->{ranks.MIN_POSTS}<!-- ENDIF --></td>
<td style="text-align: center;"><a href="{ranks.U_EDIT}">{ICON_EDIT}</a> <a href="{ranks.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a></td>
<td style="text-align: center;"><a href="{ranks.U_EDIT}">{ICON_EDIT}</a> <a href="{ranks.U_DELETE}">{ICON_DELETE}</a></td>
</tr>
<!-- END ranks -->
</tbody>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT_REASON -->
@@ -29,7 +29,7 @@
<legend>{L_TITLE}</legend>
<p><!-- IF S_TRANSLATED -->{L_IS_TRANSLATED_EXPLAIN}<!-- ELSE -->{L_IS_NOT_TRANSLATED_EXPLAIN}<!-- ENDIF --></p>
<dl>
<dt><label for="reason_title">{L_REASON_TITLE}{L_COLON}</label></dt>
<dt><label for="reason_title">{L_REASON_TITLE}:</label></dt>
<dd><input name="reason_title" type="text" id="reason_title" value="{REASON_TITLE}" maxlength="255" /></dd>
</dl>
<!-- IF S_TRANSLATED -->
@@ -39,7 +39,7 @@
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="reason_description">{L_REASON_DESCRIPTION}{L_COLON}</label></dt>
<dt><label for="reason_description">{L_REASON_DESCRIPTION}:</label></dt>
<dd><textarea name="reason_description" id="reason_description" rows="8" cols="80">{REASON_DESCRIPTION}</textarea></dd>
</dl>
<!-- IF S_TRANSLATED -->
@@ -68,7 +68,7 @@
<legend>{L_ACP_REASONS}</legend>
<!-- IF .reasons -->
<table class="table1">
<table cellspacing="1">
<col class="row1" /><col class="row1" /><col class="row2" />
<thead>
<tr>
@@ -86,14 +86,20 @@
<br /><span>{reasons.REASON_DESCRIPTION}</span>
</td>
<td style="width: 100px;">{reasons.REASON_COUNT}</td>
<td class="actions" style="width: 80px;">
<span class="up-disabled" style="display:none;">{ICON_MOVE_UP_DISABLED}</span>
<span class="up"><a href="{reasons.U_MOVE_UP}" data-ajax="row_up">{ICON_MOVE_UP}</a></span>
<span class="down-disabled" style="display:none;">{ICON_MOVE_DOWN_DISABLED}</span>
<span class="down"><a href="{reasons.U_MOVE_DOWN}" data-ajax="row_down">{ICON_MOVE_DOWN}</a></span>
<td style="width: 80px; text-align: right; white-space: nowrap;">
<!-- IF reasons.S_FIRST_ROW && not reasons.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED}
<a href="{reasons.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF not reasons.S_FIRST_ROW && not reasons.S_LAST_ROW-->
<a href="{reasons.U_MOVE_UP}">{ICON_MOVE_UP}</a>
<a href="{reasons.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a>
<!-- ELSEIF reasons.S_LAST_ROW && not reasons.S_FIRST_ROW -->
<a href="{reasons.U_MOVE_UP}">{ICON_MOVE_UP}</a>
{ICON_MOVE_DOWN_DISABLED}
<!-- ENDIF -->
<a href="{reasons.U_EDIT}">{ICON_EDIT}</a>
<!-- IF reasons.U_DELETE -->
<a href="{reasons.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>
<a href="{reasons.U_DELETE}">{ICON_DELETE}</a>
<!-- ELSE -->
{ICON_DELETE_DISABLED}
<!-- ENDIF -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_SETTINGS -->
<h1>{L_ACP_SEARCH_SETTINGS}</h1>
@@ -12,40 +12,40 @@
<fieldset>
<legend>{L_GENERAL_SEARCH_SETTINGS}</legend>
<dl>
<dt><label for="load_search">{L_YES_SEARCH}{L_COLON}</label><br /><span>{L_YES_SEARCH_EXPLAIN}</span></dt>
<dt><label for="load_search">{L_YES_SEARCH}:</label><br /><span>{L_YES_SEARCH_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="load_search" name="config[load_search]" value="1"<!-- IF S_YES_SEARCH --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="config[load_search]" value="0"<!-- IF not S_YES_SEARCH --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="search_interval">{L_SEARCH_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_INTERVAL_EXPLAIN}</span></dt>
<dd><input id="search_interval" type="number" size="4" maxlength="4" min="0" max="9999" name="config[search_interval]" value="{SEARCH_INTERVAL}" /> {L_SECONDS}</dd>
<dt><label for="search_interval">{L_SEARCH_INTERVAL}:</label><br /><span>{L_SEARCH_INTERVAL_EXPLAIN}</span></dt>
<dd><input id="search_interval" type="text" size="4" maxlength="4" name="config[search_interval]" value="{SEARCH_INTERVAL}" /> {L_SECONDS}</dd>
</dl>
<dl>
<dt><label for="search_anonymous_interval">{L_SEARCH_GUEST_INTERVAL}{L_COLON}</label><br /><span>{L_SEARCH_GUEST_INTERVAL_EXPLAIN}</span></dt>
<dd><input id="search_anonymous_interval" type="number" size="4" maxlength="4" min="0" max="9999" name="config[search_anonymous_interval]" value="{SEARCH_GUEST_INTERVAL}" /> {L_SECONDS}</dd>
<dt><label for="search_anonymous_interval">{L_SEARCH_GUEST_INTERVAL}:</label><br /><span>{L_SEARCH_GUEST_INTERVAL_EXPLAIN}</span></dt>
<dd><input id="search_anonymous_interval" type="text" size="4" maxlength="4" name="config[search_anonymous_interval]" value="{SEARCH_GUEST_INTERVAL}" /> {L_SECONDS}</dd>
</dl>
<dl>
<dt><label for="limit_search_load">{L_LIMIT_SEARCH_LOAD}{L_COLON}</label><br /><span>{L_LIMIT_SEARCH_LOAD_EXPLAIN}</span></dt>
<dt><label for="limit_search_load">{L_LIMIT_SEARCH_LOAD}:</label><br /><span>{L_LIMIT_SEARCH_LOAD_EXPLAIN}</span></dt>
<dd><input id="limit_search_load" type="text" size="4" maxlength="4" name="config[limit_search_load]" value="{LIMIT_SEARCH_LOAD}" /></dd>
</dl>
<dl>
<dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}{L_COLON}</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
<dd><input id="min_search_author_chars" type="number" size="4" maxlength="4" min="0" max="9999" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
<dt><label for="min_search_author_chars">{L_MIN_SEARCH_AUTHOR_CHARS}:</label><br /><span>{L_MIN_SEARCH_AUTHOR_CHARS_EXPLAIN}</span></dt>
<dd><input id="min_search_author_chars" type="text" size="4" maxlength="4" name="config[min_search_author_chars]" value="{MIN_SEARCH_AUTHOR_CHARS}" /></dd>
</dl>
<dl>
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}{L_COLON}</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
<dd><input id="max_num_search_keywords" type="number" size="4" maxlength="4" min="0" max="9999" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
<dt><label for="max_num_search_keywords">{L_MAX_NUM_SEARCH_KEYWORDS}:</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
<dd><input id="max_num_search_keywords" type="text" size="4" maxlength="4" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
</dl>
<dl>
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}{L_COLON}</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
<dd><input id="search_store_results" type="number" size="4" maxlength="6" min="0" max="999999" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}:</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
<dd><input id="search_store_results" type="text" size="4" maxlength="6" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_SEARCH_TYPE}</legend>
<dl>
<dt><label for="search_type">{L_SEARCH_TYPE}{L_COLON}</label><br /><span>{L_SEARCH_TYPE_EXPLAIN}</span></dt>
<dt><label for="search_type">{L_SEARCH_TYPE}:</label><br /><span>{L_SEARCH_TYPE_EXPLAIN}</span></dt>
<dd><select id="search_type" name="config[search_type]">{S_SEARCH_TYPES}</select></dd>
</dl>
</fieldset>
@@ -110,9 +110,9 @@
{backend.S_HIDDEN_FIELDS}
<legend>{L_INDEX_STATS}{L_COLON} {backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></legend>
<legend>{L_INDEX_STATS}: {backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></legend>
<table class="table1">
<table cellspacing="1">
<caption>{backend.L_NAME} <!-- IF backend.S_ACTIVE -->({L_ACTIVE}) <!-- ENDIF --></caption>
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
<thead>
@@ -126,9 +126,9 @@
<tbody>
<!-- BEGIN data -->
<tr>
<td>{backend.data.STATISTIC_1}{L_COLON}</td>
<td>{backend.data.STATISTIC_1}:</td>
<td>{backend.data.VALUE_1}</td>
<td>{backend.data.STATISTIC_2}<!-- IF backend.data.STATISTIC_2 -->{L_COLON}<!-- ENDIF --></td>
<td>{backend.data.STATISTIC_2}<!-- IF backend.data.STATISTIC_2 -->:<!-- ENDIF --></td>
<td>{backend.data.VALUE_2}</td>
</tr>
<!-- END data -->
@@ -139,11 +139,9 @@
<p class="quick">
<!-- IF backend.S_INDEXED -->
<input type="hidden" name="action" value="delete" />
<input class="button2" type="submit" value="{L_DELETE_INDEX}" onclick="popup_progress_bar('delete');" />
<input class="button2" type="submit" name="action[delete]" value="{L_DELETE_INDEX}" onclick="popup_progress_bar('delete');" />
<!-- ELSE -->
<input type="hidden" name="action" value="create" />
<input class="button2" type="submit" value="{L_CREATE_INDEX}" onclick="popup_progress_bar('create');" />
<input class="button2" type="submit" name="action[create]" value="{L_CREATE_INDEX}" onclick="popup_progress_bar('create');" />
<!-- ENDIF -->
</p>
{S_FORM_TOKEN}

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_SEND_STATISTICS}</h1>
@@ -68,4 +68,4 @@ function iframe_updated()
//]]>
</script>
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,168 +1,541 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_CONFIRM_ACTION -->
<form id="confirm" method="post" action="{S_CONFIRM_ACTION}">
<!-- IF S_DELETE -->
<fieldset>
<h1>{MESSAGE_TITLE}</h1>
<p>{MESSAGE_TEXT}</p>
<!-- IF S_CONFIRM_DELETE -->
<label><input type="checkbox" class="checkbox" name="confirm_delete_files" /> {L_DELETE_FROM_FS}</label>
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<form id="acp_styles" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label>{L_NAME}:</label></dt>
<dd><strong>{NAME}</strong></dd>
</dl>
<dl>
<dt><label for="new_id">{L_REPLACE}:</label><br /><span>{L_REPLACE_EXPLAIN}</span></dt>
<dd><select id="new_id" name="new_id">{S_REPLACE_OPTIONS}</select></dd>
</dl>
<!-- IF S_DELETE_STYLE -->
<hr />
<dl>
<dt><label for="new_template_id">{L_DELETE_TEMPLATE}:</label><br /><span>{L_REPLACE_TEMPLATE_EXPLAIN}</span></dt>
<dd><select id="new_template_id" name="new_template_id">{S_REPLACE_TEMPLATE_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="new_theme_id">{L_DELETE_THEME}:</label><br /><span>{L_REPLACE_THEME_EXPLAIN}</span></dt>
<dd><select id="new_theme_id" name="new_theme_id">{S_REPLACE_THEME_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="new_imageset_id">{L_DELETE_IMAGESET}:</label><br /><span>{L_REPLACE_IMAGESET_EXPLAIN}</span></dt>
<dd><select id="new_imageset_id" name="new_imageset_id">{S_REPLACE_IMAGESET_OPTIONS}</select></dd>
</dl>
<!-- ENDIF -->
{S_HIDDEN_FIELDS}
<p class="quick">
<input class="button1" type="submit" name="update" value="{L_DELETE}" />
{S_FORM_TOKEN}
</p>
</fieldset>
</form>
<div style="text-align: center;">
<input type="submit" name="confirm" value="{L_YES}" class="button2" />&nbsp;
<input type="submit" name="cancel" value="{L_NO}" class="button2" />
</div>
<!-- ELSEIF S_EDIT_IMAGESET -->
</fieldset>
</form>
<!-- ELSE -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<!-- IF L_TITLE --><h1>{L_TITLE}</h1><!-- ENDIF -->
<h1>{L_TITLE}</h1>
<!-- IF L_EXPLAIN --><p>{L_EXPLAIN}</p><!-- ENDIF -->
<p>{L_EXPLAIN}</p>
<form id="acp_styles" method="post" action="{U_ACTION}">
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<!-- IF SUCCESS -->
<div class="successbox">
<p>{L_IMAGESET_UPDATED}</p>
</div>
<!-- ENDIF -->
<!-- IF ERROR -->
<div class="errorbox">
<p>{L_NO_IMAGE}</p>
</div>
<!-- ENDIF -->
<script type="text/javascript" defer="defer">
// <![CDATA[
function update_image(newimage)
{
document.getElementById('newimg').src = (newimage) ? '../styles/{A_PATH}/imageset/' + encodeURI(newimage) : 'images/no_image.png';
}
// ]]>
</script>
<script type="text/javascript">
// <![CDATA[
/**
* Handle displaying/hiding the dimension fields
*/
function display_options(value)
{
if (value == 0)
{
dE('img_dimensions', -1);
}
else
{
dE('img_dimensions', 1);
}
}
/**
* Init the wanted display functionality if javascript is enabled.
* If javascript is not available, the user is still able to properly administer.
*/
onload = function()
{
<!-- IF not IMAGE_SIZE -->
dE('img_dimensions', -1);
<!-- ENDIF -->
}
// ]]>
</script>
<form method="post" action="{U_ACTION}">
<fieldset class="quick" style="text-align: left;">
<legend>{L_SELECT_IMAGE}</legend>
{L_SELECT_IMAGE}: <select name="imgname" onchange="this.form.submit();">
<!-- BEGIN category -->
<option class="sep" value="" disabled="disabled">{category.NAME}</option>
<!-- BEGIN images --><option value="{category.images.VALUE}"<!-- IF category.images.SELECTED--> selected="selected"<!-- ENDIF -->>&nbsp;&nbsp;&nbsp;&nbsp;{category.images.TEXT}</option>
<!-- END images -->
<!-- END category -->
</select>&nbsp; <input class="button1" type="submit" value="{L_SELECT}" tabindex="100" />
</fieldset>
<!-- IF S_STYLE_DETAILS -->
<input type="hidden" name="id" value="{STYLE_ID}" />
<fieldset>
<legend>{L_EDIT_IMAGESET}</legend>
<dl>
<dt><label for="name">{L_STYLE_NAME}{L_COLON}</label></dt>
<dd><input type="text" id="name" name="style_name" value="{STYLE_NAME}" /></dd>
<dt><label>{L_CURRENT_IMAGE}:</label></dt>
<dd><img src="<!-- IF IMAGE_REQUEST -->{IMAGE_REQUEST}<!-- ELSE -->images/no_image.png<!-- ENDIF -->" alt="" /></dd>
</dl>
<dl>
<dt><label>{L_STYLE_PATH}</label></dt>
<dd><strong>{STYLE_PATH}</strong></dd>
<dt><label>{L_SELECTED_IMAGE}:</label></dt>
<dd><img src="{IMG_SRC}" id="newimg" alt="" /></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_IMAGE}</legend>
<dl>
<dt><label for="imgpath">{L_IMAGE}:</label></dt>
<dd><select id="imgpath" name="imgpath" onchange="update_image(this.options[selectedIndex].value);"><option value=""<!-- IF not IMAGE_SELECT--> selected="selected"<!-- ENDIF -->>{L_NO_IMAGE}</option>
<!-- BEGIN imagesetlist -->
<option class="sep" value=""><!-- IF imagesetlist.TYPE -->{L_LOCALISED_IMAGES}<!-- ELSE -->{L_GLOBAL_IMAGES}<!-- ENDIF --></option>
<!-- BEGIN images -->
<option value="{imagesetlist.images.VALUE}"<!-- IF imagesetlist.images.SELECTED--> selected="selected"<!-- ENDIF -->>{imagesetlist.images.TEXT}</option>
<!-- END images -->
<!-- END imagesetlist -->
</select>
</dd>
</dl>
<dl>
<dt><label for="name">{L_COPYRIGHT}{L_COLON}</label></dt>
<dd><strong>{STYLE_COPYRIGHT}</strong></dd>
<dt><label for="imgsize">{L_INCLUDE_DIMENSIONS}:</label><br /><span>{L_DIMENSIONS_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="imgsize" id="imgsize" onclick="display_options(1);" value="1"<!-- IF IMAGE_SIZE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="imgsize" onclick="display_options(0);" value="0"<!-- IF not IMAGE_SIZE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="style_parent">{L_INHERITING_FROM}{L_COLON}</label></dt>
<dd><select id="style_parent" name="style_parent">
<option value=""<!-- IF STYLE_PARENT == 0 --> selected="selected"<!-- ENDIF -->> - </option>
<!-- BEGIN parent_styles -->
<option value="{parent_styles.STYLE_ID}"<!-- IF parent_styles.STYLE_ID == STYLE_PARENT --> selected="selected"<!-- ENDIF -->>{parent_styles.SPACER}{parent_styles.STYLE_NAME}</option>
<!-- END parent_styles -->
</select></dd>
</dl>
<dl>
<dt><label for="style_active">{L_STYLE_ACTIVE}{L_COLON}</label></dt>
<dd><label><input type="radio" class="radio" name="style_active" value="1"<!-- IF S_STYLE_ACTIVE --> id="style_active" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="style_active" value="0"<!-- IF not S_STYLE_ACTIVE --> id="style_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<!-- IF not S_STYLE_DEFAULT -->
<div id="img_dimensions">
<dl>
<dt><label for="style_default">{L_STYLE_DEFAULT}{L_COLON}</label></dt>
<dd><label><input type="radio" class="radio" name="style_default" value="1" /> {L_YES}</label>
<label><input type="radio" class="radio" id="style_default" name="style_default" value="0" checked="checked" /> {L_NO}</label></dd>
<dt><label for="imgwidth">{L_IMAGE_WIDTH}:</label><br /><span>{L_AUTOMATIC_EXPLAIN}</span></dt>
<dd><input id="imgwidth" type="text" name="imgwidth" value="{IMAGE_SIZE}" /></dd>
</dl>
<dl>
<dt><label for="imgheight">{L_IMAGE_HEIGHT}:</label><br /><span>{L_AUTOMATIC_EXPLAIN}</span></dt>
<dd><input id="imgheight" type="text" name="imgheight" value="{IMAGE_HEIGHT}" /></dd>
</dl>
</div>
</fieldset>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="button2" type="reset" value="{L_RESET}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- ELSEIF S_EDIT_TEMPLATE or S_EDIT_THEME -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_EDIT}</h1>
<p>{L_EDIT_EXPLAIN}</p>
<p>{L_SELECTED}: <strong>{SELECTED_TEMPLATE}</strong></p>
<form id="acp_styles" method="post" action="{U_ACTION}">
<!-- IF S_EDIT_TEMPLATE or (S_EDIT_THEME and not S_THEME_IN_DB) -->
<fieldset>
<legend>{L_SELECT}</legend>
<dl>
<dt><label for="template_file">{L_FILE}:</label></dt>
<dd><select id="template_file" name="template_file" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_TEMPLATES}</select> <input class="button2" type="submit" value="{L_SELECT}" /></dd>
</dl>
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->
</form>
<!-- IF TEMPLATE_FILE or (S_EDIT_THEME and S_THEME_IN_DB) -->
<script type="text/javascript" defer="defer">
// <![CDATA[
function change_editor_height(height)
{
height = Number(height);
if (isNaN(height))
{
return;
}
editor = document.getElementById('template_data');
editor.rows = Math.max(5, Math.min(height, 999));
append_text_rows('acp_styles', height);
append_text_rows('acp_template', height);
}
function append_text_rows(form_name, value)
{
value = Number(value);
if (isNaN(value))
{
return;
}
url = document.getElementById(form_name).action;
// Make sure &amp; is actually... &
url = url.replace(/&amp;/g, '&');
var_start = url.indexOf('&text_rows=');
if (var_start == -1)
{
document.getElementById(form_name).action = url + "&text_rows=" + value;
}
else
{
url_start = url.substring(0, var_start + 1);
var_end = url.substring(var_start + 1).indexOf('&');
if (var_end == -1)
{
document.getElementById(form_name).action = url_start + "text_rows=" + value;
}
else
{
document.getElementById(form_name).action = url_start + url.substring(var_end + var_start + 2) + "&text_rows=" + value;
}
}
}
// ]]>
</script>
<form id="acp_template" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_EDITOR}</legend>
<!-- IF S_EDIT_TEMPLATE or (S_EDIT_THEME and not S_THEME_IN_DB) -->
<dl>
<dt><label>{L_SELECTED_FILE}:</label></dt>
<dd>{TEMPLATE_FILE}</dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="text_rows">{L_EDITOR_HEIGHT}:</label></dt>
<dd><input id="text_rows" type="text" maxlength="3" value="{TEXT_ROWS}" /> <input class="button2" type="button" name="update" onclick="change_editor_height(this.form.text_rows.value);" value="{L_UPDATE}" /></dd>
</dl>
<textarea id="template_data" name="template_data" style="font-family:'Courier New', monospace;font-size:9pt;line-height:125%;width:100%;" cols="80" rows="{TEXT_ROWS}">{TEMPLATE_DATA}</textarea>
</fieldset>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
<input class="button1" id="save" type="submit" name="save" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- ELSEIF S_CACHE -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_TEMPLATE_CACHE}</h1>
<p>{L_TEMPLATE_CACHE_EXPLAIN}</p>
<form id="acp_styles" method="post" action="{U_ACTION}">
<fieldset class="tabulated">
<legend>{L_TEMPLATE_CACHE}</legend>
<table cellspacing="1">
<thead>
<tr>
<th>{L_CACHE_FILENAME}</th>
<th>{L_CACHE_FILESIZE}</th>
<th>{L_CACHE_CACHED}</th>
<th>{L_CACHE_MODIFIED}</th>
<th>{L_MARK}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN file -->
<!-- IF file.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{file.U_VIEWSOURCE}" onclick="popup(this.href, 750, 550, '_source'); return false;">{file.FILENAME_PATH}</a></td>
<td>{file.FILESIZE}</td>
<td>{file.CACHED}</td>
<td>{file.MODIFIED}</td>
<td><input type="checkbox" class="radio" name="delete[]" value="{file.FILENAME}" /></td>
</tr>
<!-- BEGINELSE -->
<tr class="row1">
<td colspan="5">{L_TEMPLATE_CACHE_EMPTY}</td>
</tr>
<!-- END file -->
</tbody>
</table>
<p class="quick">
<span class="small"><a href="#" onclick="marklist('acp_styles', 'delete', true); return false;">{L_MARK_ALL}</a> :: <a href="#" onclick="marklist('acp_styles', 'delete', false); return false;">{L_UNMARK_ALL}</a></span><br />
{S_FORM_TOKEN}
<input class="button1" type="submit" id="submit" name="submit" value="{L_DELETE_MARKED}" />
</p>
</fieldset>
</form>
<!-- ELSEIF S_EXPORT -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<!-- IF S_ERROR_MSG -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="acp_styles" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label>{L_NAME}:</label></dt>
<dd><strong>{NAME}</strong></dd>
</dl>
<!-- IF S_STYLE -->
<dl>
<dt><label for="inc_template">{L_INCLUDE_TEMPLATE}:</label></dt>
<dd><label><input type="radio" class="radio" id="inc_template" name="inc_template" value="1" checked="checked" /> {L_YES}</label>
<label><input type="radio" class="radio" name="inc_template" value="0" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="inc_theme">{L_INCLUDE_THEME}:</label></dt>
<dd><label><input type="radio" class="radio" id="inc_theme" name="inc_theme" value="1" checked="checked" /> {L_YES}</label>
<label><input type="radio" class="radio" name="inc_theme" value="0" /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="inc_imageset">{L_INCLUDE_IMAGESET}:</label></dt>
<dd><label><input type="radio" class="radio" id="inc_imageset" name="inc_imageset" value="1" checked="checked" /> {L_YES}</label>
<label><input type="radio" class="radio" name="inc_imageset" value="0" /> {L_NO}</label></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label for="store">{L_DOWNLOAD_STORE}:</label><br /><span>{L_DOWNLOAD_STORE_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" id="store" name="store" value="1" checked="checked" /> {L_EXPORT_STORE}</label>
<label><input type="radio" class="radio" name="store" value="0" /> {L_EXPORT_DOWNLOAD}</label></dd>
</dl>
<dl>
<dt><label for="format">{L_ARCHIVE_FORMAT}:</label></dt>
<dd>{FORMAT_BUTTONS}</dd>
</dl>
<p class="quick">
{S_FORM_TOKEN}
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</p>
</fieldset>
</form>
<!-- ELSEIF S_FRONTEND -->
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<!-- IF S_STYLE --> <!-- DEFINE $COLSPAN = 5 --> <!-- ELSE --> <!-- DEFINE $COLSPAN = 4 --> <!-- ENDIF -->
<table cellspacing="1">
<col class="row1" /><!-- IF S_STYLE --><col class="row1" /><!-- ENDIF --><col class="row2" /><col class="row2" />
<thead>
<tr>
<th>{L_NAME}</th>
<!-- IF S_STYLE --><th>{L_STYLE_USED_BY}</th><!-- ENDIF -->
<th>{L_OPTIONS}</th>
<th>{L_ACTIONS}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="row3" colspan="{$COLSPAN}"><strong>{L_INSTALLED}</strong></td>
</tr>
<!-- BEGIN installed -->
<!-- IF installed.S_INACTIVE and not $INACTIVE_STYLES -->
<!-- DEFINE $INACTIVE_STYLES = 1 -->
<tr>
<td class="row3" colspan="{$COLSPAN}"><strong>{L_INACTIVE_STYLES}</strong></td>
</tr>
<!-- ENDIF -->
<tr>
<td><strong>{installed.NAME}</strong><!-- IF installed.S_DEFAULT_STYLE --> *<!-- ENDIF --></td>
<!-- IF S_STYLE -->
<td style="text-align: center;">{installed.STYLE_COUNT}</td>
<!-- ENDIF -->
<td style="text-align: center;">
{installed.S_OPTIONS}
</td>
<td style="text-align: center;">
<!-- IF S_STYLE -->
<a href="{installed.U_STYLE_ACT_DEACT}">{installed.L_STYLE_ACT_DEACT}</a> |
<!-- ENDIF -->
{installed.S_ACTIONS}
<!-- IF S_STYLE -->
| <a href="{installed.U_PREVIEW}">{L_PREVIEW}</a>
<!-- ENDIF -->
</td>
</tr>
<!-- END installed -->
<tr>
<td class="row3" colspan="{$COLSPAN}"><strong>{L_UNINSTALLED}</strong></td>
</tr>
<!-- IF not .uninstalled -->
<tr>
<td class="row1" colspan="{$COLSPAN}" style="text-align: center;">{L_NO_UNINSTALLED}</td>
</tr>
<!-- ENDIF -->
<!-- BEGIN uninstalled -->
<tr>
<td<!-- IF S_STYLE --> colspan="2"<!-- ENDIF -->><strong>{uninstalled.NAME}</strong><br /><span>{L_COPYRIGHT}: {uninstalled.COPYRIGHT}</span></td>
<td style="text-align: center;" colspan="2"><a href="{uninstalled.U_INSTALL}">{L_INSTALL}</a></td>
</tr>
<!-- END uninstalled -->
</tbody>
</table>
<!-- IF S_STYLE -->
<form id="acp_styles" method="post" action="{U_ACTION}">
<fieldset class="quick">
<legend>{L_CREATE}</legend>
{L_CREATE}: <input type="text" name="name" value="" /> {L_FROM} <select name="basis">{S_BASIS_OPTIONS}</select> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- ELSEIF S_DETAILS -->
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<!-- IF S_ERROR_MSG -->
<div class="errorbox">
<h3>{L_WARNING}</h3>
<p>{ERROR_MSG}</p>
</div>
<!-- ENDIF -->
<form id="acp_styles" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_TITLE}</legend>
<dl>
<dt><label for="name">{L_NAME}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="name">{NAME}</strong><!-- ELSE --><input type="text" id="name" name="name" value="{NAME}" /><!-- ENDIF --></dd>
</dl>
<dl>
<dt><label for="copyright">{L_COPYRIGHT}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="copyright">{COPYRIGHT}</strong><!-- ELSE --><input type="text" id="copyright" name="copyright" value="{COPYRIGHT}" /><!-- ENDIF --></dd>
</dl>
<!-- IF S_SUPERTEMPLATE -->
<dl>
<dt><label for="inheriting">{L_INHERITING_FROM}:</label></dt>
<dd><strong id="inheriting">{S_SUPERTEMPLATE}</strong></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_STYLE and not S_BASIS -->
<dl>
<dt><label for="template_id">{L_STYLE_TEMPLATE}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="template_id">{TEMPLATE_NAME}</strong><!-- ELSE --><select id="template_id" name="template_id">{S_TEMPLATE_OPTIONS}</select><!-- ENDIF --></dd>
</dl>
<dl>
<dt><label for="theme_id">{L_STYLE_THEME}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="theme_id">{THEME_NAME}</strong><!-- ELSE --><select id="theme_id" name="theme_id">{S_THEME_OPTIONS}</select><!-- ENDIF --></dd>
</dl>
<dl>
<dt><label for="imageset_id">{L_STYLE_IMAGESET}:</label></dt>
<dd><!-- IF S_INSTALL --><strong id="imageset_id">{IMAGESET_NAME}</strong><!-- ELSE --><select id="imageset_id" name="imageset_id">{S_IMAGESET_OPTIONS}</select><!-- ENDIF --></dd>
</dl>
<!-- ENDIF -->
<!-- IF (S_TEMPLATE or S_THEME) and (S_LOCATION or not S_INSTALL) -->
<dl>
<dt><label for="store_db">{L_LOCATION}:</label><br /><span><!-- IF S_STORE_DB_DISABLED -->{L_LOCATION_DISABLED_EXPLAIN}<!-- ELSE -->{L_LOCATION_EXPLAIN}<!-- ENDIF --></span></dt>
<dd><label><input type="radio" class="radio" name="store_db" value="0"<!-- IF not S_STORE_DB --> id="store_db" checked="checked"<!-- ENDIF --> <!-- IF S_STORE_DB_DISABLED -->disabled="disabled" <!-- ENDIF --> />{L_STORE_FILESYSTEM}</label>
<label><input type="radio" class="radio" name="store_db" value="1"<!-- IF S_STORE_DB --> id="store_db" checked="checked"<!-- ENDIF --> <!-- IF S_STORE_DB_DISABLED -->disabled="disabled" <!-- ENDIF -->/> {L_STORE_DATABASE}</label></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_STYLE -->
</fieldset>
<fieldset>
<legend>{L_OPTIONS}</legend>
<dl>
<dt><label for="style_active">{L_STYLE_ACTIVE}:</label></dt>
<dd><label><input type="radio" class="radio" name="style_active" value="1"<!-- IF S_STYLE_ACTIVE --> id="style_active" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="style_active" value="0"<!-- IF not S_STYLE_ACTIVE --> id="style_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<!-- IF not S_STYLE_DEFAULT -->
<dl>
<dt><label for="style_default">{L_STYLE_DEFAULT}:</label></dt>
<dd><label><input type="radio" class="radio" name="style_default" value="1" /> {L_YES}</label>
<label><input type="radio" class="radio" id="style_default" name="style_default" value="0" checked="checked" /> {L_NO}</label></dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
</fieldset>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
<a href="{U_ACTION}" class="button2">{L_BACK}</a>
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->
<!-- IF .styles_list -->
<table class="table1 styles">
<thead>
<tr>
<th>{L_STYLE_NAME}</th>
<!-- IF not STYLES_LIST_HIDE_COUNT --><th width="10%" style="white-space: nowrap; text-align: center;">{L_STYLE_USED_BY}</th><!-- ENDIF -->
<th width="25%" style="white-space: nowrap; text-align: center;">{L_ACTIONS}</th>
{STYLES_LIST_EXTRA}
<th>&nbsp;</th>
</tr>
</thead>
<!-- BEGIN styles_list -->
<tbody id="styles-list-{styles_list.S_ROW_COUNT}">
<tr<!-- IF styles_list.STYLE_ID and not styles_list.STYLE_ACTIVE --> class="row-inactive"<!-- ENDIF -->>
<!-- IF styles_list.LEVEL is odd -->
<!-- IF $ROW_CLASS == 'row1a' --><!-- DEFINE $ROW_CLASS = 'row1b' --><!-- ELSE --><!-- DEFINE $ROW_CLASS = 'row1a' --><!-- ENDIF -->
<!-- ELSE -->
<!-- IF $ROW_CLASS == 'row2a' --><!-- DEFINE $ROW_CLASS = 'row2b' --><!-- ELSE --><!-- DEFINE $ROW_CLASS = 'row2a' --><!-- ENDIF -->
<!-- ENDIF -->
<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 -->
<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}" />
</div>
<!-- ENDIF -->
<!-- IF styles_list.DEFAULT or styles_list.SHOW_COPYRIGHT -->
<strong>{styles_list.STYLE_NAME}</strong>
<!-- IF styles_list.SHOW_COPYRIGHT and styles_list.COMMENT == '' --><span><br />{styles_list.STYLE_COPYRIGHT}</span><!-- ENDIF -->
<!-- ELSE -->
<span>{styles_list.STYLE_NAME}</span>
<!-- ENDIF -->
<!-- IF styles_list.COMMENT != '' -->
<span class="error"><br />{styles_list.COMMENT}</span>
<!-- ENDIF -->
<!-- IF not styles_list.STYLE_ID and styles_list.COMMENT == '' -->
<span class="style-path"><br />{L_STYLE_PATH} {styles_list.STYLE_PATH_FULL}</span>
<!-- ENDIF -->
</td>
<!-- IF not STYLES_LIST_HIDE_COUNT -->
<td class="{$ROW_CLASS} users">{styles_list.USERS}</td>
<!-- ENDIF -->
<td class="{$ROW_CLASS} actions">
<!-- BEGIN actions -->
<!-- IF styles_list.actions.S_ROW_COUNT > 0 --> | <!-- ENDIF -->
<!-- IF styles_list.actions.U_ACTION -->
<a href="{styles_list.actions.U_ACTION}"{styles_list.actions.U_ACTION_ATTR}>{styles_list.actions.L_ACTION}</a>
<!-- ENDIF -->
{styles_list.actions.HTML}
<!-- END actions -->
</td>
{styles_list.EXTRA}
<td class="{$ROW_CLASS} mark" width="20">
<!-- IF styles_list.STYLE_ID -->
<input class="checkbox" type="checkbox" name="ids[]" value="{styles_list.STYLE_ID}" />
<!-- ELSE -->
<!-- IF styles_list.COMMENT != '' -->
&nbsp;
<!-- ELSE -->
<input class="checkbox" type="checkbox" name="dirs[]" value="{styles_list.STYLE_PATH}" />
<!-- ENDIF -->
<!-- ENDIF -->
</td>
</tr>
</tbody>
<!-- END styles_list -->
</table>
<!-- ENDIF -->
<!-- IF .extra_actions -->
<fieldset class="quick">
<!-- BEGIN extra_actions -->
<input type="submit" name="{extra_actions.ACTION_NAME}" class="button2" value="{extra_actions.L_ACTION}" />
<!-- END extra_actions -->
</fieldset>
<!-- ENDIF -->
<!-- IF .extra_links -->
<fieldset class="quick">
<!-- BEGIN extra_links -->
<a class="button2" href="{extra_links.U_ACTION}">{extra_links.L_ACTION}</a>
<!-- END extra_links -->
</fieldset>
<!-- ENDIF -->
</form>
</form>
<!-- ENDIF -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_VERSION_CHECK -->
@@ -19,7 +19,7 @@
<!-- ENDIF -->
<!-- IF NEXT_FEATURE_VERSION -->
<div class="errorbox">
<div class="errorbox notice">
<p>{UPGRADE_INSTRUCTIONS}</p>
</div>
<!-- ENDIF -->
@@ -49,4 +49,4 @@
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_SELECT_USER -->
@@ -13,7 +13,7 @@
<fieldset>
<legend>{L_SELECT_USER}</legend>
<dl>
<dt><label for="username">{L_ENTER_USERNAME}{L_COLON}</label></dt>
<dt><label for="username">{L_ENTER_USERNAME}:</label></dt>
<dd><input class="text medium" type="text" id="username" name="username" /></dd>
<dd>[ <a href="{U_FIND_USERNAME}" onclick="find_username(this.href); return false;">{L_FIND_USERNAME}</a> ]</dd>
<dd class="full" style="text-align: left;"><label><input type="checkbox" class="radio" id="anonymous" name="u" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
@@ -68,7 +68,7 @@
<form id="mode_select" method="post" action="{U_MODE_SELECT}">
<fieldset class="quick">
{L_SELECT_FORM}{L_COLON} <select name="mode" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_FORM_OPTIONS}</select> <input class="button2" type="submit" value="{L_GO}" />
{L_SELECT_FORM}: <select name="mode" onchange="if (this.options[this.selectedIndex].value != '') this.form.submit();">{S_FORM_OPTIONS}</select> <input class="button2" type="submit" value="{L_GO}" />
{S_FORM_TOKEN}
</fieldset>
</form>
@@ -106,7 +106,7 @@
<fieldset>
<legend>{L_ACP_USER_RANK}</legend>
<dl>
<dt><label for="user_rank">{L_USER_RANK}{L_COLON}</label></dt>
<dt><label for="user_rank">{L_USER_RANK}:</label></dt>
<dd><select name="user_rank" id="user_rank">{S_RANK_OPTIONS}</select></dd>
</dl>
</fieldset>
@@ -125,7 +125,7 @@
<form id="user_groups" method="post" action="{U_ACTION}">
<table class="table1 zebra-table">
<table cellspacing="1">
<tbody>
<!-- BEGIN group -->
<!-- IF group.S_NEW_GROUP_TYPE -->
@@ -133,7 +133,7 @@
<td class="row3" colspan="4"><strong>{group.GROUP_TYPE}</strong></td>
</tr>
<!-- ELSE -->
<tr>
<!-- IF group.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{group.U_EDIT_GROUP}">{group.GROUP_NAME}</a></td>
<td><!-- IF group.S_IS_MEMBER --><!-- IF group.S_NO_DEFAULT --><a href="{group.U_DEFAULT}">{L_GROUP_DEFAULT}</a><!-- ELSE --><strong>{L_GROUP_DEFAULT}</strong><!-- ENDIF --><!-- ELSEIF not group.S_IS_MEMBER and group.U_APPROVE --><a href="{group.U_APPROVE}">{L_GROUP_APPROVE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<td><!-- IF group.S_IS_MEMBER and not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
@@ -146,7 +146,7 @@
<!-- IF S_GROUP_OPTIONS -->
<fieldset class="quick">
{L_USER_GROUP_ADD}{L_COLON} <select name="g">{S_GROUP_OPTIONS}</select> <input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{L_USER_GROUP_ADD}: <select name="g">{S_GROUP_OPTIONS}</select> <input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
<!-- ENDIF -->
@@ -157,14 +157,14 @@
<form id="user_attachments" method="post" action="{U_ACTION}">
<!-- IF PAGINATION -->
<div class="pagination">
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ENDIF -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- IF .attach -->
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_FILENAME}</th>
@@ -176,8 +176,8 @@
</thead>
<tbody>
<!-- BEGIN attach -->
<tr>
<td><a href="{attach.U_DOWNLOAD}">{attach.REAL_FILENAME}</a><br /><span class="small"><!-- IF attach.S_IN_MESSAGE --><strong>{L_PM}{L_COLON} </strong><!-- ELSE --><strong>{L_POST}{L_COLON} </strong><!-- ENDIF --><a href="{attach.U_VIEW_TOPIC}">{attach.TOPIC_TITLE}</a></span></td>
<!-- IF attach.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td><a href="{attach.U_DOWNLOAD}">{attach.REAL_FILENAME}</a><br /><span class="small"><!-- IF attach.S_IN_MESSAGE --><strong>{L_PM}: </strong><!-- ELSE --><strong>{L_POST}: </strong><!-- ENDIF --><a href="{attach.U_VIEW_TOPIC}">{attach.TOPIC_TITLE}</a></span></td>
<td style="text-align: center">{attach.POST_TIME}</td>
<td style="text-align: center">{attach.SIZE}</td>
<td style="text-align: center">{attach.DOWNLOAD_COUNT}</td>
@@ -192,15 +192,15 @@
</div>
<!-- ENDIF -->
<fieldset class="display-options">
{L_SORT_BY}{L_COLON} <select name="sk">{S_SORT_KEY}</select> <select name="sd">{S_SORT_DIR}</select>
{L_SORT_BY}: <select name="sk">{S_SORT_KEY}</select> <select name="sd">{S_SORT_DIR}</select>
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<hr />
<!-- IF PAGINATION -->
<div class="pagination">
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ENDIF -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<fieldset class="quick">
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />
@@ -219,7 +219,7 @@
<form id="select_forum" method="post" action="{U_ACTION}">
<fieldset class="quick" style="text-align: left;">
{L_SELECT_FORUM}{L_COLON} <select name="f">{S_FORUM_OPTIONS}</select>
{L_SELECT_FORUM}: <select name="f">{S_FORUM_OPTIONS}</select>
<input class="button2" type="submit" value="{L_GO}" name="select" />
{S_FORM_TOKEN}
</fieldset>

View File

@@ -1,39 +1,78 @@
<form id="avatar_settings" method="post" action="{U_ACTION}" enctype="multipart/form-data">
<form id="avatar_settings" method="post" action="{U_ACTION}"<!-- IF S_CAN_UPLOAD --> enctype="multipart/form-data"<!-- ENDIF -->>
<fieldset>
<legend>{L_ACP_USER_AVATAR}</legend>
<!-- IF ERROR --><p class="error">{ERROR}</p><!-- ENDIF -->
<dl>
<dt><label>{L_CURRENT_IMAGE}:</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd>{AVATAR_IMAGE}</dd>
<dd><label><input type="checkbox" class="radio" name="delete" /> {L_DELETE_AVATAR}</label></dd>
</dl>
<!-- IF not S_IN_AVATAR_GALLERY -->
<!-- IF S_UPLOAD_FILE -->
<dl>
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></dt>
<dd><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_MAX_FILESIZE}" /><input type="file" id="uploadfile" name="uploadfile" /></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_REMOTE_UPLOAD -->
<dl>
<dt><label for="uploadurl">{L_UPLOAD_AVATAR_URL}:</label><br /><span>{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></dt>
<dd><input name="uploadurl" type="text" id="uploadurl" value="" /></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_ALLOW_REMOTE -->
<dl>
<dt><label for="remotelink">{L_LINK_REMOTE_AVATAR}:</label><br /><span>{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></dt>
<dd><input name="remotelink" type="text" id="remotelink" value="" /></dd>
</dl>
<dl>
<dt><label for="width">{L_LINK_REMOTE_SIZE}:</label><br /><span>{L_LINK_REMOTE_SIZE_EXPLAIN}</span></dt>
<dd><input name="width" type="text" id="width" size="3" value="{USER_AVATAR_WIDTH}" /> <span>{L_PIXEL} &times; </span> <input type="text" name="height" size="3" value="{USER_AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
</dl>
<!-- ENDIF -->
<!-- IF S_DISPLAY_GALLERY -->
<dl>
<dt><label>{L_AVATAR_GALLERY}:</label></dt>
<dd><input class="button2" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></dd>
</dl>
<!-- ENDIF -->
<!-- ELSE -->
</fieldset>
<fieldset>
<legend>{L_AVATAR_GALLERY}</legend>
<dl>
<dt><label>{L_CURRENT_IMAGE}{L_COLON}</label><br /><span>{L_AVATAR_EXPLAIN}</span></dt>
<dd>{AVATAR}</dd>
<dd><label for="avatar_delete"><input type="checkbox" name="avatar_delete" id="avatar_delete" /> {L_DELETE_AVATAR}</label></dd>
<dt><label for="category">{L_AVATAR_CATEGORY}:</label></dt>
<dd><select name="category" id="category">{S_CAT_OPTIONS}</select>&nbsp;<input class="button2" type="submit" value="{L_GO}" name="display_gallery" /></dd>
</dl>
</fieldset>
<fieldset>
<legend>{L_AVATAR_SELECT}</legend>
<dl>
<dt><label>{L_AVATAR_TYPE}</label></dt>
<dd><select name="avatar_driver" id="avatar_driver">
<option value="">{L_NO_AVATAR_CATEGORY}</option>
<!-- BEGIN avatar_drivers -->
<option value="{avatar_drivers.DRIVER}"<!-- IF avatar_drivers.SELECTED --> selected="selected"<!-- ENDIF -->>{avatar_drivers.L_TITLE}</option>
<!-- END avatar_drivers -->
</select></dd>
<table cellspacing="1">
<!-- BEGIN avatar_row -->
<tr>
<!-- BEGIN avatar_column -->
<td class="row1" style="text-align: center;"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" alt="{avatar_row.avatar_column.AVATAR_NAME}" title="{avatar_row.avatar_column.AVATAR_NAME}" /></td>
<!-- END avatar_column -->
</tr>
<tr>
<!-- BEGIN avatar_option_column -->
<td class="row2" style="text-align: center;"><input type="radio" class="radio" name="avatar_select" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
<!-- END avatar_option_column -->
</tr>
<!-- END avatar_row -->
</table>
</dl>
<div id="avatar_options">
<!-- BEGIN avatar_drivers -->
<div id="avatar_option_{avatar_drivers.DRIVER}">
<p>{avatar_drivers.L_EXPLAIN}</p>
{avatar_drivers.OUTPUT}
</div>
<!-- END avatar_drivers -->
</div>
</fieldset>
<fieldset class="quick" style="margin-top: -15px;">
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
</fieldset>
<!-- ENDIF -->
</fieldset>
<fieldset class="quick">
<input type="submit" name="update" value="{L_SUBMIT}" class="button1" />
{S_FORM_TOKEN}
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDEJS avatars.js -->
</form>

View File

@@ -1,13 +1,13 @@
<form id="list" method="post" action="{U_ACTION}">
<!-- IF PAGINATION -->
<div class="pagination">
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ENDIF -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- IF .log -->
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_REPORT_BY}</th>
@@ -19,7 +19,8 @@
</thead>
<tbody>
<!-- BEGIN log -->
<tr>
<!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{log.USERNAME}</td>
<td style="text-align: center;">{log.IP}</td>
<td style="text-align: center;">{log.DATE}</td>
@@ -39,15 +40,15 @@
<!-- ENDIF -->
<fieldset class="display-options">
{L_DISPLAY_LOG}{L_COLON} &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}{L_COLON} {S_SORT_KEY} {S_SORT_DIR}
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<hr />
<!-- IF PAGINATION -->
<div class="pagination">
<!-- IF .pagination -->
<!-- INCLUDE pagination.html -->
<!-- ENDIF -->
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- IF S_CLEARLOGS -->
<fieldset class="quick">
@@ -72,4 +73,4 @@
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
</fieldset>
{S_FORM_TOKEN}
</form>
</form>

View File

@@ -3,57 +3,60 @@
<fieldset>
<legend>{L_ACP_USER_OVERVIEW}</legend>
<dl>
<dt><label for="user">{L_USERNAME}{L_COLON}</label><br /><span>{L_NAME_CHARS_EXPLAIN}</span></dt>
<dt><label for="user">{L_USERNAME}:</label><br /><span>{L_NAME_CHARS_EXPLAIN}</span></dt>
<dd><input type="text" id="user" name="user" value="{USER}" /></dd>
<!-- IF U_SWITCH_PERMISSIONS --><dd>[ <a href="{U_SWITCH_PERMISSIONS}">{L_USE_PERMISSIONS}</a> ]</dd><!-- ENDIF -->
</dl>
<!-- IF S_USER_INACTIVE -->
<dl>
<dt><label>{L_USER_IS_INACTIVE}{L_COLON}</label></dt>
<dt><label>{L_USER_IS_INACTIVE}:</label></dt>
<dd><strong>{USER_INACTIVE_REASON}</strong></dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label>{L_REGISTERED}{L_COLON}</label></dt>
<dt><label>{L_REGISTERED}:</label></dt>
<dd><strong>{USER_REGISTERED}</strong></dd>
</dl>
<!-- IF S_USER_IP -->
<dl>
<dt><label>{L_REGISTERED_IP}{L_COLON}</label></dt>
<dt><label>{L_REGISTERED_IP}:</label></dt>
<dd><a href="{U_SHOW_IP}">{REGISTERED_IP}</a></dd>
<dd>[ <a href="{U_WHOIS}" onclick="popup(this.href, 700, 500, '_whois'); return false;">{L_WHOIS}</a> ]</dd>
</dl>
<!-- ENDIF -->
<dl>
<dt><label>{L_LAST_ACTIVE}{L_COLON}</label></dt>
<dt><label>{L_LAST_ACTIVE}:</label></dt>
<dd><strong>{USER_LASTACTIVE}</strong></dd>
</dl>
<dl>
<dt><label>{L_POSTS}{L_COLON}</label></dt>
<dd><strong>{USER_POSTS}</strong><!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --> (<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --> ({L_POSTS_IN_QUEUE})<!-- ENDIF --></dd>
<dt><label>{L_POSTS}:</label></dt>
<dd><strong><!-- IF USER_HAS_POSTS and U_SEARCH_USER --><a href="{U_SEARCH_USER}">{USER_POSTS}</a><!-- ELSE -->{USER_POSTS}<!-- ENDIF --></strong><!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --> (<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --> ({L_POSTS_IN_QUEUE})<!-- ENDIF --></dd>
</dl>
<dl>
<dt><label>{L_WARNINGS}{L_COLON}</label></dt>
<dt><label>{L_WARNINGS}:</label></dt>
<dd><strong>{USER_WARNINGS}</strong></dd>
</dl>
<dl>
<dt><label for="user_founder">{L_FOUNDER}{L_COLON}</label><br /><span>{L_FOUNDER_EXPLAIN}</span></dt>
<dt><label for="user_founder">{L_FOUNDER}:</label><br /><span>{L_FOUNDER_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="user_founder" value="1"<!-- IF S_USER_FOUNDER --> id="user_founder" checked="checked"<!-- ENDIF --><!-- IF not S_FOUNDER --> disabled="disabled"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="user_founder" value="0"<!-- IF not S_USER_FOUNDER --> id="user_founder" checked="checked"<!-- ENDIF --><!-- IF not S_FOUNDER --> disabled="disabled"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="user_email">{L_EMAIL}{L_COLON}</label></dt>
<dd><input class="text medium" type="email" id="user_email" name="user_email" value="{USER_EMAIL}" autocomplete="off" /></dd>
<dt><label for="user_email">{L_EMAIL}:</label></dt>
<dd><input class="text medium" type="text" id="user_email" name="user_email" value="{USER_EMAIL}" autocomplete="off" /></dd>
</dl>
<dl>
<dt><label for="new_password">{L_NEW_PASSWORD}{L_COLON}</label><br /><span>{L_CHANGE_PASSWORD_EXPLAIN}</span></dt>
<dt><label for="email_confirm">{L_CONFIRM_EMAIL}:</label><br /><span>{L_CONFIRM_EMAIL_EXPLAIN}</span></dt>
<dd><input class="text medium" type="text" id="email_confirm" name="email_confirm" value="" autocomplete="off" /></dd>
</dl>
<dl>
<dt><label for="new_password">{L_NEW_PASSWORD}:</label><br /><span>{L_CHANGE_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="new_password" name="new_password" value="" autocomplete="off" /></dd>
</dl>
<dl>
<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}{L_COLON}</label><br /><span>{L_CONFIRM_PASSWORD_EXPLAIN}</span></dt>
<dt><label for="password_confirm">{L_CONFIRM_PASSWORD}:</label><br /><span>{L_CONFIRM_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="password_confirm" name="password_confirm" value="" autocomplete="off" /></dd>
</dl>
<!-- EVENT acp_users_overview_options_append -->
<p class="quick">
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
@@ -108,16 +111,16 @@
<fieldset>
<legend>{L_USER_TOOLS}</legend>
<dl>
<dt><label for="quicktools">{L_QUICK_TOOLS}{L_COLON}</label></dt>
<dt><label for="quicktools">{L_QUICK_TOOLS}:</label></dt>
<dd><select id="quicktools" name="action" onchange="display_reason(this.options[this.selectedIndex].value);">{S_ACTION_OPTIONS}</select></dd>
</dl>
<div style="display: none;" id="reasons">
<dl>
<dt><label for="ban_reason">{L_BAN_REASON}{L_COLON}</label></dt>
<dt><label for="ban_reason">{L_BAN_REASON}:</label></dt>
<dd><input name="ban_reason" type="text" class="text medium" maxlength="3000" id="ban_reason" /></dd>
</dl>
<dl>
<dt><label for="ban_give_reason">{L_BAN_GIVE_REASON}{L_COLON}</label></dt>
<dt><label for="ban_give_reason">{L_BAN_GIVE_REASON}:</label></dt>
<dd><input name="ban_give_reason" type="text" class="text medium" maxlength="3000" id="ban_give_reason" /></dd>
</dl>
</div>
@@ -136,7 +139,7 @@
<fieldset>
<legend>{L_DELETE_USER}</legend>
<dl>
<dt><label for="delete_type">{L_DELETE_USER}{L_COLON}</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
<dt><label for="delete_type">{L_DELETE_USER}:</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
<dd>
<!-- IF USER_HAS_POSTS -->
<select id="delete_type" name="delete_type"><option class="sep" value="">{L_SELECT_OPTION}</option><option value="retain">{L_RETAIN_POSTS}</option><option value="remove">{L_DELETE_POSTS}</option></select>

View File

@@ -9,47 +9,60 @@
<fieldset>
<legend>{L_UCP_PREFS_PERSONAL}</legend>
<dl>
<dt><label for="viewemail">{L_SHOW_EMAIL}{L_COLON}</label></dt>
<dt><label for="viewemail">{L_SHOW_EMAIL}:</label></dt>
<dd><label><input type="radio" class="radio" name="viewemail" value="1"<!-- IF VIEW_EMAIL --> id="viewemail" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="viewemail" value="0"<!-- IF not VIEW_EMAIL --> id="viewemail" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="massemail">{L_ADMIN_EMAIL}{L_COLON}</label></dt>
<dt><label for="massemail">{L_ADMIN_EMAIL}:</label></dt>
<dd><label><input type="radio" class="radio" name="massemail" value="1"<!-- IF MASS_EMAIL --> id="massemail" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="massemail" value="0"<!-- IF not MASS_EMAIL --> id="massemail" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="allowpm">{L_ALLOW_PM}{L_COLON}</label><br /><span>{L_ALLOW_PM_EXPLAIN}</span></dt>
<dt><label for="allowpm">{L_ALLOW_PM}:</label><br /><span>{L_ALLOW_PM_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="allowpm" value="1"<!-- IF ALLOW_PM --> id="allowpm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="allowpm" value="0"<!-- IF not ALLOW_PM --> id="allowpm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="hideonline">{L_HIDE_ONLINE}{L_COLON}</label></dt>
<dt><label for="hideonline">{L_HIDE_ONLINE}:</label></dt>
<dd><label><input type="radio" class="radio" name="hideonline" value="1"<!-- IF HIDE_ONLINE --> id="hideonline" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="hideonline" value="0"<!-- IF not HIDE_ONLINE --> id="hideonline" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="notifymethod">{L_NOTIFY_METHOD}{L_COLON}</label><br /><span>{L_NOTIFY_METHOD_EXPLAIN}</span></dt>
<dt><label for="notifymethod">{L_NOTIFY_METHOD}:</label><br /><span>{L_NOTIFY_METHOD_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="notifymethod" value="0"<!-- IF NOTIFY_EMAIL --> id="notifymethod" checked="checked"<!-- ENDIF --> /> {L_NOTIFY_METHOD_EMAIL}</label>
<label><input type="radio" class="radio" name="notifymethod" value="1"<!-- IF NOTIFY_IM --> id="notifymethod" checked="checked"<!-- ENDIF --><!-- IF S_JABBER_DISABLED --> disabled="disabled"<!-- ENDIF --> /> {L_NOTIFY_METHOD_IM}</label>
<label><input type="radio" class="radio" name="notifymethod" value="2"<!-- IF NOTIFY_BOTH --> id="notifymethod" checked="checked"<!-- ENDIF --> /> {L_NOTIFY_METHOD_BOTH}</label></dd>
</dl>
<dl>
<dt><label for="notifypm">{L_NOTIFY_ON_PM}{L_COLON}</label></dt>
<dt><label for="notifypm">{L_NOTIFY_ON_PM}:</label></dt>
<dd><label><input type="radio" class="radio" name="notifypm" value="1"<!-- IF NOTIFY_PM --> id="notifypm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="notifypm" value="0"<!-- IF not NOTIFY_PM --> id="notifypm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="lang">{L_BOARD_LANGUAGE}{L_COLON}</label></dt>
<dt><label for="popuppm">{L_POPUP_ON_PM}:</label></dt>
<dd><label><input type="radio" class="radio" name="popuppm" value="1"<!-- IF POPUP_PM --> id="popuppm" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="popuppm" value="0"<!-- IF not POPUP_PM --> id="popuppm" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="lang">{L_BOARD_LANGUAGE}:</label></dt>
<dd><select id="lang" name="lang">{S_LANG_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="style">{L_BOARD_STYLE}{L_COLON}</label></dt>
<dt><label for="style">{L_BOARD_STYLE}:</label></dt>
<dd><select id="style" name="style">{S_STYLE_OPTIONS}</select></dd>
</dl>
<!-- INCLUDE timezone_option.html -->
<dl>
<dt><label for="dateoptions">{L_BOARD_DATE_FORMAT}{L_COLON}</label><br /><span>{L_BOARD_DATE_FORMAT_EXPLAIN}</span></dt>
<dt><label for="tz">{L_BOARD_TIMEZONE}:</label></dt>
<dd><select id="tz" name="tz" style="width: 100%;">{S_TZ_OPTIONS}</select></dd>
</dl>
<dl>
<dt><label for="dst">{L_BOARD_DST}:</label></dt>
<dd><label><input type="radio" class="radio" name="dst" value="1"<!-- IF DST --> id="dst" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="dst" value="0"<!-- IF not DST --> id="dst" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="dateoptions">{L_BOARD_DATE_FORMAT}:</label><br /><span>{L_BOARD_DATE_FORMAT_EXPLAIN}</span></dt>
<dd><select name="dateoptions" id="dateoptions" onchange="if(this.value=='custom'){dE('custom_date',1);}else{dE('custom_date',-1);} if (this.value == 'custom') { document.getElementById('dateformat').value = default_dateformat; } else { document.getElementById('dateformat').value = this.value; }">{S_DATEFORMAT_OPTIONS}</select></dd>
<dd><div id="custom_date"<!-- IF not S_CUSTOM_DATEFORMAT --> style="display:none;"<!-- ENDIF -->><input type="text" name="dateformat" id="dateformat" value="{DATE_FORMAT}" maxlength="30" /></div></dd>
</dl>
@@ -58,22 +71,22 @@
<fieldset>
<legend>{L_UCP_PREFS_POST}</legend>
<dl>
<dt><label for="bbcode">{L_DEFAULT_BBCODE}{L_COLON}</label></dt>
<dt><label for="bbcode">{L_DEFAULT_BBCODE}:</label></dt>
<dd><label><input type="radio" class="radio" name="bbcode" value="1"<!-- IF BBCODE --> id="bbcode" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="bbcode" value="0"<!-- IF not BBCODE --> id="bbcode" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="smilies">{L_DEFAULT_SMILIES}{L_COLON}</label></dt>
<dt><label for="smilies">{L_DEFAULT_SMILIES}:</label></dt>
<dd><label><input type="radio" class="radio" name="smilies" value="1"<!-- IF SMILIES --> id="smilies" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="smilies" value="0"<!-- IF not SMILIES --> id="smilies" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="sig">{L_DEFAULT_ADD_SIG}{L_COLON}</label></dt>
<dt><label for="sig">{L_DEFAULT_ADD_SIG}:</label></dt>
<dd><label><input type="radio" class="radio" name="sig" value="1"<!-- IF ATTACH_SIG --> id="sig" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="sig" value="0"<!-- IF not ATTACH_SIG --> id="sig" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="notify">{L_DEFAULT_NOTIFY}{L_COLON}</label></dt>
<dt><label for="notify">{L_DEFAULT_NOTIFY}:</label></dt>
<dd><label><input type="radio" class="radio" name="notify" value="1"<!-- IF NOTIFY --> id="notify" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="notify" value="0"<!-- IF not NOTIFY --> id="notify" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
@@ -82,57 +95,57 @@
<fieldset>
<legend>{L_UCP_PREFS_VIEW}</legend>
<dl>
<dt><label for="view_images">{L_VIEW_IMAGES}{L_COLON}</label></dt>
<dt><label for="view_images">{L_VIEW_IMAGES}:</label></dt>
<dd><label><input type="radio" class="radio" name="view_images" value="1"<!-- IF VIEW_IMAGES --> id="view_images" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="view_images" value="0"<!-- IF not VIEW_IMAGES --> id="view_images" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="view_flash">{L_VIEW_FLASH}{L_COLON}</label></dt>
<dt><label for="view_flash">{L_VIEW_FLASH}:</label></dt>
<dd><label><input type="radio" class="radio" name="view_flash" value="1"<!-- IF VIEW_FLASH --> id="view_flash" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="view_flash" value="0"<!-- IF not VIEW_FLASH --> id="view_flash" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="view_smilies">{L_VIEW_SMILIES}{L_COLON}</label></dt>
<dt><label for="view_smilies">{L_VIEW_SMILIES}:</label></dt>
<dd><label><input type="radio" class="radio" name="view_smilies" value="1"<!-- IF VIEW_SMILIES --> id="view_smilies" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="view_smilies" value="0"<!-- IF not VIEW_SMILIES --> id="view_smilies" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="view_sigs">{L_VIEW_SIGS}{L_COLON}</label></dt>
<dt><label for="view_sigs">{L_VIEW_SIGS}:</label></dt>
<dd><label><input type="radio" class="radio" name="view_sigs" value="1"<!-- IF VIEW_SIGS --> id="view_sigs" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="view_sigs" value="0"<!-- IF not VIEW_SIGS --> id="view_sigss" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="view_avatars">{L_VIEW_AVATARS}{L_COLON}</label></dt>
<dt><label for="view_avatars">{L_VIEW_AVATARS}:</label></dt>
<dd><label><input type="radio" class="radio" name="view_avatars" value="1"<!-- IF VIEW_AVATARS --> id="view_avatars" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="view_avatars" value="0"<!-- IF not VIEW_AVATARS --> id="view_avatars" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="view_wordcensor">{L_DISABLE_CENSORS}{L_COLON}</label></dt>
<dt><label for="view_wordcensor">{L_DISABLE_CENSORS}:</label></dt>
<dd><label><input type="radio" class="radio" name="view_wordcensor" value="1"<!-- IF VIEW_WORDCENSOR --> id="view_wordcensor" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="view_wordcensor" value="0"<!-- IF not VIEW_WORDCENSOR --> id="view_wordcensor" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label>{L_VIEW_TOPICS_DAYS}{L_COLON}</label></dt>
<dt><label>{L_VIEW_TOPICS_DAYS}:</label></dt>
<dd>{S_TOPIC_SORT_DAYS}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_TOPICS_KEY}{L_COLON}</label></dt>
<dt><label>{L_VIEW_TOPICS_KEY}:</label></dt>
<dd>{S_TOPIC_SORT_KEY}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_TOPICS_DIR}{L_COLON}</label></dt>
<dt><label>{L_VIEW_TOPICS_DIR}:</label></dt>
<dd>{S_TOPIC_SORT_DIR}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_POSTS_DAYS}{L_COLON}</label></dt>
<dt><label>{L_VIEW_POSTS_DAYS}:</label></dt>
<dd>{S_POST_SORT_DAYS}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_POSTS_KEY}{L_COLON}</label></dt>
<dt><label>{L_VIEW_POSTS_KEY}:</label></dt>
<dd>{S_POST_SORT_KEY}</dd>
</dl>
<dl>
<dt><label>{L_VIEW_POSTS_DIR}{L_COLON}</label></dt>
<dt><label>{L_VIEW_POSTS_DIR}:</label></dt>
<dd>{S_POST_SORT_DIR}</dd>
</dl>
</fieldset>
@@ -142,4 +155,4 @@
{S_FORM_TOKEN}
</fieldset>
</form>
</form>

View File

@@ -3,44 +3,44 @@
<fieldset>
<legend>{L_USER_PROFILE}</legend>
<dl>
<dt><label for="icq">{L_UCP_ICQ}{L_COLON}</label></dt>
<dt><label for="icq">{L_UCP_ICQ}:</label></dt>
<dd><input type="text" id="icq" name="icq" value="{ICQ}" /></dd>
</dl>
<dl>
<dt><label for="aim">{L_UCP_AIM}{L_COLON}</label></dt>
<dt><label for="aim">{L_UCP_AIM}:</label></dt>
<dd><input type="text" id="aim" name="aim" value="{AIM}" /></dd>
</dl>
<dl>
<dt><label for="msn">{L_UCP_MSNM}{L_COLON}</label></dt>
<dd><input type="email" id="msn" name="msn" value="{MSN}" /></dd>
<dt><label for="msn">{L_UCP_MSNM}:</label></dt>
<dd><input type="text" id="msn" name="msn" value="{MSN}" /></dd>
</dl>
<dl>
<dt><label for="yim">{L_UCP_YIM}{L_COLON}</label></dt>
<dt><label for="yim">{L_UCP_YIM}:</label></dt>
<dd><input type="text" id="yim" name="yim" value="{YIM}" /></dd>
</dl>
<dl>
<dt><label for="jabber">{L_UCP_JABBER}{L_COLON}</label></dt>
<dd><input type="email" id="jabber" name="jabber" value="{JABBER}" /></dd>
<dt><label for="jabber">{L_UCP_JABBER}:</label></dt>
<dd><input type="text" id="jabber" name="jabber" value="{JABBER}" /></dd>
</dl>
<dl>
<dt><label for="website">{L_WEBSITE}{L_COLON}</label></dt>
<dd><input type="url" id="website" name="website" value="{WEBSITE}" /></dd>
<dt><label for="website">{L_WEBSITE}:</label></dt>
<dd><input type="text" id="website" name="website" value="{WEBSITE}" /></dd>
</dl>
<dl>
<dt><label for="location">{L_LOCATION}{L_COLON}</label></dt>
<dt><label for="location">{L_LOCATION}:</label></dt>
<dd><input type="text" id="location" name="location" value="{LOCATION}" /></dd>
</dl>
<dl>
<dt><label for="occupation">{L_OCCUPATION}{L_COLON}</label></dt>
<dt><label for="occupation">{L_OCCUPATION}:</label></dt>
<dd><textarea id="occupation" name="occupation" rows="3" cols="30">{OCCUPATION}</textarea></dd>
</dl>
<dl>
<dt><label for="interests">{L_INTERESTS}{L_COLON}</label></dt>
<dt><label for="interests">{L_INTERESTS}:</label></dt>
<dd><textarea id="interests" name="interests" rows="3" cols="30">{INTERESTS}</textarea></dd>
</dl>
<dl>
<dt><label for="birthday">{L_BIRTHDAY}{L_COLON}</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
<dd>{L_DAY}{L_COLON} <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}{L_COLON} <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}{L_COLON} <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
<dl>
<dt><label for="birthday">{L_BIRTHDAY}:</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
<dd>{L_DAY}: <select id="birthday" name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> {L_MONTH}: <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> {L_YEAR}: <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></dd>
</dl>
</fieldset>
@@ -48,8 +48,8 @@
<fieldset>
<legend>{L_USER_CUSTOM_PROFILE_FIELDS}</legend>
<!-- BEGIN profile_fields -->
<dl>
<dt><label<!-- IF profile_fields.FIELD_ID --> for="{profile_fields.FIELD_ID}"<!-- ENDIF -->>{profile_fields.LANG_NAME}{L_COLON}</label><!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
<dl>
<dt><label<!-- IF profile_fields.FIELD_ID --> for="{profile_fields.FIELD_ID}"<!-- ENDIF -->>{profile_fields.LANG_NAME}:</label><!-- IF profile_fields.LANG_EXPLAIN --><br /><span>{profile_fields.LANG_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{profile_fields.FIELD}</dd>
<!-- IF profile_fields.ERROR -->
<dd><span class="small" style="color: red;">{profile_fields.ERROR}</span></dd>
@@ -63,4 +63,4 @@
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
{S_FORM_TOKEN}
</fieldset>
</form>
</form>

View File

@@ -3,8 +3,6 @@
var form_name = 'user_signature';
var text_name = 'signature';
var load_draft = false;
var upload = false;
// Define the bbCode tags
var bbcode = new Array();
@@ -22,19 +20,19 @@
o: '{LA_BBCODE_O_HELP}',
p: '{LA_BBCODE_P_HELP}',
w: '{LA_BBCODE_W_HELP}',
a: '{LA_BBCODE_A_HELP}',
s: '{LA_BBCODE_S_HELP}',
f: '{LA_BBCODE_F_HELP}',
y: '{LA_BBCODE_Y_HELP}',
d: '{LA_BBCODE_D_HELP}'
d: '{LA_BBCODE_D_HELP}',
tip: '{L_STYLES_TIP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}{L_COLON} '{custom_tags.A_BBCODE_HELPLINE}'
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
<!-- END custom_tags -->
}
// ]]>
</script>
<!-- INCLUDEJS {T_ASSETS_PATH}/javascript/editor.js -->
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
<form id="user_signature" method="post" action="{U_ACTION}">
@@ -49,48 +47,52 @@
<legend>{L_SIGNATURE}</legend>
<p>{L_SIGNATURE_EXPLAIN}</p>
<!-- EVENT acp_users_signature_editor_buttons_before -->
<div id="format-buttons">
<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)" 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)" title="{L_BBCODE_U_HELP}" />
<!-- IF S_BBCODE_QUOTE -->
<input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="{L_BBCODE_Q_HELP}" />
<!-- ENDIF -->
<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="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}" />
<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="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="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="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" onmouseover="helpline('q')" onmouseout="helpline('tip')" />
<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="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" onmouseover="helpline('l')" onmouseout="helpline('tip')" />
<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="y" name="addlistitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" onmouseover="helpline('y')" onmouseout="helpline('tip')" />
<!-- IF S_BBCODE_IMG -->
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" title="{L_BBCODE_P_HELP}" />
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" onmouseover="helpline('p')" onmouseout="helpline('tip')" />
<!-- ENDIF -->
<!-- IF S_LINKS_ALLOWED -->
<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}" />
<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')" />
<!-- ENDIF -->
<!-- IF S_BBCODE_FLASH -->
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" title="{L_BBCODE_D_HELP}" />
<input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" onmouseover="helpline('d')" onmouseout="helpline('tip')" />
<!-- 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}: <select name="addbbcode20" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_FONT_SIZE}" onmouseover="helpline('f')" onmouseout="helpline('tip')">
<option value="50">{L_FONT_TINY}</option>
<option value="85">{L_FONT_SMALL}</option>
<option value="100" selected="selected">{L_FONT_NORMAL}</option>
<!-- IF not MAX_FONT_SIZE or MAX_FONT_SIZE >= 150 -->
<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 -->
<option value="150">{L_FONT_LARGE}</option>
<option value="200">{L_FONT_HUGE}</option>
</select>
<!-- IF .custom_tags -->
<br /><br />
<!-- 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})" title="{custom_tags.BBCODE_HELPLINE}" />
<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 --> />
<!-- END custom_tags -->
<!-- ENDIF -->
</div>
<!-- EVENT acp_users_signature_editor_buttons_after -->
<p><input type="text" class="text full" style="border: 0; background: none;" name="helpbox" value="{L_STYLES_TIP}" /></p>
<dl>
<dt style="width: 90px;" id="color_palette_placeholder" data-orientation="v" data-height="12" data-width="15" data-bbcode="true">
<dt style="width: 90px;">
<script type="text/javascript">
// <![CDATA[
colorPalette('v', 12, 10);
// ]]>
</script>
</dt>
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();" 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();">{SIGNATURE}</textarea></dd>
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 5px;">
<!-- IF S_BBCODE_ALLOWED -->
<label><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /> {L_DISABLE_BBCODE}</label>
@@ -102,7 +104,7 @@
<label><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /> {L_DISABLE_MAGIC_URL}</label>
<!-- ENDIF -->
</dd>
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 10px;"><strong>{L_OPTIONS}{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}: </strong>{BBCODE_STATUS} :: {IMG_STATUS} :: {FLASH_STATUS} :: {URL_STATUS} :: {SMILIES_STATUS}</dd>
</dl>
</fieldset>
@@ -111,4 +113,4 @@
<input class="button2" type="submit" name="preview" value="{L_PREVIEW}" />
{S_FORM_TOKEN}
</fieldset>
</form>
</form>

View File

@@ -1,7 +1,7 @@
<form id="list" method="post" action="{U_ACTION}">
<!-- IF .warn -->
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_REPORT_BY}</th>
@@ -12,7 +12,7 @@
</thead>
<tbody>
<!-- BEGIN warn -->
<tr>
<!-- IF warn.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td>{warn.USERNAME}</td>
<td style="text-align: center; nowrap: nowrap;">{warn.DATE}</td>
<td>{warn.ACTION}</td>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<!-- IF S_EDIT_WORD -->
@@ -47,7 +47,7 @@
<input class="button2" name="add" type="submit" value="{L_ADD_WORD}" />
</p>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th>{L_WORD}</th>
@@ -57,10 +57,10 @@
</thead>
<tbody>
<!-- BEGIN words -->
<tr>
<!-- IF words.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: center;">{words.WORD}</td>
<td style="text-align: center;">{words.REPLACEMENT}</td>
<td>&nbsp;<a href="{words.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{words.U_DELETE}" data-ajax="row_delete">{ICON_DELETE}</a>&nbsp;</td>
<td>&nbsp;<a href="{words.U_EDIT}">{ICON_EDIT}</a>&nbsp;&nbsp;<a href="{words.U_DELETE}">{ICON_DELETE}</a>&nbsp;</td>
</tr>
<!-- BEGINELSE -->
<tr class="row3">

File diff suppressed because it is too large Load Diff

View File

@@ -1,246 +0,0 @@
/**
* 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 == '&nbsp;') 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() == '&nbsp;') {
$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>&nbsp;</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);

View File

@@ -1,90 +0,0 @@
(function($) { // Avoid conflicts with other libraries
"use strict";
/**
* The following callbacks are for reording items. row_down
* is triggered when an item is moved down, and row_up is triggered when
* an item is moved up. It moves the row up or down, and deactivates /
* activates any up / down icons that require it (the ones at the top or bottom).
*/
phpbb.addAjaxCallback('row_down', function(res) {
if (typeof res.success === 'undefined' || !res.success) {
return;
}
var el = $(this),
tr = el.parents('tr'),
trSwap = tr.next();
tr.insertAfter(trSwap);
});
phpbb.addAjaxCallback('row_up', function(res) {
if (typeof res.success === 'undefined' || !res.success) {
return;
}
var el = $(this),
tr = el.parents('tr'),
trSwap = tr.prev();
tr.insertBefore(trSwap);
});
/**
* This callback replaces activate links with deactivate links and vice versa.
* It does this by replacing the text, and replacing all instances of "activate"
* in the href with "deactivate", and vice versa.
*/
phpbb.addAjaxCallback('activate_deactivate', function(res) {
var el = $(this),
newHref = el.attr('href');
el.text(res.text);
if (newHref.indexOf('deactivate') !== -1) {
newHref = newHref.replace('deactivate', 'activate');
} else {
newHref = newHref.replace('activate', 'deactivate');
}
el.attr('href', newHref);
});
/**
* The removes the parent row of the link or form that triggered the callback,
* and is good for stuff like the removal of forums.
*/
phpbb.addAjaxCallback('row_delete', function(res) {
if (res.SUCCESS !== false) {
$(this).parents('tr').remove();
}
});
$('[data-ajax]').each(function() {
var $this = $(this),
ajax = $this.attr('data-ajax'),
fn;
if (ajax !== 'false') {
fn = (ajax !== 'true') ? ajax : null;
phpbb.ajaxify({
selector: this,
refresh: $this.attr('data-refresh') !== undefined,
callback: fn
});
}
});
/**
* Automatically resize textarea
*/
$(document).ready(function() {
phpbb.resizeTextArea($('textarea:not(.no-auto-resize)'), {minHeight: 75});
});
})(jQuery); // Avoid conflicts with other libraries

View File

@@ -1,32 +0,0 @@
<dl>
<dt><label for="ldap_server">{L_LDAP_SERVER}{L_COLON}</label><br /><span>{L_LDAP_SERVER_EXPLAIN}</span></dt>
<dd><input type="text" id="ldap_server" size="40" name="config[ldap_server]" value="{AUTH_LDAP_SERVER}" /></dd>
</dl>
<dl>
<dt><label for="ldap_port">{L_LDAP_PORT}{L_COLON}</label><br /><span>{L_LDAP_PORT_EXPLAIN}</span></dt>
<dd><input type="text" id="ldap_port" size="40" name="config[ldap_port]" value="{AUTH_LDAP_PORT}" /></dd>
</dl>
<dl>
<dt><label for="ldap_dn">{L_LDAP_DN}{L_COLON}</label><br /><span>{L_LDAP_DN_EXPLAIN}</span></dt>
<dd><input type="text" id="ldap_dn" size="40" name="config[ldap_base_dn]" value="{AUTH_LDAP_BASE_DN}" /></dd>
</dl>
<dl>
<dt><label for="ldap_uid">{L_LDAP_UID}{L_COLON}</label><br /><span>{L_LDAP_UID_EXPLAIN}</span></dt>
<dd><input type="text" id="ldap_uid" size="40" name="config[ldap_uid]" value="{AUTH_LDAP_UID}" /></dd>
</dl>
<dl>
<dt><label for="ldap_user_filter">{L_LDAP_USER_FILTER}{L_COLON}</label><br /><span>{L_LDAP_USER_FILTER_EXPLAIN}</span></dt>
<dd><input type="text" id="ldap_user_filter" size="40" name="config[ldap_user_filter]" value="{AUTH_LDAP_USER_FILTER}" /></dd>
</dl>
<dl>
<dt><label for="ldap_email">{L_LDAP_EMAIL}{L_COLON}</label><br /><span>{L_LDAP_EMAIL_EXPLAIN}</span></dt>
<dd><input type="email" id="ldap_email" size="40" name="config[ldap_email]" value="{AUTH_LDAP_EMAIL}" /></dd>
</dl>
<dl>
<dt><label for="ldap_user">{L_LDAP_USER}{L_COLON}</label><br /><span>{L_LDAP_USER_EXPLAIN}</span></dt>
<dd><input type="text" id="ldap_user" size="40" name="config[ldap_user]" value="{AUTH_LDAP_USER}" /></dd>
</dl>
<dl>
<dt><label for="ldap_password">{L_LDAP_PASSWORD}{L_COLON}</label><br /><span>{L_LDAP_PASSWORD_EXPLAIN}</span></dt>
<dd><input type="password" id="ldap_password" size="40" name="config[ldap_password]" value="{AUTH_LDAP_PASSWORD}" autocomplete="off" /></dd>
</dl>

View File

@@ -1,17 +0,0 @@
<h2>{L_AUTH_PROVIDER_OAUTH_TITLE}</h2>
<p>{L_AUTH_PROVIDER_OAUTH_EXPLAIN}</p>
<!-- BEGIN oauth_services -->
<fieldset>
<legend>{oauth_services.ACTUAL_NAME}</legend>
<dl>
<dt><label for="oauth_service_{oauth_services.NAME}_key">{L_AUTH_PROVIDER_OAUTH_KEY}{L_COLON}</label></dt>
<dd><input type="text" id="oauth_service_{oauth_services.NAME}_key" size="40" name="config[auth_oauth_{oauth_services.NAME}_key]" value="{oauth_services.KEY}" /></dd>
</dl>
<dl>
<dt><label for="oauth_service_{oauth_services.NAME}_secret">{L_AUTH_PROVIDER_OAUTH_SECRET}{L_COLON}</label></dt>
<dd><input type="text" id="oauth_service_{oauth_services.NAME}_secret" size="40" name="config[auth_oauth_{oauth_services.NAME}_secret]" value="{oauth_services.SECRET}" /></dd>
</dl>
</fieldset>
<!-- END oauth_services -->

View File

@@ -1,15 +0,0 @@
(function($) { // Avoid conflicts with other libraries
"use strict";
function avatarHide() {
$('#avatar_options > div').hide();
var selected = $('#avatar_driver').val();
$('#avatar_option_' + selected).show();
}
avatarHide();
$('#avatar_driver').bind('change', avatarHide);
})(jQuery); // Avoid conflicts with other libraries

View File

@@ -1,4 +1,4 @@
<dl>
<dt><label for="captcha_preview">{L_PREVIEW}{L_COLON}</label><br /><span>{L_CAPTCHA_PREVIEW_EXPLAIN}</span></dt>
<dt><label for="captcha_preview">{L_PREVIEW}:</label><br /><span>{L_CAPTCHA_PREVIEW_EXPLAIN}</span></dt>
<dd><img src="{CONFIRM_IMAGE}" alt="{L_PREVIEW}" width="360" height="96" id="captcha_preview" /></dd>
</dl>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<a href="{U_ACTION}" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
<h1>{L_ACP_VC_SETTINGS}</h1>
@@ -14,32 +14,32 @@
<legend>{L_GENERAL_OPTIONS}</legend>
<dl>
<dt><label for="captcha_gd_foreground_noise">{L_CAPTCHA_GD_FOREGROUND_NOISE}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN}</span></dt>
<dt><label for="captcha_gd_foreground_noise">{L_CAPTCHA_GD_FOREGROUND_NOISE}:</label><br /><span>{L_CAPTCHA_GD_FOREGROUND_NOISE_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_foreground_noise" name="captcha_gd_foreground_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd_foreground_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_FOREGROUND_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>
<dl>
<dt><label for="captcha_gd_x_grid">{L_CAPTCHA_GD_X_GRID}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_X_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_x_grid" name="captcha_gd_x_grid" value="{CAPTCHA_GD_X_GRID}" type="number" /></dd>
<dt><label for="captcha_gd_x_grid">{L_CAPTCHA_GD_X_GRID}:</label><br /><span>{L_CAPTCHA_GD_X_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_x_grid" name="captcha_gd_x_grid" value="{CAPTCHA_GD_X_GRID}" type="text" /></dd>
</dl>
<dl>
<dt><label for="captcha_gd_y_grid">{L_CAPTCHA_GD_Y_GRID}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_Y_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_y_grid" name="captcha_gd_y_grid" value="{CAPTCHA_GD_Y_GRID}" type="number" /></dd>
<dt><label for="captcha_gd_y_grid">{L_CAPTCHA_GD_Y_GRID}:</label><br /><span>{L_CAPTCHA_GD_Y_GRID_EXPLAIN}</span></dt>
<dd><input id="captcha_gd_y_grid" name="captcha_gd_y_grid" value="{CAPTCHA_GD_Y_GRID}" type="text" /></dd>
</dl>
<dl>
<dt><label for="captcha_gd_wave">{L_CAPTCHA_GD_WAVE}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_WAVE_EXPLAIN}</span></dt>
<dt><label for="captcha_gd_wave">{L_CAPTCHA_GD_WAVE}:</label><br /><span>{L_CAPTCHA_GD_WAVE_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_wave" name="captcha_gd_wave" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd_wave" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<dl>
<dt><label for="captcha_gd_3d_noise">{L_CAPTCHA_GD_3D_NOISE}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_3D_NOISE_EXPLAIN}</span></dt>
<dt><label for="captcha_gd_3d_noise">{L_CAPTCHA_GD_3D_NOISE}:</label><br /><span>{L_CAPTCHA_GD_3D_NOISE_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_3d_noise" name="captcha_gd_3d_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input name="captcha_gd_3d_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
</dd>
</dl>
<dl>
<dt><label for="captcha_gd_fonts">{L_CAPTCHA_GD_FONTS}{L_COLON}</label><br /><span>{L_CAPTCHA_GD_FONTS_EXPLAIN}</span></dt>
<dt><label for="captcha_gd_fonts">{L_CAPTCHA_GD_FONTS}:</label><br /><span>{L_CAPTCHA_GD_FONTS_EXPLAIN}</span></dt>
<dd><label><input id="captcha_gd_fonts" name="captcha_gd_fonts" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 1 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_DEFAULT}</label>
<label><input name="captcha_gd_fonts" value="2" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 2 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_NEW}</label>
<label><input name="captcha_gd_fonts" value="3" class="radio" type="radio"<!-- IF CAPTCHA_GD_FONTS == 3 --> checked="checked"<!-- ENDIF --> /> {L_CAPTCHA_FONT_LOWER}</label>

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<a href="<!-- IF U_LIST -->{U_LIST}<!-- ELSE -->{U_ACTION}<!-- ENDIF -->" style="float: {S_CONTENT_FLOW_END};">&laquo; {L_BACK}</a>
@@ -14,7 +14,7 @@
<fieldset class="tabulated">
<legend>{L_QUESTIONS}</legend>
<table class="table1 zebra-table">
<table cellspacing="1">
<thead>
<tr>
<th colspan="3">{L_QUESTIONS}</th>
@@ -27,12 +27,14 @@
</thead>
<tbody>
<!-- BEGIN questions -->
<tr>
<!-- IF questions.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td style="text-align: left;">{questions.QUESTION_TEXT}</td>
<td style="text-align: center;">{questions.QUESTION_LANG}</td>
<td style="text-align: center;"><a href="{questions.U_EDIT}">{ICON_EDIT}</a>&nbsp;<a href="{questions.U_DELETE}">{ICON_DELETE}</a></td>
</tr>
<!-- END questions -->
</tr>
<!-- END questions -->
</tbody>
</table>
<fieldset class="quick">
@@ -57,7 +59,7 @@
<fieldset>
<legend>{L_EDIT_QUESTION}</legend>
<dl>
<dt><label for="strict">{L_QUESTION_STRICT}{L_COLON}</label><br /><span>{L_QUESTION_STRICT_EXPLAIN}</span></dt>
<dt><label for="strict">{L_QUESTION_STRICT}:</label><br /><span>{L_QUESTION_STRICT_EXPLAIN}</span></dt>
<dd><label><input type="radio" class="radio" name="strict" value="1"<!-- IF STRICT --> id="strict" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
<label><input type="radio" class="radio" name="strict" value="0"<!-- IF not STRICT --> id="strict" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
</dl>

View File

@@ -1,5 +1,5 @@
<dl>
<dt><label for="answer"><!-- IF QA_CONFIRM_QUESTION --> {QA_CONFIRM_QUESTION} <!-- ELSE --> {L_CONFIRM_QUESTION} <!-- ENDIF -->{L_COLON}</label><br /><span>{L_CONFIRM_QUESTION_EXPLAIN}</span></dt>
<dt><label for="answer"><!-- IF QA_CONFIRM_QUESTION --> {QA_CONFIRM_QUESTION} <!-- ELSE --> {L_CONFIRM_QUESTION} <!-- ENDIF -->:</label><br /><span>{L_CONFIRM_QUESTION_EXPLAIN}</span></dt>
<dd>
<input type="text" tabindex="10" name="answer" id="answer" size="45" class="inputbox autowidth" title="{L_ANSWER}" />

View File

@@ -1,6 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a id="maincontent"></a>
<a name="maincontent"></a>
<h1>{L_ACP_VC_SETTINGS}</h1>
@@ -13,11 +13,11 @@
<legend>{L_GENERAL_OPTIONS}</legend>
<dl>
<dt><label for="recaptcha_pubkey">{L_RECAPTCHA_PUBLIC}{L_COLON}</label><br /><span>{L_RECAPTCHA_PUBLIC_EXPLAIN}</span></dt>
<dt><label for="recaptcha_pubkey">{L_RECAPTCHA_PUBLIC}:</label><br /><span>{L_RECAPTCHA_PUBLIC_EXPLAIN}</span></dt>
<dd><input id="recaptcha_pubkey" name="recaptcha_pubkey" value="{RECAPTCHA_PUBKEY}" size="50" type="text" /></dd>
</dl>
<dl>
<dt><label for="recaptcha_privkey">{L_RECAPTCHA_PRIVATE}{L_COLON}</label><br /><span>{L_RECAPTCHA_PRIVATE_EXPLAIN}</span></dt>
<dt><label for="recaptcha_privkey">{L_RECAPTCHA_PRIVATE}:</label><br /><span>{L_RECAPTCHA_PRIVATE_EXPLAIN}</span></dt>
<dd><input id="recaptcha_privkey" name="recaptcha_privkey" value="{RECAPTCHA_PRIVKEY}" size="50" type="text" /></dd>
</dl>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}" xml:lang="{S_USER_LANG}">
<head>
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="{S_USER_LANG}" />
<meta http-equiv="imagetoolbar" content="no" />
<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>

View File

@@ -1,15 +1,3 @@
<!-- IF S_AJAX_REQUEST -->
<h3>{MESSAGE_TITLE}</h3>
<p>{MESSAGE_TEXT}</p>
<fieldset class="submit-buttons">
<input type="button" name="confirm" value="{L_YES}" class="button2" />&nbsp;
<input type="button" name="cancel" value="{L_NO}" class="button2" />
</fieldset>
<!-- ELSE -->
<!-- INCLUDE overall_header.html -->
<form id="confirm" method="post" action="{S_CONFIRM_ACTION}">
@@ -26,7 +14,7 @@
</div>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->
<!-- ENDIF -->

View File

@@ -2,23 +2,6 @@
<form id="confirm" method="post" action="{S_CONFIRM_ACTION}">
<fieldset id="userlist">
<h2>{L_PRUNE_USERS_LIST}</h2>
<!-- IF S_DEACTIVATE --><p>{L_PRUNE_USERS_LIST_DEACTIVATE}</p><!-- ELSE --><p>{L_PRUNE_USERS_LIST_DELETE}</p><!-- ENDIF -->
<br />
<!-- BEGIN users -->
&raquo; <input type="checkbox" name="user_ids[]" value="{users.USER_ID}" checked="checked" />
<a href="{users.U_PROFILE}">{users.USERNAME}</a>
<!-- IF users.U_USER_ADMIN --> [ <a href="{users.U_USER_ADMIN}">{L_USER_ADMIN}</a> ]<!-- ENDIF --><br />
<!-- END users -->
<br />
<span class="small">
<a href="#" onclick="marklist('userlist', 'user_ids', true)">{L_MARK_ALL}</a> &bull;
<a href="#" onclick="marklist('userlist', 'user_ids', false)">{L_UNMARK_ALL}</a>
</span>
</fieldset>
<fieldset>
<h1>{MESSAGE_TITLE}</h1>
<p>{MESSAGE_TEXT}</p>
@@ -29,6 +12,17 @@
<input type="submit" name="confirm" value="{L_YES}" class="button2" />&nbsp;
<input type="submit" name="cancel" value="{L_NO}" class="button2" />
</div>
<h2>{L_PRUNE_USERS_LIST}</h2>
<!-- IF S_DEACTIVATE --><p>{L_PRUNE_USERS_LIST_DEACTIVATE}</p><!-- ELSE --><p>{L_PRUNE_USERS_LIST_DELETE}</p><!-- ENDIF -->
<br />
<!-- BEGIN users -->
&raquo; <a href="{users.U_PROFILE}">{users.USERNAME}</a><!-- IF users.U_USER_ADMIN --> [<a href="{users.U_USER_ADMIN}">{L_USER_ADMIN}</a>]<!-- ENDIF --><br />
<!-- END users -->
<br /><br />
</fieldset>
</form>

View File

@@ -26,7 +26,7 @@
<!-- END int -->
<!-- BEGIN date -->
<span>{L_DAY}{L_COLON}</span> <select name="{date.FIELD_IDENT}_day" id="{date.FIELD_IDENT}_day">{date.S_DAY_OPTIONS}</select>
<span>{L_MONTH}{L_COLON}</span> <select name="{date.FIELD_IDENT}_month" id="{date.FIELD_IDENT}_month">{date.S_MONTH_OPTIONS}</select>
<span>{L_YEAR}{L_COLON}</span> <select name="{date.FIELD_IDENT}_year" id="{date.FIELD_IDENT}_year">{date.S_YEAR_OPTIONS}</select>
<span>{L_DAY}:</span> <select name="{date.FIELD_IDENT}_day" id="{date.FIELD_IDENT}_day">{date.S_DAY_OPTIONS}</select>
<span>{L_MONTH}:</span> <select name="{date.FIELD_IDENT}_month" id="{date.FIELD_IDENT}_month">{date.S_MONTH_OPTIONS}</select>
<span>{L_YEAR}:</span> <select name="{date.FIELD_IDENT}_year" id="{date.FIELD_IDENT}_year">{date.S_YEAR_OPTIONS}</select>
<!-- END date -->

403
phpBB/adm/style/editor.js Normal file
View File

@@ -0,0 +1,403 @@
/**
* 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); // 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(/&lt\;/ig, '<');
theSelection = theSelection.replace(/&gt\;/ig, '>');
theSelection = theSelection.replace(/&amp\;/ig, '&');
theSelection = theSelection.replace(/&nbsp\;/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 && document.selection)
{
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;
}

View File

@@ -22,7 +22,7 @@
<!-- ENDIF -->
<!-- IF S_LIST -->
<table class="table1">
<table cellspacing="1">
<caption>{L_AVAILABLE_CONVERTORS}</caption>
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
<thead>
@@ -86,7 +86,7 @@
<!-- ELSE -->
<dl>
<dt><label>{checks.TITLE}{L_COLON}</label><!-- IF checks.S_EXPLAIN --><br /><span class="explain">{checks.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dt><label>{checks.TITLE}:</label><!-- IF checks.S_EXPLAIN --><br /><span class="explain">{checks.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{checks.RESULT}</dd>
</dl>
<!-- ENDIF -->
@@ -109,7 +109,7 @@
<!-- ELSE -->
<dl>
<dt><label for="{options.KEY}">{options.TITLE}{L_COLON}</label><!-- IF options.S_EXPLAIN --><br /><span class="explain">{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dt><label for="{options.KEY}">{options.TITLE}:</label><!-- IF options.S_EXPLAIN --><br /><span class="explain">{options.TITLE_EXPLAIN}</span><!-- ENDIF --></dt>
<dd>{options.CONTENT}</dd>
</dl>
@@ -131,4 +131,4 @@
</form>
<!-- ENDIF -->
<!-- INCLUDE install_footer.html -->
<!-- INCLUDE install_footer.html -->

View File

@@ -5,4 +5,4 @@
<p>{MESSAGE_TEXT}</p>
</div>
<!-- INCLUDE install_footer.html -->
<!-- INCLUDE install_footer.html -->

View File

@@ -1,7 +1,10 @@
</div>
</div><!-- /#main -->
</div>
</div>
</div><!-- /#acp -->
<span class="corners-bottom"><span></span></span>
<div class="clear"></div>
</div>
</div>
</div>
<div id="page-footer">
@@ -9,10 +12,5 @@
</div>
</div>
<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 -->
<!-- INCLUDEJS admin.js -->
{$SCRIPTS}
</body>
</html>
</html>

Some files were not shown because too many files have changed in this diff Show More