mirror of
https://github.com/phpbb/phpbb.git
synced 2025-09-09 15:50:45 +02:00
Compare commits
356 Commits
release-3.
...
olympus_me
Author | SHA1 | Date | |
---|---|---|---|
|
1ef96b504d | ||
|
8c9af252cb | ||
|
7e95a3ee6c | ||
|
79f2dedb51 | ||
|
c48f64ce94 | ||
|
a39e879300 | ||
|
a0c9705bb7 | ||
|
bb5c5adab1 | ||
|
c076becc5a | ||
|
4e3d564be6 | ||
|
16e8b8271b | ||
|
9ef743ba7d | ||
|
79dc2e79b2 | ||
|
a236d24ae5 | ||
|
eddddaa3a4 | ||
|
d054940739 | ||
|
45ac6aba10 | ||
|
b68a102491 | ||
|
be17000b92 | ||
|
f49fe16766 | ||
|
132a1d2efa | ||
|
81b57da147 | ||
|
4379b3d7bc | ||
|
b4bf675273 | ||
|
764c1c4f2b | ||
|
0d92e30b38 | ||
|
d57b4d0b48 | ||
|
de51ec8a15 | ||
|
7b5dc8f3c5 | ||
|
c95f0c7935 | ||
|
332521a369 | ||
|
9954d9c29f | ||
|
81c44f8351 | ||
|
f816e67c36 | ||
|
528bd80651 | ||
|
0955e2e539 | ||
|
ae9c4068e7 | ||
|
21573a8473 | ||
|
0b11951412 | ||
|
c8cba06910 | ||
|
bcfcf9b048 | ||
|
07e9b83a3d | ||
|
8427ae3fd4 | ||
|
6e2d2f85b5 | ||
|
500eb05c48 | ||
|
3f11fc12ac | ||
|
aa3a2f565b | ||
|
3bd6984785 | ||
|
dcf0b15c9f | ||
|
ff22d7a368 | ||
|
f4c079a62b | ||
|
d26f38c4e0 | ||
|
99fa62267e | ||
|
74121b41fa | ||
|
416270ee77 | ||
|
efe06af913 | ||
|
04f7c1da69 | ||
|
a9274f1d63 | ||
|
08bd36f0b2 | ||
|
d46e8e6f98 | ||
|
47b4b83468 | ||
|
c8e3035a4b | ||
|
ef0c0d4c82 | ||
|
1739da9335 | ||
|
36635929a8 | ||
|
f353fd2d57 | ||
|
6a15c2a936 | ||
|
c903b453fa | ||
|
1b10cb9c37 | ||
|
d0e630157c | ||
|
69cfb5b821 | ||
|
baf8d571e3 | ||
|
5ce6035aad | ||
|
746b617807 | ||
|
9c7d8dcd7d | ||
|
73db74dfa1 | ||
|
d4c8a078a2 | ||
|
9d9d61b1a2 | ||
|
89f1b88fe1 | ||
|
9a7804cb71 | ||
|
8f2b4562b1 | ||
|
18bfc5e69b | ||
|
ad4d7c036e | ||
|
e4c3a743ca | ||
|
f3844a17f7 | ||
|
c439b286e9 | ||
|
0b6dd99a76 | ||
|
0a4c62f12e | ||
|
1cc419fb4c | ||
|
f6a47c6f82 | ||
|
10d3191198 | ||
|
9f9a89c78e | ||
|
884cde18fe | ||
|
ec1be2563c | ||
|
ec88ec534b | ||
|
bb97d3531a | ||
|
ce6b87ccec | ||
|
b486710ea1 | ||
|
aa9dbcec3c | ||
|
08428f8fa1 | ||
|
0f14f278d0 | ||
|
c67fa83652 | ||
|
1f6eea1b5b | ||
|
6f0ea3c9d2 | ||
|
8fd7f16642 | ||
|
80ced5c0b7 | ||
|
01c1c27f2c | ||
|
eee2f89ace | ||
|
461be11e8d | ||
|
5349280538 | ||
|
24da8c474d | ||
|
158a15ba9c | ||
|
958d077faa | ||
|
4649b93e0d | ||
|
2fc6d5147a | ||
|
e2736dea20 | ||
|
76c0e5aa5e | ||
|
d135060c12 | ||
|
3b79fd122e | ||
|
b6949c47ec | ||
|
235f552974 | ||
|
1651c5df57 | ||
|
17ec98b834 | ||
|
cc5d77e06d | ||
|
2eeeaadcfd | ||
|
de0bc7476a | ||
|
ca07af715f | ||
|
46b4d09e3a | ||
|
af26b56470 | ||
|
310375db66 | ||
|
e5425dfd46 | ||
|
0e0100c525 | ||
|
a32f3a6709 | ||
|
10c8d29205 | ||
|
6f754d49e4 | ||
|
c83e6f7e94 | ||
|
3a330753f4 | ||
|
a736c97c04 | ||
|
199ab53f30 | ||
|
63e2f5cf14 | ||
|
4658e3f828 | ||
|
44416f4744 | ||
|
0dbe7e3b6c | ||
|
f2abefeaed | ||
|
57ec5805df | ||
|
73da6084d0 | ||
|
323fb23b49 | ||
|
cbacffd9fc | ||
|
589db44b56 | ||
|
8174462e89 | ||
|
a45ac24bd7 | ||
|
3a3b9eb8ef | ||
|
76a542a03e | ||
|
d67b943ef6 | ||
|
b46bd90f6e | ||
|
c119d0b424 | ||
|
15e04808fc | ||
|
4235be4bcb | ||
|
f741c4ff05 | ||
|
8236a7438d | ||
|
ae27aaf1a4 | ||
|
cec12340b9 | ||
|
f405535730 | ||
|
6eed0e5bd2 | ||
|
6a401ab68b | ||
|
b3e2250391 | ||
|
c002c468c4 | ||
|
1071d9cb31 | ||
|
48701289ff | ||
|
360e245a1a | ||
|
97b5920055 | ||
|
492354344b | ||
|
c1cf3404a2 | ||
|
96948b010c | ||
|
9047c986da | ||
|
4580ca9683 | ||
|
be1849a901 | ||
|
e9b2e6174e | ||
|
fe93fa0e9d | ||
|
dceaf59d3b | ||
|
db4011c9d9 | ||
|
7c79d0f860 | ||
|
8c186d97c6 | ||
|
1b67e80422 | ||
|
d8f2c4a1c4 | ||
|
41d3effa19 | ||
|
e6e9618be6 | ||
|
0c4ae1cd97 | ||
|
036dc071e7 | ||
|
d5d7de4ffa | ||
|
79dd5b164b | ||
|
e0799b79e2 | ||
|
95462dca58 | ||
|
ad739a358c | ||
|
3892e7330a | ||
|
aeb36226c0 | ||
|
eeba8f4560 | ||
|
677e6451c4 | ||
|
c44d2edc4a | ||
|
50dd4c183a | ||
|
97d2fb55b7 | ||
|
0ebc5cc9ee | ||
|
0ca7e81ca4 | ||
|
fc8db76da9 | ||
|
d168abdcc9 | ||
|
50f5502cc9 | ||
|
e199f55ba2 | ||
|
d7a217c28c | ||
|
8f3c085f7f | ||
|
4ba2921cec | ||
|
fe2343965b | ||
|
d0140a096c | ||
|
fc126eec66 | ||
|
1aa40171e0 | ||
|
6a59f3efd6 | ||
|
b54a9ec1e2 | ||
|
24b9d6432f | ||
|
7524ca5249 | ||
|
4dddc3a130 | ||
|
8822747b91 | ||
|
ea3eb9e9c3 | ||
|
a156e31f0c | ||
|
443ec9dcb0 | ||
|
e08a400b9f | ||
|
a11f41986f | ||
|
150c6c4c24 | ||
|
e8b7c45d85 | ||
|
e8e807f797 | ||
|
65fb840b76 | ||
|
59e6bc27f1 | ||
|
7591a84c0d | ||
|
990e3cd4b2 | ||
|
de5ddf3907 | ||
|
7c159b8c6e | ||
|
98dadd5eb8 | ||
|
8ce9e1b852 | ||
|
2f4a618900 | ||
|
91b4fe1868 | ||
|
28e8c3ea85 | ||
|
0c1fa73423 | ||
|
e7a043a22a | ||
|
53dc95d429 | ||
|
41d8c20836 | ||
|
8dde998e87 | ||
|
9aac603888 | ||
|
2cfc6b7e0b | ||
|
6871e7caa4 | ||
|
0d631c2ae0 | ||
|
1219ff4717 | ||
|
22f6e1ed1e | ||
|
eb664ddafb | ||
|
771fd3696d | ||
|
b1915b6f25 | ||
|
378838499e | ||
|
60aad364c8 | ||
|
52400baafa | ||
|
ebb801ebff | ||
|
4b9077a58b | ||
|
5e7c936618 | ||
|
c5dcff536a | ||
|
91d0c8b3bf | ||
|
f2ba40f294 | ||
|
0cf75b2546 | ||
|
5c2b9b17d1 | ||
|
dbae1db24c | ||
|
82454165c3 | ||
|
4879a7a075 | ||
|
c5081a685e | ||
|
2deee69e2f | ||
|
3e42df098c | ||
|
45c97a40d2 | ||
|
b935389427 | ||
|
195cd7e148 | ||
|
22c304092e | ||
|
7596a3bfdc | ||
|
a3da99f358 | ||
|
6a30daeb59 | ||
|
5417ec5c4d | ||
|
65b0f6b165 | ||
|
6c8a8163e8 | ||
|
312bd1a670 | ||
|
02a5032a52 | ||
|
c34599126f | ||
|
9b96e12678 | ||
|
d1f48526d7 | ||
|
8c64d7c32a | ||
|
f115ab68a5 | ||
|
cf17b13c98 | ||
|
da966fed65 | ||
|
a765c1aba1 | ||
|
f465cdd782 | ||
|
05ba2058c6 | ||
|
2a3eb724a8 | ||
|
30b24d476c | ||
|
f83b47bc11 | ||
|
42073ab0af | ||
|
a800565393 | ||
|
0c5839a0b9 | ||
|
2cedbbac09 | ||
|
6dc85449c1 | ||
|
95f11a38c0 | ||
|
65ba4fe94e | ||
|
b33ec670a2 | ||
|
3b669aedfd | ||
|
7b262babcd | ||
|
e9e9e8e69c | ||
|
2e5e0a7868 | ||
|
9a4a3a089a | ||
|
48ed77f046 | ||
|
4b5fab372f | ||
|
1407460895 | ||
|
e970da6514 | ||
|
1819be3ed1 | ||
|
9f5841219a | ||
|
e683deeeb8 | ||
|
fedee2c07e | ||
|
7fed5dd166 | ||
|
e6991260df | ||
|
dbcf8a6f31 | ||
|
835558ea38 | ||
|
8608cea5c8 | ||
|
18a081bc6c | ||
|
5195509f3b | ||
|
13ee383aad | ||
|
9dcb557a5e | ||
|
b9da54ba91 | ||
|
24a359e9f5 | ||
|
cbb4db46b2 | ||
|
35f59ceb9a | ||
|
b9b46a8b45 | ||
|
7193d91e40 | ||
|
370e189f15 | ||
|
b4e64655af | ||
|
2928574ed4 | ||
|
159ce6f8d1 | ||
|
5dddcb42ae | ||
|
6dfa770986 | ||
|
2f08a36062 | ||
|
57645ad5bc | ||
|
f0dea06097 | ||
|
a4633d8ac0 | ||
|
3b29db4545 | ||
|
f14f82775f | ||
|
af738dbc2a | ||
|
edd6c34eda | ||
|
6b8f2fb4cc | ||
|
a7c29a06bf | ||
|
12d7c9b007 | ||
|
4b1b950068 | ||
|
85055ac97f | ||
|
0f26ffbade | ||
|
fe56349e34 | ||
|
5eb46fb67e | ||
|
c3ef1109c0 | ||
|
bf2741ca80 | ||
|
253c07733e |
18
.gitignore
vendored
18
.gitignore
vendored
@@ -1,18 +0,0 @@
|
||||
*~
|
||||
/phpunit.xml
|
||||
/phpBB/cache/*.html
|
||||
/phpBB/cache/*.php
|
||||
/phpBB/cache/*.lock
|
||||
/phpBB/composer.phar
|
||||
/phpBB/config.php
|
||||
/phpBB/config_dev.php
|
||||
/phpBB/config_test.php
|
||||
/phpBB/ext/*
|
||||
/phpBB/files/*
|
||||
/phpBB/images/avatars/gallery/*
|
||||
/phpBB/images/avatars/upload/*
|
||||
/phpBB/store/*
|
||||
/phpBB/vendor
|
||||
/tests/phpbb_unit_tests.sqlite2
|
||||
/tests/test_config.php
|
||||
/tests/tmp/*
|
31
.travis.yml
31
.travis.yml
@@ -1,31 +0,0 @@
|
||||
language: php
|
||||
php:
|
||||
- 5.2
|
||||
- 5.3.3
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
|
||||
env:
|
||||
- DB=mysql
|
||||
- DB=postgres
|
||||
|
||||
before_script:
|
||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres; fi"
|
||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database phpbb_tests;' -U postgres; fi"
|
||||
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi"
|
||||
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then pear install --force phpunit/DbUnit; phpenv rehash; fi"
|
||||
- cd phpBB
|
||||
- sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.2' ]; then php ../composer.phar install --dev --no-interaction --prefer-source; fi"
|
||||
- cd ..
|
||||
- sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi"
|
||||
|
||||
script:
|
||||
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then phpunit --configuration travis/phpunit-$DB-travis.xml; else phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml; fi"
|
||||
|
||||
notifications:
|
||||
email:
|
||||
recipients:
|
||||
- dev-team@phpbb.com
|
||||
on_success: change
|
||||
on_failure: change
|
26
README.md
26
README.md
@@ -1,26 +0,0 @@
|
||||
[](http://www.phpbb.com)
|
||||
|
||||
## ABOUT
|
||||
|
||||
phpBB is a free bulletin board written in PHP.
|
||||
|
||||
## COMMUNITY
|
||||
|
||||
Find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php).
|
||||
|
||||
## CONTRIBUTE
|
||||
|
||||
1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register)
|
||||
2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa)
|
||||
3. [Read our Git Contribution Guidelines](http://wiki.phpbb.com/Git); if you're new to git, also read [the introduction guide](http://wiki.phpbb.com/display/DEV/Working+with+Git)
|
||||
4. Send us a pull request
|
||||
|
||||
## 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 - [](http://travis-ci.org/phpbb/phpbb3)
|
||||
develop-olympus - [](http://travis-ci.org/phpbb/phpbb3)
|
||||
|
||||
## LICENSE
|
||||
|
||||
[GNU General Public License v2](http://opensource.org/licenses/gpl-2.0.php)
|
234
build/build.xml
234
build/build.xml
@@ -1,234 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
|
||||
<!-- a few settings for the build -->
|
||||
<property name="newversion" value="3.0.12-RC1" />
|
||||
<property name="prevversion" value="3.0.11" />
|
||||
<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" />
|
||||
<!-- no configuration should be needed beyond this point -->
|
||||
|
||||
<property name="oldversions" value="${olderversions}, ${prevversion}" />
|
||||
<property name="versions" value="${oldversions}, ${newversion}" />
|
||||
|
||||
<!-- These are the main targets which you will probably want to use -->
|
||||
<target name="all" depends="clean,prepare,composer,test,docs,package" />
|
||||
<target name="build" depends="clean,prepare,composer,test,docs" />
|
||||
|
||||
<target name="prepare">
|
||||
<mkdir dir="build/logs" />
|
||||
<mkdir dir="build/api" />
|
||||
<mkdir dir="build/codebrowser" />
|
||||
<mkdir dir="build/coverage" />
|
||||
<mkdir dir="build/cpd" />
|
||||
<mkdir dir="build/dependencies" />
|
||||
<mkdir dir="build/new_version" />
|
||||
<mkdir dir="build/new_version/files" />
|
||||
<mkdir dir="build/new_version/patches" />
|
||||
<mkdir dir="build/new_version/release_files" />
|
||||
<mkdir dir="build/new_version/update" />
|
||||
<mkdir dir="build/old_versions" />
|
||||
<mkdir dir="build/save" />
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="build/logs" />
|
||||
<delete dir="build/api" />
|
||||
<delete dir="build/codebrowser" />
|
||||
<delete dir="build/coverage" />
|
||||
<delete dir="build/cpd" />
|
||||
<delete dir="build/dependencies" />
|
||||
<delete dir="build/new_version" />
|
||||
<delete dir="build/old_versions" />
|
||||
<delete dir="build/save" />
|
||||
</target>
|
||||
|
||||
<!--
|
||||
This target basically just runs composer in the phpBB tree to ensure
|
||||
all dependencies are loaded. Additional development dependencies are
|
||||
loaded because testing framework may depend on them.
|
||||
-->
|
||||
<target name="composer">
|
||||
<exec dir="phpBB"
|
||||
command="php ../composer.phar install --dev"
|
||||
checkreturn="true"
|
||||
passthru="true" />
|
||||
</target>
|
||||
|
||||
<target name="test" depends="clean,prepare,composer">
|
||||
<exec dir="."
|
||||
command="phpBB/vendor/bin/phpunit
|
||||
--log-junit build/logs/phpunit.xml
|
||||
--coverage-clover build/logs/clover.xml
|
||||
--coverage-html build/coverage"
|
||||
passthru="true" />
|
||||
</target>
|
||||
|
||||
<target name="test-slow" depends="clean,prepare,composer">
|
||||
<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="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"
|
||||
passthru="true" />
|
||||
</target>
|
||||
|
||||
<target name="old-version-diffs">
|
||||
<foreach list="${oldversions}" param="version" target="old-version-diff" />
|
||||
</target>
|
||||
|
||||
<!-- This target retrieves an old version from the git tag release-${version}
|
||||
and creates a diff between that release and the new one -->
|
||||
<target name="old-version-diff">
|
||||
<echo msg="Retrieving version ${version}" />
|
||||
<mkdir dir="build/old_versions/release-${version}" />
|
||||
|
||||
<phingcall target="export">
|
||||
<property name="revision" value="release-${version}" />
|
||||
<property name="dir" value="build/old_versions/release-${version}" />
|
||||
</phingcall>
|
||||
|
||||
<phingcall target="clean-diff-dir">
|
||||
<property name="dir" value="build/old_versions/release-${version}" />
|
||||
</phingcall>
|
||||
|
||||
<exec dir="build/old_versions" command="diff -crNEBwd release-${version} release-${newversion} >
|
||||
../new_version/patches/phpBB-${version}_to_${newversion}.patch" escape="false" />
|
||||
</target>
|
||||
|
||||
<target name="prepare-new-version">
|
||||
<!-- select the currently checked out commit (HEAD) for packaging -->
|
||||
<mkdir dir="build/new_version/phpBB3" />
|
||||
<phingcall target="export">
|
||||
<property name="revision" value="HEAD" />
|
||||
<property name="dir" value="build/new_version/phpBB3" />
|
||||
</phingcall>
|
||||
|
||||
<!-- copy into directory for diffs -->
|
||||
<exec dir="build" command="cp -rp new_version/phpBB3 old_versions/release-${newversion}" />
|
||||
<!-- and clean up -->
|
||||
<phingcall target="clean-diff-dir">
|
||||
<property name="dir" value="build/old_versions/release-${newversion}" />
|
||||
</phingcall>
|
||||
|
||||
<!-- create an empty config.php file (not for diffs) -->
|
||||
<touch file="build/new_version/phpBB3/config.php" />
|
||||
|
||||
</target>
|
||||
|
||||
<target name="package" depends="clean,prepare,prepare-new-version,old-version-diffs">
|
||||
<exec dir="build" command="php -f package.php '${versions}' > logs/package.log" escape="false" />
|
||||
<exec dir="build" command="php -f build_diff.php '${prevversion}' '${newversion}' > logs/build_diff.log" escape="false" />
|
||||
|
||||
<exec dir="build" escape="false"
|
||||
command="diff -crNEBwd old_versions/release-${prevversion}/language new_version/phpBB3/language >
|
||||
save/save_${prevversion}_to_${newversion}/language/phpbb-${prevversion}_to_${newversion}_language.patch" />
|
||||
<exec dir="build" escape="false"
|
||||
command="diff -crNEBwd old_versions/release-${prevversion}/styles/prosilver new_version/phpBB3/styles/prosilver >
|
||||
save/save_${prevversion}_to_${newversion}/prosilver/phpbb-${prevversion}_to_${newversion}_prosilver.patch" />
|
||||
<exec dir="build" escape="false"
|
||||
command="diff -crNEBwd old_versions/release-${prevversion}/styles/subsilver2 new_version/phpBB3/styles/subsilver2 >
|
||||
save/save_${prevversion}_to_${newversion}/subsilver2/phpbb-${prevversion}_to_${newversion}_subsilver2.patch" />
|
||||
|
||||
<exec dir="build" escape="false"
|
||||
command="git shortlog --summary --numbered release-${prevversion}...HEAD >
|
||||
save/save_${prevversion}_to_${newversion}/phpbb-${prevversion}_to_${newversion}_git_shortlog.txt" />
|
||||
<exec dir="build" escape="false"
|
||||
command="git diff --stat release-${prevversion}...HEAD >
|
||||
save/save_${prevversion}_to_${newversion}/phpbb-${prevversion}_to_${newversion}_git_diffstat.txt" />
|
||||
</target>
|
||||
|
||||
<target name="changelog" depends="prepare">
|
||||
<exec dir="build" escape="false"
|
||||
command="php -f build_changelog.php '${newversion}' >
|
||||
save/changelog_${newversion}.html" />
|
||||
</target>
|
||||
|
||||
<!--
|
||||
This target can be called using phingcall to retrieve a clean
|
||||
checkout of a commit from git. It will only export the phpBB directory.
|
||||
The properties revision and dir are required.
|
||||
This target will remove directories that are not needed in distribution
|
||||
and set correct permissions.
|
||||
-->
|
||||
<target name="export">
|
||||
<exec dir="phpBB"
|
||||
command="git archive ${revision} | tar -xf - -C ../${dir}"
|
||||
checkreturn="true" />
|
||||
|
||||
<!-- Install composer dependencies, if there are any. -->
|
||||
<exec dir="."
|
||||
command='php -r "\$j = json_decode(file_get_contents("composer.json")); echo isset(\$j->require);"'
|
||||
checkreturn="true"
|
||||
outputProperty='composer-has-dependencies' />
|
||||
<if>
|
||||
<equals arg1="${composer-has-dependencies}" arg2="1" trim="true" />
|
||||
<then>
|
||||
<!-- We have non-dev composer dependencies -->
|
||||
<exec dir="."
|
||||
command="git ls-tree ${revision} composer.phar"
|
||||
checkreturn="true"
|
||||
outputProperty='composer-ls-tree-output' />
|
||||
<if>
|
||||
<equals arg1="${composer-ls-tree-output}" arg2="" trim="true" />
|
||||
<then>
|
||||
<fail message="There are composer dependencies, but composer.phar is missing." />
|
||||
</then>
|
||||
<else>
|
||||
<!-- Export the phar, install dependencies, delete phar. -->
|
||||
<exec dir="."
|
||||
command="git archive ${revision} composer.phar | tar -xf - -C ${dir}"
|
||||
checkreturn="true" />
|
||||
<exec dir="${dir}"
|
||||
command="php composer.phar install"
|
||||
checkreturn="true"
|
||||
passthru="true" />
|
||||
<delete file="${dir}/composer.phar" />
|
||||
</else>
|
||||
</if>
|
||||
</then>
|
||||
<else>
|
||||
<!-- We do not have composer dependencies, do not ship composer files -->
|
||||
<delete file="${dir}/composer.json" />
|
||||
<delete file="${dir}/composer.lock" />
|
||||
</else>
|
||||
</if>
|
||||
|
||||
<delete file="${dir}/config.php" />
|
||||
<delete dir="${dir}/develop" />
|
||||
<delete dir="${dir}/install/data" />
|
||||
|
||||
<echo msg="Setting permissions for checkout of ${revision} in ${dir}" />
|
||||
<!-- set permissions of all files to 644, directories to 755 -->
|
||||
<exec dir="${dir}" command="find . -type f|xargs chmod 644" escape="false" />
|
||||
<exec dir="${dir}" command="find . -type d|xargs chmod 755" escape="false" />
|
||||
<!-- set permissions of some directories to 777 -->
|
||||
<chmod mode="0777" file="${dir}/cache" />
|
||||
<chmod mode="0777" file="${dir}/store" />
|
||||
<chmod mode="0777" file="${dir}/files" />
|
||||
<chmod mode="0777" file="${dir}/images/avatars/upload" />
|
||||
</target>
|
||||
|
||||
<target name="clean-diff-dir">
|
||||
<delete dir="${dir}/cache" />
|
||||
<delete dir="${dir}/docs" />
|
||||
<delete dir="${dir}/files" />
|
||||
<delete dir="${dir}/install" />
|
||||
<delete dir="${dir}/store" />
|
||||
<delete dir="${dir}/vendor" />
|
||||
</target>
|
||||
|
||||
</project>
|
@@ -1,53 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package build
|
||||
* @copyright (c) 2011 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
if ($_SERVER['argc'] != 2)
|
||||
{
|
||||
echo "Please specify the new version as argument (e.g. build_changelog.php '1.0.2').\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$fixVersion = $_SERVER['argv'][1];
|
||||
|
||||
$query = 'project = PHPBB3
|
||||
AND resolution = Fixed
|
||||
AND fixVersion = "' . $fixVersion . '"
|
||||
AND status IN ("Unverified Fix", Closed)';
|
||||
|
||||
$url = 'http://tracker.phpbb.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=' . urlencode($query) . '&tempMax=1000';
|
||||
$xml = simplexml_load_string(file_get_contents($url));
|
||||
|
||||
foreach ($xml->xpath('//item') as $item)
|
||||
{
|
||||
$key = (string) $item->key;
|
||||
|
||||
$keyUrl = 'http://tracker.phpbb.com/browse/' . $key;
|
||||
$keyLink = '<a href="' . $keyUrl . '">' . $key . '</a>';
|
||||
|
||||
$value = str_replace($key, $keyLink, htmlspecialchars($item->title));
|
||||
$value = str_replace(']', '] -', $value);
|
||||
|
||||
$types[(string) $item->type][$key] = $value;
|
||||
}
|
||||
|
||||
ksort($types);
|
||||
foreach ($types as $type => $tickets)
|
||||
{
|
||||
echo "<h4>$type</h4>\n";
|
||||
echo "<ul>\n";
|
||||
|
||||
uksort($tickets, 'strnatcasecmp');
|
||||
|
||||
foreach ($tickets as $ticket)
|
||||
{
|
||||
echo "<li>$ticket</li>\n";
|
||||
}
|
||||
echo "</ul>\n";
|
||||
}
|
@@ -1,414 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package build
|
||||
* @copyright (c) 2010 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
if ($_SERVER['argc'] != 3)
|
||||
{
|
||||
die("Please specify the previous and current version as arguments (e.g. build_diff.php '1.0.2' '1.0.3').");
|
||||
}
|
||||
|
||||
$old_version = trim($_SERVER['argv'][1]);
|
||||
$new_version = trim($_SERVER['argv'][2]);
|
||||
|
||||
$substitute_old = $old_version;
|
||||
$substitute_new = $new_version;
|
||||
$simple_name_old = 'release-' . $old_version;
|
||||
$simple_name_new = 'release-' . $new_version;
|
||||
$echo_changes = false;
|
||||
|
||||
// DO NOT EVER USE THE FOLLOWING! Fix the script to generate proper changes,
|
||||
// do NOT manually create them.
|
||||
|
||||
// Set this to true to just compress the changes and do not build them again
|
||||
// This should be used for building custom modified txt file. ;)
|
||||
$package_changed_files = false;
|
||||
|
||||
//$debug_file = 'includes/functions_user.php'; //'styles/prosilver/style.cfg';
|
||||
$debug_file = false;
|
||||
|
||||
if ($debug_file !== false)
|
||||
{
|
||||
$echo_changes = false;
|
||||
}
|
||||
|
||||
$s_name = 'save_' . $substitute_old . '_to_' . $substitute_new;
|
||||
|
||||
$location = dirname(__FILE__);
|
||||
|
||||
if (!$package_changed_files)
|
||||
{
|
||||
if (!$echo_changes)
|
||||
{
|
||||
// Create directory...
|
||||
run_command("mkdir $location/save/{$s_name}");
|
||||
run_command("mkdir $location/save/{$s_name}/language");
|
||||
run_command("mkdir $location/save/{$s_name}/prosilver");
|
||||
run_command("mkdir $location/save/{$s_name}/subsilver2");
|
||||
}
|
||||
}
|
||||
|
||||
// Build code changes and place them into 'save'
|
||||
if (!$package_changed_files)
|
||||
{
|
||||
build_code_changes('language');
|
||||
build_code_changes('prosilver');
|
||||
build_code_changes('subsilver2');
|
||||
}
|
||||
|
||||
// Package code changes
|
||||
$code_changes_filename = 'phpBB-' . $substitute_old . '_to_' . $substitute_new . '-codechanges';
|
||||
|
||||
if (!$echo_changes)
|
||||
{
|
||||
// Now compress the files...
|
||||
// Build Main phpBB Release
|
||||
$compress_programs = array(
|
||||
// 'tar.gz' => 'tar -czf',
|
||||
'tar.bz2' => 'tar -cjf',
|
||||
'zip' => 'zip -r'
|
||||
);
|
||||
|
||||
chdir($location . '/save/' . $s_name);
|
||||
foreach ($compress_programs as $extension => $compress_command)
|
||||
{
|
||||
echo "Packaging code changes for $extension\n";
|
||||
run_command("rm ./../../new_version/release_files/{$code_changes_filename}.{$extension}");
|
||||
flush();
|
||||
|
||||
// Build Package
|
||||
run_command("$compress_command ./../../new_version/release_files/{$code_changes_filename}.{$extension} *");
|
||||
|
||||
// Build MD5 Sum
|
||||
run_command("md5sum ./../../new_version/release_files/{$code_changes_filename}.{$extension} > ./../../new_version/release_files/{$code_changes_filename}.{$extension}.md5");
|
||||
flush();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* $output_format can be: language, prosilver and subsilver2
|
||||
*/
|
||||
function build_code_changes($output_format)
|
||||
{
|
||||
global $substitute_new, $substitute_old, $simple_name_old, $simple_name_new, $echo_changes, $package_changed_files, $location, $debug_file, $s_name;
|
||||
|
||||
// Global array holding the data entries
|
||||
$data = array(
|
||||
'header' => array(),
|
||||
'diff' => array(),
|
||||
);
|
||||
|
||||
// Read diff file and prepare the output filedata...
|
||||
//$patch_filename = '../new_version/patches/phpBB-' . $substitute_old . '_to_' . $substitute_new . '.patch';
|
||||
$release_filename = 'phpbb-' . $substitute_old . '_to_' . $substitute_new . '_' . $output_format . '.txt';
|
||||
|
||||
if (!$package_changed_files)
|
||||
{
|
||||
if (!$echo_changes)
|
||||
{
|
||||
$fp = fopen('save/' . $s_name . '/' . $output_format . '/' . $release_filename, 'wb');
|
||||
|
||||
if (!$fp)
|
||||
{
|
||||
die('Unable to create ' . $release_filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
include_once($location . '/build_helper.php');
|
||||
$package = new build_package(array($substitute_old, $substitute_new), false);
|
||||
|
||||
$titles = array(
|
||||
'language' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' Language Pack Changes',
|
||||
'prosilver' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' prosilver Changes',
|
||||
'subsilver2' => 'phpBB ' . $substitute_old . ' to phpBB ' . $substitute_new . ' subsilver2 Changes',
|
||||
);
|
||||
|
||||
$data['header'] = array(
|
||||
'title' => $titles[$output_format],
|
||||
'intro' => '
|
||||
|
||||
These are the ' . $titles[$output_format] . ' summed up into a little Mod. These changes are only partial and do not include any code changes, therefore not meant for updating phpBB.
|
||||
|
||||
',
|
||||
'included_files' => array(),
|
||||
);
|
||||
|
||||
// We collect the files we want to diff first (ironically we grab this from a diff file)
|
||||
if (!$echo_changes)
|
||||
{
|
||||
echo "\n\nCollecting Filenames:";
|
||||
}
|
||||
|
||||
// We re-create the patch file
|
||||
foreach ($package->old_packages as $_package_name => $dest_package_filename)
|
||||
{
|
||||
chdir($package->locations['old_versions']);
|
||||
|
||||
if (!$echo_changes)
|
||||
{
|
||||
echo "\n\n" . 'Creating patch/diff files for phpBB-' . $dest_package_filename . $package->get('new_version_number');
|
||||
}
|
||||
|
||||
$dest_package_filename = $location . '/save/' . $s_name . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.patch';
|
||||
$package->run_command('diff ' . $package->diff_options . ' ' . $_package_name . ' ' . $package->get('simple_name') . ' > ' . $dest_package_filename);
|
||||
|
||||
// Parse this diff to determine file changes from the checked versions and save them
|
||||
$result = $package->collect_diff_files($dest_package_filename, $_package_name);
|
||||
$package->run_command('rm ' . $dest_package_filename);
|
||||
}
|
||||
|
||||
chdir($location);
|
||||
|
||||
$filenames = array();
|
||||
foreach ($result['files'] as $filename)
|
||||
{
|
||||
if ($debug_file !== false && $filename != $debug_file)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Decide which files to compare...
|
||||
switch ($output_format)
|
||||
{
|
||||
case 'language':
|
||||
if (strpos($filename, 'language/en/') !== 0)
|
||||
{
|
||||
continue 2;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'prosilver':
|
||||
if (strpos($filename, 'styles/prosilver/') !== 0)
|
||||
{
|
||||
continue 2;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'subsilver2':
|
||||
if (strpos($filename, 'styles/subsilver2/') !== 0)
|
||||
{
|
||||
continue 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!file_exists($location . '/old_versions/' . $simple_name_old . '/' . $filename))
|
||||
{
|
||||
// New file... include it
|
||||
$data['header']['included_files'][] = array(
|
||||
'old' => $location . '/old_versions/' . $simple_name_old . '/' . $filename,
|
||||
'new' => $location . '/old_versions/' . $simple_name_new . '/' . $filename,
|
||||
'phpbb_filename' => $filename,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
$filenames[] = array(
|
||||
'old' => $location . '/old_versions/' . $simple_name_old . '/' . $filename,
|
||||
'new' => $location . '/old_versions/' . $simple_name_new . '/' . $filename,
|
||||
'phpbb_filename' => $filename,
|
||||
);
|
||||
}
|
||||
|
||||
// Now let us go through the filenames list and create a more comprehensive diff
|
||||
if (!$echo_changes)
|
||||
{
|
||||
fwrite($fp, build_header($output_format, $filenames, $data['header']));
|
||||
}
|
||||
else
|
||||
{
|
||||
//echo build_header('text', $filenames, $data['header']);
|
||||
}
|
||||
|
||||
// Copy files...
|
||||
$files_to_copy = array();
|
||||
|
||||
foreach ($data['header']['included_files'] as $filename)
|
||||
{
|
||||
$files_to_copy[] = $filename['phpbb_filename'];
|
||||
}
|
||||
|
||||
// First step is to copy the new version over (clean structure)
|
||||
if (!$echo_changes && sizeof($files_to_copy))
|
||||
{
|
||||
foreach ($files_to_copy as $file)
|
||||
{
|
||||
// Create directory?
|
||||
$dirname = dirname($file);
|
||||
|
||||
if ($dirname)
|
||||
{
|
||||
$dirname = explode('/', $dirname);
|
||||
$__dir = array();
|
||||
|
||||
foreach ($dirname as $i => $dir)
|
||||
{
|
||||
$__dir[] = $dir;
|
||||
run_command("mkdir -p $location/save/" . $s_name . '/' . $output_format . '/' . implode('/', $__dir));
|
||||
}
|
||||
}
|
||||
|
||||
$source_file = $location . '/new_version/phpBB3/' . $file;
|
||||
$dest_file = $location . '/save/' . $s_name . '/' . $output_format . '/';
|
||||
$dest_file .= $file;
|
||||
|
||||
$command = "cp -p $source_file $dest_file";
|
||||
$result = trim(`$command`);
|
||||
echo "- Copied File: " . $source_file . " -> " . $dest_file . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
include_once('diff_class.php');
|
||||
|
||||
if (!$echo_changes)
|
||||
{
|
||||
echo "\n\nDiffing Codebases:";
|
||||
}
|
||||
|
||||
foreach ($filenames as $file_ary)
|
||||
{
|
||||
if (!file_exists($file_ary['old']))
|
||||
{
|
||||
$lines1 = array();
|
||||
}
|
||||
else
|
||||
{
|
||||
$lines1 = file($file_ary['old']);
|
||||
}
|
||||
$lines2 = file($file_ary['new']);
|
||||
|
||||
if (!sizeof($lines1))
|
||||
{
|
||||
// New File
|
||||
}
|
||||
else
|
||||
{
|
||||
$diff = new Diff($lines1, $lines2);
|
||||
$fmt = new BBCodeDiffFormatter(false, 5, $debug_file);
|
||||
|
||||
if (!$echo_changes)
|
||||
{
|
||||
fwrite($fp, $fmt->format_open($file_ary['phpbb_filename']));
|
||||
fwrite($fp, $fmt->format($diff, $lines1));
|
||||
fwrite($fp, $fmt->format_close($file_ary['phpbb_filename']));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $fmt->format_open($file_ary['phpbb_filename']);
|
||||
echo $fmt->format($diff, $lines1);
|
||||
echo $fmt->format_close($file_ary['phpbb_filename']);
|
||||
}
|
||||
|
||||
if ($debug_file !== false)
|
||||
{
|
||||
echo $fmt->format_open($file_ary['phpbb_filename']);
|
||||
echo $fmt->format($diff, $lines1);
|
||||
echo $fmt->format_close($file_ary['phpbb_filename']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$echo_changes)
|
||||
{
|
||||
fwrite($fp, build_footer($output_format));
|
||||
|
||||
// Close file
|
||||
fclose($fp);
|
||||
|
||||
chmod('save/' . $s_name . '/' . $output_format . '/' . $release_filename, 0666);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo build_footer($output_format);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build Footer
|
||||
*/
|
||||
function build_footer($mode)
|
||||
{
|
||||
$html = '';
|
||||
|
||||
$html .= "# \n";
|
||||
$html .= "#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ \n";
|
||||
$html .= "# \n";
|
||||
$html .= "# EoM";
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build Header
|
||||
*/
|
||||
function build_header($mode, $filenames, $header)
|
||||
{
|
||||
global $substitute_old;
|
||||
|
||||
$html = '';
|
||||
|
||||
$html .= "############################################################## \n";
|
||||
$html .= "## Title: " . $header['title'] . "\n";
|
||||
$html .= "## Author: naderman < naderman@phpbb.com > (Nils Adermann) http://www.phpbb.com \n";
|
||||
$html .= "## Description: \n";
|
||||
|
||||
$intr = explode("\n", $header['intro']);
|
||||
$introduction = '';
|
||||
foreach ($intr as $_line)
|
||||
{
|
||||
$introduction .= wordwrap($_line, 80) . "\n";
|
||||
}
|
||||
$intr = explode("\n", $introduction);
|
||||
|
||||
foreach ($intr as $_line)
|
||||
{
|
||||
$html .= "## " . $_line . "\n";
|
||||
}
|
||||
$html .= "## \n";
|
||||
$html .= "## Files To Edit: \n";
|
||||
|
||||
foreach ($filenames as $file_ary)
|
||||
{
|
||||
$html .= "## " . $file_ary['phpbb_filename'] . "\n";
|
||||
}
|
||||
$html .= "##\n";
|
||||
if (sizeof($header['included_files']))
|
||||
{
|
||||
$html .= "## Included Files: \n";
|
||||
foreach ($header['included_files'] as $filename)
|
||||
{
|
||||
$html .= "## {$filename['phpbb_filename']}\n";
|
||||
}
|
||||
}
|
||||
$html .= "## License: http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 \n";
|
||||
$html .= "############################################################## \n";
|
||||
$html .= "\n";
|
||||
|
||||
// COPY Statement?
|
||||
if (sizeof($header['included_files']))
|
||||
{
|
||||
$html .= "#\n#-----[ COPY ]------------------------------------------\n#\n";
|
||||
foreach ($header['included_files'] as $filename)
|
||||
{
|
||||
$html .= "copy {$filename['phpbb_filename']} to {$filename['phpbb_filename']}\n";
|
||||
}
|
||||
$html .= "\n";
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
function run_command($command)
|
||||
{
|
||||
$result = trim(`$command`);
|
||||
echo "\n- Command Run: " . $command . "\n";
|
||||
}
|
||||
|
||||
?>
|
@@ -1,315 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package build
|
||||
* @copyright (c) 2010 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
class build_package
|
||||
{
|
||||
var $package_infos;
|
||||
var $old_packages;
|
||||
var $versions;
|
||||
var $locations;
|
||||
|
||||
// -c - context diff
|
||||
// -r - compare recursive
|
||||
// -N - Treat missing files as empty
|
||||
// -E - Ignore tab expansions
|
||||
// not used: -b - Ignore space changes.
|
||||
// -w - Ignore all whitespace
|
||||
// -B - Ignore blank lines
|
||||
// -d - Try to find smaller set of changes
|
||||
var $diff_options = '-crNEBwd';
|
||||
var $diff_options_long = '-x images -crNEB'; // -x fonts -x imageset //imageset not used here, because it includes the imageset.cfg file. ;)
|
||||
|
||||
var $verbose = false;
|
||||
var $status_begun = false;
|
||||
var $num_dots = 0;
|
||||
|
||||
function build_package($versions, $verbose = false)
|
||||
{
|
||||
$this->versions = $versions;
|
||||
$this->verbose = $verbose;
|
||||
|
||||
// Get last two entries
|
||||
$_latest = $this->versions[sizeof($this->versions) - 1];
|
||||
$_before = $this->versions[sizeof($this->versions) - 2];
|
||||
|
||||
$this->locations = array(
|
||||
'new_version' => dirname(dirname(__FILE__)) . '/phpBB/',
|
||||
'old_versions' => dirname(__FILE__) . '/old_versions/',
|
||||
'root' => dirname(__FILE__) . '/',
|
||||
'package_dir' => dirname(__FILE__) . '/new_version/'
|
||||
);
|
||||
|
||||
$this->package_infos = array(
|
||||
'package_name' => 'phpBB3',
|
||||
'name_prefix' => 'phpbb',
|
||||
'simple_name' => 'release-' . $_latest,
|
||||
'new_version_number' => $_latest,
|
||||
'short_version_number' => str_replace('.', '', $_latest),
|
||||
'release_filename' => 'phpBB-' . $_latest,
|
||||
'last_version' => 'release-' . $_before,
|
||||
'last_version_number' => $_before,
|
||||
);
|
||||
|
||||
$this->package_infos['dest_dir'] = $this->locations['package_dir'] . $this->package_infos['package_name'];
|
||||
$this->package_infos['diff_dir'] = $this->locations['old_versions'] . $this->package_infos['simple_name'];
|
||||
$this->package_infos['patch_directory'] = $this->locations['package_dir'] . 'patches';
|
||||
$this->package_infos['files_directory'] = $this->locations['package_dir'] . 'files';
|
||||
$this->package_infos['update_directory'] = $this->locations['package_dir'] . 'update';
|
||||
$this->package_infos['release_directory'] = $this->locations['package_dir'] . 'release_files';
|
||||
|
||||
// Old packages always exclude the latest version. ;)
|
||||
$this->old_packages = array();
|
||||
|
||||
foreach ($this->versions as $package_version)
|
||||
{
|
||||
if ($package_version == $_latest)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->old_packages['release-' . $package_version] = $package_version . '_to_';
|
||||
}
|
||||
}
|
||||
|
||||
function get($var)
|
||||
{
|
||||
return $this->package_infos[$var];
|
||||
}
|
||||
|
||||
function begin_status($headline)
|
||||
{
|
||||
if ($this->status_begun)
|
||||
{
|
||||
echo "\nDone.\n\n";
|
||||
}
|
||||
|
||||
$this->num_dots = 0;
|
||||
|
||||
echo $headline . "\n ";
|
||||
|
||||
$this->status_begun = true;
|
||||
}
|
||||
|
||||
function run_command($command)
|
||||
{
|
||||
$result = trim(`$command`);
|
||||
|
||||
if ($this->verbose)
|
||||
{
|
||||
echo " command : " . getcwd() . '$ ' . $command . "\n";
|
||||
echo " result : " . $result . "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->num_dots > 70)
|
||||
{
|
||||
echo "\n";
|
||||
$this->num_dots = 0;
|
||||
}
|
||||
echo '.';
|
||||
$this->num_dots++;
|
||||
}
|
||||
|
||||
flush();
|
||||
}
|
||||
|
||||
function create_directory($directory, $dir_struct)
|
||||
{
|
||||
if (!file_exists($directory))
|
||||
{
|
||||
$this->run_command("mkdir $directory");
|
||||
}
|
||||
|
||||
if (is_array($dir_struct))
|
||||
{
|
||||
foreach ($dir_struct as $_dir => $_dir_struct)
|
||||
{
|
||||
$this->create_directory($directory . '/' . $_dir, $_dir_struct);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function collect_diff_files($diff_filename, $package_name)
|
||||
{
|
||||
$diff_result = $binary = array();
|
||||
$diff_contents = file($diff_filename);
|
||||
|
||||
$special_diff_contents = array();
|
||||
|
||||
foreach ($diff_contents as $num => $line)
|
||||
{
|
||||
$line = trim($line);
|
||||
|
||||
if (!$line)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Special diff content?
|
||||
if (strpos($line, 'diff ' . $this->diff_options . ' ') === 0 || strpos($line, '*** ') === 0 || strpos($line, '--- ') === 0 || (strpos($line, ' Exp $') !== false && strpos($line, '$Id:') !== false))
|
||||
{
|
||||
$special_diff_contents[] = $line;
|
||||
}
|
||||
else if (strpos($line, 'diff ' . $this->diff_options . ' ') === 0 || strpos($line, '*** ') === 0 || strpos($line, '--- ') === 0 || (strpos($line, ' Exp $') !== false && strpos($line, '$Id:') !== false) || (strpos($line, ' $') !== false && strpos($line, '$Id:') !== false))
|
||||
{
|
||||
$special_diff_contents[] = $line;
|
||||
}
|
||||
|
||||
// Is diffing line?
|
||||
if (strstr($line, 'diff ' . $this->diff_options . ' '))
|
||||
{
|
||||
$next_line = $diff_contents[$num+1];
|
||||
if (strpos($next_line, '***') === 0)
|
||||
{
|
||||
// *** phpbb208/admin/admin_board.php Sat Jul 10 20:16:26 2004
|
||||
$next_line = explode("\t", $next_line);
|
||||
$next_line = trim($next_line[0]);
|
||||
$next_line = str_replace('*** ' . $package_name . '/', '', $next_line);
|
||||
$diff_result[] = $next_line;
|
||||
}
|
||||
}
|
||||
|
||||
// Is binary?
|
||||
if (preg_match('/^Binary files ' . $package_name . '\/(.*) and [a-z0-9._-]+\/\1 differ/i', $line, $match))
|
||||
{
|
||||
$binary[] = trim($match[1]);
|
||||
}
|
||||
}
|
||||
|
||||
// Now go through the list again and find out which files have how many changes...
|
||||
$num_changes = array();
|
||||
|
||||
/* [1070] => diff -crN phpbb200/includes/usercp_avatar.php phpbb2023/includes/usercp_avatar.php
|
||||
[1071] => *** phpbb200/includes/usercp_avatar.php Sat Jul 10 20:16:13 2004
|
||||
[1072] => --- phpbb2023/includes/usercp_avatar.php Wed Feb 6 22:28:04 2008
|
||||
[1073] => *** 6,12 ****
|
||||
[1074] => ! * $Id$
|
||||
[1075] => --- 6,12 ----
|
||||
[1076] => *** 51,59 ****
|
||||
[1077] => --- 51,60 ----
|
||||
[1078] => *** 62,80 ****
|
||||
[1079] => --- 63,108 ----
|
||||
[1080] => *** 87,97 ****
|
||||
*/
|
||||
while (($line = array_shift($special_diff_contents)) !== NULL)
|
||||
{
|
||||
$line = trim($line);
|
||||
|
||||
if (!$line)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Is diffing line?
|
||||
if (strstr($line, 'diff ' . $this->diff_options . ' '))
|
||||
{
|
||||
$next_line = array_shift($special_diff_contents);
|
||||
if (strpos($next_line, '*** ') === 0)
|
||||
{
|
||||
// *** phpbb208/admin/admin_board.php Sat Jul 10 20:16:26 2004
|
||||
$next_line = explode("\t", $next_line);
|
||||
$next_line = trim($next_line[0]);
|
||||
$next_line = str_replace('*** ' . $package_name . '/', '', $next_line);
|
||||
|
||||
$is_reached = false;
|
||||
$prev_line = '';
|
||||
|
||||
while (!$is_reached)
|
||||
{
|
||||
$line = array_shift($special_diff_contents);
|
||||
|
||||
if (strpos($line, 'diff ' . $this->diff_options) === 0 || empty($special_diff_contents))
|
||||
{
|
||||
$is_reached = true;
|
||||
array_unshift($special_diff_contents, $line);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (strpos($line, '*** ') === 0 && strpos($line, ' ****') !== false)
|
||||
{
|
||||
$is_comment = false;
|
||||
while (!(strpos($line, '--- ') === 0 && strpos($line, ' ----') !== false))
|
||||
{
|
||||
$line = array_shift($special_diff_contents);
|
||||
if (strpos($line, ' Exp $') !== false || strpos($line, '$Id:') !== false)
|
||||
{
|
||||
$is_comment = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$is_comment)
|
||||
{
|
||||
if (!isset($num_changes[$next_line]))
|
||||
{
|
||||
$num_changes[$next_line] = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$num_changes[$next_line]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Now remove those results not having changes
|
||||
$return = array();
|
||||
|
||||
foreach ($diff_result as $key => $value)
|
||||
{
|
||||
if (isset($num_changes[$value]))
|
||||
{
|
||||
$return[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($binary as $value)
|
||||
{
|
||||
$return[] = $value;
|
||||
}
|
||||
|
||||
$diff_result = $return;
|
||||
unset($return);
|
||||
unset($special_diff_contents);
|
||||
|
||||
$result = array(
|
||||
'files' => array(),
|
||||
'binary' => array(),
|
||||
'all' => $diff_result,
|
||||
);
|
||||
|
||||
$binary_extensions = array('gif', 'jpg', 'jpeg', 'png', 'ttf');
|
||||
|
||||
// Split into file and binary
|
||||
foreach ($diff_result as $filename)
|
||||
{
|
||||
if (strpos($filename, '.') === false)
|
||||
{
|
||||
$result['files'][] = $filename;
|
||||
continue;
|
||||
}
|
||||
|
||||
$extension = explode('.', $filename);
|
||||
$extension = array_pop($extension);
|
||||
|
||||
if (in_array($extension, $binary_extensions))
|
||||
{
|
||||
$result['binary'][] = $filename;
|
||||
}
|
||||
else
|
||||
{
|
||||
$result['files'][] = $filename;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
@@ -1,39 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
orig_dir="../../phpBB"
|
||||
|
||||
|
||||
rm -rf test_release_files
|
||||
mkdir test_release_files
|
||||
cd test_release_files
|
||||
|
||||
for ext in "tar.bz2" "zip"
|
||||
do
|
||||
cp "../new_version/release_files/$1.$ext" ./
|
||||
|
||||
if [ "$ext" = "tar.bz2" ]
|
||||
then
|
||||
command="tar -xjf"
|
||||
else
|
||||
command="unzip -q"
|
||||
fi
|
||||
|
||||
$command "$1.$ext"
|
||||
|
||||
for file in `find phpBB3 -name '.svn' -prune -o -type f -print`
|
||||
do
|
||||
orig_file="${file/#phpBB3/$orig_dir}"
|
||||
diff_result=`diff $orig_file $file`
|
||||
|
||||
if [ -n "$diff_result" ]
|
||||
then
|
||||
echo "Difference in package $1.$ext"
|
||||
echo $diff_result
|
||||
fi
|
||||
done
|
||||
|
||||
rm -rf phpBB3
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf test_release_files
|
||||
|
1710
build/diff_class.php
1710
build/diff_class.php
File diff suppressed because it is too large
Load Diff
@@ -1,408 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package build
|
||||
* @copyright (c) 2010 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
//$versions = array('3.0.2', '3.0.3', '3.0.4', '3.0.5', '3.0.6', '3.0.7-RC1', '3.0.7-RC2', '3.0.7', '3.0.7-PL1');
|
||||
|
||||
if ($_SERVER['argc'] < 2)
|
||||
{
|
||||
die("Please specify a list of versions as the first argument (e.g. package.php '1.0.0, 1.0.1, 1.0.2').");
|
||||
}
|
||||
|
||||
$versions = explode(',', $_SERVER['argv'][1]);
|
||||
$versions = array_map('trim', $versions);
|
||||
|
||||
$verbose = true;
|
||||
|
||||
require('build_helper.php');
|
||||
|
||||
$package = new build_package($versions, $verbose);
|
||||
|
||||
echo "Building Release Packages\n";
|
||||
echo "Now all three package types (patch, files, release) are built as well as the update package (update).\n";
|
||||
|
||||
// Go trough all versions making a diff if we even have old versions
|
||||
// For phpBB 3.0.x we might choose a different update method, rendering the things below useless...
|
||||
if (sizeof($package->old_packages))
|
||||
{
|
||||
chdir($package->locations['old_versions']);
|
||||
|
||||
// This array is for holding the filenames change
|
||||
$diff_file_changes = array();
|
||||
|
||||
foreach ($package->old_packages as $_package_name => $dest_package_filename)
|
||||
{
|
||||
$package->begin_status('Parsing patch/diff files for phpBB-' . $dest_package_filename . $package->get('new_version_number'));
|
||||
|
||||
// Parse this diff to determine file changes from the checked versions and save them
|
||||
$diff_file_changes[$_package_name] = $package->collect_diff_files(
|
||||
$package->get('patch_directory') . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.patch',
|
||||
$_package_name
|
||||
);
|
||||
}
|
||||
|
||||
// Now put those files determined within the correct directories
|
||||
foreach ($diff_file_changes as $_package_name => $file_contents)
|
||||
{
|
||||
$package->begin_status('Creating files-only informations for ' . $package->old_packages[$_package_name] . $package->get('new_version_number'));
|
||||
|
||||
$dest_filename_dir = $package->get('files_directory') . '/' . $package->old_packages[$_package_name] . $package->get('new_version_number');
|
||||
|
||||
if (!file_exists($dest_filename_dir))
|
||||
{
|
||||
$package->run_command('mkdir ' . $dest_filename_dir);
|
||||
}
|
||||
|
||||
// Now copy the file contents
|
||||
foreach ($file_contents['all'] as $file)
|
||||
{
|
||||
$source_filename = $package->get('dest_dir') . '/' . $file;
|
||||
$dest_filename = $dest_filename_dir . '/' . $file;
|
||||
|
||||
// Create Directories along the way?
|
||||
$file = explode('/', $file);
|
||||
// Remove filename portion
|
||||
$file[sizeof($file)-1] = '';
|
||||
|
||||
chdir($dest_filename_dir);
|
||||
foreach ($file as $entry)
|
||||
{
|
||||
$entry = trim($entry);
|
||||
if ($entry)
|
||||
{
|
||||
if (!file_exists('./' . $entry))
|
||||
{
|
||||
$package->run_command('mkdir ' . $entry);
|
||||
}
|
||||
chdir('./' . $entry);
|
||||
}
|
||||
}
|
||||
|
||||
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
|
||||
}
|
||||
}
|
||||
|
||||
// Because there might be binary changes, we re-create the patch files... without parsing file differences.
|
||||
$package->run_command('rm -Rv ' . $package->get('patch_directory'));
|
||||
|
||||
if (!file_exists($package->get('patch_directory')))
|
||||
{
|
||||
$package->run_command('mkdir ' . $package->get('patch_directory'));
|
||||
}
|
||||
|
||||
chdir($package->locations['old_versions']);
|
||||
|
||||
foreach ($package->old_packages as $_package_name => $dest_package_filename)
|
||||
{
|
||||
$package->begin_status('Creating patch/diff files for phpBB-' . $dest_package_filename . $package->get('new_version_number'));
|
||||
|
||||
$dest_package_filename = $package->get('patch_directory') . '/phpBB-' . $dest_package_filename . $package->get('new_version_number') . '.patch';
|
||||
$package->run_command('diff ' . $package->diff_options_long . ' ' . $_package_name . ' ' . $package->get('simple_name') . ' > ' . $dest_package_filename);
|
||||
}
|
||||
|
||||
$packages = $diff_file_changes;
|
||||
|
||||
foreach ($packages as $_package_name => $file_contents)
|
||||
{
|
||||
$package->begin_status('Building specific update files for ' . $package->old_packages[$_package_name] . $package->get('new_version_number'));
|
||||
|
||||
$dest_filename_dir = $package->get('update_directory') . '/' . $package->old_packages[$_package_name] . $package->get('new_version_number');
|
||||
|
||||
if (!file_exists($dest_filename_dir))
|
||||
{
|
||||
$package->run_command('mkdir ' . $dest_filename_dir);
|
||||
}
|
||||
|
||||
$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('mkdir ' . $dest_filename_dir . '/install/update');
|
||||
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update/old');
|
||||
$package->run_command('mkdir ' . $dest_filename_dir . '/install/update/new');
|
||||
|
||||
// Remove some files
|
||||
$package->run_command('rm -v ' . $dest_filename_dir . '/install/install_install.php');
|
||||
$package->run_command('rm -v ' . $dest_filename_dir . '/install/install_convert.php');
|
||||
$package->run_command('rm -Rv ' . $dest_filename_dir . '/install/schemas');
|
||||
$package->run_command('rm -Rv ' . $dest_filename_dir . '/install/convertors');
|
||||
|
||||
foreach ($file_contents['all'] as $index => $file)
|
||||
{
|
||||
if (strpos($file, 'recode_cjk') !== false)
|
||||
{
|
||||
unset($file_contents['all'][$index]);
|
||||
}
|
||||
}
|
||||
|
||||
// First of all, fill the 'old' directory
|
||||
foreach ($file_contents['all'] as $file)
|
||||
{
|
||||
$source_filename = $package->locations['old_versions'] . $_package_name . '/' . $file;
|
||||
$dest_filename = $dest_filename_dir . '/install/update/old/' . $file;
|
||||
|
||||
if (!file_exists($source_filename))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Create Directories along the way?
|
||||
$file = explode('/', $file);
|
||||
// Remove filename portion
|
||||
$file[sizeof($file)-1] = '';
|
||||
|
||||
chdir($dest_filename_dir . '/install/update/old');
|
||||
foreach ($file as $entry)
|
||||
{
|
||||
$entry = trim($entry);
|
||||
if ($entry)
|
||||
{
|
||||
if (!file_exists('./' . $entry))
|
||||
{
|
||||
$package->run_command('mkdir ' . $entry);
|
||||
}
|
||||
chdir('./' . $entry);
|
||||
}
|
||||
}
|
||||
|
||||
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
|
||||
}
|
||||
|
||||
// Then fill the 'new' directory
|
||||
foreach ($file_contents['all'] as $file)
|
||||
{
|
||||
$source_filename = $package->locations['old_versions'] . $package->get('simple_name') . '/' . $file;
|
||||
$dest_filename = $dest_filename_dir . '/install/update/new/' . $file;
|
||||
|
||||
if (!file_exists($source_filename))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Create Directories along the way?
|
||||
$file = explode('/', $file);
|
||||
// Remove filename portion
|
||||
$file[sizeof($file)-1] = '';
|
||||
|
||||
chdir($dest_filename_dir . '/install/update/new');
|
||||
foreach ($file as $entry)
|
||||
{
|
||||
$entry = trim($entry);
|
||||
if ($entry)
|
||||
{
|
||||
if (!file_exists('./' . $entry))
|
||||
{
|
||||
$package->run_command('mkdir ' . $entry);
|
||||
}
|
||||
chdir('./' . $entry);
|
||||
}
|
||||
}
|
||||
|
||||
$package->run_command('cp ' . $source_filename . ' ' . $dest_filename);
|
||||
}
|
||||
|
||||
// Build index.php file for holding the file structure
|
||||
$index_contents = '<?php
|
||||
|
||||
if (!defined(\'IN_PHPBB\'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
// Set update info with file structure to update
|
||||
$update_info = array(
|
||||
\'version\' => array(\'from\' => \'' . str_replace('_to_', '', $package->old_packages[$_package_name]) . '\', \'to\' => \'' . $package->get('new_version_number') . '\'),
|
||||
';
|
||||
|
||||
if (sizeof($file_contents['all']))
|
||||
{
|
||||
$index_contents .= '\'files\' => array(\'' . implode("',\n\t'", $file_contents['all']) . '\'),
|
||||
';
|
||||
}
|
||||
else
|
||||
{
|
||||
$index_contents .= '\'files\' => array(),
|
||||
';
|
||||
}
|
||||
|
||||
if (sizeof($file_contents['binary']))
|
||||
{
|
||||
$index_contents .= '\'binary\' => array(\'' . implode("',\n\t'", $file_contents['binary']) . '\'),
|
||||
';
|
||||
}
|
||||
else
|
||||
{
|
||||
$index_contents .= '\'binary\' => array(),
|
||||
';
|
||||
}
|
||||
|
||||
$index_contents .= ');
|
||||
|
||||
?' . '>';
|
||||
|
||||
$fp = fopen($dest_filename_dir . '/install/update/index.php', 'wt');
|
||||
fwrite($fp, $index_contents);
|
||||
fclose($fp);
|
||||
}
|
||||
unset($diff_file_changes);
|
||||
|
||||
$package->begin_status('Clean up all install files');
|
||||
|
||||
// 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'));
|
||||
|
||||
// Remove some files
|
||||
chdir($package->get('patch_directory') . '/install');
|
||||
|
||||
$package->run_command('rm -v install_install.php');
|
||||
$package->run_command('rm -v install_update.php');
|
||||
$package->run_command('rm -v install_convert.php');
|
||||
$package->run_command('rm -Rv schemas');
|
||||
$package->run_command('rm -Rv convertors');
|
||||
}
|
||||
|
||||
// Build Main phpBB Release
|
||||
$compress_programs = array(
|
||||
// 'tar.gz' => 'tar -czf',
|
||||
'tar.bz2' => 'tar -cjf',
|
||||
'zip' => 'zip -r'
|
||||
);
|
||||
|
||||
if (sizeof($package->old_packages))
|
||||
{
|
||||
// Build Patch Files
|
||||
chdir($package->get('patch_directory'));
|
||||
|
||||
foreach ($compress_programs as $extension => $compress_command)
|
||||
{
|
||||
$package->begin_status('Packaging phpBB Patch Files for ' . $extension);
|
||||
|
||||
// Build Package
|
||||
$package->run_command($compress_command . ' ../release_files/' . $package->get('release_filename') . '-patch.' . $extension . ' *');
|
||||
|
||||
// Build MD5 Sum
|
||||
$package->run_command('md5sum ../release_files/' . $package->get('release_filename') . '-patch.' . $extension . ' > ../release_files/' . $package->get('release_filename') . '-patch.' . $extension . '.md5');
|
||||
}
|
||||
|
||||
// Build Files Package
|
||||
chdir($package->get('files_directory'));
|
||||
|
||||
foreach ($compress_programs as $extension => $compress_command)
|
||||
{
|
||||
$package->begin_status('Packaging phpBB Files for ' . $extension);
|
||||
|
||||
$package->run_command('mkdir ' . $package->get('files_directory') . '/release');
|
||||
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/docs ' . $package->get('files_directory') . '/release');
|
||||
$package->run_command('cp -Rp ' . $package->get('dest_dir') . '/install ' . $package->get('files_directory') . '/release');
|
||||
|
||||
$package->run_command('rm -v ' . $package->get('files_directory') . '/release/install/install_install.php');
|
||||
$package->run_command('rm -v ' . $package->get('files_directory') . '/release/install/install_update.php');
|
||||
$package->run_command('rm -v ' . $package->get('files_directory') . '/release/install/install_convert.php');
|
||||
$package->run_command('rm -Rv ' . $package->get('files_directory') . '/release/install/schemas');
|
||||
$package->run_command('rm -Rv ' . $package->get('files_directory') . '/release/install/convertors');
|
||||
|
||||
// Pack files
|
||||
foreach ($package->old_packages as $_package_name => $package_path)
|
||||
{
|
||||
chdir($package_path . $package->get('new_version_number'));
|
||||
$command = ($extension == 'zip') ? 'zip -r' : 'tar cf';
|
||||
$_ext = ($extension == 'zip') ? 'zip' : 'tar';
|
||||
$package->run_command("$command ../release/phpBB-$package_path" . $package->get('new_version_number') . ".$_ext *");
|
||||
chdir('..');
|
||||
}
|
||||
|
||||
chdir('./release');
|
||||
$package->run_command("$compress_command ../../release_files/" . $package->get('release_filename') . '-files.' . $extension . ' *');
|
||||
// Build MD5 Sum
|
||||
$package->run_command('md5sum ../../release_files/' . $package->get('release_filename') . '-files.' . $extension . ' > ../../release_files/' . $package->get('release_filename') . '-files.' . $extension . '.md5');
|
||||
chdir('..');
|
||||
|
||||
$package->run_command('rm -Rv ' . $package->get('files_directory') . '/release');
|
||||
}
|
||||
|
||||
// Build Update Package
|
||||
foreach ($compress_programs as $extension => $compress_command)
|
||||
{
|
||||
chdir($package->get('update_directory'));
|
||||
|
||||
$package->begin_status('Packaging phpBB Update for ' . $extension);
|
||||
|
||||
$package->run_command('mkdir ' . $package->get('update_directory') . '/release');
|
||||
|
||||
// Pack update files
|
||||
$packages = $package->old_packages;
|
||||
|
||||
foreach ($packages as $_package_name => $package_path)
|
||||
{
|
||||
chdir($package_path . $package->get('new_version_number'));
|
||||
|
||||
$package->run_command('rm -v install/install_install.php');
|
||||
$package->run_command('rm -v install/install_convert.php');
|
||||
$package->run_command('rm -v includes/utf/data/recode_cjk.php');
|
||||
$package->run_command('rm -Rv install/schemas');
|
||||
$package->run_command('rm -Rv install/convertors');
|
||||
|
||||
$command = ($extension == 'zip') ? 'zip -r' : 'tar cf';
|
||||
$_ext = ($extension == 'zip') ? 'zip' : 'tar';
|
||||
$package->run_command("$command ../release/$package_path" . $package->get('new_version_number') . ".$_ext *");
|
||||
chdir('..');
|
||||
|
||||
$last_version = $package_path . $package->get('new_version_number');
|
||||
|
||||
// chdir('./release');
|
||||
// $package->run_command("$compress_command ../../release_files/" . $package->get('release_filename') . '-update.' . $extension . ' *');
|
||||
// chdir('..');
|
||||
|
||||
chdir('./' . $last_version);
|
||||
// Copy last package over...
|
||||
$package->run_command('rm -v ../release_files/phpBB-' . $last_version . ".$extension");
|
||||
$package->run_command("$compress_command ../../release_files/phpBB-$last_version.$extension *");
|
||||
|
||||
// Build MD5 Sum
|
||||
$package->run_command("md5sum ../../release_files/phpBB-$last_version.$extension > ../../release_files/phpBB-$last_version.$extension.md5");
|
||||
chdir('..');
|
||||
}
|
||||
|
||||
$package->run_command('rm -Rv ' . $package->get('update_directory') . '/release');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Delete updater and convertor from main archive
|
||||
chdir($package->get('dest_dir') . '/install');
|
||||
|
||||
// $package->run_command('rm -v database_update.php');
|
||||
$package->run_command('rm -v install_update.php');
|
||||
|
||||
chdir($package->locations['package_dir']);
|
||||
foreach ($compress_programs as $extension => $compress_command)
|
||||
{
|
||||
$package->begin_status('Packaging phpBB for ' . $extension);
|
||||
$package->run_command('rm -v ./release_files/' . $package->get('release_filename') . ".{$extension}");
|
||||
|
||||
// Build Package
|
||||
$package->run_command("$compress_command ./release_files/" . $package->get('release_filename') . '.' . $extension . ' ' . $package->get('package_name'));
|
||||
|
||||
// Build MD5 Sum
|
||||
$package->run_command('md5sum ./release_files/' . $package->get('release_filename') . '.' . $extension . ' > ./release_files/' . $package->get('release_filename') . '.' . $extension . '.md5');
|
||||
}
|
||||
|
||||
// Microsoft Web PI packaging
|
||||
$package->begin_status('Packaging phpBB for Microsoft WebPI');
|
||||
$file = './release_files/' . $package->get('release_filename') . '.webpi.zip';
|
||||
$package->run_command('cp -p ./release_files/' . $package->get('release_filename') . ".zip $file");
|
||||
$package->run_command('cd ./../webpi && ' . $compress_programs['zip'] . " ./../new_version/$file *");
|
||||
$package->run_command("md5sum $file > $file.md5");
|
||||
|
||||
// verify results
|
||||
chdir($package->locations['root']);
|
||||
$package->begin_status('********** Verifying packages **********');
|
||||
$package->run_command('./compare.sh ' . $package->package_infos['release_filename']);
|
||||
|
||||
echo "Done.\n";
|
@@ -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
|
||||
|
@@ -1,39 +0,0 @@
|
||||
/**********************************************************************/
|
||||
/* Install.SQL */
|
||||
/* Creates a login and makes the user a member of db roles */
|
||||
/* */
|
||||
/**********************************************************************/
|
||||
|
||||
-- Declare variables for database name, username and password
|
||||
DECLARE @dbName sysname,
|
||||
@dbUser sysname,
|
||||
@dbPwd nvarchar(max);
|
||||
|
||||
-- Set variables for database name, username and password
|
||||
SET @dbName = 'PlaceHolderForDb';
|
||||
SET @dbUser = 'PlaceHolderForUser';
|
||||
SET @dbPwd = 'PlaceHolderForPassword';
|
||||
|
||||
DECLARE @cmd nvarchar(max)
|
||||
|
||||
-- Create login
|
||||
IF( SUSER_SID(@dbUser) is null )
|
||||
BEGIN
|
||||
print '-- Creating login '
|
||||
SET @cmd = N'CREATE LOGIN ' + quotename(@dbUser) + N' WITH PASSWORD ='''+ replace(@dbPwd, '''', '''''') + N''''
|
||||
EXEC(@cmd)
|
||||
END
|
||||
|
||||
-- Create database user and map to login
|
||||
-- and add user to the datareader, datawriter, ddladmin and securityadmin roles
|
||||
--
|
||||
SET @cmd = N'USE ' + quotename(@DBName) + N';
|
||||
IF( NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = ''' + replace(@dbUser, '''', '''''') + N'''))
|
||||
BEGIN
|
||||
print ''-- Creating user'';
|
||||
CREATE USER ' + quotename(@dbUser) + N' FOR LOGIN ' + quotename(@dbUser) + N';
|
||||
print ''-- Adding user'';
|
||||
EXEC sp_addrolemember ''db_owner'', ''' + replace(@dbUser, '''', '''''') + N''';
|
||||
END'
|
||||
EXEC(@cmd)
|
||||
GO
|
@@ -1,15 +0,0 @@
|
||||
USE PlaceHolderForDb$$
|
||||
|
||||
DROP PROCEDURE IF EXISTS add_user $$
|
||||
|
||||
CREATE PROCEDURE add_user()
|
||||
BEGIN
|
||||
DECLARE EXIT HANDLER FOR 1044 BEGIN END;
|
||||
GRANT ALL PRIVILEGES ON PlaceHolderForDb.* to 'PlaceHolderForUser'@'PlaceHolderForServer' IDENTIFIED BY 'PlaceHolderForPassword';
|
||||
FLUSH PRIVILEGES;
|
||||
END
|
||||
$$
|
||||
|
||||
CALL add_user() $$
|
||||
|
||||
DROP PROCEDURE IF EXISTS add_user $$
|
@@ -1,13 +0,0 @@
|
||||
<msdeploy.iisapp>
|
||||
<iisapp path="phpBB3" />
|
||||
|
||||
<dbmysql path="install/mysql.sql" commandDelimiter="$$" removeCommandDelimiter="true" />
|
||||
|
||||
<dbfullsql path="install/mssql.sql" />
|
||||
|
||||
<setAcl path="phpBB3/cache" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
|
||||
<setAcl path="phpBB3/files" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
|
||||
<setAcl path="phpBB3/store" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
|
||||
<setAcl path="phpBB3/images/avatars/upload" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" />
|
||||
<setAcl path="phpBB3/config.php" setAclAccess="Modify" setAclUser="anonymousAuthenticationUser" setAclResourceType="File" />
|
||||
</msdeploy.iisapp>
|
@@ -1,256 +0,0 @@
|
||||
<parameters>
|
||||
<parameter
|
||||
name="AppPath"
|
||||
defaultValue="Default Web Site/phpBB3"
|
||||
tags="iisapp">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="iisapp"
|
||||
match="phpBB3" />
|
||||
</parameter>
|
||||
<!--ACLs-->
|
||||
<parameter
|
||||
name="aclCache"
|
||||
description="Sets the ACL on the cache/ folder"
|
||||
defaultValue="{AppPath}/cache"
|
||||
tags="Hidden">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="setAcl"
|
||||
match="phpBB3/cache$" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="aclFiles"
|
||||
description="Sets the ACL on the files/ folder"
|
||||
defaultValue="{AppPath}/files"
|
||||
tags="Hidden">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="setAcl"
|
||||
match="phpBB3/files$" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="aclStore"
|
||||
description="Sets the ACL on the store/ folder"
|
||||
defaultValue="{AppPath}/store"
|
||||
tags="Hidden">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="setAcl"
|
||||
match="phpBB3/store$" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="aclAvatarUpload"
|
||||
description="Sets the ACL on the avatars/upload/ folder"
|
||||
defaultValue="{AppPath}/images/avatars/upload"
|
||||
tags="Hidden">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="setAcl"
|
||||
match="phpBB3/images/avatars/upload$" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="aclConfig"
|
||||
description="Sets the ACL on the config.php file"
|
||||
defaultValue="{AppPath}/config.php"
|
||||
tags="Hidden">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="setAcl"
|
||||
match="phpBB3/config.php$" />
|
||||
</parameter>
|
||||
|
||||
<!-- SQL parameters -->
|
||||
<parameter name="SQL Database Server" description="Enter the database server (usually machine name ) " defaultValue="." tags="SQL">
|
||||
</parameter>
|
||||
|
||||
<parameter name="SQL DatabaseServer Instance" description="Enter the database instance name" defaultValue="SQLExpress" tags="SQL">
|
||||
</parameter>
|
||||
<!-- Read database server from config.php . Update 'dbhost' in config.php on publish -->
|
||||
<parameter name="SQL Automatic DatabaseServer" defaultValue="dbhost = '{SQL Database Server}\\{SQL DatabaseServer Instance}';" tags="Hidden,SQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbhost\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
<parameter
|
||||
name="SQL DatabaseName" description="Database name for your application." defaultValue="phpbb" tags="SQL, dbName">
|
||||
|
||||
<parameterEntry type="TextFile" scope="install/mssql.sql" match="PlaceHolderForDb" />
|
||||
</parameter>
|
||||
<!-- Read database name from config.php . Update 'dbname' in config.php on publish -->
|
||||
<parameter name="SQL Automatic DatabaseName" defaultValue="dbname = '{SQL DatabaseName}';" tags="Hidden,SQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbname\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="SQL DatabaseAdministrator"
|
||||
description="Database server administartor username."
|
||||
defaultValue="sa"
|
||||
tags="SQL, DbAdminUsername" >
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="SQL DatabaseAdministratorPassword"
|
||||
description="Database server administrator password."
|
||||
tags="Password,SQL,DbAdminPassword">
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="SQL Database Username"
|
||||
description="Username to access your database."
|
||||
defaultValue="phpbb"
|
||||
tags="SQL, DbUsername">
|
||||
|
||||
<parameterEntry
|
||||
type="TextFile"
|
||||
scope="install/mssql.sql"
|
||||
match="PlaceHolderForUser" />
|
||||
</parameter>
|
||||
<!-- Read database user from config.php . Update 'dbuser' in config.php on publish -->
|
||||
<parameter name="SQL Automatic Database User" defaultValue="dbuser = '{SQL Database Username}';" tags="Hidden,SQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbuser\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="SQL Database Password"
|
||||
description="Password for your phpBB database. (Must be at least 8 characters, contain at least one lower case letter, one upper case letter and one digit)"
|
||||
tags="New, Password,SQL, DbUserPassword">
|
||||
|
||||
<parameterValidation
|
||||
type = "RegularExpression"
|
||||
validationString = "^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$" />
|
||||
|
||||
<parameterEntry
|
||||
type="TextFile"
|
||||
scope="install/mssql.sql"
|
||||
match="PlaceHolderForPassword" />
|
||||
</parameter>
|
||||
|
||||
<!-- Read database user password from config.php . Update 'dbpasswd' in config.php on publish -->
|
||||
<parameter name="SQL Automatic Database Password" defaultValue="dbpasswd = '{SQL Database Password}';" tags="Hidden,SQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbpasswd\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
|
||||
<!-- SQL Connection string -->
|
||||
<parameter
|
||||
name="SQL ConnectionString"
|
||||
description="Automatically sets the connection string for the connection request."
|
||||
defaultValue="Server={SQL Database Server}\{SQL DatabaseServer Instance};Database={SQL DatabaseName};uid={SQL DatabaseAdministrator};Pwd={SQL DatabaseAdministratorPassword};"
|
||||
tags="Hidden,SQLConnectionString,Validate">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="dbfullsql"
|
||||
match="install/mssql.sql" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="SQL Database type"
|
||||
description="SQL database type"
|
||||
defaultValue="mssql"
|
||||
tags="SQL,Hidden">
|
||||
</parameter>
|
||||
|
||||
<!-- MYSQL parameters -->
|
||||
<parameter
|
||||
name="MySQL Database Server"
|
||||
description="Enter the hostname"
|
||||
defaultValue="localhost"
|
||||
tags="MySQL, dbServer">
|
||||
|
||||
<parameterEntry
|
||||
type="TextFile"
|
||||
scope="install/mysql.sql"
|
||||
match="PlaceHolderForServer" />
|
||||
</parameter>
|
||||
|
||||
<!-- Read database server from config.php . Update 'dbhost' in config.php on publish -->
|
||||
<parameter name="Automatic MySQL DatabaseServer" defaultValue="dbhost = '{MySQL Database Server}';" tags="Hidden,MySQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbhost\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="MySQL Database Name"
|
||||
description="Database Name for your application."
|
||||
defaultValue="phpbb"
|
||||
tags="MySQL, dbName">
|
||||
|
||||
<parameterEntry
|
||||
type="TextFile"
|
||||
scope="install/mysql.sql"
|
||||
match="PlaceHolderForDb" />
|
||||
</parameter>
|
||||
<!-- Read database name from config.php . Update 'dbname' in config.php on publish -->
|
||||
<parameter name="Automatic MySQL Database Name" defaultValue="dbname = '{MySQL Database Name}';" tags="Hidden,MySQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbname\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="MySQL Database Username"
|
||||
description="Username to access your phpBB database."
|
||||
defaultValue="phpbb"
|
||||
tags="MySQL, DbUsername">
|
||||
|
||||
<parameterEntry
|
||||
type="TextFile"
|
||||
scope="install/mysql.sql"
|
||||
match="PlaceHolderForUser" />
|
||||
</parameter>
|
||||
<!-- Read database user from config.php . Update 'dbuser' in config.php on publish -->
|
||||
<parameter name="Automatic MySQL Database User" defaultValue="dbuser = '{MySQL Database Username}';" tags="Hidden,MySQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbuser\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
|
||||
<parameter
|
||||
name="MySQL Database Password"
|
||||
description="Password for your phpBB database. (Minimum 4 characters)"
|
||||
tags="New, Password,MySQL,DbUserPassword">
|
||||
|
||||
<parameterValidation
|
||||
type = "RegularExpression"
|
||||
validationString = "^.{4,}$" />
|
||||
|
||||
<parameterEntry
|
||||
type="TextFile"
|
||||
scope="install/mysql.sql"
|
||||
match="PlaceHolderForPassword" />
|
||||
</parameter>
|
||||
<!-- Read database password from config.php . Update 'dbpasswd' in config.php on publish -->
|
||||
<parameter name="MySQL Automatic Database Password" defaultValue="dbpasswd = '{MySQL Database Password}';" tags="Hidden,MySQL">
|
||||
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbpasswd\s*=\s*'([^']*)'\s*;" />
|
||||
</parameter>
|
||||
|
||||
<!-- MySQL admin credentials -->
|
||||
<parameter
|
||||
name="MySQL Database Administrator"
|
||||
description="Database administrator username."
|
||||
defaultValue="root"
|
||||
tags="MySQL, DbAdminUsername" >
|
||||
</parameter>
|
||||
<parameter
|
||||
name="MySQL Database Administrator Password"
|
||||
description="Database administrator password."
|
||||
tags="Password,MySQL,DbAdminPassword" >
|
||||
</parameter>
|
||||
|
||||
<!-- MySQL Connectionstring -->
|
||||
<parameter
|
||||
name="MySQLConnectionString"
|
||||
description="Automatically sets the connection string for the connection request."
|
||||
defaultValue="Server={MySQL Database Server};Database={MySQL Database Name};uid={MySQL Database Administrator};Pwd={MySQL Database Administrator Password};"
|
||||
tags="Hidden,MySQLConnectionString,Validate">
|
||||
|
||||
<parameterEntry
|
||||
type="ProviderPath"
|
||||
scope="dbmysql"
|
||||
match="install/mysql.sql" />
|
||||
</parameter>
|
||||
</parameters>
|
210
code_sniffer/phpbb/Sniffs/Commenting/FileCommentSniff.php
Normal file
210
code_sniffer/phpbb/Sniffs/Commenting/FileCommentSniff.php
Normal file
@@ -0,0 +1,210 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package code_sniffer
|
||||
* @version $Id: $
|
||||
* @copyright (c) 2007 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 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 void
|
||||
*/
|
||||
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 void
|
||||
*/
|
||||
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 void
|
||||
*/
|
||||
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 void
|
||||
*/
|
||||
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 void
|
||||
*/
|
||||
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]);
|
||||
}
|
||||
}
|
||||
}
|
19
code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.inc
Normal file
19
code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.inc
Normal file
@@ -0,0 +1,19 @@
|
||||
<?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
|
||||
*
|
||||
*/
|
51
code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.php
Normal file
51
code_sniffer/phpbb/Tests/Commenting/FileCommentUnitTest.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package code_sniffer
|
||||
* @version $Id: $
|
||||
* @copyright (c) 2007 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 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()
|
||||
}
|
65
code_sniffer/phpbb/build.xml
Normal file
65
code_sniffer/phpbb/build.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="code_sniffer" basedir="." default="phpunit">
|
||||
|
||||
<property name="cvs.module" value="pear/PHP_CodeSniffer" />
|
||||
<property name="working.dir" value="${basedir}/_work/code" />
|
||||
<property name="test.coverage" value="${basedir}/_work/coverage" />
|
||||
|
||||
<target name="phpunit" depends="update,prepare">
|
||||
<exec executable="phpunit">
|
||||
<arg line="--coverage-html ${test.coverage}
|
||||
PHP_CodeSniffer_AllTests
|
||||
${working.dir}/${cvs.module}/tests/AllTests.php" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="prepare">
|
||||
<delete dir="${working.dir}/${cvs.module}/CodeSniffer/Standards/phpbb" />
|
||||
<mkdir dir="${working.dir}/${cvs.module}/CodeSniffer/Standards/phpbb"/>
|
||||
|
||||
<copy todir="${working.dir}/${cvs.module}/CodeSniffer/Standards/phpbb/Sniffs">
|
||||
<fileset dir="${basedir}/Sniffs" />
|
||||
</copy>
|
||||
|
||||
<copy todir="${working.dir}/${cvs.module}/CodeSniffer/Standards/phpbb/Tests">
|
||||
<fileset dir="${basedir}/Tests" />
|
||||
</copy>
|
||||
|
||||
<copy todir="${working.dir}/${cvs.module}/CodeSniffer/Standards/phpbb">
|
||||
<fileset file="${basedir}/phpbbCodingStandard.php" />
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="cleanup">
|
||||
<delete dir="${working.dir}" />
|
||||
</target>
|
||||
|
||||
<target name="update">
|
||||
<exec executable="cvs" dir="${working.dir}/${cvs.module}">
|
||||
<arg line="up" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="checkout" depends="cleanup">
|
||||
<cvspass cvsroot=":pserver:cvsread@cvs.php.net:/repository" password="phpfi" />
|
||||
<cvs cvsRoot=":pserver:cvsread@cvs.php.net:/repository"
|
||||
package="${cvs.module}"
|
||||
dest="${working.dir}" />
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Installs the sniffs on my local development machine
|
||||
-->
|
||||
<target name="install">
|
||||
<delete dir="/usr/local/pear/PEAR/PHP/CodeSniffer/Standards/phpbb" />
|
||||
<mkdir dir="/usr/local/pear/PEAR/PHP/CodeSniffer/Standards/phpbb" />
|
||||
|
||||
<copy todir="/usr/local/pear/PEAR/PHP/CodeSniffer/Standards/phpbb">
|
||||
<fileset file="${basedir}/phpbbCodingStandard.php" />
|
||||
</copy>
|
||||
<copy todir="/usr/local/pear/PEAR/PHP/CodeSniffer/Standards/phpbb/Sniffs">
|
||||
<fileset dir="${basedir}/Sniffs" />
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
</project>
|
43
code_sniffer/phpbb/phpbbCodingStandard.php
Normal file
43
code_sniffer/phpbb/phpbbCodingStandard.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package code_sniffer
|
||||
* @version $Id: $
|
||||
* @copyright (c) 2007 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @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();
|
||||
}
|
||||
}
|
BIN
composer.phar
BIN
composer.phar
Binary file not shown.
@@ -1,359 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# A hook to check syntax of a phpBB3 commit message, per:
|
||||
# * <http://wiki.phpbb.com/display/DEV/Git>
|
||||
# * <http://area51.phpbb.com/phpBB/viewtopic.php?p=209919#p209919>
|
||||
#
|
||||
# This is a commit-msg hook.
|
||||
#
|
||||
# To install this you can either copy or symlink it to
|
||||
# $GIT_DIR/hooks, example:
|
||||
#
|
||||
# ln -s ../../git-tools/hooks/commit-msg \\
|
||||
# .git/hooks/commit-msg
|
||||
#
|
||||
# You can configure whether invalid commit messages abort commits:
|
||||
#
|
||||
# git config phpbb.hooks.commit-msg.fatal true (abort)
|
||||
# git config phpbb.hooks.commit-msg.fatal false (warn only, do not abort)
|
||||
#
|
||||
# The default is to warn only.
|
||||
#
|
||||
# Warning/error messages use color by default if the output is a terminal
|
||||
# ("output" here is normally standard error when you run git commit).
|
||||
# To force or disable the use of color:
|
||||
#
|
||||
# git config phpbb.hooks.commit-msg.color true (force color output)
|
||||
# git config phpbb.hooks.commit-msg.color false (disable color output)
|
||||
|
||||
config_ns="phpbb.hooks.commit-msg";
|
||||
|
||||
if [ "$(git config --bool $config_ns.fatal)" = "true" ]
|
||||
then
|
||||
fatal=1;
|
||||
severity=Error;
|
||||
else
|
||||
fatal=0;
|
||||
severity=Warning;
|
||||
fi
|
||||
|
||||
debug_level=$(git config --int $config_ns.debug || echo 0);
|
||||
|
||||
# Error codes
|
||||
ERR_LENGTH=1;
|
||||
ERR_HEADER=2;
|
||||
ERR_EMPTY=3;
|
||||
ERR_DESCRIPTION=4;
|
||||
ERR_FOOTER=5;
|
||||
ERR_EOF=6;
|
||||
ERR_UNKNOWN=42;
|
||||
|
||||
debug()
|
||||
{
|
||||
local level;
|
||||
|
||||
level=$1;
|
||||
shift;
|
||||
|
||||
if [ $debug_level -ge $level ]
|
||||
then
|
||||
echo $@;
|
||||
fi
|
||||
}
|
||||
|
||||
quit()
|
||||
{
|
||||
if [ $1 -eq 0 ] || [ $1 -eq $ERR_UNKNOWN ]
|
||||
then
|
||||
# success
|
||||
exit 0;
|
||||
elif [ $fatal -eq 0 ]
|
||||
then
|
||||
# problems found but fatal is false
|
||||
complain 'Please run `git commit --amend` and fix the problems mentioned.' 1>&2
|
||||
exit 0;
|
||||
else
|
||||
complain "Aborting commit." 1>&2
|
||||
exit $1;
|
||||
fi
|
||||
}
|
||||
|
||||
use_color()
|
||||
{
|
||||
if [ -z "$use_color_cached" ]
|
||||
then
|
||||
case $(git config --bool $config_ns.color)
|
||||
in
|
||||
false)
|
||||
use_color_cached=1
|
||||
;;
|
||||
true)
|
||||
use_color_cached=0
|
||||
;;
|
||||
*)
|
||||
# tty detection in shell:
|
||||
# http://hwi.ath.cx/jsh/list/shext/isatty.sh.html
|
||||
tty 0>/dev/stdout >/dev/null 2>&1
|
||||
use_color_cached=$?
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# return value is the flag inverted -
|
||||
# if return value is 0, this means use color
|
||||
return $use_color_cached
|
||||
}
|
||||
|
||||
complain()
|
||||
{
|
||||
if use_color
|
||||
then
|
||||
# Careful: our argument may include arguments to echo like -n
|
||||
# ANSI color codes:
|
||||
# http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html
|
||||
printf "\033[31m\033[1m"
|
||||
if [ "$1" = "-n" ]
|
||||
then
|
||||
echo "$@"
|
||||
printf "\033[0m"
|
||||
else
|
||||
# This will print one trailing space.
|
||||
# Not sure how to avoid this at the moment.
|
||||
echo "$@" $(printf "\033[0m")
|
||||
fi
|
||||
else
|
||||
echo "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Check for empty commit message
|
||||
if ! grep -qv '^#' "$1"
|
||||
then
|
||||
# Commit message is empty (or contains only comments).
|
||||
# Let git handle this.
|
||||
# It will abort with a message like so:
|
||||
#
|
||||
# Aborting commit due to empty commit message.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
msg=$(grep -v '^#' "$1" |grep -nE '.{81,}')
|
||||
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
complain "The following lines are greater than 80 characters long:" >&2;
|
||||
complain >&2
|
||||
complain "$msg" >&2;
|
||||
|
||||
quit $ERR_LENGTH;
|
||||
fi
|
||||
|
||||
lines=$(wc -l "$1" | awk '{ print $1; }');
|
||||
expecting=header;
|
||||
in_description=0;
|
||||
in_empty=0;
|
||||
ticket=0;
|
||||
branch_regex="[a-z]+[a-z0-9-]*[a-z0-9]+";
|
||||
i=1;
|
||||
tickets="";
|
||||
|
||||
while [ $i -le $lines ]
|
||||
do
|
||||
# Grab the line we are studying
|
||||
line=$(head -n$i "$1" | tail -n1);
|
||||
|
||||
debug 1 "==> [$i] $line (description: $in_description, empty: $in_empty)";
|
||||
|
||||
err=$ERR_UNKNOWN;
|
||||
|
||||
if [ -z "$expecting" ]
|
||||
then
|
||||
quit $err;
|
||||
fi
|
||||
|
||||
if [ "${expecting#comment}" = "$expecting" ]
|
||||
then
|
||||
# Prefix comments to the expected tokens list
|
||||
expecting="comment $expecting";
|
||||
fi
|
||||
|
||||
debug 2 "Expecting: $expecting";
|
||||
|
||||
# Loop over each of the expected line formats
|
||||
for expect in $expecting
|
||||
do
|
||||
# Reset the error code each iteration
|
||||
err=$ERR_UNKNOWN;
|
||||
|
||||
# Test for validity of each line format
|
||||
# This is done first so $? contains the result
|
||||
case $expect in
|
||||
"header")
|
||||
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].+$"
|
||||
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 "You entered:" 1>&2
|
||||
complain "$line" 1>&2
|
||||
fi
|
||||
# restore exit code
|
||||
(exit $result)
|
||||
;;
|
||||
"empty")
|
||||
err=$ERR_EMPTY;
|
||||
echo "$line" | grep -Eq "^$"
|
||||
;;
|
||||
"description")
|
||||
err=$ERR_DESCRIPTION;
|
||||
# Free flow text, the line length was constrained by the initial check
|
||||
echo "$line" | grep -Eq "^.+$";
|
||||
;;
|
||||
"footer")
|
||||
err=$ERR_FOOTER;
|
||||
# Each ticket is on its own line
|
||||
echo "$line" | grep -Eq "^PHPBB3-[0-9]+$";
|
||||
;;
|
||||
"eof")
|
||||
err=$ERR_EOF;
|
||||
# Should not end up here
|
||||
false
|
||||
;;
|
||||
"possibly-eof")
|
||||
# Allow empty and/or comment lines at the end
|
||||
! tail -n +"$i" "$1" |grep -qvE '^($|#)'
|
||||
;;
|
||||
"comment")
|
||||
echo "$line" | grep -Eq "^#";
|
||||
;;
|
||||
*)
|
||||
complain "Unrecognised token $expect" >&2;
|
||||
quit $err;
|
||||
;;
|
||||
esac
|
||||
|
||||
# Preserve the result of the line check
|
||||
result=$?;
|
||||
|
||||
debug 2 "$expect - '$line' - $result";
|
||||
|
||||
if [ $result -eq 0 ]
|
||||
then
|
||||
# Break out the loop on success
|
||||
# otherwise roll on round and keep looking for a match
|
||||
break;
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $result -eq 0 ]
|
||||
then
|
||||
# Have we switched out of description mode?
|
||||
if [ $in_description -eq 1 ] && [ "$expect" != "description" ] && [ "$expect" != "empty" ] && [ "$expect" != "comment" ]
|
||||
then
|
||||
# Yes, okay we need to backtrace one line and reanalyse
|
||||
in_description=0;
|
||||
i=$(( $i - $in_empty ));
|
||||
|
||||
# Reset the empty counter
|
||||
in_empty=0;
|
||||
continue;
|
||||
fi
|
||||
|
||||
# Successful match, but on which line format
|
||||
case $expect in
|
||||
"header")
|
||||
expecting="empty";
|
||||
|
||||
echo "$line" | grep -Eq "^\[ticket/[0-9]+\]$" && (
|
||||
ticket=$(echo "$line" | sed 's,\[ticket/\([0-9]*\)\].*,\1,');
|
||||
)
|
||||
;;
|
||||
"empty")
|
||||
# Description might have empty lines as spacing
|
||||
expecting="footer description";
|
||||
in_empty=$(($in_empty + 1));
|
||||
|
||||
if [ $in_description -eq 1 ]
|
||||
then
|
||||
expecting="$expecting empty";
|
||||
fi
|
||||
;;
|
||||
"description")
|
||||
expecting="description empty";
|
||||
in_description=1;
|
||||
;;
|
||||
"footer")
|
||||
expecting="footer possibly-eof";
|
||||
if [ "$tickets" = "" ]
|
||||
then
|
||||
tickets="$line";
|
||||
else
|
||||
tickets="$tickets $line";
|
||||
fi
|
||||
;;
|
||||
"comment")
|
||||
# Comments should expect the same thing again
|
||||
;;
|
||||
"possibly-eof")
|
||||
expecting="eof";
|
||||
;;
|
||||
*)
|
||||
complain "Unrecognised token $expect" >&2;
|
||||
quit 254;
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$expect" != "empty" ]
|
||||
then
|
||||
in_empty=0;
|
||||
fi
|
||||
|
||||
debug 3 "Now expecting: $expecting";
|
||||
else
|
||||
# None of the expected line formats matched
|
||||
# Guess we'll call it a day here then
|
||||
complain "Syntax error on line $i:" >&2;
|
||||
complain ">> $line" >&2;
|
||||
complain -n "Expecting: " >&2;
|
||||
complain "$expecting" | sed 's/ /, /g' >&2;
|
||||
quit $err;
|
||||
fi
|
||||
|
||||
i=$(( $i + 1 ));
|
||||
done
|
||||
|
||||
# If EOF is expected exit cleanly
|
||||
echo "$expecting" | grep -q "eof" || (
|
||||
# Unexpected EOF, error
|
||||
complain "Unexpected EOF encountered" >&2;
|
||||
quit $ERR_EOF;
|
||||
) && (
|
||||
# Do post scan checks
|
||||
if [ ! -z "$tickets" ]
|
||||
then
|
||||
# Check for duplicate tickets
|
||||
dupes=$(echo "$tickets" | sed 's/ /\n/g' | sort | uniq -d);
|
||||
|
||||
if [ ! -z "$dupes" ]
|
||||
then
|
||||
complain "The following tickets are repeated:" >&2;
|
||||
complain "$dupes" | sed 's/ /\n/g;s/^/* /g' >&2;
|
||||
quit $ERR_FOOTER;
|
||||
fi
|
||||
fi
|
||||
# Check the branch ticket is mentioned, doesn't make sense otherwise
|
||||
if [ $ticket -gt 0 ]
|
||||
then
|
||||
echo "$tickets" | grep -Eq "\bPHPBB3-$ticket\b" || (
|
||||
complain "Ticket ID [$ticket] of branch missing from list of tickets:" >&2;
|
||||
complain "$tickets" | sed 's/ /\n/g;s/^/* /g' >&2;
|
||||
quit $ERR_FOOTER;
|
||||
) || exit $?;
|
||||
fi
|
||||
# Got here okay exit to reality
|
||||
exit 0;
|
||||
);
|
||||
exit $?;
|
@@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Script to install the git hooks
|
||||
# by symlinking them into the .git/hooks directory
|
||||
#
|
||||
# Usage (from within git-tools/hooks):
|
||||
# ./install
|
||||
|
||||
dir=$(dirname $0)
|
||||
|
||||
for file in $(ls $dir)
|
||||
do
|
||||
if [ $file != "install" ] && [ $file != "uninstall" ]
|
||||
then
|
||||
ln -s "../../git-tools/hooks/$file" "$dir/../../.git/hooks/$file"
|
||||
fi
|
||||
done
|
@@ -1,88 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# A hook to disallow php syntax errors to be committed
|
||||
# by running php -l (lint) on them. It requires php-cli
|
||||
# to be installed.
|
||||
#
|
||||
# This is a pre-commit hook.
|
||||
#
|
||||
# To install this you can either copy or symlink it to
|
||||
# $GIT_DIR/hooks, example:
|
||||
#
|
||||
# ln -s ../../git-tools/hooks/pre-commit \\
|
||||
# .git/hooks/pre-commit
|
||||
|
||||
if [ -z "$PHP_BIN" ]
|
||||
then
|
||||
PHP_BIN=php
|
||||
fi
|
||||
|
||||
if [ "$(echo -e test)" = test ]
|
||||
then
|
||||
echo_e="echo -e"
|
||||
else
|
||||
echo_e="echo"
|
||||
fi
|
||||
|
||||
# necessary check for initial commit
|
||||
if git rev-parse --verify HEAD >/dev/null 2>&1
|
||||
then
|
||||
against=HEAD
|
||||
else
|
||||
# Initial commit: diff against an empty tree object
|
||||
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
|
||||
fi
|
||||
|
||||
errors=""
|
||||
if ! which "$PHP_BIN" >/dev/null 2>&1
|
||||
then
|
||||
echo "PHP Syntax check failed:"
|
||||
echo "PHP binary does not exist or is not in path: $PHP_BIN"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# dash does not support $'\n':
|
||||
# http://forum.soft32.com/linux2/Bug-409179-DASH-Settings-IFS-work-properly-ftopict70039.html
|
||||
IFS='
|
||||
'
|
||||
# get a list of staged files
|
||||
for line in $(git diff-index --cached --full-index $against)
|
||||
do
|
||||
# split needed values
|
||||
sha=$(echo $line | cut -d' ' -f4)
|
||||
temp=$(echo $line | cut -d' ' -f5)
|
||||
status=$(echo $temp | cut -d' ' -f1)
|
||||
filename=$(echo $temp | cut -d' ' -f2)
|
||||
|
||||
# file extension
|
||||
ext=$(echo $filename | sed 's/^.*\.//')
|
||||
|
||||
# only check files with php extension
|
||||
if [ $ext != "php" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
|
||||
# do not check deleted files
|
||||
if [ $status = "D" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
|
||||
# check the staged file content for syntax errors
|
||||
# using php -l (lint)
|
||||
result=$(git cat-file -p $sha | "$PHP_BIN" -n -l -ddisplay_errors\=1 -derror_reporting\=E_ALL -dlog_errrors\=0 2>&1)
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
# Swap back in correct filenames
|
||||
errors=$(echo "$errors"; echo "$result" | grep ':' | sed -e "s@in - on@in $filename on@g")
|
||||
fi
|
||||
done
|
||||
unset IFS
|
||||
|
||||
if [ -n "$errors" ]
|
||||
then
|
||||
echo "PHP Syntax check failed: "
|
||||
$echo_e "$errors"
|
||||
exit 1
|
||||
fi
|
@@ -1,42 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# A hook to add [$branch] to the beginning of a commit message
|
||||
# if certain conditions are met.
|
||||
#
|
||||
# This is a prepare-commit-msg hook.
|
||||
#
|
||||
# To install this you can either copy or symlink it to
|
||||
# $GIT_DIR/hooks, example:
|
||||
#
|
||||
# ln -s ../../git-tools/hooks/prepare-commit-msg \\
|
||||
# .git/hooks/prepare-commit-msg
|
||||
|
||||
# get branch name
|
||||
branch="$(git symbolic-ref HEAD)"
|
||||
|
||||
# exit if no branch name is present
|
||||
# (eg. detached HEAD)
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
exit
|
||||
fi
|
||||
|
||||
# strip off refs/heads/
|
||||
branch="$(echo "$branch" | sed "s/refs\/heads\///g")"
|
||||
|
||||
# add [branchname] to commit message
|
||||
# * only run when normal commit is made (without -m or -F;
|
||||
# not a merge, etc.)
|
||||
# * also make sure the branch name begins with bug/ or feature/
|
||||
if [ "$2" = "" ]
|
||||
then
|
||||
tail="";
|
||||
|
||||
# Branch is prefixed with 'ticket/', append ticket ID to message
|
||||
if [ "$branch" != "${branch##ticket/}" ];
|
||||
then
|
||||
tail="$(printf "\n\nPHPBB3-${branch##ticket/}")";
|
||||
fi
|
||||
|
||||
echo "[$branch] $tail$(cat "$1")" > "$1"
|
||||
fi
|
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Script to uninstall the git hooks
|
||||
#
|
||||
# Usage (from within git-tools/hooks):
|
||||
# ./uninstall
|
||||
|
||||
dir=$(dirname $0)
|
||||
|
||||
for file in $(ls $dir)
|
||||
do
|
||||
if [ $file != "install" ] && [ $file != "uninstall" ]
|
||||
then
|
||||
rm -f "$dir/../../.git/hooks/$file"
|
||||
fi
|
||||
done
|
@@ -1,190 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2011 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
function show_usage()
|
||||
{
|
||||
$filename = basename(__FILE__);
|
||||
|
||||
echo "$filename merges a github pull request.\n";
|
||||
echo "\n";
|
||||
|
||||
echo "Usage: [php] $filename -p pull_request_id [OPTIONS]\n";
|
||||
echo "\n";
|
||||
|
||||
echo "Options:\n";
|
||||
echo " -p pull_request_id The pull request id to be merged (mandatory)\n";
|
||||
echo " -r remote Remote of upstream, defaults to 'upstream' (optional)\n";
|
||||
echo " -d Outputs the commands instead of running them (optional)\n";
|
||||
echo " -h This help text\n";
|
||||
|
||||
exit(2);
|
||||
}
|
||||
|
||||
// Handle arguments
|
||||
$opts = getopt('p:r:dh');
|
||||
|
||||
if (empty($opts) || isset($opts['h']))
|
||||
{
|
||||
show_usage();
|
||||
}
|
||||
|
||||
$pull_id = get_arg($opts, 'p', '');
|
||||
$remote = get_arg($opts, 'r', 'upstream');
|
||||
$dry_run = !get_arg($opts, 'd', true);
|
||||
|
||||
try
|
||||
{
|
||||
exit(work($pull_id, $remote));
|
||||
}
|
||||
catch (RuntimeException $e)
|
||||
{
|
||||
echo $e->getMessage();
|
||||
exit($e->getCode());
|
||||
}
|
||||
|
||||
function work($pull_id, $remote)
|
||||
{
|
||||
// Get some basic data
|
||||
$pull = get_pull('phpbb', 'phpbb3', $pull_id);
|
||||
|
||||
if (!$pull_id)
|
||||
{
|
||||
show_usage();
|
||||
}
|
||||
|
||||
if ($pull['state'] != 'open')
|
||||
{
|
||||
throw new RuntimeException(sprintf("Error: pull request is closed\n",
|
||||
$target_branch), 5);
|
||||
}
|
||||
|
||||
$pull_user = $pull['head'][0];
|
||||
$pull_branch = $pull['head'][1];
|
||||
$target_branch = $pull['base'][1];
|
||||
|
||||
switch ($target_branch)
|
||||
{
|
||||
case 'develop-olympus':
|
||||
run("git checkout develop-olympus");
|
||||
run("git pull $remote develop-olympus");
|
||||
|
||||
add_remote($pull_user, 'phpbb3');
|
||||
run("git fetch $pull_user");
|
||||
run("git merge --no-ff $pull_user/$pull_branch");
|
||||
run("phpBB/vendor/bin/phpunit");
|
||||
|
||||
run("git checkout develop");
|
||||
run("git pull $remote develop");
|
||||
run("git merge --no-ff develop-olympus");
|
||||
run("phpBB/vendor/bin/phpunit");
|
||||
break;
|
||||
|
||||
case 'develop':
|
||||
run("git checkout develop");
|
||||
run("git pull $remote develop");
|
||||
|
||||
add_remote($pull_user, 'phpbb3');
|
||||
run("git fetch $pull_user");
|
||||
run("git merge --no-ff $pull_user/$pull_branch");
|
||||
run("phpBB/vendor/bin/phpunit");
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new RuntimeException(sprintf("Error: pull request target branch '%s' is not a main branch\n",
|
||||
$target_branch), 5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function add_remote($username, $repository, $pushable = false)
|
||||
{
|
||||
$url = get_repository_url($username, $repository, false);
|
||||
run("git remote add $username $url", true);
|
||||
|
||||
if ($pushable)
|
||||
{
|
||||
$ssh_url = get_repository_url($username, $repository, true);
|
||||
run("git remote set-url --push $username $ssh_url");
|
||||
}
|
||||
}
|
||||
|
||||
function get_repository_url($username, $repository, $ssh = false)
|
||||
{
|
||||
$url_base = ($ssh) ? 'git@github.com:' : 'git://github.com/';
|
||||
|
||||
return $url_base . $username . '/' . $repository . '.git';
|
||||
}
|
||||
|
||||
function api_request($query)
|
||||
{
|
||||
return api_url_request("https://api.github.com/$query?per_page=100");
|
||||
}
|
||||
|
||||
function api_url_request($url)
|
||||
{
|
||||
$contents = file_get_contents($url, false, stream_context_create(array(
|
||||
'http' => array(
|
||||
'header' => "User-Agent: phpBB/1.0\r\n",
|
||||
),
|
||||
)));
|
||||
|
||||
if ($contents === false)
|
||||
{
|
||||
throw new RuntimeException("Error: failed to retrieve pull request data\n", 4);
|
||||
}
|
||||
$contents = json_decode($contents);
|
||||
|
||||
if (isset($contents->message) && strpos($contents->message, 'API Rate Limit') === 0)
|
||||
{
|
||||
throw new RuntimeException('Reached github API Rate Limit. Please try again later' . "\n", 4);
|
||||
}
|
||||
|
||||
return $contents;
|
||||
}
|
||||
|
||||
function get_pull($username, $repository, $pull_id)
|
||||
{
|
||||
$request = api_request("repos/$username/$repository/pulls/$pull_id");
|
||||
|
||||
$pull = $request->pull;
|
||||
|
||||
$pull_data = array(
|
||||
'base' => array($pull->base->user->login, $pull->base->ref),
|
||||
'head' => array($pull->head->user->login, $pull->head->ref),
|
||||
'state' => $pull->state,
|
||||
);
|
||||
|
||||
return $pull_data;
|
||||
}
|
||||
|
||||
function get_arg($array, $index, $default)
|
||||
{
|
||||
return isset($array[$index]) ? $array[$index] : $default;
|
||||
}
|
||||
|
||||
function run($cmd, $ignore_fail = false)
|
||||
{
|
||||
global $dry_run;
|
||||
|
||||
if (!empty($dry_run))
|
||||
{
|
||||
echo "$cmd\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
passthru(escapeshellcmd($cmd), $status);
|
||||
|
||||
if ($status != 0 && !$ignore_fail)
|
||||
{
|
||||
throw new RuntimeException(sprintf("Error: command '%s' failed with status %s'\n",
|
||||
$cmd, $status), 6);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,288 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2011 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
function show_usage()
|
||||
{
|
||||
$filename = basename(__FILE__);
|
||||
|
||||
echo "$filename adds repositories of a github network as remotes to a local git repository.\n";
|
||||
echo "\n";
|
||||
|
||||
echo "Usage: [php] $filename -s collaborators|organisation|contributors|forks [OPTIONS]\n";
|
||||
echo "\n";
|
||||
|
||||
echo "Scopes:\n";
|
||||
echo " collaborators Repositories of people who have push access to the specified repository\n";
|
||||
echo " contributors Repositories of people who have contributed to the specified repository\n";
|
||||
echo " organisation Repositories of members of the organisation at github\n";
|
||||
echo " forks All repositories of the whole github network\n";
|
||||
echo "\n";
|
||||
|
||||
echo "Options:\n";
|
||||
echo " -s scope See description above (mandatory)\n";
|
||||
echo " -u github_username Overwrites the github username (optional)\n";
|
||||
echo " -r repository_name Overwrites the repository name (optional)\n";
|
||||
echo " -m your_github_username Sets up ssh:// instead of git:// for pushable repositories (optional)\n";
|
||||
echo " -d Outputs the commands instead of running them (optional)\n";
|
||||
echo " -h This help text\n";
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Handle arguments
|
||||
$opts = getopt('s:u:r:m:dh');
|
||||
|
||||
if (empty($opts) || isset($opts['h']))
|
||||
{
|
||||
show_usage();
|
||||
}
|
||||
|
||||
$scope = get_arg($opts, 's', '');
|
||||
$username = get_arg($opts, 'u', 'phpbb');
|
||||
$repository = get_arg($opts, 'r', 'phpbb3');
|
||||
$developer = get_arg($opts, 'm', '');
|
||||
$dry_run = !get_arg($opts, 'd', true);
|
||||
run(null, $dry_run);
|
||||
exit(work($scope, $username, $repository, $developer));
|
||||
|
||||
function work($scope, $username, $repository, $developer)
|
||||
{
|
||||
// Get some basic data
|
||||
$forks = get_forks($username, $repository);
|
||||
$collaborators = get_collaborators($username, $repository);
|
||||
|
||||
if ($forks === false || $collaborators === false)
|
||||
{
|
||||
echo "Error: failed to retrieve forks or collaborators\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
switch ($scope)
|
||||
{
|
||||
case 'collaborators':
|
||||
$remotes = array_intersect_key($forks, $collaborators);
|
||||
break;
|
||||
|
||||
case 'organisation':
|
||||
$remotes = array_intersect_key($forks, get_organisation_members($username));
|
||||
break;
|
||||
|
||||
case 'contributors':
|
||||
$remotes = array_intersect_key($forks, get_contributors($username, $repository));
|
||||
break;
|
||||
|
||||
case 'forks':
|
||||
$remotes = $forks;
|
||||
break;
|
||||
|
||||
default:
|
||||
show_usage();
|
||||
}
|
||||
|
||||
if (file_exists('.git'))
|
||||
{
|
||||
add_remote($username, $repository, isset($collaborators[$developer]));
|
||||
}
|
||||
else
|
||||
{
|
||||
clone_repository($username, $repository, isset($collaborators[$developer]));
|
||||
}
|
||||
|
||||
// Add private security repository for developers
|
||||
if ($username == 'phpbb' && $repository == 'phpbb3' && isset($collaborators[$developer]))
|
||||
{
|
||||
run("git remote add $username-security " . get_repository_url($username, "$repository-security", true));
|
||||
}
|
||||
|
||||
// Skip blessed repository.
|
||||
unset($remotes[$username]);
|
||||
|
||||
foreach ($remotes as $remote)
|
||||
{
|
||||
add_remote($remote['username'], $remote['repository'], $remote['username'] == $developer);
|
||||
}
|
||||
|
||||
run('git remote update');
|
||||
}
|
||||
|
||||
function clone_repository($username, $repository, $pushable = false)
|
||||
{
|
||||
$url = get_repository_url($username, $repository, false);
|
||||
run("git clone $url ./ --origin $username");
|
||||
|
||||
if ($pushable)
|
||||
{
|
||||
$ssh_url = get_repository_url($username, $repository, true);
|
||||
run("git remote set-url --push $username $ssh_url");
|
||||
}
|
||||
}
|
||||
|
||||
function add_remote($username, $repository, $pushable = false)
|
||||
{
|
||||
$url = get_repository_url($username, $repository, false);
|
||||
run("git remote add $username $url");
|
||||
|
||||
if ($pushable)
|
||||
{
|
||||
$ssh_url = get_repository_url($username, $repository, true);
|
||||
run("git remote set-url --push $username $ssh_url");
|
||||
}
|
||||
}
|
||||
|
||||
function get_repository_url($username, $repository, $ssh = false)
|
||||
{
|
||||
$url_base = ($ssh) ? 'git@github.com:' : 'git://github.com/';
|
||||
|
||||
return $url_base . $username . '/' . $repository . '.git';
|
||||
}
|
||||
|
||||
function api_request($query)
|
||||
{
|
||||
return api_url_request("https://api.github.com/$query?per_page=100");
|
||||
}
|
||||
|
||||
function api_url_request($url)
|
||||
{
|
||||
$contents = file_get_contents($url, false, stream_context_create(array(
|
||||
'http' => array(
|
||||
'header' => "User-Agent: phpBB/1.0\r\n",
|
||||
),
|
||||
)));
|
||||
|
||||
$sub_request_result = array();
|
||||
// Check headers for pagination links
|
||||
if (!empty($http_response_header))
|
||||
{
|
||||
foreach ($http_response_header as $header_element)
|
||||
{
|
||||
// Find Link Header which gives us a link to the next page
|
||||
if (strpos($header_element, 'Link: ') === 0)
|
||||
{
|
||||
list($head, $header_content) = explode(': ', $header_element);
|
||||
foreach (explode(', ', $header_content) as $links)
|
||||
{
|
||||
list($url, $rel) = explode('; ', $links);
|
||||
if ($rel == 'rel="next"')
|
||||
{
|
||||
// Found a next link, follow it and merge the results
|
||||
$sub_request_result = api_url_request(substr($url, 1, -1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($contents === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$contents = json_decode($contents);
|
||||
|
||||
if (isset($contents->message) && strpos($contents->message, 'API Rate Limit') === 0)
|
||||
{
|
||||
throw new RuntimeException('Reached github API Rate Limit. Please try again later' . "\n", 4);
|
||||
}
|
||||
|
||||
return ($sub_request_result) ? array_merge($sub_request_result, $contents) : $contents;
|
||||
}
|
||||
|
||||
function get_contributors($username, $repository)
|
||||
{
|
||||
$request = api_request("repos/$username/$repository/stats/contributors");
|
||||
if ($request === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$usernames = array();
|
||||
foreach ($request as $contribution)
|
||||
{
|
||||
$usernames[$contribution->author->login] = $contribution->author->login;
|
||||
}
|
||||
|
||||
return $usernames;
|
||||
}
|
||||
|
||||
function get_organisation_members($username)
|
||||
{
|
||||
$request = api_request("orgs/$username/public_members");
|
||||
if ($request === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$usernames = array();
|
||||
foreach ($request as $member)
|
||||
{
|
||||
$usernames[$member->login] = $member->login;
|
||||
}
|
||||
|
||||
return $usernames;
|
||||
}
|
||||
|
||||
function get_collaborators($username, $repository)
|
||||
{
|
||||
$request = api_request("repos/$username/$repository/collaborators");
|
||||
if ($request === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$usernames = array();
|
||||
foreach ($request as $collaborator)
|
||||
{
|
||||
$usernames[$collaborator->login] = $collaborator->login;
|
||||
}
|
||||
|
||||
return $usernames;
|
||||
}
|
||||
|
||||
function get_forks($username, $repository)
|
||||
{
|
||||
$request = api_request("repos/$username/$repository/forks");
|
||||
if ($request === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$usernames = array();
|
||||
foreach ($request as $fork)
|
||||
{
|
||||
$usernames[$fork->owner->login] = array(
|
||||
'username' => $fork->owner->login,
|
||||
'repository' => $fork->name,
|
||||
);
|
||||
}
|
||||
|
||||
return $usernames;
|
||||
}
|
||||
|
||||
function get_arg($array, $index, $default)
|
||||
{
|
||||
return isset($array[$index]) ? $array[$index] : $default;
|
||||
}
|
||||
|
||||
function run($cmd, $dry = false)
|
||||
{
|
||||
static $dry_run;
|
||||
|
||||
if (is_null($cmd))
|
||||
{
|
||||
$dry_run = $dry;
|
||||
}
|
||||
else if (!empty($dry_run))
|
||||
{
|
||||
echo "$cmd\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
passthru(escapeshellcmd($cmd));
|
||||
}
|
||||
}
|
@@ -1,13 +1,3 @@
|
||||
#
|
||||
# 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>
|
||||
|
||||
<Files "config.php">
|
||||
Order Allow,Deny
|
||||
Deny from All
|
||||
|
BIN
phpBB/adm/images/phpbb_logo.gif
Normal file
BIN
phpBB/adm/images/phpbb_logo.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
Binary file not shown.
Before Width: | Height: | Size: 9.1 KiB |
@@ -15,11 +15,13 @@ define('ADMIN_START', true);
|
||||
define('NEED_SID', true);
|
||||
|
||||
// Include files
|
||||
$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_admin.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);
|
||||
if (!defined('PHPBB_ROOT_PATH')) define('PHPBB_ROOT_PATH', './../');
|
||||
if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
if (!defined('PHPBB_ADMIN_PATH')) define('PHPBB_ADMIN_PATH', './');
|
||||
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/functions_module.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
@@ -28,10 +30,14 @@ $user->setup('acp/common');
|
||||
// End session management
|
||||
|
||||
// Have they authenticated (again) as an admin for this session?
|
||||
if (!isset($user->data['session_admin']) || !$user->data['session_admin'])
|
||||
if ($user->data['user_id'] != ANONYMOUS && (!isset($user->data['session_admin']) || !$user->data['session_admin']))
|
||||
{
|
||||
login_box('', $user->lang['LOGIN_ADMIN_CONFIRM'], $user->lang['LOGIN_ADMIN_SUCCESS'], true, false);
|
||||
}
|
||||
else if ($user->data['user_id'] == ANONYMOUS)
|
||||
{
|
||||
login_box('');
|
||||
}
|
||||
|
||||
// Is user any type of admin? No, then stop here, each script needs to
|
||||
// check specific permissions but this is a catchall
|
||||
@@ -42,7 +48,6 @@ 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;
|
||||
@@ -51,11 +56,8 @@ $module_id = request_var('i', '');
|
||||
$mode = request_var('mode', '');
|
||||
|
||||
// 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;
|
||||
$template->set_custom_template(PHPBB_ADMIN_PATH . 'style', 'admin');
|
||||
$template->assign_var('T_TEMPLATE_PATH', PHPBB_ADMIN_PATH . 'style');
|
||||
|
||||
// Instantiate new module
|
||||
$module = new p_master();
|
||||
@@ -68,7 +70,7 @@ $module->set_active($module_id, $mode);
|
||||
|
||||
// Assign data to the template engine for the list of modules
|
||||
// We do this before loading the active module for correct menu display in trigger_error
|
||||
$module->assign_tpl_vars(append_sid("{$phpbb_admin_path}index.$phpEx"));
|
||||
$module->assign_tpl_vars(append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT));
|
||||
|
||||
// Load and execute the relevant module
|
||||
$module->load_active();
|
||||
@@ -88,7 +90,7 @@ adm_page_footer();
|
||||
function adm_page_header($page_title)
|
||||
{
|
||||
global $config, $db, $user, $template;
|
||||
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $SID, $_SID;
|
||||
global $SID, $_SID;
|
||||
|
||||
if (defined('HEADER_INC'))
|
||||
{
|
||||
@@ -108,36 +110,39 @@ function adm_page_header($page_title)
|
||||
|
||||
$template->assign_vars(array(
|
||||
'PAGE_TITLE' => $page_title,
|
||||
'USERNAME' => $user->data['username'],
|
||||
'USERNAME' => ($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : '',
|
||||
|
||||
'SID' => $SID,
|
||||
'_SID' => $_SID,
|
||||
'SESSION_ID' => $user->session_id,
|
||||
'ROOT_PATH' => $phpbb_admin_path,
|
||||
'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"),
|
||||
'U_LOGOUT' => append_sid('ucp', 'mode=logout'),
|
||||
'U_ADM_LOGOUT' => append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT, 'action=admlogout'),
|
||||
'U_ADM_INDEX' => append_sid(PHPBB_ADMIN_PATH . 'index.' . PHP_EXT),
|
||||
'U_INDEX' => append_sid('index'),
|
||||
|
||||
'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']}/",
|
||||
'S_USER_ADMIN' => $user->data['session_admin'],
|
||||
'S_USER_LOGGED_IN' => ($user->data['user_id'] != ANONYMOUS && !$user->data['is_bot']),
|
||||
|
||||
'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'] . '" />',
|
||||
'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'],
|
||||
@@ -162,7 +167,7 @@ function adm_page_header($page_title)
|
||||
function adm_page_footer($copyright_html = true)
|
||||
{
|
||||
global $db, $config, $template, $user, $auth, $cache;
|
||||
global $starttime, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
||||
global $starttime;
|
||||
|
||||
// Output page creation time
|
||||
if (defined('DEBUG'))
|
||||
@@ -170,7 +175,7 @@ function adm_page_footer($copyright_html = true)
|
||||
$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'))
|
||||
if (request::variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG_EXTRA') && method_exists($db, 'sql_report'))
|
||||
{
|
||||
$db->sql_report('display');
|
||||
}
|
||||
@@ -199,7 +204,6 @@ function adm_page_footer($copyright_html = true)
|
||||
'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>® Forum Software © phpBB Group'),
|
||||
'VERSION' => $config['version'])
|
||||
);
|
||||
|
||||
@@ -238,7 +242,7 @@ function build_select($option_ary, $option_default = false)
|
||||
/**
|
||||
* Build radio fields in acp pages
|
||||
*/
|
||||
function h_radio($name, $input_ary, $input_default = false, $id = false, $key = false, $separator = '')
|
||||
function h_radio($name, &$input_ary, $input_default = false, $id = false, $key = false)
|
||||
{
|
||||
global $user;
|
||||
|
||||
@@ -247,7 +251,7 @@ function h_radio($name, $input_ary, $input_default = false, $id = false, $key =
|
||||
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;
|
||||
$html .= '<label><input type="radio" name="' . $name . '"' . (($id && !$id_assigned) ? ' id="' . $id . '"' : '') . ' value="' . $value . '"' . $selected . (($key) ? ' accesskey="' . $key . '"' : '') . ' class="radio" /> ' . $user->lang[$title] . '</label>';
|
||||
$id_assigned = true;
|
||||
}
|
||||
|
||||
@@ -264,12 +268,6 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
|
||||
$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':
|
||||
@@ -277,7 +275,7 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
|
||||
$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"' : '') . ' />';
|
||||
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '" />';
|
||||
break;
|
||||
|
||||
case 'dimension':
|
||||
@@ -309,7 +307,7 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
|
||||
|
||||
case 'select':
|
||||
case 'custom':
|
||||
|
||||
|
||||
$return = '';
|
||||
|
||||
if (isset($vars['method']))
|
||||
@@ -348,7 +346,7 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
|
||||
{
|
||||
$args = array($new[$config_key], $key);
|
||||
}
|
||||
|
||||
|
||||
$return = call_user_func_array($call, $args);
|
||||
|
||||
if ($tpl_type[0] == 'select')
|
||||
@@ -380,30 +378,31 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars)
|
||||
*/
|
||||
function validate_config_vars($config_vars, &$cfg_array, &$error)
|
||||
{
|
||||
global $phpbb_root_path, $user;
|
||||
global $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]);
|
||||
$length = strlen($cfg_array[$config_name]);
|
||||
|
||||
// the column is a VARCHAR
|
||||
$validator[$max] = (isset($validator[$max])) ? min(255, $validator[$max]) : 255;
|
||||
@@ -433,27 +432,6 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
|
||||
{
|
||||
$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
|
||||
@@ -494,13 +472,13 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
|
||||
|
||||
$cfg_array[$config_name] = basename($cfg_array[$config_name]);
|
||||
|
||||
if (!file_exists($phpbb_root_path . 'language/' . $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)
|
||||
// Relative path (appended PHPBB_ROOT_PATH)
|
||||
case 'rpath':
|
||||
case 'rwpath':
|
||||
if (!$cfg_array[$config_name])
|
||||
@@ -542,12 +520,12 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!file_exists($phpbb_root_path . $cfg_array[$config_name]))
|
||||
if (!file_exists(PHPBB_ROOT_PATH . $cfg_array[$config_name]))
|
||||
{
|
||||
$error[] = sprintf($user->lang['DIRECTORY_DOES_NOT_EXIST'], $cfg_array[$config_name]);
|
||||
}
|
||||
|
||||
if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !is_dir($phpbb_root_path . $cfg_array[$config_name]))
|
||||
if (file_exists(PHPBB_ROOT_PATH . $cfg_array[$config_name]) && !is_dir(PHPBB_ROOT_PATH . $cfg_array[$config_name]))
|
||||
{
|
||||
$error[] = sprintf($user->lang['DIRECTORY_NOT_DIR'], $cfg_array[$config_name]);
|
||||
}
|
||||
@@ -555,7 +533,7 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
|
||||
// Check if the path is writable
|
||||
if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath')
|
||||
{
|
||||
if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !phpbb_is_writable($phpbb_root_path . $cfg_array[$config_name]))
|
||||
if (file_exists(PHPBB_ROOT_PATH . $cfg_array[$config_name]) && !@is_writable(PHPBB_ROOT_PATH . $cfg_array[$config_name]))
|
||||
{
|
||||
$error[] = sprintf($user->lang['DIRECTORY_NOT_WRITABLE'], $cfg_array[$config_name]);
|
||||
}
|
||||
@@ -576,18 +554,14 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
|
||||
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),
|
||||
'INT' => array('php_type' => 'int', 'min' => (int) 0x80000000, '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)
|
||||
@@ -608,13 +582,13 @@ function validate_range($value_ary, &$error)
|
||||
{
|
||||
case 'string' :
|
||||
$max = (isset($column[1])) ? min($column[1],$type['max']) : $type['max'];
|
||||
if (utf8_strlen($value['value']) > $max)
|
||||
if (strlen($value['value']) > $max)
|
||||
{
|
||||
$error[] = sprintf($user->lang['SETTING_TOO_LONG'], $user->lang[$value['lang']], $max);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'int':
|
||||
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)
|
||||
|
@@ -31,8 +31,8 @@
|
||||
|
||||
function display_details(option)
|
||||
{
|
||||
document.getElementById('acp_unban').unbangivereason.innerHTML = ban_give_reason[option];
|
||||
document.getElementById('acp_unban').unbanreason.innerHTML = ban_reason[option];
|
||||
document.getElementById('acp_unban').unbangivereason.value = ban_give_reason[option];
|
||||
document.getElementById('acp_unban').unbanreason.value = ban_reason[option];
|
||||
document.getElementById('acp_unban').unbanlength.value = ban_length[option];
|
||||
}
|
||||
|
||||
@@ -93,15 +93,15 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<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>
|
||||
<dd><input style="border: 0;" type="text" class="text full" disabled="disabled" name="unbanlength" id="unbanlength" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<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"> </textarea></dd>
|
||||
<dd><textarea style="border: 0;" class="text full" disabled="disabled" name="unbanreason" id="unbanreason" rows="5" cols="80"> </textarea></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<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"> </textarea></dd>
|
||||
<dd><textarea style="border: 0;" class="text full" disabled="disabled" name="unbangivereason" id="unbangivereason" rows="5" cols="80"> </textarea></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
|
@@ -17,53 +17,39 @@
|
||||
<dd><label><input type="radio" class="radio" id="enable_confirm" name="enable_confirm" value="1"<!-- IF REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
||||
<label><input type="radio" class="radio" name="enable_confirm" value="0"<!-- IF not REG_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_reg_attempts">{L_REG_LIMIT}:</label><br /><span>{L_REG_LIMIT_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_reg_attempts" type="text" size="4" maxlength="4" name="max_reg_attempts" value="{REG_LIMIT}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="max_login_attempts">{L_MAX_LOGIN_ATTEMPTS}:</label><br /><span>{L_MAX_LOGIN_ATTEMPTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_login_attempts" type="text" size="4" maxlength="4" name="max_login_attempts" value="{MAX_LOGIN_ATTEMPTS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_post_confirm">{L_VISUAL_CONFIRM_POST}:</label><br /><span>{L_VISUAL_CONFIRM_POST_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" id="enable_post_confirm" name="enable_post_confirm" value="1"<!-- IF POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_ENABLED}</label>
|
||||
<label><input type="radio" class="radio" name="enable_post_confirm" value="0"<!-- IF not POST_ENABLE --> checked="checked"<!-- ENDIF --> /> {L_DISABLED}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="confirm_refresh">{L_VISUAL_CONFIRM_REFRESH}:</label><br /><span>{L_VISUAL_CONFIRM_REFRESH_EXPLAIN}</span></dt>
|
||||
<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>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_AVAILABLE_CAPTCHAS}</legend>
|
||||
|
||||
<dl>
|
||||
<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}:</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 -->
|
||||
|
||||
</fieldset>
|
||||
|
||||
<!-- IF CAPTCHA_PREVIEW_TPL -->
|
||||
<!-- IF CAPTCHA_PREVIEW -->
|
||||
<fieldset>
|
||||
<legend>{L_PREVIEW}</legend>
|
||||
<!-- INCLUDE {CAPTCHA_PREVIEW_TPL} -->
|
||||
{CAPTCHA_PREVIEW}
|
||||
</fieldset>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="main_submit" name="main_submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="form_reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="main_submit" name="main_submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="form_reset" name="reset" value="{L_RESET}" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
@@ -70,10 +70,9 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<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>
|
||||
<dd><label><input type="radio" class="radio" name="where" value="store_and_download" id="where" checked="checked" /> {L_STORE_AND_DOWNLOAD}</label>
|
||||
<label><input type="radio" class="radio" name="where" value="store" /> {L_STORE_LOCAL}</label>
|
||||
<label><input type="radio" class="radio" name="where" value="download" /> {L_DOWNLOAD}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="table">{L_TABLE_SELECT}:</label></dt>
|
||||
|
@@ -38,17 +38,13 @@
|
||||
<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}:</label><br /><span>{L_MAIL_BANNED_EXPLAIN}</span></dt>
|
||||
<dd><input id="banned" name="mail_banned_flag" type="checkbox" class="radio" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="send">{L_SEND_IMMEDIATELY}:</label></dt>
|
||||
<dd><input id="send" type="checkbox" class="radio" name="send_immediately" checked="checked" /></dd>
|
||||
</dl>
|
||||
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SEND_EMAIL}" />
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_EMAIL}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
|
@@ -58,7 +58,7 @@
|
||||
|
||||
/**
|
||||
* Init the wanted display functionality if javascript is enabled.
|
||||
* If javascript is not available, the user is still able to properly administer.
|
||||
* If javascript is not available, the user is still able to properly administrate.
|
||||
*/
|
||||
onload = function()
|
||||
{
|
||||
@@ -140,12 +140,6 @@
|
||||
<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}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
|
||||
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="forum_name">{L_FORUM_NAME}:</label></dt>
|
||||
<dd><input class="text medium" type="text" id="forum_name" name="forum_name" value="{FORUM_NAME}" maxlength="255" /></dd>
|
||||
@@ -166,11 +160,11 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<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 -->      <!-- ENDIF -->" autocomplete="off" /></dd>
|
||||
<dd><input type="password" id="forum_password" name="forum_password" value="<!-- IF S_FORUM_PASSWORD_SET -->      <!-- ENDIF -->" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<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 -->      <!-- ENDIF -->" autocomplete="off" /></dd>
|
||||
<dd><input type="password" id="forum_password_confirm" name="forum_password_confirm" value="<!-- IF S_FORUM_PASSWORD_SET -->      <!-- ENDIF -->" /></dd>
|
||||
</dl>
|
||||
<!-- IF S_FORUM_PASSWORD_SET -->
|
||||
<dl>
|
||||
@@ -182,6 +176,12 @@
|
||||
<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>
|
||||
<!-- IF S_CAN_COPY_PERMISSIONS -->
|
||||
<dl>
|
||||
<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 -->
|
||||
</fieldset>
|
||||
|
||||
<div id="forum_cat_options">
|
||||
@@ -189,8 +189,8 @@
|
||||
<legend>{L_GENERAL_FORUM_SETTINGS}</legend>
|
||||
<dl>
|
||||
<dt><label for="display_active">{L_DISPLAY_ACTIVE_TOPICS}:</label><br /><span>{L_DISPLAY_ACTIVE_TOPICS_EXPLAIN}</span></dt>
|
||||
<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>
|
||||
<dd><label><input type="radio" class="radio" name="display_active" value="1"<!-- IF S_DISPLAY_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_DISPLAY_ACTIVE_TOPICS --> id="display_active" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
</div>
|
||||
@@ -217,11 +217,6 @@
|
||||
<dd><label><input type="radio" class="radio" name="enable_post_review" value="1"<!-- IF S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="enable_post_review" value="0"<!-- IF not S_ENABLE_POST_REVIEW --> id="enable_post_review" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_quick_reply">{L_ENABLE_QUICK_REPLY}:</label><br /><span>{L_ENABLE_QUICK_REPLY_EXPLAIN}</span></dt>
|
||||
<dd><label><input type="radio" class="radio" name="enable_quick_reply" value="1"<!-- IF S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input type="radio" class="radio" name="enable_quick_reply" value="0"<!-- IF not S_ENABLE_QUICK_REPLY --> id="enable_quick_reply" checked="checked"<!-- ENDIF --> /> {L_NO}</label></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="enable_indexing">{L_ENABLE_INDEXING}:</label><br /><span>{L_ENABLE_INDEXING_EXPLAIN}</span></dt>
|
||||
<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>
|
||||
@@ -449,7 +444,7 @@
|
||||
<!-- IF forums.FORUM_IMAGE --><div style="float: {S_CONTENT_FLOW_BEGIN}; margin-right: 5px;">{forums.FORUM_IMAGE}</div><!-- ENDIF -->
|
||||
<strong><!-- IF forums.S_FORUM_LINK -->{forums.FORUM_NAME}<!-- ELSE --><a href="{forums.U_FORUM}">{forums.FORUM_NAME}</a><!-- ENDIF --></strong>
|
||||
<!-- IF forums.FORUM_DESCRIPTION --><br /><span>{forums.FORUM_DESCRIPTION}</span><!-- ENDIF -->
|
||||
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}: <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}: <strong>{forums.FORUM_POSTS}</strong></span><!-- ENDIF -->
|
||||
<!-- IF forums.S_FORUM_POST --><br /><br /><span>{L_TOPICS}: <strong>{forums.FORUM_TOPICS}</strong> / {L_POSTS}: <b>{forums.FORUM_POSTS}</b></span><!-- ENDIF -->
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
|
||||
<!-- IF forums.S_FIRST_ROW && not forums.S_LAST_ROW -->
|
||||
|
@@ -1,22 +0,0 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<h1>{L_COPY_PERMISSIONS}</h1>
|
||||
|
||||
<p>{L_COPY_PERMISSIONS_EXPLAIN}</p>
|
||||
<p>{L_ACL_LINK}</p>
|
||||
|
||||
<form id="confirm" method="post" action="{S_COPY_ACTION}">
|
||||
|
||||
<fieldset>
|
||||
<dl>
|
||||
<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}
|
||||
<input type="submit" name="update" value="{L_CONTINUE}" class="button2" />
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
@@ -55,29 +55,21 @@
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_GROUP_OPTIONS_SAVE}</legend>
|
||||
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
|
||||
<!-- IF S_USER_FOUNDER -->
|
||||
<dl>
|
||||
<dt><label for="group_founder_manage">{L_GROUP_FOUNDER_MANAGE}:</label><br /><span>{L_GROUP_FOUNDER_MANAGE_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_founder_manage" type="checkbox" value="1" class="radio" id="group_founder_manage"{GROUP_FOUNDER_MANAGE} /></dd>
|
||||
<dd><input name="group_founder_manage" type="checkbox" class="radio" id="group_founder_manage"{GROUP_FOUNDER_MANAGE} /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<dl>
|
||||
<dt><label for="group_skip_auth">{L_GROUP_SKIP_AUTH}:</label><br /><span>{L_GROUP_SKIP_AUTH_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_skip_auth" type="checkbox" value="1" class="radio" id="group_skip_auth"{GROUP_SKIP_AUTH} /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_legend">{L_GROUP_LEGEND}:</label></dt>
|
||||
<dd><input name="group_legend" type="checkbox" value="1" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
|
||||
<dd><input name="group_legend" type="checkbox" class="radio" id="group_legend"{GROUP_LEGEND} /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<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>
|
||||
<dd><input name="group_receive_pm" type="checkbox" class="radio" id="group_receive_pm"{GROUP_RECEIVE_PM} /></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_GROUP_SETTINGS_SAVE}</legend>
|
||||
<dl>
|
||||
<dt><label for="group_message_limit">{L_GROUP_MESSAGE_LIMIT}:</label><br /><span>{L_GROUP_MESSAGE_LIMIT_EXPLAIN}</span></dt>
|
||||
<dd><input name="group_message_limit" type="text" id="group_message_limit" maxlength="4" size="4" value="{GROUP_MESSAGE_LIMIT}" /></dd>
|
||||
@@ -88,7 +80,7 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<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 --> <span style="background-color: #{GROUP_COLOUR}"> </span><!-- ENDIF --> <span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
|
||||
<dd><input name="group_colour" type="text" id="group_colour" value="{GROUP_COLOUR}" size="6" maxlength="6" /> <span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="group_rank">{L_GROUP_RANK}:</label></dt>
|
||||
@@ -105,7 +97,7 @@
|
||||
</dl>
|
||||
<!-- IF not S_IN_AVATAR_GALLERY -->
|
||||
<!-- IF S_CAN_UPLOAD -->
|
||||
<dl>
|
||||
<dl>
|
||||
<dt><label for="uploadfile">{L_UPLOAD_AVATAR_FILE}:</label></dt>
|
||||
<dd><input type="file" id="uploadfile" name="uploadfile" /></dd>
|
||||
</dl>
|
||||
@@ -120,10 +112,10 @@
|
||||
</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} × </span> <input type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
|
||||
<dd><input name="width" type="text" id="width" size="3" value="{AVATAR_WIDTH}" /> <span>px X </span> <input type="text" name="height" size="3" value="{AVATAR_HEIGHT}" /> <span>px</span></dd>
|
||||
</dl>
|
||||
<!-- IF S_DISPLAY_GALLERY -->
|
||||
<dl>
|
||||
<dl>
|
||||
<dt><label>{L_AVATAR_GALLERY}:</label></dt>
|
||||
<dd><input class="button2" type="submit" name="display_gallery" value="{L_DISPLAY_GALLERY}" /></dd>
|
||||
</dl>
|
||||
@@ -140,7 +132,7 @@
|
||||
<dl>
|
||||
<table cellspacing="1">
|
||||
<!-- BEGIN avatar_row -->
|
||||
<tr>
|
||||
<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 -->
|
||||
@@ -154,11 +146,11 @@
|
||||
</table>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick" style="margin-top: -15px;">
|
||||
<input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
|
||||
</fieldset>
|
||||
|
||||
|
||||
<!-- ENDIF -->
|
||||
</fieldset>
|
||||
|
||||
@@ -200,7 +192,7 @@
|
||||
</tr>
|
||||
<!-- BEGIN leader -->
|
||||
<!-- 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><a href="{leader.U_USER_EDIT}">{leader.USERNAME}</a></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>
|
||||
<td style="text-align: center;">{leader.USER_POSTS}</td>
|
||||
@@ -221,7 +213,7 @@
|
||||
</tr>
|
||||
<!-- ELSE -->
|
||||
<!-- 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><a href="{member.U_USER_EDIT}">{member.USERNAME}</a></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>
|
||||
<td style="text-align: center;">{member.USER_POSTS}</td>
|
||||
@@ -239,12 +231,12 @@
|
||||
<div class="pagination">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
<fieldset class="quick">
|
||||
<select name="action"><option class="sep" value="">{L_SELECT_OPTION}</option>{S_ACTION_OPTIONS}</select>
|
||||
<input class="button2" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
<p class="small"><a href="#" onclick="marklist('list', 'mark', true); return false;">{L_MARK_ALL}</a> • <a href="#" onclick="marklist('list', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
|
||||
<p class="small"><a href="#" onclick="marklist('list', 'mark', true); return false;">{L_MARK_ALL}</a> • <a href="#" onclick="marklist('list', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
|
||||
</fieldset>
|
||||
|
||||
<h1>{L_ADD_USERS}</h1>
|
||||
|
@@ -74,7 +74,7 @@
|
||||
<fieldset class="tabulated">
|
||||
<legend>{L_TITLE}</legend>
|
||||
|
||||
<table cellspacing="1" id="smilies">
|
||||
<table cellspacing="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="{COLSPAN}">{L_CONFIG}</th>
|
||||
@@ -94,7 +94,7 @@
|
||||
<td>{L_ORDER}</td>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_ADD -->
|
||||
<td>{L_ADD} <a href="#" onclick="marklist('smilies', 'add_img', true); return false;">({L_MARK_ALL})</a></td>
|
||||
<td>{L_ADD}</td>
|
||||
<!-- ENDIF -->
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -139,9 +139,9 @@
|
||||
<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>
|
||||
<optgroup id="order_no_disp_add_order" label="{L_DISPLAY_POSTING_NO}" disabled="disabled" class="disabled-options" >{S_ADD_ORDER_LIST_UNDISPLAY}</optgroup>
|
||||
<td><select id="add_order" name="add_order">
|
||||
<optgroup id="order_disp[add]" label="{L_DISPLAY_POSTING}">{S_ADD_ORDER_LIST_DISPLAY}</optgroup>
|
||||
<optgroup id="order_no_disp[add]" label="{L_DISPLAY_POSTING_NO}" disabled="disabled" class="disabled-options" >{S_ADD_ORDER_LIST_UNDISPLAY}</optgroup>
|
||||
</select></td>
|
||||
<td><input type="checkbox" class="radio" name="add_additional_code" value="1" /></td>
|
||||
</tr>
|
||||
@@ -243,8 +243,8 @@
|
||||
<td style="text-align: center;">{items.EMOTION}</td>
|
||||
<!-- ENDIF -->
|
||||
<td style="text-align: right; white-space: nowrap;">
|
||||
<!-- IF items.S_FIRST_ROW and not PREVIOUS_PAGE -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->
|
||||
<!-- IF items.S_LAST_ROW and not NEXT_PAGE -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
|
||||
<!-- IF items.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->
|
||||
<!-- IF items.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
|
||||
<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}">{ICON_DELETE}</a>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -255,7 +255,7 @@
|
||||
<!-- END items -->
|
||||
</tbody>
|
||||
</table>
|
||||
<div>{PAGINATION}</div>
|
||||
|
||||
<p class="quick">
|
||||
<input class="button2" name="add" type="submit" value="{L_ICON_ADD}" /> <input class="button2" type="submit" name="edit" value="{L_ICON_EDIT}" />
|
||||
</p>
|
||||
|
@@ -12,7 +12,7 @@
|
||||
|
||||
<!-- IF PAGINATION -->
|
||||
<div class="pagination">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<th>{L_USERNAME}</th>
|
||||
<th>{L_JOINED}</th>
|
||||
<th>{L_INACTIVE_DATE}</th>
|
||||
<th>{L_LAST_VISIT}</th>
|
||||
<th>{L_INACTIVE_REASON}</th>
|
||||
<th>{L_LAST_VISIT}</th>
|
||||
<th>{L_MARK}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -31,17 +31,11 @@
|
||||
<!-- BEGIN inactive -->
|
||||
<!-- 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}: <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>
|
||||
<td style="vertical-align: top;">{inactive.LAST_VISIT}</td>
|
||||
<td style="vertical-align: top;">
|
||||
{inactive.REASON}
|
||||
<!-- IF inactive.REMINDED --><br />{inactive.REMINDED_EXPLAIN}<!-- ENDIF -->
|
||||
</td>
|
||||
<td><a href="{inactive.U_USER_ADMIN}">{inactive.USERNAME}</a></td>
|
||||
<td>{inactive.JOINED}</td>
|
||||
<td>{inactive.INACTIVE_DATE}</td>
|
||||
<td>{inactive.REASON}</td>
|
||||
<td>{inactive.LAST_VISIT}</td>
|
||||
<td> <input type="checkbox" class="radio" name="mark[]" value="{inactive.USER_ID}" /> </td>
|
||||
</tr>
|
||||
<!-- BEGINELSE -->
|
||||
@@ -52,25 +46,25 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}<!-- IF PAGINATION --> Users per page: <input class="inputbox autowidth" type="text" name="users_per_page" id="users_per_page" size="3" value="{USERS_PER_PAGE}" /><!-- ENDIF -->
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
</fieldset>
|
||||
|
||||
<hr />
|
||||
|
||||
<!-- IF PAGINATION -->
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {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">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
<fieldset class="quick">
|
||||
<select name="action">{S_INACTIVE_OPTIONS}</select>
|
||||
<input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<p class="small"><a href="#" onclick="marklist('inactive', 'mark', true); return false;">{L_MARK_ALL}</a> • <a href="#" onclick="marklist('inactive', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick">
|
||||
<select name="action">{S_INACTIVE_OPTIONS}</select>
|
||||
<input class="button2" type="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<p class="small"><a href="#" onclick="marklist('inactive', 'mark', true); return false;">{L_MARK_ALL}</a> • <a href="#" onclick="marklist('inactive', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
|
@@ -38,7 +38,7 @@
|
||||
<dd><input type="text" id="jab_username" name="jab_username" value="{JAB_USERNAME}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="jab_password">{L_JAB_PASSWORD}:</label><br /><span>{L_JAB_PASSWORD_EXPLAIN}</span></dt>
|
||||
<dt><label for="jab_password">{L_JAB_PASSWORD}:</label></dt>
|
||||
<dd><input type="password" id="jab_password" name="jab_password" value="{JAB_PASSWORD}" /></dd>
|
||||
</dl>
|
||||
<!-- IF S_CAN_USE_SSL -->
|
||||
|
46
phpBB/adm/style/acp_login.html
Normal file
46
phpBB/adm/style/acp_login.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
<h1>{PAGE_TITLE}</h1>
|
||||
<p><!-- IF LOGIN_EXPLAIN -->{LOGIN_EXPLAIN}<!-- ELSE -->{L_LOGIN}<!-- ENDIF --></p>
|
||||
|
||||
<!-- IF LOGIN_ERROR -->
|
||||
<div class="errorbox">
|
||||
<h3>{L_WARNING}</h3>
|
||||
<p>{LOGIN_ERROR}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<form action="{S_LOGIN_ACTION}" method="post" id="login">
|
||||
|
||||
<fieldset>
|
||||
<dl>
|
||||
<dt><label for="{USERNAME_CREDENTIAL}">{L_USERNAME}:</label></dt>
|
||||
<dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" class="inputbox autowidth" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="{PASSWORD_CREDENTIAL}">{L_PASSWORD}:</label></dt>
|
||||
<dd><input type="password" tabindex="2" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" class="inputbox autowidth" /></dd>
|
||||
<!-- IF S_DISPLAY_FULL_LOGIN and (U_SEND_PASSWORD or U_RESEND_ACTIVATION) -->
|
||||
<!-- IF U_SEND_PASSWORD --><dd><a href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a></dd><!-- ENDIF -->
|
||||
<!-- IF U_RESEND_ACTIVATION --><dd><a href="{U_RESEND_ACTIVATION}">{L_RESEND_ACTIVATION}</a></dd><!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
|
||||
<!-- IF S_CONFIRM_CODE -->
|
||||
<dl>
|
||||
<dt><label for="confirm_code">{L_CONFIRM_CODE}:</label><br /><span>{L_CONFIRM_CODE_EXPLAIN}</span></dt>
|
||||
<dd><input type="hidden" name="confirm_id" value="{CONFIRM_ID}" />{CONFIRM_IMAGE}</dd>
|
||||
<dd><input type="text" name="confirm_code" id="confirm_code" size="8" maxlength="8" tabindex="3" class="inputbox narrow" title="{L_CONFIRM_CODE}" /></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<p class="submit-buttons">
|
||||
<!-- IF S_DISPLAY_FULL_LOGIN -->
|
||||
<!-- IF S_AUTOLOGIN_ENABLED --><label for="autologin"><input type="checkbox" name="autologin" id="autologin" tabindex="4" /> {L_LOG_ME_IN}</label><!-- ENDIF -->
|
||||
<label for="viewonline"><input type="checkbox" name="viewonline" id="viewonline" tabindex="5" /> {L_HIDE_ME}</label>
|
||||
<!-- ENDIF -->
|
||||
|
||||
{S_HIDDEN_FIELDS}<input type="submit" name="login" tabindex="6" value="{L_LOGIN}" class="button1" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
@@ -8,19 +8,12 @@
|
||||
|
||||
<form id="list" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset class="display-options" style="float: left">
|
||||
{L_SEARCH_KEYWORDS}: <input type="text" name="keywords" value="{S_KEYWORDS}" /> <input type="submit" class="button2" name="filter" value="{L_SEARCH}" />
|
||||
</fieldset>
|
||||
|
||||
<!-- IF PAGINATION -->
|
||||
<div class="pagination" style="float: right; margin: 15px 0 2px 0">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
<div class="pagination">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<div class="clearfix"> </div>
|
||||
<div><br style="clear: both;" /></div>
|
||||
|
||||
<!-- IF .log -->
|
||||
<table cellspacing="1">
|
||||
<thead>
|
||||
@@ -29,14 +22,13 @@
|
||||
<th>{L_IP}</th>
|
||||
<th>{L_TIME}</th>
|
||||
<th>{L_ACTION}</th>
|
||||
<!-- IF S_CLEARLOGS -->
|
||||
<th>{L_MARK}</th>
|
||||
<!-- ENDIF -->
|
||||
<th>{L_MARK}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN log -->
|
||||
<!-- IF log.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
|
||||
|
||||
<td>
|
||||
{log.USERNAME}
|
||||
<!-- IF log.REPORTEE_USERNAME -->
|
||||
@@ -46,33 +38,32 @@
|
||||
<td style="text-align: center;">{log.IP}</td>
|
||||
<td style="text-align: center;">{log.DATE}</td>
|
||||
<td>{log.ACTION}<!-- IF log.DATA --><br /><span>{log.DATA}</span><!-- ENDIF --></td>
|
||||
<!-- IF S_CLEARLOGS -->
|
||||
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{log.ID}" /></td>
|
||||
<!-- ENDIF -->
|
||||
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{log.ID}" /></td>
|
||||
</tr>
|
||||
<!-- END log -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- IF PAGINATION -->
|
||||
<div class="pagination">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- ELSE -->
|
||||
|
||||
<div class="errorbox">
|
||||
<p>{L_NO_ENTRIES}</p>
|
||||
</div>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
||||
<fieldset class="display-options">
|
||||
{L_DISPLAY_LOG}: {S_LIMIT_DAYS} {L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
|
||||
<input class="button2" type="submit" value="{L_GO}" name="sort" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
<hr />
|
||||
|
||||
<!-- IF PAGINATION -->
|
||||
<div class="pagination">
|
||||
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> • <span>{PAGINATION}</span>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_SHOW_FORUMS -->
|
||||
<fieldset class="quick">
|
||||
{L_SELECT_FORUM}: <select name="f" onchange="if(this.options[this.selectedIndex].value != -1){ this.form.submit(); }">{S_FORUM_BOX}</select>
|
||||
@@ -80,7 +71,7 @@
|
||||
</fieldset>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF .log and S_CLEARLOGS -->
|
||||
<!-- IF S_CLEARLOGS -->
|
||||
<fieldset class="quick">
|
||||
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />
|
||||
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" /><br />
|
||||
@@ -88,6 +79,7 @@
|
||||
</fieldset>
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
||||
<!-- INCLUDE overall_footer.html -->
|
@@ -14,19 +14,6 @@
|
||||
|
||||
<p>{L_ADMIN_INTRO}</p>
|
||||
|
||||
<!-- IF S_VERSIONCHECK_FAIL -->
|
||||
<div class="errorbox notice">
|
||||
<p>{L_VERSIONCHECK_FAIL}</p>
|
||||
<p><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> · <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
|
||||
</div>
|
||||
<!-- ELSEIF not S_VERSION_UP_TO_DATE -->
|
||||
<div class="errorbox">
|
||||
<p>{L_VERSION_NOT_UP_TO_DATE_TITLE}</p>
|
||||
<p><a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> · <a href="{U_VERSIONCHECK}">{L_MORE_INFORMATION}</a></p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
||||
<!-- IF S_REMOVE_INSTALL -->
|
||||
<div class="errorbox">
|
||||
<h3>{L_WARNING}</h3>
|
||||
@@ -34,48 +21,12 @@
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_MBSTRING_LOADED -->
|
||||
<!-- IF S_MBSTRING_FUNC_OVERLOAD_FAIL -->
|
||||
<div class="errorbox">
|
||||
<h3>{L_ERROR_MBSTRING_FUNC_OVERLOAD}</h3>
|
||||
<p>{L_ERROR_MBSTRING_FUNC_OVERLOAD_EXPLAIN}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_MBSTRING_ENCODING_TRANSLATION_FAIL -->
|
||||
<div class="errorbox">
|
||||
<h3>{L_ERROR_MBSTRING_ENCODING_TRANSLATION}</h3>
|
||||
<p>{L_ERROR_MBSTRING_ENCODING_TRANSLATION_EXPLAIN}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_MBSTRING_HTTP_INPUT_FAIL -->
|
||||
<div class="errorbox">
|
||||
<h3>{L_ERROR_MBSTRING_HTTP_INPUT}</h3>
|
||||
<p>{L_ERROR_MBSTRING_HTTP_INPUT_EXPLAIN}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_MBSTRING_HTTP_OUTPUT_FAIL -->
|
||||
<div class="errorbox">
|
||||
<h3>{L_ERROR_MBSTRING_HTTP_OUTPUT}</h3>
|
||||
<p>{L_ERROR_MBSTRING_HTTP_OUTPUT_EXPLAIN}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_WRITABLE_CONFIG -->
|
||||
<div class="errorbox notice">
|
||||
<p>{L_WRITABLE_CONFIG}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF S_PHP_VERSION_OLD -->
|
||||
<div class="errorbox notice">
|
||||
<p>{L_PHP_VERSION_OLD}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<table cellspacing="1">
|
||||
<caption>{L_FORUM_STATS}</caption>
|
||||
<col class="col1" /><col class="col2" /><col class="col1" /><col class="col2" />
|
||||
@@ -134,9 +85,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<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> [ <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a> ]
|
||||
</td>
|
||||
<td><strong>{BOARD_VERSION}</strong></td>
|
||||
<!-- IF S_TOTAL_ORPHAN -->
|
||||
<td>{L_NUMBER_ORPHAN}: </td>
|
||||
<td><strong>{TOTAL_ORPHAN}</strong></td>
|
||||
@@ -188,12 +137,6 @@
|
||||
</form>
|
||||
|
||||
<!-- IF S_FOUNDER -->
|
||||
<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>
|
||||
<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>
|
||||
@@ -250,25 +193,19 @@
|
||||
<th>{L_USERNAME}</th>
|
||||
<th>{L_JOINED}</th>
|
||||
<th>{L_INACTIVE_DATE}</th>
|
||||
<th>{L_LAST_VISIT}</th>
|
||||
<th>{L_INACTIVE_REASON}</th>
|
||||
<th>{L_LAST_VISIT}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN inactive -->
|
||||
<!-- 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}: <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>
|
||||
<td style="vertical-align: top;">{inactive.LAST_VISIT}</td>
|
||||
<td style="vertical-align: top;">
|
||||
{inactive.REASON}
|
||||
<!-- IF inactive.REMINDED --><br />{inactive.REMINDED_EXPLAIN}<!-- ENDIF -->
|
||||
</td>
|
||||
<td><a href="{inactive.U_USER_ADMIN}">{inactive.USERNAME}</a></td>
|
||||
<td>{inactive.JOINED}</td>
|
||||
<td>{inactive.INACTIVE_DATE}</td>
|
||||
<td>{inactive.REASON}</td>
|
||||
<td>{inactive.LAST_VISIT}</td>
|
||||
</tr>
|
||||
<!-- BEGINELSE -->
|
||||
<tr>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<a name="maincontent"></a>
|
||||
|
||||
<!-- IF S_INTRO -->
|
||||
|
||||
|
||||
<h1>{L_ACP_PERMISSIONS}</h1>
|
||||
|
||||
{L_ACP_PERMISSIONS_EXPLAIN}
|
||||
@@ -12,12 +12,10 @@
|
||||
|
||||
<!-- IF S_SELECT_VICTIM -->
|
||||
|
||||
<!-- IF U_BACK --><a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a><!-- ENDIF -->
|
||||
|
||||
<h1>{L_TITLE}</h1>
|
||||
|
||||
<p>{L_EXPLAIN}</p>
|
||||
|
||||
|
||||
<!-- IF S_FORUM_NAMES -->
|
||||
<p><strong>{L_FORUMS}:</strong> {FORUM_NAMES}</p>
|
||||
<!-- ENDIF -->
|
||||
@@ -64,7 +62,7 @@
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- ELSEIF S_SELECT_USER and S_CAN_SELECT_USER -->
|
||||
@@ -125,7 +123,7 @@
|
||||
<!-- IF S_ALLOW_ALL_SELECT --><dd class="full" style="text-align: right;"><label><input type="checkbox" class="radio" name="all_users" value="1" /> {L_ALL_USERS}</label></dd><!-- ENDIF -->
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick">
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
@@ -156,7 +154,7 @@
|
||||
</div>
|
||||
|
||||
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
|
||||
|
||||
|
||||
<!-- IF S_CAN_SELECT_GROUP -->
|
||||
|
||||
<h1>{L_USERGROUPS}</h1>
|
||||
@@ -170,7 +168,7 @@
|
||||
<!-- IF S_ALLOW_ALL_SELECT --><dd class="full" style="text-align: right;"><label><input type="checkbox" class="radio" name="all_groups" value="1" /> {L_ALL_GROUPS}</label></dd><!-- ENDIF -->
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick">
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
@@ -179,7 +177,7 @@
|
||||
</form>
|
||||
|
||||
<form id="add_groups" method="post" action="{U_ACTION}">
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ADD_GROUPS}</legend>
|
||||
<dl>
|
||||
@@ -201,7 +199,7 @@
|
||||
<!-- ELSEIF S_SELECT_USERGROUP_VIEW -->
|
||||
|
||||
<div style="float: {S_CONTENT_FLOW_BEGIN}; width: 48%;">
|
||||
|
||||
|
||||
<h1>{L_USERS}</h1>
|
||||
|
||||
<form id="users" method="post" action="{U_ACTION}">
|
||||
@@ -212,7 +210,7 @@
|
||||
<dd class="full"><select style="width: 100%;" name="user_id[]" multiple="multiple" size="5">{S_DEFINED_USER_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick">
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
@@ -242,7 +240,7 @@
|
||||
</div>
|
||||
|
||||
<div style="float: {S_CONTENT_FLOW_END}; width: 48%">
|
||||
|
||||
|
||||
<h1>{L_USERGROUPS}</h1>
|
||||
|
||||
<form id="groups" method="post" action="{U_ACTION}">
|
||||
@@ -253,7 +251,7 @@
|
||||
<dd class="full"><select style="width: 100%;" name="group_id[]" multiple="multiple" size="5">{S_DEFINED_GROUP_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick">
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
@@ -313,11 +311,11 @@
|
||||
|
||||
<!-- IF S_PERMISSION_DROPDOWN -->
|
||||
<form id="pselect" method="post" action="{U_ACTION}">
|
||||
|
||||
|
||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
{L_SELECT_TYPE}: <select name="type">{S_PERMISSION_DROPDOWN}</select>
|
||||
{L_SELECT_TYPE}: <select name="type">{S_PERMISSION_DROPDOWN}</select>
|
||||
|
||||
<input class="button2" type="submit" name="submit" value="{L_GO}" />
|
||||
</fieldset>
|
||||
@@ -349,7 +347,7 @@
|
||||
</fieldset>
|
||||
|
||||
<br /><br />
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
@@ -48,28 +48,20 @@
|
||||
<fieldset>
|
||||
<legend>{L_VISIBILITY_OPTION}</legend>
|
||||
<dl>
|
||||
<dt><label for="field_show_profile">{L_DISPLAY_AT_PROFILE}:</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_show_profile" name="field_show_profile" value="1"<!-- IF S_SHOW_PROFILE --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
<dt><label for="field_option_none">{L_DISPLAY_AT_PROFILE}:</label><br /><span>{L_DISPLAY_AT_PROFILE_EXPLAIN}</span></dt>
|
||||
<dd><input type="radio" class="radio" id="field_option_none" name="field_option" value="none"<!-- IF not S_SHOW_ON_REG and not S_FIELD_REQUIRED and not S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_show_on_reg">{L_DISPLAY_AT_REGISTER}:</label><br /><span>{L_DISPLAY_AT_REGISTER_EXPLAIN}</span></dt>
|
||||
<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_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>
|
||||
<dd><input type="radio" class="radio" id="field_show_on_reg" name="field_option" value="field_show_on_reg"<!-- IF S_SHOW_ON_REG --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<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}:</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>
|
||||
<dd><input type="radio" class="radio" id="field_required" name="field_option" value="field_required"<!-- IF S_FIELD_REQUIRED --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="field_hide">{L_HIDE_PROFILE_FIELD}:</label><br /><span>{L_HIDE_PROFILE_FIELD_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" id="field_hide" name="field_hide" value="1"<!-- IF S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
<dd><input type="radio" class="radio" id="field_hide" name="field_option" value="field_hide"<!-- IF S_FIELD_HIDE --> checked="checked"<!-- ENDIF --> /></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
@@ -135,7 +127,7 @@
|
||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
|
||||
<input class="button1" type="submit" name="prev" value="{L_PROFILE_BASIC_OPTIONS}" />
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
@@ -159,15 +151,15 @@
|
||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_BEGIN};">
|
||||
<input class="button1" type="submit" name="prev" value="{L_PROFILE_TYPE_OPTIONS}" />
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="quick" style="float: {S_CONTENT_FLOW_END};">
|
||||
{S_HIDDEN_FIELDS}
|
||||
<input class="button1" type="submit" name="save" value="{L_SAVE}" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<!-- ELSE -->
|
||||
@@ -202,14 +194,14 @@
|
||||
{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>
|
||||
<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}
|
||||
{ICON_MOVE_DOWN_DISABLED}
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not fields.S_NEED_EDIT -->
|
||||
<a href="{fields.U_EDIT}">{ICON_EDIT}</a>
|
||||
<a href="{fields.U_EDIT}">{ICON_EDIT}</a>
|
||||
<!-- ELSE -->
|
||||
{ICON_EDIT_DISABLED}
|
||||
<!-- ENDIF -->
|
||||
@@ -217,16 +209,12 @@
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<!-- BEGINELSE -->
|
||||
<tr class="row3">
|
||||
<td colspan="4">{L_ACP_NO_ITEMS}</td>
|
||||
</tr>
|
||||
<!-- END fields -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<form id="profile_fields" method="post" action="{U_ACTION}">
|
||||
|
||||
|
||||
<fieldset class="quick">
|
||||
<input class="text small" type="text" name="field_ident" /> <select name="field_type">{S_TYPE_OPTIONS}</select>
|
||||
<input class="button1" type="submit" name="submit" value="{L_CREATE_NEW_FIELD}" />
|
||||
|
@@ -35,8 +35,8 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<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>
|
||||
<dd><label><input onchange="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 onchange="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>
|
||||
|
@@ -32,10 +32,6 @@
|
||||
<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}:</label><br /><span>{L_MAX_NUM_SEARCH_KEYWORDS_EXPLAIN}</span></dt>
|
||||
<dd><input id="max_num_search_keywords" type="text" size="4" maxlength="4" name="config[max_num_search_keywords]" value="{MAX_NUM_SEARCH_KEYWORDS}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="search_store_results">{L_SEARCH_STORE_RESULTS}:</label><br /><span>{L_SEARCH_STORE_RESULTS_EXPLAIN}</span></dt>
|
||||
<dd><input id="search_store_results" type="text" size="4" maxlength="6" name="config[search_store_results]" value="{SEARCH_STORE_RESULTS}" /> {L_SECONDS}</dd>
|
||||
@@ -134,9 +130,9 @@
|
||||
<!-- END data -->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
||||
<p class="quick">
|
||||
<!-- IF backend.S_INDEXED -->
|
||||
<input class="button2" type="submit" name="action[delete]" value="{L_DELETE_INDEX}" onclick="popup_progress_bar('delete');" />
|
||||
@@ -146,7 +142,7 @@
|
||||
</p>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
|
||||
</form>
|
||||
<!-- END backend -->
|
||||
|
||||
|
@@ -1,71 +0,0 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<a name="maincontent"></a>
|
||||
|
||||
<h1>{L_SEND_STATISTICS}</h1>
|
||||
|
||||
<p>{L_EXPLAIN_SEND_STATISTICS}</p>
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var iframect = 0;
|
||||
|
||||
function iframe_updated()
|
||||
{
|
||||
if (iframect++ == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
dE('questionnaire-form', -1);
|
||||
dE('questionnaire-thanks', 1);
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<iframe onload="iframe_updated();" name="questionaire_result" style="display: none;"></iframe>
|
||||
|
||||
<form action="{U_COLLECT_STATS}" method="post" target="questionaire_result" id="questionnaire-form">
|
||||
|
||||
<p><a href="{U_ACP_MAIN}">{L_DONT_SEND_STATISTICS}</a></p>
|
||||
|
||||
<p>{L_EXPLAIN_SHOW_STATISTICS}</p>
|
||||
|
||||
<p id="show-button"><input type="button" class="button2" onclick="dE('configlist', 1); dE('show-button', -1);" value="{L_SHOW_STATISTICS}" /></p>
|
||||
|
||||
<div id="configlist">
|
||||
<input type="button" class="button2" onclick="dE('show-button', 1); dE('configlist', -1);" value="{L_HIDE_STATISTICS}" />
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SEND_STATISTICS}" />
|
||||
</p>
|
||||
|
||||
<!-- BEGIN providers -->
|
||||
<fieldset>
|
||||
<legend>{providers.NAME}</legend>
|
||||
<!-- BEGIN values -->
|
||||
<dl>
|
||||
<dt>{providers.values.KEY}</dt>
|
||||
<dd>{providers.values.VALUE}</dd>
|
||||
</dl>
|
||||
<!-- END values -->
|
||||
</fieldset>
|
||||
<!-- END providers -->
|
||||
</div>
|
||||
<p class="submit-buttons">
|
||||
<input type="hidden" name="systemdata" value="{RAW_DATA}" />
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SEND_STATISTICS}" />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<div id="questionnaire-thanks" class="successbox">
|
||||
<p><strong>{L_THANKS_SEND_STATISTICS}</strong><br /><br /><a href="{U_ACP_MAIN}">« {L_GO_ACP_MAIN}</a></p>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
dE('configlist', -1);
|
||||
dE('questionnaire-thanks', -1);
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
@@ -20,23 +20,8 @@
|
||||
</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>
|
||||
<dd><select 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 -->
|
||||
|
||||
<p class="quick">
|
||||
<input class="button1" type="submit" name="update" value="{L_DELETE}" />
|
||||
@@ -69,7 +54,7 @@
|
||||
// <![CDATA[
|
||||
function update_image(newimage)
|
||||
{
|
||||
document.getElementById('newimg').src = (newimage) ? '../styles/{A_PATH}/imageset/' + encodeURI(newimage) : 'images/no_image.png';
|
||||
document.getElementById('newimg').src = (newimage) ? '../styles/{A_NAME}/imageset/' + encodeURI(newimage) : 'images/no_image.png';
|
||||
}
|
||||
// ]]>
|
||||
</script>
|
||||
@@ -92,7 +77,7 @@
|
||||
|
||||
/**
|
||||
* Init the wanted display functionality if javascript is enabled.
|
||||
* If javascript is not available, the user is still able to properly administer.
|
||||
* If javascript is not available, the user is still able to properly administrate.
|
||||
*/
|
||||
onload = function()
|
||||
{
|
||||
@@ -150,11 +135,11 @@
|
||||
<div id="img_dimensions">
|
||||
<dl>
|
||||
<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>
|
||||
<dd><input 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>
|
||||
<dd><input type="text" name="imgheight" value="{IMAGE_HEIGHT}" /></dd>
|
||||
</dl>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -276,12 +261,12 @@
|
||||
<!-- ELSEIF S_CACHE -->
|
||||
|
||||
<a href="{U_BACK}" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
||||
|
||||
|
||||
<h1>{L_TEMPLATE_CACHE}</h1>
|
||||
|
||||
|
||||
<p>{L_TEMPLATE_CACHE_EXPLAIN}</p>
|
||||
|
||||
<form id="acp_styles" method="post" action="{U_ACTION}">
|
||||
|
||||
<form name="acp_styles" method="post" action="{U_ACTION}">
|
||||
<fieldset class="tabulated">
|
||||
<legend>{L_TEMPLATE_CACHE}</legend>
|
||||
|
||||
@@ -298,7 +283,7 @@
|
||||
<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><a href="{file.U_VIEWSOURCE}" onclick="popup(this.href, 750, 550, '_source'); return false;">{file.FILENAME}</a></td>
|
||||
<td>{file.FILESIZE}</td>
|
||||
<td>{file.CACHED}</td>
|
||||
<td>{file.MODIFIED}</td>
|
||||
@@ -376,7 +361,7 @@
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<!-- ELSEIF S_FRONTEND -->
|
||||
@@ -402,12 +387,6 @@
|
||||
<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 -->
|
||||
@@ -476,37 +455,24 @@
|
||||
<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>
|
||||
<dd><!-- IF S_INSTALL --><b id="name">{NAME}</b><!-- 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>
|
||||
<dd><!-- IF S_INSTALL --><b id="copyright">{COPYRIGHT}</b><!-- 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>
|
||||
<dd><!-- IF S_INSTALL --><b id="template_id">{TEMPLATE_NAME}</b><!-- 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>
|
||||
<dd><!-- IF S_INSTALL --><b id="theme_id">{THEME_NAME}</b><!-- 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>
|
||||
<dd><!-- IF S_INSTALL --><b id="imageset_id">{IMAGESET_NAME}</b><!-- ELSE --><select id="imageset_id" name="imageset_id">{S_IMAGESET_OPTIONS}</select><!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_STYLE -->
|
||||
@@ -534,7 +500,7 @@
|
||||
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
@@ -10,17 +10,11 @@
|
||||
|
||||
<!-- IF S_UP_TO_DATE and S_UP_TO_DATE_AUTO -->
|
||||
<div class="successbox">
|
||||
<p>{L_VERSION_UP_TO_DATE_ACP} - <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a></p>
|
||||
<p>{L_VERSION_UP_TO_DATE_ACP}</p>
|
||||
</div>
|
||||
<!-- ELSE -->
|
||||
<div class="errorbox">
|
||||
<p>{L_VERSION_NOT_UP_TO_DATE_ACP} - <a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a></p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF NEXT_FEATURE_VERSION -->
|
||||
<div class="errorbox">
|
||||
<p>{UPGRADE_INSTRUCTIONS}</p>
|
||||
<p>{L_VERSION_NOT_UP_TO_DATE_ACP}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<fieldset>
|
||||
<legend>{L_SELECT_USER}</legend>
|
||||
<dl>
|
||||
<dt><label for="username">{L_ENTER_USERNAME}:</label></dt>
|
||||
<dt><label for="username">{L_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="u" value="{ANONYMOUS_USER_ID}" /> {L_SELECT_ANONYMOUS}</label></dd>
|
||||
@@ -83,10 +83,6 @@
|
||||
|
||||
<!-- INCLUDE acp_users_feedback.html -->
|
||||
|
||||
<!-- ELSEIF S_WARNINGS -->
|
||||
|
||||
<!-- INCLUDE acp_users_warnings.html -->
|
||||
|
||||
<!-- ELSEIF S_PROFILE -->
|
||||
|
||||
<!-- INCLUDE acp_users_profile.html -->
|
||||
@@ -135,8 +131,8 @@
|
||||
<!-- ELSE -->
|
||||
<!-- 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 --> <!-- 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 --> <!-- ENDIF --></td>
|
||||
<td><!-- IF group.S_NO_DEFAULT --><a href="{group.U_DEFAULT}">{L_GROUP_DEFAULT}</a><!-- ELSE --><strong>{L_GROUP_DEFAULT}</strong><!-- ENDIF --></td>
|
||||
<td><!-- IF not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE --> <!-- ENDIF --></td>
|
||||
<td><a href="{group.U_DELETE}">{L_GROUP_DELETE}</a></td>
|
||||
</tr>
|
||||
<!-- ENDIF -->
|
||||
|
@@ -8,13 +8,11 @@
|
||||
<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 -->
|
||||
<!-- IF S_CAN_UPLOAD -->
|
||||
<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>
|
||||
@@ -27,7 +25,7 @@
|
||||
</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} × </span> <input type="text" name="height" size="3" value="{USER_AVATAR_HEIGHT}" /> <span>{L_PIXEL}</span></dd>
|
||||
<dd><input name="width" type="text" id="width" size="3" value="{USER_AVATAR_WIDTH}" /> <span>px X </span> <input type="text" name="height" size="3" value="{USER_AVATAR_HEIGHT}" /> <span>px</span></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_DISPLAY_GALLERY -->
|
||||
|
@@ -43,19 +43,19 @@
|
||||
</dl>
|
||||
<dl>
|
||||
<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>
|
||||
<dd><input class="text medium" type="text" id="user_email" name="user_email" value="{USER_EMAIL}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<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>
|
||||
<dd><input class="text medium" type="text" id="email_confirm" name="email_confirm" value="" /></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>
|
||||
<dd><input type="password" id="new_password" name="new_password" value="" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<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>
|
||||
<dd><input type="password" id="password_confirm" name="password_confirm" value="" /></dd>
|
||||
</dl>
|
||||
|
||||
<p class="quick">
|
||||
@@ -124,6 +124,13 @@
|
||||
<dd><input name="ban_give_reason" type="text" class="text medium" maxlength="3000" id="ban_give_reason" /></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<!-- IF not S_OWN_ACCOUNT -->
|
||||
<dl>
|
||||
<dt><label for="delete_user">{L_DELETE_USER}:</label><br /><span>{L_DELETE_USER_EXPLAIN}</span></dt>
|
||||
<dd><input type="checkbox" class="radio" name="delete" value="1" /></dd>
|
||||
<dd><select id="delete_user" name="delete_type"><option value="retain">{L_RETAIN_POSTS}</option><option value="remove">{L_DELETE_POSTS}</option></select></dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<p class="quick">
|
||||
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
@@ -134,26 +141,4 @@
|
||||
|
||||
</form>
|
||||
|
||||
<!-- IF not S_OWN_ACCOUNT -->
|
||||
<form id="user_delete" method="post" action="{U_ACTION}">
|
||||
<fieldset>
|
||||
<legend>{L_DELETE_USER}</legend>
|
||||
<dl>
|
||||
<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>
|
||||
<!-- ELSE -->
|
||||
{L_USER_NO_POSTS_TO_DELETE}<input type="hidden" id="delete_type" name="delete_type" value="retain" />
|
||||
<!-- ENDIF -->
|
||||
</dd>
|
||||
</dl>
|
||||
<p class="quick">
|
||||
<input class="button1" type="submit" name="update" value="{L_SUBMIT}" />
|
||||
<input type="hidden" name="delete" value="1" />
|
||||
{S_FORM_TOKEN}
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
@@ -22,8 +22,9 @@
|
||||
w: '{LA_BBCODE_W_HELP}',
|
||||
s: '{LA_BBCODE_S_HELP}',
|
||||
f: '{LA_BBCODE_F_HELP}',
|
||||
y: '{LA_BBCODE_Y_HELP}',
|
||||
e: '{LA_BBCODE_E_HELP}',
|
||||
d: '{LA_BBCODE_D_HELP}',
|
||||
t: '{LA_BBCODE_T_HELP}',
|
||||
tip: '{L_STYLES_TIP}'
|
||||
<!-- BEGIN custom_tags -->
|
||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||
@@ -55,7 +56,7 @@
|
||||
<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')" />
|
||||
<input type="button" class="button2" accesskey="t" name="addlitsitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" onmouseover="helpline('e')" onmouseout="helpline('tip')" />
|
||||
<!-- IF S_BBCODE_IMG -->
|
||||
<input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" onmouseover="helpline('p')" onmouseout="helpline('tip')" />
|
||||
<!-- ENDIF -->
|
||||
@@ -92,8 +93,8 @@
|
||||
// ]]>
|
||||
</script>
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onfocus="initInsertions();">{SIGNATURE}</textarea></dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 5px;">
|
||||
<dd style="margin-left: 90px;"><textarea name="signature" rows="10" cols="60" style="width: 95%;" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{SIGNATURE}</textarea></dd>
|
||||
<dd style="margin-left: 90px; margin-top: 5px;">
|
||||
<!-- IF S_BBCODE_ALLOWED -->
|
||||
<label><input type="checkbox" class="radio" name="disable_bbcode"{S_BBCODE_CHECKED} /> {L_DISABLE_BBCODE}</label>
|
||||
<!-- ENDIF -->
|
||||
@@ -104,7 +105,7 @@
|
||||
<label><input type="checkbox" class="radio" name="disable_magic_url"{S_MAGIC_URL_CHECKED} /> {L_DISABLE_MAGIC_URL}</label>
|
||||
<!-- ENDIF -->
|
||||
</dd>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 90px; margin-top: 10px;"><strong>{L_OPTIONS}: </strong>{BBCODE_STATUS} :: {IMG_STATUS} :: {FLASH_STATUS} :: {URL_STATUS} :: {SMILIES_STATUS}</dd>
|
||||
<dd style="margin-left: 90px; margin-top: 10px;"><strong>{L_OPTIONS}: </strong>{BBCODE_STATUS} :: {IMG_STATUS} :: {FLASH_STATUS} :: {URL_STATUS} :: {SMILIES_STATUS}</dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
|
@@ -1,36 +0,0 @@
|
||||
<form id="list" method="post" action="{U_ACTION}">
|
||||
|
||||
<!-- IF .warn -->
|
||||
<table cellspacing="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{L_REPORT_BY}</th>
|
||||
<th>{L_TIME}</th>
|
||||
<th>{L_FEEDBACK}</th>
|
||||
<th>{L_MARK}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN warn -->
|
||||
<!-- 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>
|
||||
<td style="text-align: center;"><input type="checkbox" class="radio" name="mark[]" value="{warn.ID}" /></td>
|
||||
</tr>
|
||||
<!-- END warn -->
|
||||
</tbody>
|
||||
</table>
|
||||
<!-- ELSE -->
|
||||
<div class="errorbox">
|
||||
<p>{L_NO_WARNINGS}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<fieldset class="quick">
|
||||
<input class="button2" type="submit" name="delall" value="{L_DELETE_ALL}" />
|
||||
<input class="button2" type="submit" name="delmarked" value="{L_DELETE_MARKED}" />
|
||||
<p class="small"><a href="#" onclick="marklist('list', 'mark', true);">{L_MARK_ALL}</a> • <a href="#" onclick="marklist('list', 'mark', false);">{L_UNMARK_ALL}</a></p>
|
||||
</fieldset>
|
||||
{S_FORM_TOKEN}
|
||||
</form>
|
@@ -69,8 +69,8 @@ h2, caption {
|
||||
h3, h4 {
|
||||
font-family: "Trebuchet MS", Helvetica, sans-serif;
|
||||
font-size: 1.20em;
|
||||
text-decoration: none;
|
||||
line-height: 1.20em;
|
||||
text-decoration: none;
|
||||
line-height: 1.20em;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
@@ -97,8 +97,8 @@ hr {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 0.85em;
|
||||
.small {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
/* General links */
|
||||
@@ -121,17 +121,6 @@ a:active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* List items */
|
||||
ul, ol {
|
||||
list-style-position: inside;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
li {
|
||||
display: list-item;
|
||||
list-style-type: inherit;
|
||||
}
|
||||
|
||||
/* Main blocks
|
||||
---------------------------------------- */
|
||||
#wrap {
|
||||
@@ -142,15 +131,15 @@ li {
|
||||
#page-header {
|
||||
clear: both;
|
||||
text-align: right;
|
||||
background: url("../images/phpbb_logo.png") top left no-repeat;
|
||||
height: 54px;
|
||||
background: url("../images/phpbb_logo.gif") top left no-repeat;
|
||||
height: 49px;
|
||||
font-size: 0.85em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.rtl #page-header {
|
||||
text-align: left;
|
||||
background: url("../images/phpbb_logo.png") top right no-repeat;
|
||||
background: url("../images/phpbb_logo.gif") top right no-repeat;
|
||||
}
|
||||
|
||||
#page-header h1 {
|
||||
@@ -202,8 +191,8 @@ li {
|
||||
margin: 0 3% 0 0;
|
||||
}
|
||||
|
||||
* html #main {
|
||||
height: 350px;
|
||||
* html #main {
|
||||
height: 350px;
|
||||
}
|
||||
|
||||
#page-body.simple-page-body {
|
||||
@@ -315,7 +304,7 @@ li {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
span.corners-top, span.corners-bottom,
|
||||
span.corners-top, span.corners-bottom,
|
||||
span.corners-top span, span.corners-bottom span {
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
@@ -670,10 +659,14 @@ legend {
|
||||
position: relative;
|
||||
text-transform: none;
|
||||
line-height: 1.2em;
|
||||
top: -.2em;
|
||||
top: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* Hide from macIE \*/
|
||||
legend { top: -1.2em; }
|
||||
/* end */
|
||||
|
||||
* html legend {
|
||||
margin: 0 0 -10px -7px;
|
||||
line-height: 1em;
|
||||
@@ -790,7 +783,7 @@ label img {
|
||||
|
||||
fieldset.quick, p.quick {
|
||||
margin: 0 0 5px;
|
||||
padding: 5px 0 0;
|
||||
padding: 5px 0 0;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
text-align: right;
|
||||
@@ -843,7 +836,7 @@ select option.disabled {
|
||||
}
|
||||
|
||||
/* Special case inputs */
|
||||
select#board_timezone,
|
||||
select#board_timezone,
|
||||
select#full_folder_action {
|
||||
width: 95%;
|
||||
}
|
||||
@@ -899,15 +892,12 @@ html>body dd label input { vertical-align: text-bottom;} /* Tweak for Moz to ali
|
||||
dd input {
|
||||
font-size: 1.00em;
|
||||
max-width: 100%;
|
||||
margin: 2px 0;
|
||||
}
|
||||
|
||||
dd select {
|
||||
font-size: 100%;
|
||||
font-size: 1em;
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
margin: 2px 0;
|
||||
}
|
||||
|
||||
dd textarea {
|
||||
@@ -915,6 +905,11 @@ dd textarea {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
dd select {
|
||||
width: auto;
|
||||
font-size: 1.00em;
|
||||
}
|
||||
|
||||
fieldset dl {
|
||||
margin-bottom: 10px;
|
||||
font-size: 0.85em;
|
||||
@@ -1238,12 +1233,12 @@ input.disabled {
|
||||
}
|
||||
|
||||
/* Nice method for clearing floated blocks without having to insert any extra markup
|
||||
From http://www.positioniseverything.net/easyclearing.html
|
||||
From http://www.positioniseverything.net/easyclearing.html
|
||||
.clearfix:after, #tabs:after, .row:after, #content:after, fieldset dl:after, #page-body:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}*/
|
||||
|
||||
@@ -1310,7 +1305,7 @@ fieldset.permissions legend input{
|
||||
height: 1.1em;
|
||||
}
|
||||
|
||||
/* Permission sections */
|
||||
/* Permission sections */
|
||||
fieldset.permissions .permissions-simple {
|
||||
text-align: left;
|
||||
padding-top: 3px;
|
||||
@@ -1521,7 +1516,7 @@ fieldset.permissions .padding {
|
||||
background-image: url("../images/corners_right2.gif");
|
||||
}
|
||||
|
||||
.permissions-panel span.corners-top, .permissions-panel span.corners-bottom,
|
||||
.permissions-panel span.corners-top, .permissions-panel span.corners-bottom,
|
||||
.permissions-panel span.corners-top span, .permissions-panel span.corners-bottom span {
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
@@ -1599,7 +1594,7 @@ fieldset.permissions .padding {
|
||||
}
|
||||
|
||||
.permissions-panel th.row4 {
|
||||
background-image: none;
|
||||
background-image: none;
|
||||
background-color: #E4E8EB;
|
||||
color: #536482;
|
||||
border: none;
|
||||
@@ -1607,8 +1602,8 @@ fieldset.permissions .padding {
|
||||
|
||||
.permissions-panel th a:link, .permissions-panel th a:hover, .permissions-panel th a:visited {
|
||||
display: block;
|
||||
color: #FFFFFF;
|
||||
text-decoration: underline;
|
||||
color: #FFFFFF;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.permissions-panel td.permissions-yes label:hover {
|
||||
|
@@ -1,4 +1,5 @@
|
||||
|
||||
<dl>
|
||||
<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>
|
||||
</dl>
|
@@ -1,7 +1,6 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<a name="maincontent"></a>
|
||||
<a href="{U_ACTION}" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
||||
|
||||
<h1>{L_ACP_VC_SETTINGS}</h1>
|
||||
|
||||
@@ -26,44 +25,24 @@
|
||||
<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}:</label><br /><span>{L_CAPTCHA_GD_WAVE_EXPLAIN}</span></dt>
|
||||
<dd><label><input id="captcha_gd_wave" name="captcha_gd_wave" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input name="captcha_gd_wave" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_WAVE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_3d_noise">{L_CAPTCHA_GD_3D_NOISE}:</label><br /><span>{L_CAPTCHA_GD_3D_NOISE_EXPLAIN}</span></dt>
|
||||
<dd><label><input id="captcha_gd_3d_noise" name="captcha_gd_3d_noise" value="1" class="radio" type="radio"<!-- IF CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
|
||||
<label><input name="captcha_gd_3d_noise" value="0" class="radio" type="radio"<!-- IF not CAPTCHA_GD_3D_NOISE --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="captcha_gd_fonts">{L_CAPTCHA_GD_FONTS}:</label><br /><span>{L_CAPTCHA_GD_FONTS_EXPLAIN}</span></dt>
|
||||
<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>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{L_PREVIEW}</legend>
|
||||
<!-- IF CAPTCHA_PREVIEW -->
|
||||
<!-- INCLUDE {CAPTCHA_PREVIEW} -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF PREVIEW -->
|
||||
<div class="successbox">
|
||||
<h3>{L_WARNING}</h3>
|
||||
<p>{L_CAPTCHA_PREVIEW_MSG}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
{CAPTCHA_PREVIEW}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<input class="button2" type="submit" id="preview" name="preview" value="{L_PREVIEW}" />
|
||||
</p>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<input type="hidden" name="select_captcha" value="{CAPTCHA_NAME}" />
|
||||
<input type="hidden" name="configure" value="1" />
|
||||
|
||||
|
@@ -1,92 +0,0 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<a name="maincontent"></a>
|
||||
|
||||
|
||||
<a href="<!-- IF U_LIST -->{U_LIST}<!-- ELSE -->{U_ACTION}<!-- ENDIF -->" style="float: {S_CONTENT_FLOW_END};">« {L_BACK}</a>
|
||||
|
||||
<h1>{L_QUESTIONS}</h1>
|
||||
|
||||
<p>{L_QUESTIONS_EXPLAIN}</p>
|
||||
<!-- IF S_LIST -->
|
||||
<form id="captcha_qa" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset class="tabulated">
|
||||
<legend>{L_QUESTIONS}</legend>
|
||||
|
||||
<table cellspacing="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="3">{L_QUESTIONS}</th>
|
||||
</tr>
|
||||
<tr class="row3">
|
||||
<td style="text-align: center;">{L_QUESTION_TEXT}</td>
|
||||
<td style="width: 5%; text-align: center;">{L_QUESTION_LANG}</td>
|
||||
<td style="vertical-align: top; width: 50px; text-align: center; white-space: nowrap;">{L_ACTION}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- BEGIN questions -->
|
||||
|
||||
<!-- 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> <a href="{questions.U_DELETE}">{ICON_DELETE}</a></td>
|
||||
</tr>
|
||||
<!-- END questions -->
|
||||
</tbody>
|
||||
</table>
|
||||
<fieldset class="quick">
|
||||
<input class="button1" type="submit" name="add" value="{L_ADD}" />
|
||||
<input type="hidden" name="action" value="add" />
|
||||
<input type="hidden" name="configure" value="1" />
|
||||
<input type="hidden" name="select_captcha" value="{CLASS}" />
|
||||
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- ELSE -->
|
||||
<!-- IF S_ERROR -->
|
||||
<div class="errorbox">
|
||||
<h3>{L_WARNING}</h3>
|
||||
<p>{L_QA_ERROR_MSG}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<form id="captcha_qa" method="post" action="{U_ACTION}">
|
||||
<fieldset>
|
||||
<legend>{L_EDIT_QUESTION}</legend>
|
||||
<dl>
|
||||
<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>
|
||||
|
||||
<dl>
|
||||
<dt><label for="lang_iso">{L_QUESTION_LANG}</label><br /><span>{L_QUESTION_LANG_EXPLAIN}</span></dt>
|
||||
<dd><select id="lang_iso" name="lang_iso"><!-- BEGIN langs --><option value="{langs.ISO}" <!-- IF langs.ISO == LANG_ISO --> selected="selected" <!-- ENDIF -->>{langs.NAME}</option><!-- END langs --></select></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="question_text">{L_QUESTION_TEXT}</label><br /><span>{L_QUESTION_TEXT_EXPLAIN}</span></dt>
|
||||
<dd><input id="question_text" maxlength="255" size="60" name="question_text" type="text" value="{QUESTION_TEXT}" /></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><label for="answers">{L_QUESTION_ANSWERS}</label><br /><span>{L_ANSWERS_EXPLAIN}</span></dt>
|
||||
<dd><textarea id="answers" style="word-wrap: normal; overflow-x: scroll;" name="answers" rows="15" cols="800" >{ANSWERS}</textarea></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
<fieldset class="quick">
|
||||
<input class="button1" type="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input type="hidden" name="question_id" value="{QUESTION_ID}" />
|
||||
<input type="hidden" name="action" value="add" />
|
||||
<input type="hidden" name="configure" value="1" />
|
||||
<input type="hidden" name="select_captcha" value="{CLASS}" />
|
||||
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
@@ -1,7 +0,0 @@
|
||||
<dl>
|
||||
<dt><label for="answer"><!-- IF QA_CONFIRM_QUESTION --> {QA_CONFIRM_QUESTION} <!-- ELSE --> {L_CONFIRM_QUESTION} <!-- ENDIF -->:</label><br /><span>{L_CONFIRM_QUESTION_EXPLAIN}</span></dt>
|
||||
|
||||
<dd>
|
||||
<input type="text" tabindex="10" name="answer" id="answer" size="45" class="inputbox autowidth" title="{L_ANSWER}" />
|
||||
</dd>
|
||||
</dl>
|
@@ -1,34 +1,19 @@
|
||||
<!-- IF S_RECAPTCHA_AVAILABLE -->
|
||||
<dl>
|
||||
<dd>
|
||||
<script type="text/javascript">
|
||||
<script type="text/javascript" src="{RECAPTCHA_SERVER}/challenge?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}">
|
||||
// <![CDATA[
|
||||
var RecaptchaOptions = {
|
||||
lang : '{LA_RECAPTCHA_LANG}',
|
||||
theme : 'clean'
|
||||
lang : {L_RECAPTCHA_LANG}
|
||||
};
|
||||
// ]]>
|
||||
</script>
|
||||
<script type="text/javascript" src="{RECAPTCHA_SERVER}/challenge?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}"></script>
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
|
||||
document.getElementById('recaptcha_table').style.direction = 'ltr';
|
||||
<!-- ENDIF -->
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
|
||||
<noscript>
|
||||
<div>
|
||||
<object data="{RECAPTCHA_SERVER}/noscript?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}" type="text/html" height="300" width="500"></object><br />
|
||||
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
|
||||
<input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
|
||||
</div>
|
||||
<iframe src="{RECAPTCHA_SERVER}/noscript?k={RECAPTCHA_PUBKEY}{RECAPTCHA_ERRORGET}" height="300" width="500" frameborder="0"></iframe><br/>
|
||||
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
|
||||
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
|
||||
</noscript>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<!-- ELSE -->
|
||||
{L_RECAPTCHA_NOT_AVAILABLE}
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
@@ -31,15 +31,13 @@
|
||||
<p>{L_CAPTCHA_PREVIEW_MSG}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
<!-- INCLUDE {CAPTCHA_PREVIEW} -->
|
||||
{CAPTCHA_PREVIEW}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_ACP_SUBMIT_CHANGES}</legend>
|
||||
<p class="submit-buttons">
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
</p>
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
<input type="hidden" name="select_captcha" value="{CAPTCHA_NAME}" />
|
||||
<input type="hidden" name="configure" value="1" />
|
||||
|
||||
|
@@ -1,22 +0,0 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<form id="confirm" method="post" action="{S_CONFIRM_ACTION}">
|
||||
<div class="errorbox">
|
||||
<h3>{L_WARNING}</h3>
|
||||
<p>{MESSAGE_TEXT}</p>
|
||||
</div>
|
||||
<fieldset>
|
||||
|
||||
|
||||
{S_HIDDEN_FIELDS}
|
||||
|
||||
<div style="text-align: center;">
|
||||
<input type="submit" name="confirm" value="{L_YES}" class="button2" />
|
||||
<input type="submit" name="cancel" value="{L_CANCEL}" class="button2" />
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
@@ -16,6 +16,7 @@ var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -
|
||||
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
||||
|
||||
var baseHeight;
|
||||
window.onload = initInsertions;
|
||||
|
||||
/**
|
||||
* Shows the help messages in the helpline window
|
||||
@@ -46,11 +47,7 @@ function initInsertions()
|
||||
{
|
||||
textarea.focus();
|
||||
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
||||
|
||||
if (!document.forms[form_name])
|
||||
{
|
||||
document.body.focus();
|
||||
}
|
||||
// document.body.focus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +153,7 @@ function insert_text(text, spaces, popup)
|
||||
var sel_start = textarea.selectionStart;
|
||||
var sel_end = textarea.selectionEnd;
|
||||
|
||||
mozWrap(textarea, text, '');
|
||||
mozWrap(textarea, text, '')
|
||||
textarea.selectionStart = sel_start + text.length;
|
||||
textarea.selectionEnd = sel_end + text.length;
|
||||
}
|
||||
@@ -234,7 +231,6 @@ function addquote(post_id, username)
|
||||
theSelection = theSelection.replace(/<\;/ig, '<');
|
||||
theSelection = theSelection.replace(/>\;/ig, '>');
|
||||
theSelection = theSelection.replace(/&\;/ig, '&');
|
||||
theSelection = theSelection.replace(/ \;/ig, ' ');
|
||||
}
|
||||
else if (document.all)
|
||||
{
|
||||
@@ -263,7 +259,7 @@ function addquote(post_id, username)
|
||||
*/
|
||||
function mozWrap(txtarea, open, close)
|
||||
{
|
||||
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
|
||||
var selLength = txtarea.textLength;
|
||||
var selStart = txtarea.selectionStart;
|
||||
var selEnd = txtarea.selectionEnd;
|
||||
var scrollTop = txtarea.scrollTop;
|
||||
@@ -274,12 +270,12 @@ function mozWrap(txtarea, open, close)
|
||||
}
|
||||
|
||||
var s1 = (txtarea.value).substring(0,selStart);
|
||||
var s2 = (txtarea.value).substring(selStart, selEnd);
|
||||
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.selectionStart = selEnd + open.length + close.length;
|
||||
txtarea.selectionEnd = txtarea.selectionStart;
|
||||
txtarea.focus();
|
||||
txtarea.scrollTop = scrollTop;
|
||||
|
||||
@@ -332,8 +328,8 @@ function colorPalette(dir, width, height)
|
||||
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.write('<td bgcolor="#' + color + '">');
|
||||
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" onmouseover="helpline(\'s\');" onmouseout="helpline(\'tip\');"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');
|
||||
document.writeln('</td>');
|
||||
}
|
||||
|
||||
|
@@ -2,13 +2,23 @@
|
||||
</div>
|
||||
</div>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--
|
||||
We request you retain the full copyright notice below including the link to www.phpbb.com.
|
||||
This not only gives respect to the large amount of time given freely by the developers
|
||||
but also helps build interest, traffic and use of phpBB. If you (honestly) cannot retain
|
||||
the full copyright we ask you at least leave in place the "Powered by phpBB" line, with
|
||||
"phpBB" linked to www.phpbb.com. If you refuse to include even this then support on our
|
||||
forums may be affected.
|
||||
|
||||
The phpBB Group : 2006
|
||||
// -->
|
||||
|
||||
<div id="page-footer">
|
||||
Powered by <a href="https://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Group
|
||||
Powered by phpBB © 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -43,11 +43,6 @@
|
||||
<p>{WARNING_MSG}</p>
|
||||
</div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<div class="errorbox" style="margin-top: 0;">
|
||||
<h3>{L_NOTICE}</h3>
|
||||
<p>{L_BACKUP_NOTICE}</p>
|
||||
</div>
|
||||
|
||||
<form id="install_update" method="post" action="{U_ACTION}">
|
||||
|
||||
@@ -68,7 +63,7 @@
|
||||
<p>{L_UPDATE_SUCCESS_EXPLAIN}</p>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<input class="button1" type="submit" name="check_again" value="{L_CONTINUE_UPDATE}" />
|
||||
<input class="button1" type="submit" name="check_again" value="{L_CHECK_FILES_AGAIN}" />
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
@@ -197,168 +192,94 @@
|
||||
|
||||
<form id="install_update" method="post" action="{U_UPDATE_ACTION}">
|
||||
|
||||
<!-- IF .up_to_date -->
|
||||
<h2>{L_FILES_UP_TO_DATE}</h2>
|
||||
<p>{L_FILES_UP_TO_DATE_EXPLAIN}</p>
|
||||
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_up_to_date.gif" alt="{L_STATUS_UP_TO_DATE}" /></legend>
|
||||
<!-- BEGIN up_to_date -->
|
||||
<dl>
|
||||
<dd class="full" style="text-align: {S_CONTENT_FLOW_BEGIN};"><strong>{up_to_date.FILENAME}</strong></dd>
|
||||
</dl>
|
||||
<!-- END up_to_date -->
|
||||
</fieldset>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF .new -->
|
||||
<h2>{L_FILES_NEW}</h2>
|
||||
<p>{L_FILES_NEW_EXPLAIN}</p>
|
||||
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_new.gif" alt="{L_STATUS_NEW}" /></legend>
|
||||
<!-- BEGIN new -->
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF new.DIR_PART -->{new.DIR_PART}<br /><!-- ENDIF -->{new.FILE_PART}</strong>
|
||||
<!-- IF new.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{new.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">
|
||||
<!-- IF not new.S_BINARY -->[<a href="{new.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{new.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
|
||||
</dd>
|
||||
<!-- IF new.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{new.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- END new -->
|
||||
</fieldset>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF .not_modified -->
|
||||
<h2>{L_FILES_NOT_MODIFIED}</h2>
|
||||
<div style="float: {S_CONTENT_FLOW_END};">» <a href="#" onclick="dE('not_modified', 0); return false;">{L_TOGGLE_DISPLAY}</a></div>
|
||||
<p>{L_FILES_NOT_MODIFIED_EXPLAIN}</p>
|
||||
|
||||
<fieldset id="not_modified" style="display: none;">
|
||||
<legend><img src="{T_IMAGE_PATH}file_not_modified.gif" alt="{L_STATUS_NOT_MODIFIED}" /></legend>
|
||||
<!-- BEGIN not_modified -->
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF not_modified.DIR_PART -->{not_modified.DIR_PART}<br /><!-- ENDIF -->{not_modified.FILE_PART}</strong>
|
||||
<!-- IF not_modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{not_modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not not_modified.S_BINARY -->[<a href="{not_modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{not_modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
|
||||
<!-- IF not_modified.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{not_modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- IF .files -->
|
||||
<!-- BEGIN files -->
|
||||
<!-- IF files.S_STATUS -->
|
||||
<!-- IF not files.S_FIRST_ROW -->
|
||||
</fieldset></div>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- END not_modified -->
|
||||
</fieldset>
|
||||
|
||||
<!-- ENDIF -->
|
||||
<h2>{files.TITLE}</h2>
|
||||
|
||||
<!-- IF .modified -->
|
||||
<h2>{L_FILES_MODIFIED}</h2>
|
||||
<p>{L_FILES_MODIFIED_EXPLAIN}</p>
|
||||
<!-- IF files.STATUS eq 'not_modified' --><div style="float: {S_CONTENT_FLOW_END};">» <a href="#" onclick="dE('not_modified', 0); return false;">{L_TOGGLE_DISPLAY}</a></div><!-- ENDIF -->
|
||||
<p>{files.EXPLAIN}</p>
|
||||
|
||||
<!-- BEGIN modified -->
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_modified.gif" alt="{L_STATUS_MODIFIED}" /></legend>
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF modified.DIR_PART -->{modified.DIR_PART}<br /><!-- ENDIF -->{modified.FILE_PART}</strong>
|
||||
<!-- IF modified.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{modified.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"> </dd>
|
||||
<!-- IF modified.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{modified.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="0" checked="checked" /> {L_MERGE_MODIFICATIONS_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{modified.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="1" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{modified.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><!-- IF not modified.S_BINARY -->[<a href="{modified.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
<!-- END modified -->
|
||||
<div style="display: <!-- IF files.STATUS neq 'not_modified' -->block<!-- ELSE -->none<!-- ENDIF -->;" id="{files.STATUS}">
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF .new_conflict -->
|
||||
<h2>{L_FILES_NEW_CONFLICT}</h2>
|
||||
<p>{L_FILES_NEW_CONFLICT_EXPLAIN}</p>
|
||||
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_new_conflict.gif" alt="{L_STATUS_NEW_CONFLICT}" /></legend>
|
||||
<!-- BEGIN new_conflict -->
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF new_conflict.DIR_PART -->{new_conflict.DIR_PART}<br /><!-- ENDIF -->{new_conflict.FILE_PART}</strong>
|
||||
<!-- IF new_conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{new_conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">
|
||||
<!-- IF not new_conflict.S_BINARY -->[<a href="{new_conflict.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{new_conflict.L_SHOW_DIFF}</a>]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
|
||||
</dd>
|
||||
<!-- IF new_conflict.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{new_conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- END new_conflict -->
|
||||
</fieldset>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF .conflict -->
|
||||
<h2>{L_FILES_CONFLICT}</h2>
|
||||
<p>{L_FILES_CONFLICT_EXPLAIN}</p>
|
||||
|
||||
<!-- BEGIN conflict -->
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_conflict.gif" alt="{L_STATUS_CONFLICT}" /></legend>
|
||||
<dl>
|
||||
<dt style="width: 60%;"><strong><!-- IF conflict.DIR_PART -->{conflict.DIR_PART}<br /><!-- ENDIF -->{conflict.FILE_PART}</strong>
|
||||
<!-- IF conflict.S_CUSTOM --><br /><span><em>{L_FILE_USED}: </em>{conflict.CUSTOM_ORIGINAL}</span><!-- ENDIF -->
|
||||
<!-- IF conflict.NUM_CONFLICTS --><br /><span>{L_NUM_CONFLICTS}: {conflict.NUM_CONFLICTS}</span><!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">
|
||||
<!-- IF not conflict.S_BINARY -->[<a href="{conflict.U_SHOW_DIFF}">{L_DOWNLOAD_CONFLICTS}</a>]<br />{L_DOWNLOAD_CONFLICTS_EXPLAIN}
|
||||
<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF -->
|
||||
</dd>
|
||||
<!-- IF conflict.S_CUSTOM -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"><label><input type="checkbox" name="no_update[]" value="{conflict.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
</dl>
|
||||
<!-- IF conflict.S_BINARY -->
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="1" checked="checked" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;"> </dd>
|
||||
</dl>
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_{files.STATUS}.gif" alt="{files.L_STATUS}" /></legend>
|
||||
<!-- ELSE -->
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="3" checked="checked" /> {L_MERGE_NEW_FILE_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_NEW_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="4" /> {L_MERGE_MOD_FILE_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_MOD_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_MODIFIED}</a>]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="1" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{conflict.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 60%;">[<a href="{conflict.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
</fieldset>
|
||||
<!-- END conflict -->
|
||||
<!-- IF files.STATUS eq 'up_to_date' -->
|
||||
<dd class="full" style="text-align: left;"><strong>{files.FILENAME}</strong></dd>
|
||||
<!-- ELSE -->
|
||||
<dt style="width: 60%;">
|
||||
<strong><!-- IF files.DIR_PART -->{files.DIR_PART}<br /><!-- ENDIF -->{files.FILE_PART}</strong>
|
||||
<!-- IF files.S_CUSTOM -->
|
||||
<br /><span><em>{L_FILE_USED}: </em>{files.CUSTOM_ORIGINAL}</span>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF files.NUM_CONFLICTS -->
|
||||
<br /><span>{L_NUM_CONFLICTS}: {files.NUM_CONFLICTS}</span>
|
||||
<!-- ENDIF -->
|
||||
</dt>
|
||||
<dd style="margin-left: 60%;"><!-- IF files.STATUS eq 'modified' --> <!-- ELSE --><!-- IF not files.S_BINARY -->[ <a href="{files.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{files.L_SHOW_DIFF}</a> ]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --><!-- ENDIF --></dd>
|
||||
<!-- IF files.S_CUSTOM -->
|
||||
<dd style="margin-left: 60%;"><label><input type="checkbox" name="no_update[]" value="{files.FILENAME}" class="radio" /> {L_DO_NOT_UPDATE}</label></dd>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF files.STATUS eq 'modified' -->
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{files.FILENAME}]" value="0" checked="checked" /> {L_MERGE_MODIFICATIONS_OPTION}</label></dt>
|
||||
<dd style="margin-left: 60%;"><!-- IF not files.S_BINARY -->[ <a href="{files.U_SHOW_DIFF}" onclick="diff_popup(this.href); return false;">{files.L_SHOW_DIFF}</a> ]<!-- ELSE -->{L_BINARY_FILE}<!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{files.FILENAME}]" value="1" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-left: 60%;"><!-- IF not files.S_BINARY -->[<a href="{files.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="modified[{files.FILENAME}]" value="2" /> {L_MERGE_NO_MERGE_MOD_OPTION}</label></dt>
|
||||
<dd style="margin-left: 60%;"><!-- IF not files.S_BINARY -->[<a href="{files.U_VIEW_NO_MERGE_MOD}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<!-- IF not files.S_LAST_ROW -->
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_{files.STATUS}.gif" alt="{files.L_STATUS}" /></legend>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF files.STATUS eq 'conflict' -->
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{files.FILENAME}]" value="1" checked="checked" /> {L_MERGE_NO_MERGE_NEW_OPTION}</label></dt>
|
||||
<dd style="margin-left: 60%;"><!-- IF not files.S_BINARY -->[<a href="{files.U_VIEW_NO_MERGE_NEW}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]<!-- ELSE --> <!-- ENDIF --></dd>
|
||||
</dl>
|
||||
<!-- IF not files.S_BINARY -->
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{files.FILENAME}]" value="3" /> {L_MERGE_NEW_FILE_OPTION}</label></dt>
|
||||
<dd style="margin-left: 60%;">[<a href="{files.U_VIEW_NEW_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt style="width: 60%"><label><input type="radio" class="radio" name="conflict[{files.FILENAME}]" value="4" /> {L_MERGE_MOD_FILE_OPTION}</label></dt>
|
||||
<dd style="margin-left: 60%;">[<a href="{files.U_VIEW_MOD_FILE}" onclick="diff_popup(this.href); return false;">{L_SHOW_DIFF_FINAL}</a>]</dd>
|
||||
</dl>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not files.S_LAST_ROW -->
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend><img src="{T_IMAGE_PATH}file_{files.STATUS}.gif" alt="{files.L_STATUS}" /></legend>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<!-- IF files.STATUS neq 'conflict' and files.STATUS neq 'modified' --></dl><!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
<!-- END files -->
|
||||
|
||||
</fieldset></div>
|
||||
<!-- ENDIF -->
|
||||
|
||||
<br />
|
||||
@@ -399,7 +320,7 @@
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
{S_HIDDEN_FIELDS}
|
||||
<input type="submit" class="button2" value="{L_CONTINUE_UPDATE}" name="check_again" /> <input type="submit" class="button1" value="{L_DOWNLOAD}" name="download" />
|
||||
<input type="submit" class="button2" value="{L_CHECK_FILES_AGAIN}" name="check_again" /> <input type="submit" class="button1" value="{L_DOWNLOAD}" name="download" />
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
@@ -450,6 +371,7 @@
|
||||
<div class="errorbox">
|
||||
<p>{L_CONNECTION_FAILED}<br />{ERROR_MSG}</p>
|
||||
</div>
|
||||
|
||||
<!-- ENDIF -->
|
||||
|
||||
<fieldset>
|
||||
|
@@ -15,22 +15,19 @@
|
||||
// <![CDATA[
|
||||
function resize_panel()
|
||||
{
|
||||
var block = document.getElementById('diff_content');
|
||||
var block = document.getElementById('codepanel');
|
||||
var height;
|
||||
|
||||
|
||||
if (window.innerHeight)
|
||||
{
|
||||
height = window.innerHeight - 200;
|
||||
height = window.innerHeight - 150;
|
||||
block.style.height = height + 'px';
|
||||
}
|
||||
else
|
||||
{
|
||||
//whatever IE needs to do this
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.onresize = resize_panel;
|
||||
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
@@ -51,30 +48,23 @@ window.onresize = resize_panel;
|
||||
|
||||
<!-- IF DIFF_MODE neq 'side_by_side' and DIFF_MODE neq 'raw' -->
|
||||
div#codepanel {
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
display: inline-block;
|
||||
}
|
||||
<!-- ELSE -->
|
||||
div#codepanel {
|
||||
div#codepanel {
|
||||
background-color: #eee;
|
||||
}
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF DIFF_MODE neq 'unified' and DIFF_MODE neq 'side_by_side' -->
|
||||
div#diff_content pre {
|
||||
overflow: auto;
|
||||
height: 414px;
|
||||
width: 100% !important;
|
||||
}
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- IF not S_DIFF_NEW_FILE -->
|
||||
/**
|
||||
* Unified Diff
|
||||
*/
|
||||
.file {
|
||||
line-height: .7em;
|
||||
overflow: auto;
|
||||
height: 414px;
|
||||
}
|
||||
|
||||
.diff {
|
||||
@@ -119,7 +109,6 @@ table.hrdiff {
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #999;
|
||||
table-layout: fixed;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
table.hrdiff th {
|
||||
@@ -129,8 +118,7 @@ table.hrdiff th {
|
||||
font-family: Verdana,Helvetica,sans-serif;
|
||||
font-size: 11px;
|
||||
border-bottom: 1px solid #999;
|
||||
border-right: 1px solid #999;
|
||||
background: #D9D9D9;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
table.hrdiff thead th {
|
||||
@@ -144,23 +132,29 @@ table.hrdiff tr:first-child th {
|
||||
}
|
||||
|
||||
table.hrdiff tbody th {
|
||||
padding: 2em 1px 1px 1px;
|
||||
font-size: 80%;
|
||||
border-top: 1px solid #999;
|
||||
}
|
||||
|
||||
table.hrdiff tbody td {
|
||||
border-right: 1px solid #999;
|
||||
table.hrdiff tbody td.old {
|
||||
border-left: 1px solid #999;
|
||||
border-right: 1px solid #999;
|
||||
}
|
||||
table.hrdiff tbody td.new {
|
||||
border-right: 1px solid #999;
|
||||
}
|
||||
|
||||
table.hrdiff td pre {
|
||||
font-family: "Consolas", monospace;
|
||||
font-size: 1.1em;
|
||||
white-space: pre-wrap; /* css-3 */
|
||||
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
||||
overflow: auto;
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
table.hrdiff .unmodified {
|
||||
background: transparent;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
table.hrdiff .added {
|
||||
@@ -209,8 +203,9 @@ table.hrdiff caption span {
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
<!-- IF DIFF_MODE neq 'side_by_side' and DIFF_MODE neq 'raw' -->
|
||||
<body onload="resize_panel();">
|
||||
<body onresize="resize_panel();" onload="resize_panel();">
|
||||
<!-- ELSE -->
|
||||
<body>
|
||||
<!-- ENDIF -->
|
||||
@@ -225,7 +220,7 @@ table.hrdiff caption span {
|
||||
<!-- ENDIF -->
|
||||
<!-- IF not S_DIFF_NEW_FILE -->
|
||||
<p id="skip"><a href="#acp">{L_SKIP}</a></p>
|
||||
<form method="post" action="">
|
||||
<form method="post">
|
||||
<fieldset class="quick">
|
||||
<label for="diff_mode">{L_SELECT_DIFF_MODE}:</label>
|
||||
<select name="diff_mode" id="diff_mode">{S_DIFF_MODE_OPTIONS}</select>
|
||||
@@ -233,19 +228,19 @@ table.hrdiff caption span {
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_CHANGE}" />
|
||||
</fieldset>
|
||||
</form>
|
||||
<!-- ENDIF -->
|
||||
<!-- IF S_DIFF_CONFLICT_FILE -->
|
||||
<div style="float: {S_CONTENT_FLOW_BEGIN};"><strong>{L_NUM_CONFLICTS}: {NUM_CONFLICTS}</strong></div>
|
||||
<br style="clear: both;" />
|
||||
<!-- ENDIF -->
|
||||
</div>
|
||||
|
||||
|
||||
<div id="page-body">
|
||||
<div id="acp">
|
||||
<div class="panel" id="codepanel">
|
||||
<span class="corners-top"><span></span></span>
|
||||
<div id="diff_content">
|
||||
<div id="main">
|
||||
|
||||
<!-- IF S_DIFF_CONFLICT_FILE -->
|
||||
<div style="float: {S_CONTENT_FLOW_END};"><strong>{L_NUM_CONFLICTS}: {NUM_CONFLICTS}</strong></div>
|
||||
<!-- ENDIF -->
|
||||
{DIFF_CONTENT}
|
||||
</div>
|
||||
</div>
|
||||
@@ -253,6 +248,6 @@ table.hrdiff caption span {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- INCLUDE simple_footer.html -->
|
@@ -2,14 +2,24 @@
|
||||
</div>
|
||||
</div>
|
||||
<span class="corners-bottom"><span></span></span>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--
|
||||
We request you retain the full copyright notice below including the link to www.phpbb.com.
|
||||
This not only gives respect to the large amount of time given freely by the developers
|
||||
but also helps build interest, traffic and use of phpBB. If you (honestly) cannot retain
|
||||
the full copyright we ask you at least leave in place the "Powered by phpBB" line, with
|
||||
"phpBB" linked to www.phpbb.com. If you refuse to include even this then support on our
|
||||
forums may be affected.
|
||||
|
||||
The phpBB Group : 2006
|
||||
// -->
|
||||
|
||||
<div id="page-footer">
|
||||
<!-- IF S_COPYRIGHT_HTML -->
|
||||
{CREDIT_LINE}
|
||||
Powered by phpBB © 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
|
||||
<!-- IF TRANSLATION_INFO --><br />{TRANSLATION_INFO}<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
@@ -28,16 +28,9 @@ function jumpto()
|
||||
{
|
||||
var page = prompt(jump_page, on_page);
|
||||
|
||||
if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0)
|
||||
if (page !== null && !isNaN(page) && page > 0)
|
||||
{
|
||||
if (base_url.indexOf('?') == -1)
|
||||
{
|
||||
document.location.href = base_url + '?start=' + ((page - 1) * per_page);
|
||||
}
|
||||
else
|
||||
{
|
||||
document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * per_page);
|
||||
}
|
||||
document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * per_page);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,30 +185,26 @@ function switch_menu()
|
||||
<a id="toggle-handle" accesskey="m" title="{L_MENU_TOGGLE}" onclick="switch_menu(); return false;" href="#"></a></div>
|
||||
<!-- ENDIF -->
|
||||
<div id="menu">
|
||||
<p>{L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [ <a href="{U_LOGOUT}">{L_LOGOUT}</a> ][ <a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a> ] </p>
|
||||
<p><!-- IF S_USER_LOGGED_IN --> {L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [ <a href="{U_LOGOUT}">{L_LOGOUT}</a> ]<!-- ENDIF --><!-- IF S_USER_ADMIN -->[ <a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a> ]<!-- ENDIF --></p>
|
||||
<!-- IF S_USER_ADMIN -->
|
||||
<ul>
|
||||
<!-- DEFINE $LI_USED = 0 -->
|
||||
<!-- BEGIN l_block1 -->
|
||||
<!-- IF l_block1.S_SELECTED -->
|
||||
|
||||
<!-- BEGIN l_block2 -->
|
||||
<!-- IF .l_block1.l_block2.l_block3 -->
|
||||
<li class="header">{l_block1.l_block2.L_TITLE}</li>
|
||||
<!-- DEFINE $LI_USED = 1 -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
<!-- BEGIN l_block3 -->
|
||||
<li<!-- IF l_block1.l_block2.l_block3.S_SELECTED --> id="activemenu"<!-- ENDIF -->><a href="{l_block1.l_block2.l_block3.U_TITLE}"><span>{l_block1.l_block2.l_block3.L_TITLE}</span></a></li>
|
||||
<!-- DEFINE $LI_USED = 1 -->
|
||||
<!-- END l_block3 -->
|
||||
<!-- END l_block2 -->
|
||||
|
||||
<!-- ENDIF -->
|
||||
<!-- END l_block1 -->
|
||||
<!-- IF not $LI_USED -->
|
||||
<li></li>
|
||||
<!-- ENDIF -->
|
||||
</ul>
|
||||
<!-- ENDIF -->
|
||||
</div>
|
||||
|
||||
<div id="main">
|
||||
|
@@ -1,40 +0,0 @@
|
||||
<!-- INCLUDE overall_header.html -->
|
||||
|
||||
<a name="maincontent"></a>
|
||||
|
||||
<h1>{L_ACP_FORUM_PERMISSIONS_COPY}</h1>
|
||||
|
||||
{L_ACP_FORUM_PERMISSIONS_COPY_EXPLAIN}
|
||||
|
||||
<form id="forum_perm_copy" method="post" action="{U_ACTION}">
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_LOOK_UP_FORUM}</legend>
|
||||
|
||||
<dl>
|
||||
<dt><label for="src_forum">{L_COPY_PERMISSIONS_FROM}:</label><br /><span>{L_COPY_PERMISSIONS_FORUM_FROM_EXPLAIN}</span></dt>
|
||||
<dd><select id="src_forum" name="src_forum_id"><option value="0">{L_SELECT_FORUM}</option><option value="-1">------------------</option>{S_FORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{L_LOOK_UP_FORUM}</legend>
|
||||
<p>{L_LOOK_UP_FORUMS_EXPLAIN}</p>
|
||||
|
||||
<dl>
|
||||
<dt><label for="dest_forums">{L_COPY_PERMISSIONS_TO}:</label><br /><span>{L_COPY_PERMISSIONS_FORUM_TO_EXPLAIN}</span></dt>
|
||||
<dd><select id="dest_forums" name="dest_forum_ids[]" multiple="multiple" size="10">{S_FORUM_OPTIONS}</select></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="submit-buttons">
|
||||
<legend>{L_SUBMIT}</legend>
|
||||
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />
|
||||
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
|
||||
{S_HIDDEN_FIELDS}
|
||||
{S_FORM_TOKEN}
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- INCLUDE overall_footer.html -->
|
@@ -40,7 +40,7 @@
|
||||
<dl class="permissions-simple">
|
||||
<dt style="width: 20%"><label for="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}">{L_ROLE}:</label></dt>
|
||||
<!-- IF p_mask.f_mask.S_ROLE_OPTIONS -->
|
||||
<dd style="margin-{S_CONTENT_FLOW_BEGIN}: 20%"><select id="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" onchange="set_role_settings(this.options[selectedIndex].value, 'advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')">{p_mask.f_mask.S_ROLE_OPTIONS}</select></dd>
|
||||
<dd style="margin-left: 20%"><select id="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" onchange="set_role_settings(this.options[selectedIndex].value, 'advanced{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}'); init_colours('{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')">{p_mask.f_mask.S_ROLE_OPTIONS}</select></dd>
|
||||
<!-- ELSE -->
|
||||
<dd>{L_NO_ROLE_AVAILABLE}</dd>
|
||||
<!-- ENDIF -->
|
||||
@@ -118,7 +118,7 @@
|
||||
</div>
|
||||
|
||||
<!-- IF not p_mask.S_VIEW -->
|
||||
<fieldset class="quick" style="margin-{S_CONTENT_FLOW_END}: 11px;">
|
||||
<fieldset class="quick" style="margin-right: 11px;">
|
||||
<p class="small">{L_APPLY_PERMISSIONS_EXPLAIN}</p>
|
||||
<input class="button1" type="submit" name="psubmit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" value="{L_APPLY_PERMISSIONS}" />
|
||||
<!-- IF .p_mask.f_mask gt 1 or .p_mask gt 1 -->
|
||||
|
@@ -2,10 +2,21 @@
|
||||
<br /><br />
|
||||
</div>
|
||||
|
||||
<!--
|
||||
We request you retain the full copyright notice below including the link to www.phpbb.com.
|
||||
This not only gives respect to the large amount of time given freely by the developers
|
||||
but also helps build interest, traffic and use of phpBB. If you (honestly) cannot retain
|
||||
the full copyright we ask you at least leave in place the "Powered by phpBB" line, with
|
||||
"phpBB" linked to www.phpbb.com. If you refuse to include even this then support on our
|
||||
forums may be affected.
|
||||
|
||||
The phpBB Group : 2006
|
||||
// -->
|
||||
|
||||
<div id="page-footer">
|
||||
|
||||
<!-- IF S_COPYRIGHT_HTML -->
|
||||
<br />{CREDIT_LINE}
|
||||
<br />Powered by phpBB © 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
|
||||
<!-- IF TRANSLATION_INFO --><br />{TRANSLATION_INFO}<!-- ENDIF -->
|
||||
<!-- ENDIF -->
|
||||
|
||||
|
@@ -39,16 +39,9 @@ function jumpto()
|
||||
{
|
||||
var page = prompt(jump_page, on_page);
|
||||
|
||||
if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0)
|
||||
if (page !== null && !isNaN(page) && page > 0)
|
||||
{
|
||||
if (base_url.indexOf('?') == -1)
|
||||
{
|
||||
document.location.href = base_url + '?start=' + ((page - 1) * per_page);
|
||||
}
|
||||
else
|
||||
{
|
||||
document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * per_page);
|
||||
}
|
||||
document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * per_page);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -13,9 +13,9 @@
|
||||
*/
|
||||
define('IN_PHPBB', true);
|
||||
define('ADMIN_START', true);
|
||||
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.' . $phpEx);
|
||||
if (!defined('PHPBB_ROOT_PATH')) define('PHPBB_ROOT_PATH', './../');
|
||||
if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin(false);
|
||||
@@ -23,7 +23,7 @@ $auth->acl($user->data);
|
||||
$user->setup();
|
||||
|
||||
// Set custom template for admin area
|
||||
$template->set_custom_template($phpbb_root_path . 'adm/style', 'admin');
|
||||
$template->set_custom_template(PHPBB_ROOT_PATH . CONFIG_ADM_FOLDER . '/style', 'admin');
|
||||
|
||||
$template->set_filenames(array(
|
||||
'body' => 'colour_swatch.html')
|
||||
@@ -39,7 +39,7 @@ $name = (!preg_match('/^[a-z0-9_-]+$/i', $name)) ? '' : $name;
|
||||
$template->assign_vars(array(
|
||||
'OPENER' => $form,
|
||||
'NAME' => $name,
|
||||
'T_IMAGES_PATH' => "{$phpbb_root_path}images/",
|
||||
'T_IMAGES_PATH' => PHPBB_ROOT_PATH . 'images/',
|
||||
|
||||
'S_USER_LANG' => $user->lang['USER_LANG'],
|
||||
'S_CONTENT_DIRECTION' => $user->lang['DIRECTION'],
|
||||
|
155
phpBB/common.php
155
phpBB/common.php
@@ -6,7 +6,7 @@
|
||||
* @copyright (c) 2005 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
* Minimum Requirement: PHP 4.3.3
|
||||
* Minimum Requirement: PHP 5.2.0+
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -16,18 +16,120 @@ if (!defined('IN_PHPBB'))
|
||||
exit;
|
||||
}
|
||||
|
||||
require($phpbb_root_path . 'includes/startup.' . $phpEx);
|
||||
$starttime = explode(' ', microtime());
|
||||
$starttime = $starttime[1] + $starttime[0];
|
||||
|
||||
if (file_exists($phpbb_root_path . 'config.' . $phpEx))
|
||||
// Report all errors, except notices
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
date_default_timezone_set('UTC');
|
||||
|
||||
/*
|
||||
* Remove variables created by register_globals from the global scope
|
||||
* Thanks to Matt Kavanagh
|
||||
*/
|
||||
function deregister_globals()
|
||||
{
|
||||
require($phpbb_root_path . 'config.' . $phpEx);
|
||||
$not_unset = array(
|
||||
'GLOBALS' => true,
|
||||
'_GET' => true,
|
||||
'_POST' => true,
|
||||
'_COOKIE' => true,
|
||||
'_REQUEST' => true,
|
||||
'_SERVER' => true,
|
||||
'_SESSION' => true,
|
||||
'_ENV' => true,
|
||||
'_FILES' => true,
|
||||
'phpEx' => true,
|
||||
'phpbb_root_path' => true
|
||||
);
|
||||
|
||||
// Not only will array_merge and array_keys give a warning if
|
||||
// a parameter is not an array, array_merge will actually fail.
|
||||
// So we check if _SESSION has been initialised.
|
||||
if (!isset($_SESSION) || !is_array($_SESSION))
|
||||
{
|
||||
$_SESSION = array();
|
||||
}
|
||||
|
||||
// Merge all into one extremely huge array; unset this later
|
||||
$input = array_merge(
|
||||
array_keys($_GET),
|
||||
array_keys($_POST),
|
||||
array_keys($_COOKIE),
|
||||
array_keys($_SERVER),
|
||||
array_keys($_SESSION),
|
||||
array_keys($_ENV),
|
||||
array_keys($_FILES)
|
||||
);
|
||||
|
||||
foreach ($input as $varname)
|
||||
{
|
||||
if (isset($not_unset[$varname]))
|
||||
{
|
||||
// Hacking attempt. No point in continuing unless it's a COOKIE
|
||||
if ($varname !== 'GLOBALS' || isset($_GET['GLOBALS']) || isset($_POST['GLOBALS']) || isset($_SERVER['GLOBALS']) || isset($_SESSION['GLOBALS']) || isset($_ENV['GLOBALS']) || isset($_FILES['GLOBALS']))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$cookie = &$_COOKIE;
|
||||
while (isset($cookie['GLOBALS']))
|
||||
{
|
||||
foreach ($cookie['GLOBALS'] as $registered_var => $value)
|
||||
{
|
||||
if (!isset($not_unset[$registered_var]))
|
||||
{
|
||||
unset($GLOBALS[$registered_var]);
|
||||
}
|
||||
}
|
||||
$cookie = &$cookie['GLOBALS'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset($GLOBALS[$varname]);
|
||||
}
|
||||
|
||||
unset($input);
|
||||
}
|
||||
|
||||
// If we are on PHP >= 6.0.0 we do not need some code
|
||||
if (version_compare(PHP_VERSION, '6.0.0-dev', '>='))
|
||||
{
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
define('STRIP', false);
|
||||
}
|
||||
else
|
||||
{
|
||||
@set_magic_quotes_runtime(0);
|
||||
|
||||
// Be paranoid with passed vars
|
||||
if (@ini_get('register_globals') == '1' || strtolower(@ini_get('register_globals')) == 'on' || !function_exists('ini_get'))
|
||||
{
|
||||
deregister_globals();
|
||||
}
|
||||
|
||||
define('STRIP', (get_magic_quotes_gpc()) ? true : false);
|
||||
}
|
||||
|
||||
if (defined('IN_CRON'))
|
||||
{
|
||||
@define('PHPBB_ROOT_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);
|
||||
}
|
||||
|
||||
if (!file_exists(PHPBB_ROOT_PATH . 'config.' . PHP_EXT))
|
||||
{
|
||||
die('<p>The config.' . PHP_EXT . ' file could not be found.</p><p><a href="' . PHPBB_ROOT_PATH . 'install/index.' . PHP_EXT . '">Click here to install phpBB</a></p>');
|
||||
}
|
||||
|
||||
require(PHPBB_ROOT_PATH . 'config.' . PHP_EXT);
|
||||
|
||||
if (!defined('PHPBB_INSTALLED'))
|
||||
{
|
||||
// Redirect the user to the installer
|
||||
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
||||
|
||||
// We have to generate a full HTTP/1.1 header here since we can't guarantee to have any of the information
|
||||
// available as used by the redirect function
|
||||
$server_name = (!empty($_SERVER['HTTP_HOST'])) ? strtolower($_SERVER['HTTP_HOST']) : ((!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : getenv('SERVER_NAME'));
|
||||
@@ -40,13 +142,10 @@ if (!defined('PHPBB_INSTALLED'))
|
||||
$script_name = (!empty($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : getenv('REQUEST_URI');
|
||||
}
|
||||
|
||||
// $phpbb_root_path accounts for redirects from e.g. /adm
|
||||
$script_path = trim(dirname($script_name)) . '/' . $phpbb_root_path . 'install/index.' . $phpEx;
|
||||
// Replace any number of consecutive backslashes and/or slashes with a single slash
|
||||
// (could happen on some proxy setups and/or Windows servers)
|
||||
$script_path = trim(dirname($script_name)) . '/install/index.' . PHP_EXT;
|
||||
$script_path = preg_replace('#[\\\\/]{2,}#', '/', $script_path);
|
||||
// Eliminate . and .. from the path
|
||||
$script_path = phpbb_clean_path($script_path);
|
||||
|
||||
$url = (($secure) ? 'https://' : 'http://') . $server_name;
|
||||
|
||||
@@ -74,8 +173,7 @@ if (defined('DEBUG_EXTRA'))
|
||||
}
|
||||
|
||||
// Load Extensions
|
||||
// dl() is deprecated and disabled by default as of PHP 5.3.
|
||||
if (!empty($load_extensions) && function_exists('dl'))
|
||||
if (!empty($load_extensions))
|
||||
{
|
||||
$load_extensions = explode(',', $load_extensions);
|
||||
|
||||
@@ -86,27 +184,30 @@ if (!empty($load_extensions) && function_exists('dl'))
|
||||
}
|
||||
|
||||
// Include files
|
||||
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/cache.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/template.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/session.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/auth.' . $phpEx);
|
||||
require(PHPBB_ROOT_PATH . 'includes/acm/acm_' . $acm_type . '.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/cache.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/template.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/session.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/auth.' . PHP_EXT);
|
||||
|
||||
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
|
||||
require(PHPBB_ROOT_PATH . 'includes/functions.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/functions_content.' . PHP_EXT);
|
||||
|
||||
require($phpbb_root_path . 'includes/constants.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
|
||||
require(PHPBB_ROOT_PATH . 'includes/constants.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/db/' . $dbms . '.' . PHP_EXT);
|
||||
require(PHPBB_ROOT_PATH . 'includes/utf/utf_tools.' . PHP_EXT);
|
||||
|
||||
// Set PHP error handler to ours
|
||||
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
|
||||
|
||||
// enforce the use of the request class
|
||||
request::disable_super_globals();
|
||||
|
||||
// Instantiate some basic classes
|
||||
$user = new user();
|
||||
$auth = new auth();
|
||||
$template = new template();
|
||||
$cache = new cache();
|
||||
$cache = new acm();
|
||||
$db = new $sql_db();
|
||||
|
||||
// Connect to DB
|
||||
@@ -116,15 +217,15 @@ $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('
|
||||
unset($dbpasswd);
|
||||
|
||||
// Grab global variables, re-cache if necessary
|
||||
$config = $cache->obtain_config();
|
||||
$config = cache::obtain_config();
|
||||
|
||||
// Add own hook handler
|
||||
require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
|
||||
require(PHPBB_ROOT_PATH . 'includes/hooks/index.' . PHP_EXT);
|
||||
$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
|
||||
|
||||
foreach ($cache->obtain_hooks() as $hook)
|
||||
foreach (cache::obtain_hooks() as $hook)
|
||||
{
|
||||
@include($phpbb_root_path . 'includes/hooks/' . $hook . '.' . $phpEx);
|
||||
@include(PHPBB_ROOT_PATH . 'includes/hooks/' . $hook . '.' . PHP_EXT);
|
||||
}
|
||||
|
||||
?>
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"require-dev": {
|
||||
"fabpot/goutte": "v0.1.0",
|
||||
"phpunit/dbunit": "1.2.*",
|
||||
"phpunit/phpunit": "3.7.*",
|
||||
"phing/phing": "2.4.*"
|
||||
}
|
||||
}
|
966
phpBB/composer.lock
generated
966
phpBB/composer.lock
generated
@@ -1,966 +0,0 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
||||
],
|
||||
"hash": "ef6d05965cca4e390fff7ce63e9d2d49",
|
||||
"packages": [
|
||||
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "fabpot/goutte",
|
||||
"version": "v0.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fabpot/Goutte",
|
||||
"reference": "v0.1.0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/fabpot/Goutte/archive/v0.1.0.zip",
|
||||
"reference": "v0.1.0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"guzzle/guzzle": "3.0.*",
|
||||
"php": ">=5.3.0",
|
||||
"symfony/browser-kit": "2.1.*",
|
||||
"symfony/css-selector": "2.1.*",
|
||||
"symfony/dom-crawler": "2.1.*",
|
||||
"symfony/finder": "2.1.*",
|
||||
"symfony/process": "2.1.*"
|
||||
},
|
||||
"type": "application",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Goutte": "."
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "A simple PHP Web Scraper",
|
||||
"homepage": "https://github.com/fabpot/Goutte",
|
||||
"keywords": [
|
||||
"scraper"
|
||||
],
|
||||
"time": "2012-12-02 13:44:35"
|
||||
},
|
||||
{
|
||||
"name": "guzzle/guzzle",
|
||||
"version": "v3.0.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle",
|
||||
"reference": "v3.0.7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/guzzle/guzzle/archive/v3.0.7.zip",
|
||||
"reference": "v3.0.7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"php": ">=5.3.2",
|
||||
"symfony/event-dispatcher": ">=2.1"
|
||||
},
|
||||
"replace": {
|
||||
"guzzle/batch": "self.version",
|
||||
"guzzle/cache": "self.version",
|
||||
"guzzle/common": "self.version",
|
||||
"guzzle/http": "self.version",
|
||||
"guzzle/inflection": "self.version",
|
||||
"guzzle/iterator": "self.version",
|
||||
"guzzle/log": "self.version",
|
||||
"guzzle/parser": "self.version",
|
||||
"guzzle/plugin": "self.version",
|
||||
"guzzle/plugin-async": "self.version",
|
||||
"guzzle/plugin-backoff": "self.version",
|
||||
"guzzle/plugin-cache": "self.version",
|
||||
"guzzle/plugin-cookie": "self.version",
|
||||
"guzzle/plugin-curlauth": "self.version",
|
||||
"guzzle/plugin-history": "self.version",
|
||||
"guzzle/plugin-log": "self.version",
|
||||
"guzzle/plugin-md5": "self.version",
|
||||
"guzzle/plugin-mock": "self.version",
|
||||
"guzzle/plugin-oauth": "self.version",
|
||||
"guzzle/service": "self.version",
|
||||
"guzzle/stream": "self.version"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/common": "*",
|
||||
"monolog/monolog": "1.*",
|
||||
"phpunit/phpunit": "3.7.*",
|
||||
"symfony/class-loader": "*",
|
||||
"zend/zend-cache1": "1.12",
|
||||
"zend/zend-log1": "1.12",
|
||||
"zendframework/zend-cache": "2.0.*",
|
||||
"zendframework/zend-log": "2.0.*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Guzzle\\Tests": "tests/",
|
||||
"Guzzle": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Guzzle Community",
|
||||
"homepage": "https://github.com/guzzle/guzzle/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"client",
|
||||
"curl",
|
||||
"framework",
|
||||
"http",
|
||||
"http client",
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2012-12-19 23:06:35"
|
||||
},
|
||||
{
|
||||
"name": "phing/phing",
|
||||
"version": "2.4.14",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phingofficial/phing",
|
||||
"reference": "2.4.14"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/phingofficial/phing/archive/2.4.14.zip",
|
||||
"reference": "2.4.14",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/phing"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"classes/phing/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
"classes"
|
||||
],
|
||||
"license": [
|
||||
"LGPL3"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michiel Rook",
|
||||
"email": "mrook@php.net"
|
||||
},
|
||||
{
|
||||
"name": "Phing Community",
|
||||
"homepage": "http://www.phing.info/trac/wiki/Development/Contributors"
|
||||
}
|
||||
],
|
||||
"description": "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.",
|
||||
"homepage": "http://www.phing.info/",
|
||||
"keywords": [
|
||||
"build",
|
||||
"task",
|
||||
"tool"
|
||||
],
|
||||
"time": "2012-11-29 21:23:47"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/dbunit",
|
||||
"version": "1.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/dbunit.git",
|
||||
"reference": "1.2.3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/1.2.3",
|
||||
"reference": "1.2.3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-pdo": "*",
|
||||
"ext-simplexml": "*",
|
||||
"php": ">=5.3.3",
|
||||
"phpunit/phpunit": ">=3.7.0@stable"
|
||||
},
|
||||
"bin": [
|
||||
"dbunit.php"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"PHPUnit/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
"",
|
||||
"../../symfony/yaml/"
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "DbUnit port for PHP/PHPUnit to support database interaction testing.",
|
||||
"homepage": "https://github.com/sebastianbergmann/dbunit/",
|
||||
"keywords": [
|
||||
"database",
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2013-03-01 11:50:46"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
"version": "1.2.12",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||
"reference": "1.2.12"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.12",
|
||||
"reference": "1.2.12",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"phpunit/php-file-iterator": ">=1.3.0@stable",
|
||||
"phpunit/php-text-template": ">=1.1.1@stable",
|
||||
"phpunit/php-token-stream": ">=1.1.3@stable"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "3.7.*@dev"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-dom": "*",
|
||||
"ext-xdebug": ">=2.0.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"PHP/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
""
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
||||
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
|
||||
"keywords": [
|
||||
"coverage",
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2013-07-06 06:26:16"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-file-iterator",
|
||||
"version": "1.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/sebastianbergmann/php-file-iterator.git",
|
||||
"reference": "1.3.3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3",
|
||||
"reference": "1.3.3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"File/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
""
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
||||
"homepage": "http://www.phpunit.de/",
|
||||
"keywords": [
|
||||
"filesystem",
|
||||
"iterator"
|
||||
],
|
||||
"time": "2012-10-11 04:44:38"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-text-template",
|
||||
"version": "1.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/sebastianbergmann/php-text-template.git",
|
||||
"reference": "1.1.4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4",
|
||||
"reference": "1.1.4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"Text/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
""
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Simple template engine.",
|
||||
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
|
||||
"keywords": [
|
||||
"template"
|
||||
],
|
||||
"time": "2012-10-31 11:15:28"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-timer",
|
||||
"version": "1.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/sebastianbergmann/php-timer.git",
|
||||
"reference": "1.0.4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/sebastianbergmann/php-timer/zipball/1.0.4",
|
||||
"reference": "1.0.4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"PHP/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
""
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Utility class for timing",
|
||||
"homepage": "http://www.phpunit.de/",
|
||||
"keywords": [
|
||||
"timer"
|
||||
],
|
||||
"time": "2012-10-11 04:45:58"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-token-stream",
|
||||
"version": "1.1.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/sebastianbergmann/php-token-stream.git",
|
||||
"reference": "1.1.5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/sebastianbergmann/php-token-stream/zipball/1.1.5",
|
||||
"reference": "1.1.5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-tokenizer": "*",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"PHP/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
""
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Wrapper around PHP's tokenizer extension.",
|
||||
"homepage": "http://www.phpunit.de/",
|
||||
"keywords": [
|
||||
"tokenizer"
|
||||
],
|
||||
"time": "2012-10-11 04:47:14"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "3.7.22",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "3.7.22"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.22",
|
||||
"reference": "3.7.22",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-dom": "*",
|
||||
"ext-pcre": "*",
|
||||
"ext-reflection": "*",
|
||||
"ext-spl": "*",
|
||||
"php": ">=5.3.3",
|
||||
"phpunit/php-code-coverage": "~1.2.1",
|
||||
"phpunit/php-file-iterator": ">=1.3.1",
|
||||
"phpunit/php-text-template": ">=1.1.1",
|
||||
"phpunit/php-timer": "~1.0.2",
|
||||
"phpunit/phpunit-mock-objects": "~1.2.0",
|
||||
"symfony/yaml": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"pear-pear/pear": "1.9.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-json": "*",
|
||||
"ext-simplexml": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"phpunit/php-invoker": ">=1.1.0,<1.2.0"
|
||||
},
|
||||
"bin": [
|
||||
"composer/bin/phpunit"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"PHPUnit/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
"",
|
||||
"../../symfony/yaml/"
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "The PHP Unit Testing framework.",
|
||||
"homepage": "http://www.phpunit.de/",
|
||||
"keywords": [
|
||||
"phpunit",
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2013-07-06 06:29:15"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit-mock-objects",
|
||||
"version": "1.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
||||
"reference": "1.2.3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip",
|
||||
"reference": "1.2.3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"phpunit/php-text-template": ">=1.1.1@stable"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-soap": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"PHPUnit/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
""
|
||||
],
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Mock Object library for PHPUnit",
|
||||
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
|
||||
"keywords": [
|
||||
"mock",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2013-01-13 10:24:48"
|
||||
},
|
||||
{
|
||||
"name": "symfony/browser-kit",
|
||||
"version": "v2.1.11",
|
||||
"target-dir": "Symfony/Component/BrowserKit",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/BrowserKit.git",
|
||||
"reference": "v2.1.11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/BrowserKit/zipball/v2.1.11",
|
||||
"reference": "v2.1.11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"symfony/dom-crawler": "2.1.*"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/css-selector": "2.1.*",
|
||||
"symfony/process": "2.1.*"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/process": "2.1.*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\BrowserKit": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony BrowserKit Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2013-04-29 20:22:06"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v2.1.11",
|
||||
"target-dir": "Symfony/Component/CssSelector",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/CssSelector.git",
|
||||
"reference": "v2.1.11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/CssSelector/zipball/v2.1.11",
|
||||
"reference": "v2.1.11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\CssSelector": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony CssSelector Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2013-05-17 00:31:34"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dom-crawler",
|
||||
"version": "v2.1.11",
|
||||
"target-dir": "Symfony/Component/DomCrawler",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/DomCrawler.git",
|
||||
"reference": "v2.1.11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/v2.1.11",
|
||||
"reference": "v2.1.11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/css-selector": "2.1.*"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/css-selector": "2.1.*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\DomCrawler": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony DomCrawler Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2013-05-16 00:06:15"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v2.3.1",
|
||||
"target-dir": "Symfony/Component/EventDispatcher",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/EventDispatcher.git",
|
||||
"reference": "v2.3.1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.3.1",
|
||||
"reference": "v2.3.1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/dependency-injection": ">=2.0,<3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/dependency-injection": "",
|
||||
"symfony/http-kernel": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\EventDispatcher\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony EventDispatcher Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2013-05-13 14:36:40"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v2.1.11",
|
||||
"target-dir": "Symfony/Component/Finder",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/Finder.git",
|
||||
"reference": "v2.1.11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/Finder/zipball/v2.1.11",
|
||||
"reference": "v2.1.11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\Finder": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Finder Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2013-05-25 15:47:15"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v2.1.11",
|
||||
"target-dir": "Symfony/Component/Process",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/Process.git",
|
||||
"reference": "v2.1.11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/Process/zipball/v2.1.11",
|
||||
"reference": "v2.1.11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\Process": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Process Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2013-05-06 10:21:56"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v2.3.1",
|
||||
"target-dir": "Symfony/Component/Yaml",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/Yaml.git",
|
||||
"reference": "v2.3.1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.3.1",
|
||||
"reference": "v2.3.1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\Yaml\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2013-05-10 18:12:13"
|
||||
}
|
||||
],
|
||||
"aliases": [
|
||||
|
||||
],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [
|
||||
|
||||
],
|
||||
"platform": [
|
||||
|
||||
],
|
||||
"platform-dev": [
|
||||
|
||||
]
|
||||
}
|
118
phpBB/cron.php
118
phpBB/cron.php
@@ -12,15 +12,16 @@
|
||||
*/
|
||||
define('IN_PHPBB', true);
|
||||
define('IN_CRON', true);
|
||||
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.' . $phpEx);
|
||||
if (!defined('PHPBB_ROOT_PATH')) define('PHPBB_ROOT_PATH', './');
|
||||
if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Do not update users last page entry
|
||||
$user->session_begin(false);
|
||||
$auth->acl($user->data);
|
||||
|
||||
$cron_type = request_var('cron_type', '');
|
||||
$use_shutdown_function = (@function_exists('register_shutdown_function')) ? true : false;
|
||||
|
||||
// Output transparent gif
|
||||
header('Cache-Control: no-cache');
|
||||
@@ -29,9 +30,10 @@ header('Content-length: 43');
|
||||
|
||||
echo base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
|
||||
|
||||
// Flush here to prevent browser from showing the page as loading while running cron.
|
||||
flush();
|
||||
// test without flush ;)
|
||||
// flush();
|
||||
|
||||
//
|
||||
if (!isset($config['cron_lock']))
|
||||
{
|
||||
set_config('cron_lock', '0', true);
|
||||
@@ -72,15 +74,28 @@ switch ($cron_type)
|
||||
{
|
||||
case 'queue':
|
||||
|
||||
if (time() - $config['queue_interval'] <= $config['last_queue_run'] || !file_exists($phpbb_root_path . 'cache/queue.' . $phpEx))
|
||||
if (time() - $config['queue_interval'] <= $config['last_queue_run'] || !file_exists(PHPBB_ROOT_PATH . 'cache/queue.' . PHP_EXT))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
|
||||
// A user reported using the mail() function while using shutdown does not work. We do not want to risk that.
|
||||
if ($use_shutdown_function && !$config['smtp_delivery'])
|
||||
{
|
||||
$use_shutdown_function = false;
|
||||
}
|
||||
|
||||
include_once(PHPBB_ROOT_PATH . 'includes/functions_messenger.' . PHP_EXT);
|
||||
$queue = new queue();
|
||||
|
||||
$queue->process();
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$queue, 'process'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$queue->process();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -91,21 +106,28 @@ switch ($cron_type)
|
||||
break;
|
||||
}
|
||||
|
||||
$cache->tidy();
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$cache, 'tidy'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$cache->tidy();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'tidy_search':
|
||||
|
||||
|
||||
// Select the search method
|
||||
$search_type = basename($config['search_type']);
|
||||
|
||||
if (time() - $config['search_gc'] <= $config['search_last_gc'] || !file_exists($phpbb_root_path . 'includes/search/' . $search_type . '.' . $phpEx))
|
||||
if (time() - $config['search_gc'] <= $config['search_last_gc'] || !file_exists(PHPBB_ROOT_PATH . 'includes/search/' . $search_type . '.' . PHP_EXT))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
include_once("{$phpbb_root_path}includes/search/$search_type.$phpEx");
|
||||
include_once(PHPBB_ROOT_PATH . "includes/search/$search_type." . PHP_EXT);
|
||||
|
||||
// We do some additional checks in the module to ensure it can actually be utilised
|
||||
$error = false;
|
||||
@@ -116,7 +138,14 @@ switch ($cron_type)
|
||||
break;
|
||||
}
|
||||
|
||||
$search->tidy();
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$search, 'tidy'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$search->tidy();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -127,9 +156,16 @@ switch ($cron_type)
|
||||
break;
|
||||
}
|
||||
|
||||
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
|
||||
include_once(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT);
|
||||
|
||||
tidy_warnings();
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('tidy_warnings');
|
||||
}
|
||||
else
|
||||
{
|
||||
tidy_warnings();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -140,9 +176,16 @@ switch ($cron_type)
|
||||
break;
|
||||
}
|
||||
|
||||
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
|
||||
include_once(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT);
|
||||
|
||||
tidy_database();
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('tidy_database');
|
||||
}
|
||||
else
|
||||
{
|
||||
tidy_database();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -153,7 +196,14 @@ switch ($cron_type)
|
||||
break;
|
||||
}
|
||||
|
||||
$user->session_gc();
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function(array(&$user, 'session_gc'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$user->session_gc();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -176,16 +226,30 @@ switch ($cron_type)
|
||||
// Do the forum Prune thang
|
||||
if ($row['prune_next'] < time() && $row['enable_prune'])
|
||||
{
|
||||
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
|
||||
include_once(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT);
|
||||
|
||||
if ($row['prune_days'])
|
||||
{
|
||||
auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']);
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('auto_prune', $row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto_prune($row['forum_id'], 'posted', $row['forum_flags'], $row['prune_days'], $row['prune_freq']);
|
||||
}
|
||||
}
|
||||
|
||||
if ($row['prune_viewed'])
|
||||
{
|
||||
auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']);
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('auto_prune', $row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto_prune($row['forum_id'], 'viewed', $row['forum_flags'], $row['prune_viewed'], $row['prune_freq']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,8 +257,16 @@ switch ($cron_type)
|
||||
}
|
||||
|
||||
// Unloading cache and closing db after having done the dirty work.
|
||||
unlock_cron();
|
||||
garbage_collection();
|
||||
if ($use_shutdown_function)
|
||||
{
|
||||
register_shutdown_function('unlock_cron');
|
||||
register_shutdown_function('garbage_collection');
|
||||
}
|
||||
else
|
||||
{
|
||||
unlock_cron();
|
||||
garbage_collection();
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
|
@@ -1,11 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2004 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
// -------------------------------------------------------------
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// FILENAME : add_permissions.php
|
||||
// STARTED : Sat Nov 06, 2004
|
||||
// COPYRIGHT : <20> 2004 phpBB Group
|
||||
// WWW : http://www.phpbb.com/
|
||||
// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
|
||||
//
|
||||
// -------------------------------------------------------------
|
||||
|
||||
//
|
||||
// Security message:
|
||||
@@ -16,34 +20,10 @@
|
||||
//
|
||||
die("Please read the first lines of this script for instructions on how to enable it");
|
||||
|
||||
|
||||
// This script adds missing permissions
|
||||
$db = $dbhost = $dbuser = $dbpasswd = $dbport = $dbname = '';
|
||||
|
||||
define('IN_PHPBB', 1);
|
||||
define('ANONYMOUS', 1);
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
$phpbb_root_path='./../';
|
||||
include($phpbb_root_path . 'config.'.$phpEx);
|
||||
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.'.$phpEx);
|
||||
require($phpbb_root_path . 'includes/db/' . $dbms . '.'.$phpEx);
|
||||
include($phpbb_root_path . 'includes/functions.'.$phpEx);
|
||||
|
||||
define('ACL_NEVER', 0);
|
||||
define('ACL_YES', 1);
|
||||
define('ACL_NO', -1);
|
||||
|
||||
define('ACL_GROUPS_TABLE', $table_prefix.'acl_groups');
|
||||
define('ACL_OPTIONS_TABLE', $table_prefix.'acl_options');
|
||||
define('ACL_USERS_TABLE', $table_prefix.'acl_users');
|
||||
define('GROUPS_TABLE', $table_prefix.'groups');
|
||||
define('USERS_TABLE', $table_prefix.'users');
|
||||
|
||||
$cache = new acm();
|
||||
$db = new sql_db();
|
||||
|
||||
// Connect to DB
|
||||
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
require(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// auth => is_local, is_global
|
||||
$f_permissions = array(
|
||||
@@ -246,7 +226,7 @@ function mass_auth($ug_type, $forum_id, $ug_id, $acl_list, $setting)
|
||||
$sql = 'SELECT group_id FROM ' . GROUPS_TABLE . "
|
||||
WHERE group_name = '" . strtoupper($ug_id) . "'";
|
||||
$result = $db->sql_query_limit($sql, 1);
|
||||
$id = (int) $db->sql_fetchfield('group_id', 0, $result);
|
||||
$id = (int) $db->sql_fetchfield('group_id', $result);
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
if (!$id)
|
||||
@@ -410,4 +390,7 @@ function mass_auth($ug_type, $forum_id, $ug_id, $acl_list, $setting)
|
||||
|
||||
}
|
||||
|
||||
garbage_collection();
|
||||
exit_handler();
|
||||
|
||||
?>
|
@@ -9,9 +9,9 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
@@ -130,9 +130,9 @@ $db->sql_close();
|
||||
|
||||
function adjust_avatar($old_name, $midfix)
|
||||
{
|
||||
global $config, $phpbb_root_path;
|
||||
global $config;
|
||||
|
||||
$avatar_path = $phpbb_root_path . $config['avatar_path'];
|
||||
$avatar_path = PHPBB_ROOT_PATH . $config['avatar_path'];
|
||||
$extension = strtolower(substr(strrchr($old_name, '.'), 1));
|
||||
$new_name = $config['avatar_salt'] . '_' . $midfix . '.' . $extension;
|
||||
|
||||
|
@@ -11,10 +11,10 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
include(PHPBB_ROOT_PATH . 'includes/message_parser.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
|
@@ -10,9 +10,9 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
|
@@ -13,9 +13,9 @@ set_time_limit(0);
|
||||
@ini_set('memory_limit', '128M');
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
|
@@ -7,9 +7,9 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
|
@@ -12,9 +12,9 @@ set_time_limit(0);
|
||||
@ini_set('memory_limit', '512M');
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
|
@@ -9,9 +9,9 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
// Start session management
|
||||
$user->session_begin();
|
||||
|
@@ -1,462 +0,0 @@
|
||||
<?php
|
||||
|
||||
//
|
||||
// Security message:
|
||||
//
|
||||
// This script is potentially dangerous.
|
||||
// Remove or comment the next line (die(".... ) to enable this script.
|
||||
// Do NOT FORGET to either remove this script or disable it after you have used it.
|
||||
//
|
||||
die("Please read the first lines of this script for instructions on how to enable it");
|
||||
|
||||
//
|
||||
// Do not change anything below this line.
|
||||
//
|
||||
|
||||
|
||||
$phpbb_root_path = "../";
|
||||
include($phpbb_root_path . 'extension.inc');
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
include($phpbb_root_path . 'includes/post.'.$phpEx);
|
||||
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
|
||||
|
||||
srand ((double) microtime() * 1000000);
|
||||
set_time_limit(240*60);
|
||||
|
||||
// Here's the text we stick in posts..
|
||||
$bigass_text = '
|
||||
phpBB BBCode test suite v0.0.2
|
||||
auto-linkification:
|
||||
http://something.com
|
||||
www.something.com
|
||||
nate@phpbb.com
|
||||
http://something.com/foo.php?this=that&theother=some%20encoded%20string is a link.
|
||||
[code]
|
||||
Simple code block with some <html> <tags>.
|
||||
[/code]
|
||||
[b]bolded[/b], [i]italic[/i]
|
||||
[email]james@totalgeek.org[/email]
|
||||
[url=http://www.totalgeek.org]totalgeek.org[/url]
|
||||
[url]www.totalgeek.org[/url]
|
||||
[list]
|
||||
[*] This is the first bulleted item.
|
||||
[*] This is the second bulleted item.
|
||||
[/list]
|
||||
[list=A]
|
||||
[*] This is the first bulleted item.
|
||||
[*] This is the second bulleted item.
|
||||
[/list]
|
||||
[quote]
|
||||
And a quote!
|
||||
[/quote]
|
||||
';
|
||||
|
||||
|
||||
// The script expects the ID's in the tables to sequential (1,2,3,4,5),
|
||||
// so no holes please (1,4,5,8)...
|
||||
$nr_of_users = nrof(USERS_TABLE);
|
||||
$nr_of_cats = nrof(CATEGORIES_TABLE);
|
||||
$nr_of_forums = nrof(FORUMS_TABLE);
|
||||
$nr_of_posts = nrof(POSTS_TABLE);
|
||||
|
||||
$u = $users;
|
||||
|
||||
$starttime = microtime();
|
||||
|
||||
$usercreationcount = 0;
|
||||
while($users > 0)
|
||||
{
|
||||
|
||||
$name = "testuser_" . substr(md5(uniqid(rand())), 0, 10);
|
||||
if (make_user($name))
|
||||
{
|
||||
$usercreationcount++;
|
||||
$users--;
|
||||
}
|
||||
if (($usercreationcount % 500) == 0)
|
||||
{
|
||||
echo "status: $usercreationcount <br>\n";
|
||||
flush();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($posts > 0)
|
||||
{
|
||||
filldb($posts);
|
||||
}
|
||||
|
||||
$endtime = microtime();
|
||||
|
||||
if ($submit="" || !isset($submit))
|
||||
{
|
||||
?>
|
||||
Hello, welcome to this little phpBB Benchmarking script :)<p>
|
||||
|
||||
At the moment there are:<br>
|
||||
|
||||
<table>
|
||||
<tr><td align="right"><?php echo $nr_of_users?></td><td>Users</td></tr>
|
||||
<tr><td align="right"><?php echo $nr_of_forums?></td><td>Forums</td></tr>
|
||||
<tr><td align="right"><?php echo $nr_of_posts?></td><td>Posts</td></tr>
|
||||
</table>
|
||||
<p>
|
||||
What do you want to create?<p>
|
||||
|
||||
<form method="get" action="<?php echo $PHP_SELF?>">
|
||||
<input type="text" name="users" size="3"> Users<br>
|
||||
<input type="text" name="posts" size="3"> Posts/topics (optional: post size in <input type="text" name="size" size="3"> bytes)<br>
|
||||
<input type="submit" name="submit">
|
||||
</form>
|
||||
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
list ($starttime_msec,$starttime_sec) = explode(" ",$starttime);
|
||||
list ($endtime_msec,$endtime_sec) = explode(" ",$endtime);
|
||||
$timetaken_sec = ($endtime_sec+$endtime_msec) - ($starttime_sec+$starttime_msec);
|
||||
print "<B>TIME TAKEN : ".$timetaken_sec."s</B><BR>\n";
|
||||
|
||||
print "<p>\n<a href=\"$PHP_SELF\">Back to the overview page</a>\n";
|
||||
}
|
||||
|
||||
|
||||
function filldb($newposts)
|
||||
{
|
||||
global $nr_of_forums;
|
||||
global $nr_of_users;
|
||||
|
||||
$forum_topic_counts = array();
|
||||
|
||||
for ($i = 1; $i <= $nr_of_forums; $i++)
|
||||
{
|
||||
$forum_topic_counts[$i] = get_topic_count($i);
|
||||
}
|
||||
|
||||
for($i = 0; $i < $newposts; $i++)
|
||||
{
|
||||
$userid = rand(2, $nr_of_users - 1);
|
||||
$forum = rand(1,$nr_of_forums);
|
||||
|
||||
if ((rand(0,30) < 1) || ($forum_topic_count[$forum] == 0))
|
||||
{
|
||||
// create a new topic 1 in 30 times (or when there are none);
|
||||
$topic = make_topic($userid, "Testing topic $i", $forum);
|
||||
$forum_topic_count[$forum]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Otherwise create a reply(posting) somewhere.
|
||||
$topic = get_smallest_topic($forum);
|
||||
create_posting($userid, $topic, $forum, "reply");
|
||||
}
|
||||
|
||||
if (($i % 1000) == 0)
|
||||
{
|
||||
echo "status: $i <br>";
|
||||
flush();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function get_smallest_topic($forum_id)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$sql = "SELECT topic_id
|
||||
FROM " . TOPICS_TABLE . "
|
||||
WHERE (forum_id = $forum_id)
|
||||
ORDER BY topic_replies ASC LIMIT 1";
|
||||
if($result = $db->sql_query($sql))
|
||||
{
|
||||
$row = $db->sql_fetchrow($result);
|
||||
$topic_id = $row['topic_id'];
|
||||
|
||||
unset($result);
|
||||
unset($row);
|
||||
return $topic_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Couldn't get smallest topic.", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function get_topic_count($forum_id)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$sql = "SELECT forum_topics
|
||||
FROM " . FORUMS_TABLE . "
|
||||
WHERE (forum_id = $forum_id)";
|
||||
if($result = $db->sql_query($sql))
|
||||
{
|
||||
$row = $db->sql_fetchrow($result);
|
||||
$topic_count = $row['forum_topics'];
|
||||
|
||||
unset($result);
|
||||
unset($row);
|
||||
return $topic_count;
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Couldn't get topic count.", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function make_topic($user_id, $subject, $forum_id)
|
||||
{
|
||||
global $db;
|
||||
$topic_type = POST_NORMAL;
|
||||
$topic_vote = 0;
|
||||
$current_time = time();
|
||||
|
||||
$sql = "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote)
|
||||
VALUES ('$subject', $user_id, $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)";
|
||||
|
||||
if( $result = $db->sql_query($sql, BEGIN_TRANSACTION) )
|
||||
{
|
||||
$new_topic_id = $db->sql_nextid();
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Error inserting data into topics table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
create_posting($user_id, $new_topic_id, $forum_id);
|
||||
|
||||
return $new_topic_id;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function create_posting($userid, $topic_id, $forum, $mode='newtopic')
|
||||
{
|
||||
$message = generatepost();
|
||||
|
||||
return make_post($topic_id, $forum, $userid, "", $message, $mode);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function make_post($new_topic_id, $forum_id, $user_id, $post_username, $text, $mode='newtopic')
|
||||
{
|
||||
global $db;
|
||||
$current_time = time();
|
||||
$user_ip = "ac100202";
|
||||
$bbcode_on = 1;
|
||||
$html_on = 1;
|
||||
$smilies_on = 1;
|
||||
$attach_sig = 1;
|
||||
$bbcode_uid = make_bbcode_uid();
|
||||
|
||||
$post_subject = 'random subject';
|
||||
|
||||
$post_message = prepare_message($text, $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
|
||||
|
||||
$sql = "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, attach_id, icon_id, post_username, post_time, poster_ip, post_approved, bbcode_uid, enable_bbcode, enable_html, enable_smilies, enable_sig, post_subject, post_text)
|
||||
VALUES ($new_topic_id, $forum_id, $user_id, 0, 0, '$post_username', $current_time, '$user_ip', 1, '$bbcode_uid', $bbcode_on, $html_on, $smilies_on, $attach_sig, '$post_subject', '$post_message')";
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
if ($result)
|
||||
{
|
||||
$new_post_id = $db->sql_nextid();
|
||||
|
||||
$sql = "UPDATE " . TOPICS_TABLE . "
|
||||
SET topic_last_post_id = $new_post_id";
|
||||
if($mode == "reply")
|
||||
{
|
||||
$sql .= ", topic_replies = topic_replies + 1 ";
|
||||
}
|
||||
$sql .= " WHERE topic_id = $new_topic_id";
|
||||
|
||||
if($db->sql_query($sql))
|
||||
{
|
||||
$sql = "UPDATE " . FORUMS_TABLE . "
|
||||
SET forum_last_post_id = $new_post_id, forum_posts = forum_posts + 1";
|
||||
if($mode == "newtopic")
|
||||
{
|
||||
$sql .= ", forum_topics = forum_topics + 1";
|
||||
}
|
||||
$sql .= " WHERE forum_id = $forum_id";
|
||||
|
||||
if($db->sql_query($sql))
|
||||
{
|
||||
$sql = "UPDATE " . USERS_TABLE . "
|
||||
SET user_posts = user_posts + 1
|
||||
WHERE user_id = " . $user_id;
|
||||
|
||||
if($db->sql_query($sql, END_TRANSACTION))
|
||||
{
|
||||
// SUCCESS.
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Error updating users table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Error updating forums table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Rollback
|
||||
if($db->sql_layer == "mysql")
|
||||
{
|
||||
$sql = "DELETE FROM " . POSTS_TABLE . "
|
||||
WHERE post_id = $new_post_id";
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
message_die(GENERAL_ERROR, "Error updating topics table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Error inserting data into posts table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function generatepost($size=850)
|
||||
{
|
||||
global $bigass_text;
|
||||
// Returns a string with a length between $size and $size*0.2
|
||||
$size = rand(0.2*$size, $size);
|
||||
|
||||
$textsize = strlen($bigass_text);
|
||||
$currentsize = 0;
|
||||
// Add whole $text multiple times
|
||||
while($currentsize < $size && $size-$currentsize <= $textsize)
|
||||
{
|
||||
$message .= $bigass_text;
|
||||
$currentsize += $textsize;
|
||||
}
|
||||
// Add the remainder number of chars and return it.
|
||||
$message .= substr($bigass_text, 0, $size-$currentsize);
|
||||
|
||||
return (addslashes($message));
|
||||
}
|
||||
|
||||
|
||||
function nrof($table)
|
||||
{
|
||||
global $db;
|
||||
$sql = "SELECT count(*) AS counted FROM $table";
|
||||
$result = $db->sql_query($sql);
|
||||
$topics = $db->sql_fetchrow($result);
|
||||
return $topics[counted];
|
||||
}
|
||||
|
||||
|
||||
function make_user($username)
|
||||
{
|
||||
global $db, $board_config;
|
||||
|
||||
$password = md5("benchpass");
|
||||
$email = "nobody@localhost";
|
||||
$icq = "12345678";
|
||||
$website = "http://www.phpbb.com";
|
||||
$occupation = "phpBB tester";
|
||||
$location = "phpBB world hq";
|
||||
$interests = "Eating, sleeping, living, and breathing phpBB";
|
||||
$signature = "$username: phpBB tester.";
|
||||
$signature_bbcode_uid = "";
|
||||
$avatar_filename = "";
|
||||
$viewemail = 0;
|
||||
$aim = 0;
|
||||
$yim = 0;
|
||||
$msn = 0;
|
||||
$attachsig = 1;
|
||||
$allowsmilies = 1;
|
||||
$allowhtml = 1;
|
||||
$allowbbcode = 1;
|
||||
$allowviewonline = 1;
|
||||
$notifyreply = 0;
|
||||
$notifypm = 0;
|
||||
$user_timezone = $board_config['board_timezone'];
|
||||
$user_dateformat = $board_config['default_dateformat'];
|
||||
$user_lang = $board_config['default_lang'];
|
||||
$user_style = $board_config['default_style'];
|
||||
|
||||
|
||||
$sql = "SELECT MAX(user_id) AS total
|
||||
FROM " . USERS_TABLE;
|
||||
if($result = $db->sql_query($sql))
|
||||
{
|
||||
$row = $db->sql_fetchrow($result);
|
||||
$new_user_id = $row['total'] + 1;
|
||||
|
||||
unset($result);
|
||||
unset($row);
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Couldn't obtained next user_id information.", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
$sql = "SELECT MAX(group_id) AS total
|
||||
FROM " . GROUPS_TABLE;
|
||||
if($result = $db->sql_query($sql))
|
||||
{
|
||||
$row = $db->sql_fetchrow($result);
|
||||
$new_group_id = $row['total'] + 1;
|
||||
|
||||
unset($result);
|
||||
unset($row);
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Couldn't obtained next user_id information.", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
|
||||
$sql = "INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmilies, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey)
|
||||
VALUES ($new_user_id, '$username', " . time() . ", '$password', '$email', '$icq', '$website', '$occupation', '$location', '$interests', '$signature', '$signature_bbcode_uid', '$avatar_filename', $viewemail, '$aim', '$yim', '$msn', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $user_timezone, '$user_dateformat', '$user_lang', $user_style, 0, 1, ";
|
||||
|
||||
|
||||
$sql .= "1, '')";
|
||||
|
||||
if($result = $db->sql_query($sql, BEGIN_TRANSACTION))
|
||||
{
|
||||
$sql = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator)
|
||||
VALUES ($new_group_id, '', 'Personal User', 1, 0)";
|
||||
if($result = $db->sql_query($sql))
|
||||
{
|
||||
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
|
||||
VALUES ($new_user_id, $new_group_id, 0)";
|
||||
if($result = $db->sql_query($sql, END_TRANSACTION))
|
||||
{
|
||||
|
||||
// SUCCESS.
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Couldn't insert data into user_group table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Couldn't insert data into groups table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message_die(GENERAL_ERROR, "Couldn't insert data into users table", "", __LINE__, __FILE__, $sql);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
@@ -1,11 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2004 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
// -------------------------------------------------------------
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// FILENAME : calc_email_hash.php
|
||||
// STARTED : Tue Feb 03, 2004
|
||||
// COPYRIGHT : <20> 2004 phpBB Group
|
||||
// WWW : http://www.phpbb.com/
|
||||
// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
|
||||
//
|
||||
// -------------------------------------------------------------
|
||||
|
||||
//
|
||||
// Security message:
|
||||
@@ -17,22 +21,10 @@
|
||||
die("Please read the first lines of this script for instructions on how to enable it");
|
||||
@set_time_limit(300);
|
||||
|
||||
$db = $dbhost = $dbuser = $dbpasswd = $dbport = $dbname = '';
|
||||
|
||||
define('IN_PHPBB', 1);
|
||||
define('ANONYMOUS', 1);
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
$phpbb_root_path='./../';
|
||||
include($phpbb_root_path . 'config.'.$phpEx);
|
||||
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.'.$phpEx);
|
||||
require($phpbb_root_path . 'includes/db/' . $dbms . '.'.$phpEx);
|
||||
include($phpbb_root_path . 'includes/functions.'.$phpEx);
|
||||
|
||||
$cache = new acm();
|
||||
$db = new sql_db();
|
||||
|
||||
// Connect to DB
|
||||
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
$start = 0;
|
||||
do
|
||||
|
@@ -1,11 +1,23 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2003 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
/***************************************************************************
|
||||
* merge_clean_posts.php
|
||||
* -------------------
|
||||
* begin : Tuesday, February 25, 2003
|
||||
* copyright : (C) 2003 The phpBB Group
|
||||
* email : support@phpbb.com
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
//
|
||||
// Security message:
|
||||
@@ -18,23 +30,9 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
|
||||
@set_time_limit(2400);
|
||||
|
||||
// This script adds missing permissions
|
||||
$db = $dbhost = $dbuser = $dbpasswd = $dbport = $dbname = '';
|
||||
|
||||
define('IN_PHPBB', 1);
|
||||
define('ANONYMOUS', 1);
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
$phpbb_root_path='./../';
|
||||
include($phpbb_root_path . 'config.'.$phpEx);
|
||||
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.'.$phpEx);
|
||||
require($phpbb_root_path . 'includes/db/' . $dbms . '.'.$phpEx);
|
||||
include($phpbb_root_path . 'includes/functions.'.$phpEx);
|
||||
|
||||
$cache = new acm();
|
||||
$db = new $sql_db();
|
||||
|
||||
// Connect to DB
|
||||
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
|
||||
$sql = "SELECT post_id, post_text FROM {$table_prefix}posts WHERE post_text LIKE '%{SMILE_PATH}%'";
|
||||
$result = $db->sql_query($sql);
|
||||
|
@@ -1,160 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2009, 2010 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
* This script will check your database for potentially dangerous flash BBCode tags
|
||||
*
|
||||
*/
|
||||
|
||||
//
|
||||
// Security message:
|
||||
//
|
||||
// This script is potentially dangerous.
|
||||
// Remove or comment the next line (die(".... ) to enable this script.
|
||||
// Do NOT FORGET to either remove this script or disable it after you have used it.
|
||||
//
|
||||
die("Please read the first lines of this script for instructions on how to enable it\n");
|
||||
|
||||
/**
|
||||
*/
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.' . $phpEx);
|
||||
|
||||
if (php_sapi_name() != 'cli')
|
||||
{
|
||||
header('Content-Type: text/plain');
|
||||
}
|
||||
|
||||
check_table_flash_bbcodes(POSTS_TABLE, 'post_id', 'post_text', 'bbcode_uid', 'bbcode_bitfield');
|
||||
check_table_flash_bbcodes(PRIVMSGS_TABLE, 'msg_id', 'message_text', 'bbcode_uid', 'bbcode_bitfield');
|
||||
check_table_flash_bbcodes(USERS_TABLE, 'user_id', 'user_sig', 'user_sig_bbcode_uid', 'user_sig_bbcode_bitfield');
|
||||
check_table_flash_bbcodes(FORUMS_TABLE, 'forum_id', 'forum_desc', 'forum_desc_uid', 'forum_desc_bitfield');
|
||||
check_table_flash_bbcodes(FORUMS_TABLE, 'forum_id', 'forum_rules', 'forum_rules_uid', 'forum_rules_bitfield');
|
||||
check_table_flash_bbcodes(GROUPS_TABLE, 'group_id', 'group_desc', 'group_desc_uid', 'group_desc_bitfield');
|
||||
|
||||
echo "If potentially dangerous flash bbcodes were found, please reparse the posts using the Support Toolkit (http://www.phpbb.com/support/stk/) and/or file a ticket in the Incident Tracker (http://www.phpbb.com/incidents/).\n";
|
||||
|
||||
function check_table_flash_bbcodes($table_name, $id_field, $content_field, $uid_field, $bitfield_field)
|
||||
{
|
||||
echo "Checking $content_field on $table_name\n";
|
||||
|
||||
$ids = get_table_flash_bbcode_pkids($table_name, $id_field, $content_field, $uid_field, $bitfield_field);
|
||||
|
||||
$size = sizeof($ids);
|
||||
if ($size)
|
||||
{
|
||||
echo "Found $size potentially dangerous flash bbcodes.\n";
|
||||
echo "$id_field: " . implode(', ', $ids) . "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "No potentially dangerous flash bbcodes found.\n";
|
||||
}
|
||||
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
function get_table_flash_bbcode_pkids($table_name, $id_field, $content_field, $uid_field, $bitfield_field)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$ids = array();
|
||||
|
||||
$sql = "SELECT $id_field, $content_field, $uid_field, $bitfield_field
|
||||
FROM $table_name
|
||||
WHERE $content_field LIKE '%[/flash:%'
|
||||
AND $bitfield_field <> ''";
|
||||
|
||||
$result = $db->sql_query($sql);
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$uid = $row[$uid_field];
|
||||
|
||||
// thanks support toolkit
|
||||
$content = html_entity_decode_utf8($row[$content_field]);
|
||||
set_var($content, $content, 'string', true);
|
||||
$content = utf8_normalize_nfc($content);
|
||||
|
||||
$bitfield_data = $row[$bitfield_field];
|
||||
|
||||
if (!is_valid_flash_bbcode($content, $uid) && has_flash_enabled($bitfield_data))
|
||||
{
|
||||
$ids[] = (int) $row[$id_field];
|
||||
}
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
return $ids;
|
||||
}
|
||||
|
||||
function get_flash_regex($uid)
|
||||
{
|
||||
return "#\[flash=([0-9]+),([0-9]+):$uid\](.*?)\[/flash:$uid\]#";
|
||||
}
|
||||
|
||||
// extract all valid flash bbcodes
|
||||
// check if the bbcode content is a valid URL for each match
|
||||
function is_valid_flash_bbcode($cleaned_content, $uid)
|
||||
{
|
||||
$regex = get_flash_regex($uid);
|
||||
|
||||
$url_regex = get_preg_expression('url');
|
||||
$www_url_regex = get_preg_expression('www_url');
|
||||
|
||||
if (preg_match_all($regex, $cleaned_content, $matches))
|
||||
{
|
||||
foreach ($matches[3] as $flash_url)
|
||||
{
|
||||
if (!preg_match("#^($url_regex|$www_url_regex)$#i", $flash_url))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if a bitfield includes flash
|
||||
// 11 = flash bit
|
||||
function has_flash_enabled($bitfield_data)
|
||||
{
|
||||
$bitfield = new bitfield($bitfield_data);
|
||||
return $bitfield->get(11);
|
||||
}
|
||||
|
||||
// taken from support toolkit
|
||||
function html_entity_decode_utf8($string)
|
||||
{
|
||||
static $trans_tbl;
|
||||
|
||||
// replace numeric entities
|
||||
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'code2utf8(hexdec("\\1"))', $string);
|
||||
$string = preg_replace('~&#([0-9]+);~e', 'code2utf8(\\1)', $string);
|
||||
|
||||
// replace literal entities
|
||||
if (!isset($trans_tbl))
|
||||
{
|
||||
$trans_tbl = array();
|
||||
|
||||
foreach (get_html_translation_table(HTML_ENTITIES) as $val=>$key)
|
||||
$trans_tbl[$key] = utf8_encode($val);
|
||||
}
|
||||
return strtr($string, $trans_tbl);
|
||||
}
|
||||
|
||||
// taken from support toolkit
|
||||
// Returns the utf string corresponding to the unicode value (from php.net, courtesy - romans@void.lv)
|
||||
function code2utf8($num)
|
||||
{
|
||||
if ($num < 128) return chr($num);
|
||||
if ($num < 2048) return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
|
||||
if ($num < 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
|
||||
if ($num < 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
|
||||
return '';
|
||||
}
|
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
DIR=$(dirname "$0")/../cache;
|
||||
cat "$DIR/sql_*.php" | grep '/* SELECT' | sed 's,/\* ,,;s, \*/,,' | sort
|
File diff suppressed because it is too large
Load Diff
@@ -1,137 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2011 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
if (php_sapi_name() != 'cli')
|
||||
{
|
||||
die("This program must be run from the command line.\n");
|
||||
}
|
||||
|
||||
if ($argc < 2)
|
||||
{
|
||||
echo 'Usage: php ' . basename(__FILE__) . " index_type [batch_size]\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$class_name = basename($argv[1]);
|
||||
|
||||
define('IN_PHPBB', 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/acp/acp_search.' . $phpEx);
|
||||
require($phpbb_root_path . 'includes/search/' . $class_name . '.' . $phpEx);
|
||||
|
||||
$user->session_begin();
|
||||
$auth->acl($user->data);
|
||||
$user->setup('acp/search');
|
||||
|
||||
$search_name = ucfirst(strtolower(str_replace('_', ' ', $class_name)));
|
||||
$search_errors = array();
|
||||
$search = new $class_name($search_errors);
|
||||
|
||||
$batch_size = isset($argv[2]) ? $argv[2] : 2000;
|
||||
|
||||
if (method_exists($search, 'create_index'))
|
||||
{
|
||||
if ($error = $search->create_index(null, ''))
|
||||
{
|
||||
var_dump($error);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = 'SELECT forum_id, enable_indexing
|
||||
FROM ' . FORUMS_TABLE;
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
$forums[$row['forum_id']] = (bool) $row['enable_indexing'];
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
$sql = 'SELECT post_id
|
||||
FROM ' . POSTS_TABLE . '
|
||||
ORDER BY post_id DESC';
|
||||
$result = $db->sql_query_limit($sql, 1);
|
||||
$max_post_id = (int) $db->sql_fetchfield('post_id');
|
||||
|
||||
$post_counter = 0;
|
||||
while ($post_counter <= $max_post_id)
|
||||
{
|
||||
$row_count = 0;
|
||||
$time = time();
|
||||
|
||||
printf("Processing posts with %d <= post_id <= %d\n",
|
||||
$post_counter + 1,
|
||||
$post_counter + $batch_size
|
||||
);
|
||||
|
||||
$sql = 'SELECT post_id, post_subject, post_text, poster_id, forum_id
|
||||
FROM ' . POSTS_TABLE . '
|
||||
WHERE post_id >= ' . (int) ($post_counter + 1) . '
|
||||
AND post_id <= ' . (int) ($post_counter + $batch_size);
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$buffer = $db->sql_buffer_nested_transactions();
|
||||
|
||||
if ($buffer)
|
||||
{
|
||||
$rows = $db->sql_fetchrowset($result);
|
||||
$rows[] = false; // indicate end of array for while loop below
|
||||
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
while ($row = ($buffer ? $rows[$i++] : $db->sql_fetchrow($result)))
|
||||
{
|
||||
// Indexing enabled for this forum or global announcement?
|
||||
// Global announcements get indexed by default.
|
||||
if (!$row['forum_id'] || !empty($forums[$row['forum_id']]))
|
||||
{
|
||||
++$row_count;
|
||||
|
||||
$search->index('post',
|
||||
$row['post_id'],
|
||||
$row['post_text'],
|
||||
$row['post_subject'],
|
||||
$row['poster_id'],
|
||||
$row['forum_id']
|
||||
);
|
||||
|
||||
if ($row_count % 10 == 0)
|
||||
{
|
||||
echo '.';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$delta = (time() - $time);
|
||||
$delta = $delta <= 0 ? 1 : $delta;
|
||||
printf(" %d posts/sec\n", $row_count / $delta);
|
||||
|
||||
if (!$buffer)
|
||||
{
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
$post_counter += $batch_size;
|
||||
}
|
||||
}
|
||||
|
||||
$search->tidy();
|
||||
|
||||
add_log('admin', 'LOG_SEARCH_INDEX_CREATED', $search_name);
|
||||
|
||||
echo $user->lang['SEARCH_INDEX_CREATED'] . "\n";
|
||||
echo 'Peak Memory Usage: ' . get_formatted_filesize(memory_get_peak_usage()) . "\n";
|
||||
|
||||
exit(0);
|
@@ -1,13 +1,19 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2003 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
* This script generates an index of some template vars and their use within the templates.
|
||||
* It writes down all language variables used by various templates.
|
||||
*
|
||||
// -------------------------------------------------------------
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// FILENAME : create_variable_overview.php
|
||||
// STARTED : Fri Aug 15 2003
|
||||
// COPYRIGHT : <20> 2003 phpBB Group
|
||||
// WWW : http://www.phpbb.com/
|
||||
// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
|
||||
//
|
||||
// -------------------------------------------------------------
|
||||
|
||||
/*
|
||||
This script generates an index of some template vars and their use within the templates.
|
||||
It writes down all language variables used by various templates.
|
||||
*/
|
||||
|
||||
//
|
||||
@@ -77,7 +83,7 @@ $html_skeleton .= '<br><br><a name="ref"></a><b>References: </b>{SEE_FILES}';
|
||||
|
||||
$html_skeleton .= '
|
||||
<br><br>
|
||||
<div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Group</div>
|
||||
<div class="copyright" align="center">Powered by phpBB 2.2 © <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB Group</a>, 2003</div>
|
||||
|
||||
<br clear="all" /></td>
|
||||
</tr>
|
||||
@@ -399,7 +405,7 @@ $html_data .= '<br><li><a href="./lang_index.html" class="gen">Appendix A: Langu
|
||||
|
||||
$html_data .= '
|
||||
</ol><br><br>
|
||||
<div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Group</div>
|
||||
<div class="copyright" align="center">Powered by phpBB 2.2 © <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB Group</a>, 2003</div>
|
||||
|
||||
<br clear="all" /></td>
|
||||
</tr>
|
||||
@@ -522,7 +528,7 @@ foreach ($lang_fp as $filepointer)
|
||||
|
||||
$html_data .= '
|
||||
<br><br>
|
||||
<div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Group</div>
|
||||
<div class="copyright" align="center">Powered by phpBB 2.2 © <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB Group</a>, 2003</div>
|
||||
|
||||
<br clear="all" /></td>
|
||||
</tr>
|
||||
|
@@ -1,12 +1,15 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @copyright (c) 2001, 2003 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
// -------------------------------------------------------------
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// FILENAME : fill.php
|
||||
// STARTED : Mon Sep 15, 2003
|
||||
// COPYRIGHT : <20> 2001, 2003 phpBB Group
|
||||
// WWW : http://www.phpbb.com/
|
||||
// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
|
||||
//
|
||||
// -------------------------------------------------------------
|
||||
//
|
||||
// Security message:
|
||||
//
|
||||
@@ -18,10 +21,10 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = './../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
include($phpbb_root_path . 'common.'.$phpEx);
|
||||
include($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
|
||||
include(PHPBB_ROOT_PATH . 'includes/functions_admin.' . PHP_EXT);
|
||||
|
||||
set_time_limit(0);
|
||||
header('Expires: 0');
|
||||
@@ -114,14 +117,14 @@ switch ($mode)
|
||||
|
||||
if ($topic_id >= $num_topics)
|
||||
{
|
||||
echo '<meta http-equiv="refresh" content="10; url=fill.' . $phpEx . '?mode=sync&' . time() . '">And now for something completely different...';
|
||||
echo '<meta http-equiv="refresh" content="10; url=fill.' . PHP_EXT . '?mode=sync&' . time() . '">And now for something completely different...';
|
||||
|
||||
$db->sql_query('ANALYZE TABLES ' . TOPICS_TABLE . ', ' . POSTS_TABLE);
|
||||
flush();
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<meta http-equiv="refresh" content="10; url=fill.' . $phpEx . '?start=' . $topic_id . '&' . time() . '">To the next page... (' . $topic_id . '/' . $num_topics . ')';
|
||||
echo '<meta http-equiv="refresh" content="10; url=fill.' . PHP_EXT . '?start=' . $topic_id . '&' . time() . '">To the next page... (' . $topic_id . '/' . $num_topics . ')';
|
||||
flush();
|
||||
}
|
||||
break;
|
||||
@@ -138,7 +141,7 @@ switch ($mode)
|
||||
$e = explode(' ', microtime());
|
||||
|
||||
echo '<pre><b>' . ($e[0] + $e[1] - $s[0] - $s[1]) . '</b></pre>';
|
||||
echo '<a href="fill.' . $phpEx . '">Here we go again</a>';
|
||||
echo '<a href="fill.' . PHP_EXT . '">Here we go again</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -154,11 +157,11 @@ switch ($mode)
|
||||
if ($end < $num_topics)
|
||||
{
|
||||
$start += $batch_size;
|
||||
echo '<meta http-equiv="refresh" content="0; url=fill.' . $phpEx . "?mode=sync&start=$start&" . time() . "\">And now for something completely different... ($start/$num_topics)";
|
||||
echo '<meta http-equiv="refresh" content="0; url=fill.' . PHP_EXT . "?mode=sync&start=$start&" . time() . "\">And now for something completely different... ($start/$num_topics)";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<a href="fill.' . $phpEx . '">Here we go again</a>';
|
||||
echo '<a href="fill.' . PHP_EXT . '">Here we go again</a>';
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -14,16 +14,16 @@ find . > FILELIST.$$
|
||||
grep -sv FILELIST FILELIST.$$ > FILELIST2.$$
|
||||
grep -sv $(basename $0) FILELIST2.$$ > FILELIST.$$
|
||||
grep -sv "^\.$" FILELIST.$$ > FILELIST2.$$
|
||||
file -f FILELIST2.$$ |grep text | grep -v icon_textbox_search.gif | sed -e 's/^\([^\:]*\)\:.*$/\1/' > FILELIST
|
||||
file -f FILELIST2.$$ |grep text | sed -e 's/^\([^\:]*\)\:.*$/\1/' > FILELIST
|
||||
file -f FILELIST2.$$ |grep -sv text | sed -e 's/^\([^\:]*\)\:.*$/Not Modifying file: \1/'
|
||||
rm FILELIST2.$$
|
||||
rm FILELIST.$$
|
||||
|
||||
for i in $(cat FILELIST); do
|
||||
if [ -f $i ]; then
|
||||
cat $i | tr -d '\r' > $i.tmp
|
||||
mv $i.tmp $i
|
||||
sed -e s/
|
||||
//g $i > $i.tmp
|
||||
mv $i.tmp $i
|
||||
fi
|
||||
done
|
||||
rm FILELIST
|
||||
|
||||
|
@@ -2,8 +2,9 @@
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @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
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -24,8 +25,8 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = '../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
|
||||
echo "Checking for required files\n";
|
||||
download('http://unicode.org/Public/UNIDATA/CaseFolding.txt');
|
||||
@@ -70,8 +71,8 @@ foreach ($array as $value)
|
||||
|
||||
foreach ($uniarray as $idx => $contents)
|
||||
{
|
||||
echo "Writing to case_fold_$idx.$phpEx\n";
|
||||
$fp = fopen($phpbb_root_path . 'includes/utf/data/case_fold_' . strtolower($idx) . '.' . $phpEx, 'wb');
|
||||
echo "Writing to case_fold_$idx." . PHP_EXT . "\n";
|
||||
$fp = fopen(PHPBB_ROOT_PATH . 'includes/utf/data/case_fold_' . strtolower($idx) . '.' . PHP_EXT, 'wb');
|
||||
fwrite($fp, '<?php return ' . my_var_export($contents) . ';');
|
||||
fclose($fp);
|
||||
}
|
||||
@@ -111,13 +112,11 @@ function my_var_export($var)
|
||||
* Download a file to the develop/ dir
|
||||
*
|
||||
* @param string $url URL of the file to download
|
||||
* @return null
|
||||
* @return void
|
||||
*/
|
||||
function download($url)
|
||||
{
|
||||
global $phpbb_root_path;
|
||||
|
||||
if (file_exists($phpbb_root_path . 'develop/' . basename($url)))
|
||||
if (file_exists(PHPBB_ROOT_PATH . 'develop/' . basename($url)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -129,7 +128,7 @@ function download($url)
|
||||
die("Can't download from $url\nPlease download it yourself and put it in the develop/ dir, kthxbai");
|
||||
}
|
||||
|
||||
if (!$fpw = fopen($phpbb_root_path . 'develop/' . basename($url), 'wb'))
|
||||
if (!$fpw = fopen(PHPBB_ROOT_PATH . 'develop/' . basename($url), 'wb'))
|
||||
{
|
||||
die("Can't open develop/" . basename($url) . " for output... please check your permissions or something");
|
||||
}
|
||||
|
@@ -2,8 +2,9 @@
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @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
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -24,8 +25,8 @@ die("Please read the first lines of this script for instructions on how to enabl
|
||||
set_time_limit(0);
|
||||
|
||||
define('IN_PHPBB', true);
|
||||
$phpbb_root_path = '../';
|
||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||
define('PHPBB_ROOT_PATH', './../');
|
||||
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
|
||||
|
||||
echo "Checking for required files\n";
|
||||
download('http://unicode.org/reports/tr39/data/confusables.txt');
|
||||
@@ -113,14 +114,10 @@ $uniarray = array(
|
||||
|
||||
$copy = $uniarray;
|
||||
|
||||
/**
|
||||
* @todo we need to check that the $uniarray does not reverse any of the mappings defined in the unicode definition
|
||||
*/
|
||||
|
||||
foreach ($array as $value)
|
||||
{
|
||||
$temp_hold = implode(array_map('utf8_chr', array_map('hexdec', explode(' ', trim($value[2])))));
|
||||
|
||||
|
||||
if (isset($copy[utf8_chr(hexdec((string)$value[1]))]))
|
||||
{
|
||||
$num = '';
|
||||
@@ -158,9 +155,9 @@ foreach ($array as $value)
|
||||
$uniarray[utf8_chr(hexdec((string)$value[1]))] = $temp_hold;
|
||||
}
|
||||
|
||||
echo "Writing to confusables.$phpEx\n";
|
||||
echo "Writing to confusables." . PHP_EXT . "\n";
|
||||
|
||||
$fp = fopen($phpbb_root_path . 'includes/utf/data/confusables.' . $phpEx, 'wb');
|
||||
$fp = fopen(PHPBB_ROOT_PATH . 'includes/utf/data/confusables.' . PHP_EXT, 'wb');
|
||||
fwrite($fp, '<?php return ' . my_var_export($uniarray) . ';');
|
||||
fclose($fp);
|
||||
|
||||
@@ -199,13 +196,11 @@ function my_var_export($var)
|
||||
* Download a file to the develop/ dir
|
||||
*
|
||||
* @param string $url URL of the file to download
|
||||
* @return null
|
||||
* @return void
|
||||
*/
|
||||
function download($url)
|
||||
{
|
||||
global $phpbb_root_path;
|
||||
|
||||
if (file_exists($phpbb_root_path . 'develop/' . basename($url)))
|
||||
if (file_exists(PHPBB_ROOT_PATH . 'develop/' . basename($url)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -217,7 +212,7 @@ function download($url)
|
||||
die("Can't download from $url\nPlease download it yourself and put it in the develop/ dir, kthxbai");
|
||||
}
|
||||
|
||||
if (!$fpw = fopen($phpbb_root_path . 'develop/' . basename($url), 'wb'))
|
||||
if (!$fpw = fopen(PHPBB_ROOT_PATH . 'develop/' . basename($url), 'wb'))
|
||||
{
|
||||
die("Can't open develop/" . basename($url) . " for output... please check your permissions or something");
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user