1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-09 15:50:45 +02:00

Compare commits

..

356 Commits

Author SHA1 Message Date
Meik Sievertsen
1ef96b504d Tag Trunk before we change it to a state where merges from the 3.0.x branch are no longer possible
git-svn-id: file:///svn/phpbb/tags/merge_point_20082412@9220 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-24 13:11:39 +00:00
Meik Sievertsen
8c9af252cb merge #r9217
git-svn-id: file:///svn/phpbb/trunk@9218 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-24 12:11:31 +00:00
Chris Smith
7e95a3ee6c merge in r9090, r9170, r9174, r9179
git-svn-id: file:///svn/phpbb/trunk@9214 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-23 13:53:13 +00:00
Chris Smith
79f2dedb51 Remove cache files after each test, ensure they are not included in the coverage report
git-svn-id: file:///svn/phpbb/trunk@9181 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-07 02:26:47 +00:00
Chris Smith
c48f64ce94 Should not be needed, unlink() should clear sthe cache and this was never the problem anyway
git-svn-id: file:///svn/phpbb/trunk@9180 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-07 02:11:12 +00:00
Meik Sievertsen
a39e879300 fix postcount resync for situations where low and high post ids are higher than step value, resulting in users having 0 posts. (Bug #38195)
Enforce a requirement for some DBMS (Oracle, PostgreSQL, MSSQL) where the table order is quite important in some situations. ;) Since this does not affect the operation of the other DBMS the code is placed into dbal.php.


git-svn-id: file:///svn/phpbb/trunk@9176 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-05 11:21:01 +00:00
Meik Sievertsen
a0c9705bb7 every second commit an pre/post-commit error... :/
Ask for forum password if post within passworded forum quoted in private message (Reported by nickvergessen)


git-svn-id: file:///svn/phpbb/trunk@9169 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-03 16:48:58 +00:00
Meik Sievertsen
bb5c5adab1 correctly update last topic/forum information if changing guest usernames through editing posts - Bug #38095
(Changelog follows)

git-svn-id: file:///svn/phpbb/trunk@9167 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-03 16:43:20 +00:00
Meik Sievertsen
c076becc5a Use "less than a minute ago" instead of "0 minutes ago"
Use "Sent: {DATE}" in pm's, instead of "Sent at: {DATE}"

git-svn-id: file:///svn/phpbb/trunk@9163 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-03 11:19:25 +00:00
Meik Sievertsen
4e3d564be6 fix the no_profile one called after another mode with the same user_id and guest_username
git-svn-id: file:///svn/phpbb/trunk@9161 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-03 11:17:30 +00:00
Meik Sievertsen
16e8b8271b ok... now i remember. Added more precise comments
git-svn-id: file:///svn/phpbb/trunk@9159 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-03 09:42:10 +00:00
Chris Smith
9ef743ba7d fix tiny typos in r9087
git-svn-id: file:///svn/phpbb/trunk@9158 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-02 20:04:27 +00:00
Chris Smith
79dc2e79b2 Merge in r9156
git-svn-id: file:///svn/phpbb/trunk@9157 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-02 18:49:02 +00:00
Meik Sievertsen
a236d24ae5 Add same redirect disable_cd_check parameter to meta_refresh - #38065
git-svn-id: file:///svn/phpbb/trunk@9154 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-02 17:04:13 +00:00
Meik Sievertsen
eddddaa3a4 Slight performance increase for common parameter calls to append_sid() (Bug #37555 - Patch by BartVB)
Unsure if this works with the mysterious, uncommented block in front of it, the parsed_urls thingy... whoever wrote it, please prod me. :) Or add comments.

git-svn-id: file:///svn/phpbb/trunk@9151 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-02 16:27:44 +00:00
Meik Sievertsen
d054940739 Performance increase for get_username_string() (Bug #37545 - Patch by BartVB)
git-svn-id: file:///svn/phpbb/trunk@9149 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-02 16:22:03 +00:00
Chris Smith
45ac6aba10 merge in r9145
git-svn-id: file:///svn/phpbb/trunk@9147 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-01 17:28:32 +00:00
Chris Smith
b68a102491 merge in r9144
git-svn-id: file:///svn/phpbb/trunk@9145 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-01 17:04:58 +00:00
Chris Smith
be17000b92 Clear the stat cache of cache files after writing them
git-svn-id: file:///svn/phpbb/trunk@9143 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-01 16:56:57 +00:00
Chris Smith
f49fe16766 Fixed :D
git-svn-id: file:///svn/phpbb/trunk@9142 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-12-01 16:37:52 +00:00
Meik Sievertsen
132a1d2efa do not display ban link for own profile
git-svn-id: file:///svn/phpbb/trunk@9141 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-30 17:46:54 +00:00
Meik Sievertsen
81b57da147 force full date on "edited by" line. ;)
git-svn-id: file:///svn/phpbb/trunk@9139 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-30 16:56:31 +00:00
Meik Sievertsen
4379b3d7bc [Change] Performance increase for format_date() (Bug #37575 - Patch by BartVB)
[Change] Changed prosilver date separator from 'on' to '»'
[Feature] Added 'AGO' setting to relative date strings. For example: posted 14 minutes ago. (Patch by BartVB)
[Fix] Extend vertical line for last post column if no posts in forum (Bug #37125)


git-svn-id: file:///svn/phpbb/trunk@9137 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-30 14:43:25 +00:00
Meik Sievertsen
b4bf675273 Do not increment users post count after post approval if post had been posted in a forum with no post count increasing set (Bug #37865)
git-svn-id: file:///svn/phpbb/trunk@9134 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-30 12:05:15 +00:00
Meik Sievertsen
764c1c4f2b Let's face it - the most common setup we see with phpBB is having group-specific settings for external users (FTP, whatever).
Changed phpbb_chmod() to set the group bit, even if the PHP user is the owner. (somehow this sounds complicated, i hope you get the idea).

git-svn-id: file:///svn/phpbb/trunk@9132 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-30 11:50:23 +00:00
Meik Sievertsen
0d92e30b38 extend the style columns (style_id, template_id, imageset_id, image_id...)
No, not only because of possible style demos. :o

git-svn-id: file:///svn/phpbb/trunk@9130 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-27 13:46:54 +00:00
Chris Smith
d57b4d0b48 Test empty filename and invalid handle
git-svn-id: file:///svn/phpbb/trunk@9119 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-25 00:50:21 +00:00
Chris Smith
de51ec8a15 Test empty filename
git-svn-id: file:///svn/phpbb/trunk@9118 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-25 00:46:22 +00:00
Chris Smith
7b5dc8f3c5 Test missing files
git-svn-id: file:///svn/phpbb/trunk@9117 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-25 00:42:32 +00:00
Chris Smith
c95f0c7935 - Add template variable S_BLOCK_NAME
- Modify template::alter_block_array() so it supports modification of nested blocks
- Add (incomplete) tests for template::alter_block_array()


git-svn-id: file:///svn/phpbb/trunk@9116 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-25 00:31:32 +00:00
Chris Smith
332521a369 - Make a start on completing the phpDoc comments for the template engine
- Tidy template engine code, mainly PHP5 stuff, made some methods void instead of just returning true
- Add tests for the remaining untested compilation code


git-svn-id: file:///svn/phpbb/trunk@9115 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 21:59:33 +00:00
Nils Adermann
9954d9c29f - merge r9113: Handle checking for duplicate usernames in chunks (Bug #17285 - Patch by A_Jelly_Doughnut)
git-svn-id: file:///svn/phpbb/trunk@9114 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 19:31:44 +00:00
Nils Adermann
81c44f8351 - added a PHPUnit version check
git-svn-id: file:///svn/phpbb/trunk@9112 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 13:41:39 +00:00
Chris Smith
f816e67c36 Test is (even|odd) by y
git-svn-id: file:///svn/phpbb/trunk@9110 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 11:46:28 +00:00
Chris Smith
528bd80651 Fix a bug we inherited from Smarty a long time ago
git-svn-id: file:///svn/phpbb/trunk@9109 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 11:38:22 +00:00
David M
0955e2e539 Optimized this so it would not renumber the keys in the array every time it would grab a unicode character. Instead, it uses the php internal functions to get at the array as we see fit.
git-svn-id: file:///svn/phpbb/trunk@9108 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 08:14:36 +00:00
Chris Smith
ae9c4068e7 Deprecate S_ROW_COUNT, remove *really* old assignments from the code
git-svn-id: file:///svn/phpbb/trunk@9107 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 07:22:28 +00:00
Nils Adermann
21573a8473 - updating all tests to use new framework
git-svn-id: file:///svn/phpbb/trunk@9106 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 00:29:58 +00:00
Nils Adermann
0b11951412 - adding tests for the new request class and extending the tests for request_var to include deep direct access to multidimensional arrays and arbitrary number of dimensions
git-svn-id: file:///svn/phpbb/trunk@9105 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 00:28:57 +00:00
Nils Adermann
c8cba06910 - updated security/redirect test to use new framework functionality
git-svn-id: file:///svn/phpbb/trunk@9104 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 00:27:18 +00:00
Nils Adermann
bcfcf9b048 - added phpBB test framework which is an extension with some additional
functionality of PHPUnit
- first addition: setExpectedTriggerError() if a test expects a call
  to trigger_error().

git-svn-id: file:///svn/phpbb/trunk@9103 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 00:24:46 +00:00
Nils Adermann
07e9b83a3d - updated all code to use the request class instead of any direct access to
super globals
- disabled super globals in common.php. See commit r9101 for
  more information
- cleaned up/simplified a few lines along the way.

git-svn-id: file:///svn/phpbb/trunk@9102 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-24 00:20:33 +00:00
Nils Adermann
8427ae3fd4 Introducing the new request class. All input his handled through this class.
"Given a choice between dancing pigs and security, users will pick
          dancing pigs every time." (Gary McGraw and Edward Felten)

What stays the same?
- request_var() keeps working as it used to, alternatively you can directly use
  request::variable() which allows choosing which super global you want to read

So what's new?
- request::disable_super_globals() which disables super globals. This
  function causes any direct use of $_POST, $_GET, $_REQUEST or $_COOKIE to
  result in an E_USER_ERROR. We hope that this will force MOD authors to at
  least think about validation as they will have to read about how to use the
  request class.
- request::is_set() / request::is_set_post will be used instead of using isset
  directly on super globals
- request_var() now supports arrays with arbitrary depth
- request_var() can be used with an array as the variable name to directly
  access values in mutli dimensional arrays.

What's next?
- request::disable_super_globals() will be active by default (set in
  common.php)
- all code will be adjusted to use the new class consistently
- tests for the request class to make sure it works as designed and will not
  change behaviour between releases

I've also already updated all the code within functions.php to use the request class.

git-svn-id: file:///svn/phpbb/trunk@9101 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 23:43:00 +00:00
Chris Smith
6e2d2f85b5 More tests
git-svn-id: file:///svn/phpbb/trunk@9100 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 22:39:31 +00:00
Chris Smith
500eb05c48 test advanced loop constructs
git-svn-id: file:///svn/phpbb/trunk@9099 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 19:51:52 +00:00
Chris Smith
3f11fc12ac S_NUM_ROWS gives you the number of rows in a block
git-svn-id: file:///svn/phpbb/trunk@9098 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 16:07:36 +00:00
Chris Smith
aa3a2f565b Why did I not do it this way to begin with :)
git-svn-id: file:///svn/phpbb/trunk@9097 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 16:01:33 +00:00
Meik Sievertsen
3bd6984785 [Change] Alllow applications to set custom module inclusion path (idea by HoL)
git-svn-id: file:///svn/phpbb/trunk@9096 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 12:45:22 +00:00
Chris Smith
dcf0b15c9f Will he ever be happy? ...
git-svn-id: file:///svn/phpbb/trunk@9094 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 03:50:16 +00:00
Chris Smith
ff22d7a368 Refactor and fix :)
git-svn-id: file:///svn/phpbb/trunk@9093 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 03:41:54 +00:00
Chris Smith
f4c079a62b Run template tests over non-cached data as well
git-svn-id: file:///svn/phpbb/trunk@9092 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 01:55:12 +00:00
Chris Smith
d26f38c4e0 all 557 tests pass now :D
git-svn-id: file:///svn/phpbb/trunk@9091 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 01:08:08 +00:00
Chris Smith
99fa62267e Fix r9088
git-svn-id: file:///svn/phpbb/trunk@9089 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 00:10:48 +00:00
Chris Smith
74121b41fa Fix a tiny bug
git-svn-id: file:///svn/phpbb/trunk@9088 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-23 00:09:34 +00:00
Chris Smith
416270ee77 - Deprecate S_ROW_COUNT use S_ROW_NUM
- S_ROW_NUM, S_FIRST_ROW, S_LAST_ROW are now using internal template engine variables saving memory
- Other small changes
- Update of template tests


git-svn-id: file:///svn/phpbb/trunk@9087 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-22 23:53:40 +00:00
Nils Adermann
efe06af913 - merge r9084 and r9085
- added tests for make_clickable

git-svn-id: file:///svn/phpbb/trunk@9086 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-22 23:25:57 +00:00
Meik Sievertsen
04f7c1da69 Only display special ranks to guests; no longer display normal ranks for guests (Bug #36735)
[changed parameters for get_user_rank(), breaks backward compatibility]

git-svn-id: file:///svn/phpbb/trunk@9083 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-22 20:26:47 +00:00
Meik Sievertsen
a9274f1d63 define cookie var for styleswitcher.js for popups (Bug #36765)
git-svn-id: file:///svn/phpbb/trunk@9081 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-22 20:05:24 +00:00
Meik Sievertsen
08bd36f0b2 Do not try to send jabber notifications if no jid entered (Bug #36775)
git-svn-id: file:///svn/phpbb/trunk@9079 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-22 19:58:08 +00:00
Meik Sievertsen
d46e8e6f98 merge revisions i missed... hopefully not breaking things - did not check every change.
git-svn-id: file:///svn/phpbb/trunk@9077 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-22 19:38:25 +00:00
Chris Smith
47b4b83468 Merge in r9065
git-svn-id: file:///svn/phpbb/trunk@9074 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-22 18:03:04 +00:00
Henry Sudhof
c8e3035a4b Merge R 9067
git-svn-id: file:///svn/phpbb/trunk@9068 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-21 13:46:39 +00:00
Chris Smith
ef0c0d4c82 been a while :( ... merge in r8997, r8998, r8999, r9000, r9001, r9002, r9003, r9004, r9005, r9007, r9008, r9009, r9010, r9011, r9012, r9013, r9014, r9015, r9022, r9023, r9029, r9030, r9034, r9048, r9049, r9054, r9056
git-svn-id: file:///svn/phpbb/trunk@9064 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-13 13:04:54 +00:00
Henry Sudhof
1739da9335 Merging R9051 and R 9052
git-svn-id: file:///svn/phpbb/trunk@9062 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-13 11:46:49 +00:00
Henry Sudhof
36635929a8 #36695
git-svn-id: file:///svn/phpbb/trunk@9061 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-13 11:45:40 +00:00
Meik Sievertsen
f353fd2d57 db_tools from static to non-static due to the db dependancy (#31245)
git-svn-id: file:///svn/phpbb/trunk@9044 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-02 11:36:13 +00:00
Meik Sievertsen
6a15c2a936 we no longer need them. Schema is in install now.
git-svn-id: file:///svn/phpbb/trunk@9043 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-02 11:34:50 +00:00
Meik Sievertsen
c903b453fa i had these changes sitting... must've been a merge not committed (and because we do not use svn 1.5 as the client version i am not able to say which they were)
git-svn-id: file:///svn/phpbb/trunk@9042 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-11-02 11:22:30 +00:00
Meik Sievertsen
1b10cb9c37 gah@trunk
git-svn-id: file:///svn/phpbb/trunk@9027 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-17 14:56:19 +00:00
Meik Sievertsen
d0e630157c Disable referer validation on install if it is not possible to determine correct referer due to a proxy setup (Bug #32765)
git-svn-id: file:///svn/phpbb/trunk@9025 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-17 10:33:06 +00:00
Chris Smith
69cfb5b821 Initial template tests, a bit hackish currently, excuse the rushed nature of this commit got to catch a train :)
git-svn-id: file:///svn/phpbb/trunk@9020 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-15 16:21:27 +00:00
Chris Smith
baf8d571e3 Mini bug fix for UNDEFINE
git-svn-id: file:///svn/phpbb/trunk@9016 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-15 01:47:37 +00:00
Chris Smith
5ce6035aad Merging r8993, r8994, r8995
git-svn-id: file:///svn/phpbb/trunk@8996 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-10 17:58:32 +00:00
Meik Sievertsen
746b617807 Add two standard language items - #30885
Make sure users still get notifications if they set to only be notified by Jabber, but Jabber service disabled. (Bug #29715 - Patch by Paul)


git-svn-id: file:///svn/phpbb/trunk@8991 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-09 15:42:08 +00:00
Meik Sievertsen
9c7d8dcd7d - Do not show link to user/group profiles if user has no permission to view the linked page and gets a denied message anyway. (Bug #15088)
- Do not display last post link and sort display options for search engines. (Bug #15088)


git-svn-id: file:///svn/phpbb/trunk@8988 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-09 14:22:07 +00:00
Meik Sievertsen
73db74dfa1 Implemented strict check for cached user permissions and existing ACL options. This fix makes sure cached permissions are valid, even if they got already cached.
git-svn-id: file:///svn/phpbb/trunk@8986 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-09 13:19:36 +00:00
Meik Sievertsen
d4c8a078a2 Show coloured guest names correctly if not enclosed in <a> tags. ;) Bug #21935
git-svn-id: file:///svn/phpbb/trunk@8984 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-08 15:17:27 +00:00
Meik Sievertsen
9d9d61b1a2 Merge revisions:
r8974, r8975, r8976, r8977, r8978, r8979

git-svn-id: file:///svn/phpbb/trunk@8980 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-08 12:51:43 +00:00
Meik Sievertsen
89f1b88fe1 merge r8970 and r8971
git-svn-id: file:///svn/phpbb/trunk@8972 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-06 05:52:49 +00:00
Meik Sievertsen
9a7804cb71 [Change] Remove NUL-Bytes directly in request_var() for strings and within the custom DBAL sql_escape() functions (MSSQL, Firebird, Oracle) (reported by AdhostMikeSw)
git-svn-id: file:///svn/phpbb/trunk@8968 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-02 12:05:13 +00:00
Henry Sudhof
8f2b4562b1 meh
git-svn-id: file:///svn/phpbb/trunk@8966 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-01 11:14:48 +00:00
Henry Sudhof
18bfc5e69b and why not this as well?
git-svn-id: file:///svn/phpbb/trunk@8965 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-10-01 10:29:27 +00:00
Meik Sievertsen
ad4d7c036e merge r8956, r8957 and r8960
git-svn-id: file:///svn/phpbb/trunk@8961 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-30 15:18:35 +00:00
Henry Sudhof
e4c3a743ca #34815
git-svn-id: file:///svn/phpbb/trunk@8959 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-30 12:55:48 +00:00
Meik Sievertsen
f3844a17f7 revert r8893 - there were massive problems with the display and select all code
git-svn-id: file:///svn/phpbb/trunk@8954 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-28 17:09:20 +00:00
Chris Smith
c439b286e9 Merge in r8940, r8941, r8942, r8945, r8946, r8947, r8949, r8950, r8951
git-svn-id: file:///svn/phpbb/trunk@8952 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-27 11:45:30 +00:00
Chris Smith
0b6dd99a76 tiny typo #34345
git-svn-id: file:///svn/phpbb/trunk@8948 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-26 21:27:31 +00:00
Chris Smith
0a4c62f12e Merge in r8924, r8925, r8926, r8936, r8938
git-svn-id: file:///svn/phpbb/trunk@8939 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-26 09:28:12 +00:00
Marek A. R
1cc419fb4c Fix typos
git-svn-id: file:///svn/phpbb/trunk@8937 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-25 19:55:04 +00:00
Chris Smith
f6a47c6f82 Merge in r8934
git-svn-id: file:///svn/phpbb/trunk@8935 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-24 18:41:06 +00:00
Meik Sievertsen
10d3191198 better query for syncing post counts. Thanks to BartVB for this. ;)
git-svn-id: file:///svn/phpbb/trunk@8933 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-24 13:58:50 +00:00
Henry Sudhof
9f9a89c78e Merging 8927, 8928, 8929, 8930
git-svn-id: file:///svn/phpbb/trunk@8931 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-24 12:29:57 +00:00
Chris Smith
884cde18fe Merge in r8922
git-svn-id: file:///svn/phpbb/trunk@8923 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-23 16:31:45 +00:00
Meik Sievertsen
ec1be2563c gah^2
git-svn-id: file:///svn/phpbb/trunk@8921 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-23 14:40:20 +00:00
Meik Sievertsen
ec88ec534b here too
git-svn-id: file:///svn/phpbb/trunk@8919 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-23 14:14:33 +00:00
Meik Sievertsen
bb97d3531a remove exit statement and make sure no "additional" code gets executed
git-svn-id: file:///svn/phpbb/trunk@8916 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-23 13:31:04 +00:00
Meik Sievertsen
ce6b87ccec - Automatically add users/groups to the PM recipient list, if entered or selected.
- Reply to PM now includes all previous recipients and not only the original sender.
- Added 'max_recipients' setting for private messages. This setting allows admins to define the maximum number of recipients per private message with a board-wide setting and a group-specific setting.
- Added new permission setting for sending private messages to groups. Now there are two permissions to define sending private messages to multiple recipients and private messages to groups.



git-svn-id: file:///svn/phpbb/trunk@8914 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-23 13:11:34 +00:00
Chris Smith
b486710ea1 Merge in r8843, r8908, r8909
git-svn-id: file:///svn/phpbb/trunk@8910 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-23 12:56:34 +00:00
Meik Sievertsen
aa9dbcec3c short php open tags should not be used. :) A lot of users (including myself) do not allow them.
git-svn-id: file:///svn/phpbb/trunk@8907 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-22 17:51:43 +00:00
Henry Sudhof
08428f8fa1 merging 8904
git-svn-id: file:///svn/phpbb/trunk@8905 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-22 13:32:28 +00:00
Henry Sudhof
0f14f278d0 fixing some vC bugs (attempt counting and posting) and introducing prototype for reCaptcha
git-svn-id: file:///svn/phpbb/trunk@8903 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-22 12:37:42 +00:00
Meik Sievertsen
c67fa83652 remove some spaces
git-svn-id: file:///svn/phpbb/trunk@8902 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-21 10:14:17 +00:00
Meik Sievertsen
1f6eea1b5b Fix sql_multi_insert() if called with non multi-dimensional array (Bug #32975)
git-svn-id: file:///svn/phpbb/trunk@8901 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-19 17:13:22 +00:00
Meik Sievertsen
6f0ea3c9d2 do not allow categories to be locked by accident (Bug #14548)
git-svn-id: file:///svn/phpbb/trunk@8899 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-19 17:07:45 +00:00
Meik Sievertsen
8fd7f16642 language correction (Bug #23955)
git-svn-id: file:///svn/phpbb/trunk@8897 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-19 17:00:26 +00:00
Meik Sievertsen
80ced5c0b7 support tabs in code selections (Bug #25445). Still does not solve the strange "4 spaces prefixed on every line" problem in firefox. :/
git-svn-id: file:///svn/phpbb/trunk@8894 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-19 16:42:55 +00:00
Henry Sudhof
01c1c27f2c meh
git-svn-id: file:///svn/phpbb/trunk@8892 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-19 16:18:59 +00:00
Meik Sievertsen
eee2f89ace Correctly delete message attachments. (Bug #23755) Also revamped and simplified delete_attachments() - it looks like we did not touch it for a long long time.
git-svn-id: file:///svn/phpbb/trunk@8891 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-19 15:42:33 +00:00
Henry Sudhof
461be11e8d Okay, that is pretty raw, but better to have it in place than trying to play catch-up. Introducing an early stage of CAPTCHA modules.
git-svn-id: file:///svn/phpbb/trunk@8889 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-19 13:17:30 +00:00
Meik Sievertsen
5349280538 Pass S_SEARCH_ACTION through append_sid() in search.php. (Bug #21585)
git-svn-id: file:///svn/phpbb/trunk@8886 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 15:25:45 +00:00
Meik Sievertsen
24da8c474d remove duplicate statement
git-svn-id: file:///svn/phpbb/trunk@8884 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 15:06:23 +00:00
Meik Sievertsen
158a15ba9c Reset login attempts on new password activation. Prevents "first failed login attempt" on converted boards. Bug #19965
git-svn-id: file:///svn/phpbb/trunk@8882 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 14:50:50 +00:00
Meik Sievertsen
958d077faa Fix native full text search on postgresql while using excluding keyword matches. (Bug #19195)
git-svn-id: file:///svn/phpbb/trunk@8880 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 14:32:51 +00:00
Meik Sievertsen
4649b93e0d Prevent integer overflow - Bug #19895
git-svn-id: file:///svn/phpbb/trunk@8877 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 14:27:27 +00:00
Meik Sievertsen
2fc6d5147a Set secure cookie for style switcher if required. (Bug #19625)
git-svn-id: file:///svn/phpbb/trunk@8875 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 14:17:39 +00:00
Meik Sievertsen
e2736dea20 Display assigned rank/avatar for guests. (Bug #19155)
git-svn-id: file:///svn/phpbb/trunk@8873 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 13:36:40 +00:00
Meik Sievertsen
76c0e5aa5e Do not allow setting forums parent to the forum itself. (Bug #18855)
git-svn-id: file:///svn/phpbb/trunk@8871 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-18 13:22:15 +00:00
Meik Sievertsen
d135060c12 #18175
git-svn-id: file:///svn/phpbb/trunk@8869 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-17 15:52:21 +00:00
Meik Sievertsen
3b79fd122e Use correct port delimiter for MSSQL connections in windows. (Bug #16615)
git-svn-id: file:///svn/phpbb/trunk@8867 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-17 15:12:31 +00:00
Meik Sievertsen
b6949c47ec Preserve alpha transparency for created thumbnails. (Bug #16575)
git-svn-id: file:///svn/phpbb/trunk@8865 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-17 14:59:53 +00:00
Meik Sievertsen
235f552974 Expand shown ban reason in unban screen to fully show long entries. (Bug #16234)
git-svn-id: file:///svn/phpbb/trunk@8863 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-17 14:50:48 +00:00
Meik Sievertsen
1651c5df57 Display popular topic based on posts within topic instead of replies within topic. (Bug #16099)
git-svn-id: file:///svn/phpbb/trunk@8861 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-17 14:31:32 +00:00
Meik Sievertsen
17ec98b834 simplify $user->img()
git-svn-id: file:///svn/phpbb/trunk@8859 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-16 15:15:03 +00:00
Meik Sievertsen
cc5d77e06d make topic icon image width/height available to viewforum and search templates (Bug #15934)
git-svn-id: file:///svn/phpbb/trunk@8858 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-16 15:07:38 +00:00
Meik Sievertsen
2eeeaadcfd emails to e-mails
git-svn-id: file:///svn/phpbb/trunk@8856 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-16 13:21:12 +00:00
Meik Sievertsen
de0bc7476a Do not display reported topic icon for shadow topics. (Bug #13970)
git-svn-id: file:///svn/phpbb/trunk@8854 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-16 12:51:36 +00:00
Meik Sievertsen
ca07af715f Fix Wrong table order in query obtaining posts if post id given. In MSSQL there is an sql error due to this bug.
git-svn-id: file:///svn/phpbb/trunk@8852 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-16 12:37:33 +00:00
Meik Sievertsen
46b4d09e3a add missing dot. :)
git-svn-id: file:///svn/phpbb/trunk@8849 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-16 11:42:09 +00:00
Meik Sievertsen
af26b56470 more in-depth hostname validation. Not used in install files... there the code is fine.
There are ways to improve this, either a whitelist or "more guessing"

git-svn-id: file:///svn/phpbb/trunk@8847 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-15 18:43:24 +00:00
Henry Sudhof
310375db66 Merge 8844, Bug #34045
git-svn-id: file:///svn/phpbb/trunk@8845 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-15 11:44:25 +00:00
Chris Smith
e5425dfd46 Merge in r8840
git-svn-id: file:///svn/phpbb/trunk@8841 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-11 00:32:02 +00:00
Chris Smith
0e0100c525 merge r8829, r8830, r8831, r8832, r8833, r8834, r8835, r8836, r8837, r8838
git-svn-id: file:///svn/phpbb/trunk@8839 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-08 13:39:34 +00:00
Chris Smith
a32f3a6709 Merge in r8827
git-svn-id: file:///svn/phpbb/trunk@8828 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-05 13:49:04 +00:00
Chris Smith
10c8d29205 Merge in r8825
git-svn-id: file:///svn/phpbb/trunk@8826 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-05 12:52:00 +00:00
Chris Smith
6f754d49e4 Remove a useless str_replace()
git-svn-id: file:///svn/phpbb/trunk@8823 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-05 12:41:08 +00:00
Meik Sievertsen
c83e6f7e94 cleanage
git-svn-id: file:///svn/phpbb/trunk@8822 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 14:10:17 +00:00
Meik Sievertsen
3a330753f4 Get real dbms version instead of relying on php internal functions which only grab the local library version
git-svn-id: file:///svn/phpbb/trunk@8821 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 14:10:03 +00:00
Meik Sievertsen
a736c97c04 needed for mysql 4.1.3+?
git-svn-id: file:///svn/phpbb/trunk@8820 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 14:08:19 +00:00
Meik Sievertsen
199ab53f30 support new method of getting correct language strings for nullar/singular/plural forms
git-svn-id: file:///svn/phpbb/trunk@8819 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 14:07:30 +00:00
Meik Sievertsen
63e2f5cf14 add phpbb version number to constants
git-svn-id: file:///svn/phpbb/trunk@8818 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 14:06:43 +00:00
Meik Sievertsen
4658e3f828 schema updates for the queue trigger feature and for storing the dbms version
git-svn-id: file:///svn/phpbb/trunk@8817 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 14:06:20 +00:00
Meik Sievertsen
44416f4744 - queue trigger feature
- queued posts do not affect user_posts
- show links to MCP + queued posts in ucp and acp


git-svn-id: file:///svn/phpbb/trunk@8816 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 14:04:30 +00:00
Chris Smith
0dbe7e3b6c Remove caching of templates from the database completely, themes is cut down ready for a complete chop, and fix the installer :)
git-svn-id: file:///svn/phpbb/trunk@8812 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-04 11:39:25 +00:00
Chris Smith
f2abefeaed Merge in r8758, r8807, r8808, r8809
git-svn-id: file:///svn/phpbb/trunk@8810 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-09-02 13:36:48 +00:00
Henry Sudhof
57ec5805df Merging R8795
git-svn-id: file:///svn/phpbb/trunk@8796 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-29 11:53:11 +00:00
Henry Sudhof
73da6084d0 Merge R8792
git-svn-id: file:///svn/phpbb/trunk@8794 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-28 13:12:48 +00:00
Henry Sudhof
323fb23b49 Merge R8790/8791
git-svn-id: file:///svn/phpbb/trunk@8793 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-28 13:12:18 +00:00
Meik Sievertsen
cbacffd9fc fix bug #32925
git-svn-id: file:///svn/phpbb/trunk@8789 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-25 17:17:25 +00:00
Meik Sievertsen
589db44b56 Merge of the language-specific custom path change Revision #r8782
git-svn-id: file:///svn/phpbb/trunk@8786 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-24 10:04:15 +00:00
Meik Sievertsen
8174462e89 Merge chmod changes into trunk
git-svn-id: file:///svn/phpbb/trunk@8781 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-22 13:32:34 +00:00
Henry Sudhof
a45ac24bd7 comments
git-svn-id: file:///svn/phpbb/trunk@8779 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-22 11:02:17 +00:00
Henry Sudhof
3a3b9eb8ef merge
git-svn-id: file:///svn/phpbb/trunk@8776 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-21 15:50:21 +00:00
Meik Sievertsen
76a542a03e merge
git-svn-id: file:///svn/phpbb/trunk@8773 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-21 14:21:38 +00:00
Henry Sudhof
d67b943ef6 merge
git-svn-id: file:///svn/phpbb/trunk@8771 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-18 13:09:08 +00:00
Henry Sudhof
b46bd90f6e merge
git-svn-id: file:///svn/phpbb/trunk@8769 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-18 11:51:07 +00:00
Marek A. R
c119d0b424 More 5.3 compatibility.
git-svn-id: file:///svn/phpbb/trunk@8767 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-16 22:32:24 +00:00
Meik Sievertsen
15e04808fc writeable -> writable merge
git-svn-id: file:///svn/phpbb/trunk@8762 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-16 13:11:50 +00:00
Marek A. R
4235be4bcb PHP5.3 compatibility.
git-svn-id: file:///svn/phpbb/trunk@8759 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-15 13:00:20 +00:00
Henry Sudhof
f741c4ff05 merge
git-svn-id: file:///svn/phpbb/trunk@8757 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-14 12:49:11 +00:00
Henry Sudhof
8236a7438d merge
git-svn-id: file:///svn/phpbb/trunk@8753 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-13 14:43:14 +00:00
Henry Sudhof
ae27aaf1a4 merge
git-svn-id: file:///svn/phpbb/trunk@8750 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-13 14:22:27 +00:00
Henry Sudhof
cec12340b9 merge
git-svn-id: file:///svn/phpbb/trunk@8748 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-13 14:17:11 +00:00
Henry Sudhof
f405535730 merge
git-svn-id: file:///svn/phpbb/trunk@8746 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-13 12:31:19 +00:00
Henry Sudhof
6eed0e5bd2 merge
git-svn-id: file:///svn/phpbb/trunk@8744 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-13 12:28:17 +00:00
David M
6a401ab68b Extracted the IF code to make a generic parsing function,
now DEFINE is nicely integrated and we can even do things
like <!-- BEGIN foo($FOO, $BAR) --> if we *really* wanted
to do so.


git-svn-id: file:///svn/phpbb/trunk@8742 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-03 18:11:40 +00:00
Marek A. R
b3e2250391 Compile things like {$FOO} again.
git-svn-id: file:///svn/phpbb/trunk@8741 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-01 15:13:23 +00:00
Meik Sievertsen
c002c468c4 change conditional enclosements in template engine
oh... thank you very much brainy. :)

git-svn-id: file:///svn/phpbb/trunk@8740 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-01 14:36:52 +00:00
Meik Sievertsen
1071d9cb31 merge cookie secure detection
git-svn-id: file:///svn/phpbb/trunk@8738 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-08-01 14:30:42 +00:00
Henry Sudhof
48701289ff Igor, hope that makes you happy
git-svn-id: file:///svn/phpbb/trunk@8729 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 15:38:30 +00:00
Henry Sudhof
360e245a1a make IM links in PMs behave like their viewtopic brothers (#30075 - fix by Porter21)
git-svn-id: file:///svn/phpbb/trunk@8728 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 15:35:45 +00:00
Henry Sudhof
97b5920055 Oh. A Paul
git-svn-id: file:///svn/phpbb/trunk@8726 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 15:28:46 +00:00
Henry Sudhof
492354344b enable stupid php.ini fallback for readfile (#30325 - fix by bellzebu)
git-svn-id: file:///svn/phpbb/trunk@8725 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 15:18:03 +00:00
Henry Sudhof
c1cf3404a2 No negative values (#30335)
git-svn-id: file:///svn/phpbb/trunk@8723 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 15:14:07 +00:00
Meik Sievertsen
96948b010c erm, yeah
git-svn-id: file:///svn/phpbb/trunk@8721 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 15:05:31 +00:00
Meik Sievertsen
9047c986da upgrader in trunk too. :P
git-svn-id: file:///svn/phpbb/trunk@8720 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 15:02:08 +00:00
Henry Sudhof
4580ca9683 Merge teach viewonline about download/file
git-svn-id: file:///svn/phpbb/trunk@8717 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 14:58:49 +00:00
Henry Sudhof
be1849a901 Merge make the MCP remember a bit more - still far from perfect as pagination makes it forget
git-svn-id: file:///svn/phpbb/trunk@8716 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 14:57:54 +00:00
Henry Sudhof
e9b2e6174e Add VST
git-svn-id: file:///svn/phpbb/trunk@8715 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 14:56:40 +00:00
Henry Sudhof
fe93fa0e9d Merge attachment caching
git-svn-id: file:///svn/phpbb/trunk@8714 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 14:54:57 +00:00
Henry Sudhof
dceaf59d3b Merge avatar deletion on change code
git-svn-id: file:///svn/phpbb/trunk@8713 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 14:38:46 +00:00
Henry Sudhof
db4011c9d9 Merge style element name conflict code
git-svn-id: file:///svn/phpbb/trunk@8712 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 14:35:32 +00:00
Meik Sievertsen
7c79d0f860 hmm, this seems to be a merge i forgot
git-svn-id: file:///svn/phpbb/trunk@8711 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-29 13:39:50 +00:00
Marek A. R
8c186d97c6 - Make "<?" and/or "<%" in template files not break the compiled template.
- Enable <!-- PHP --> and <!-- INCLUDEPHP --> again.

git-svn-id: file:///svn/phpbb/trunk@8699 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-28 15:01:06 +00:00
Meik Sievertsen
1b67e80422 marge
git-svn-id: file:///svn/phpbb/trunk@8696 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-28 13:37:16 +00:00
Meik Sievertsen
d8f2c4a1c4 add warning to ACP index if config file is writeable
git-svn-id: file:///svn/phpbb/trunk@8689 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-28 13:21:53 +00:00
David M
41d3effa19 Added the locking code back in... Marek, feel free to reorder it as you see fit.
git-svn-id: file:///svn/phpbb/trunk@8687 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-28 01:16:47 +00:00
Marek A. R
e6e9618be6 Fix ucp.php?mode=login login box redirect
git-svn-id: file:///svn/phpbb/trunk@8686 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-27 22:39:22 +00:00
Marek A. R
0c4ae1cd97 - Optimise compiled template code.
- Improve template filter.

git-svn-id: file:///svn/phpbb/trunk@8685 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-27 22:08:47 +00:00
Meik Sievertsen
036dc071e7 merge
git-svn-id: file:///svn/phpbb/trunk@8684 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-27 13:42:46 +00:00
Marek A. R
d5d7de4ffa - Add some necessary evil
- Template DEFINE variables can now be assigned other variables

git-svn-id: file:///svn/phpbb/trunk@8683 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-25 17:24:12 +00:00
Marek A. R
79dd5b164b Cleanup
git-svn-id: file:///svn/phpbb/trunk@8682 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-20 15:33:23 +00:00
Marek A. R
e0799b79e2 Fix file ACM to work with cached single-quotes and other characters that could need escaping.
git-svn-id: file:///svn/phpbb/trunk@8681 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-07-13 19:08:30 +00:00
Marek A. R
95462dca58 git-svn-id: file:///svn/phpbb/trunk@8680 89ea8834-ac86-4346-8a33-228a782c2dd0 2008-07-12 18:22:47 +00:00
Meik Sievertsen
ad739a358c merge? merge.
git-svn-id: file:///svn/phpbb/trunk@8672 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-23 18:22:44 +00:00
Marek A. R
3892e7330a Fix merge to use the new constants
git-svn-id: file:///svn/phpbb/trunk@8660 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-19 17:51:11 +00:00
Marek A. R
aeb36226c0 Change 5.1.0 to 5.2.0
git-svn-id: file:///svn/phpbb/trunk@8659 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-18 21:32:58 +00:00
Meik Sievertsen
eeba8f4560 Fix some instances where we left db connections open (registration -> captcha for example)
git-svn-id: file:///svn/phpbb/trunk@8656 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-13 19:44:40 +00:00
Marek A. R
677e6451c4 ...
git-svn-id: file:///svn/phpbb/trunk@8654 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-13 18:12:52 +00:00
Marek A. R
c44d2edc4a Changed the template compiler to work on streams. Should be a bit faster.
git-svn-id: file:///svn/phpbb/trunk@8653 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-13 17:57:47 +00:00
Marek A. R
50dd4c183a Fix ACP module URLs
git-svn-id: file:///svn/phpbb/trunk@8652 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-13 17:12:09 +00:00
David M
97d2fb55b7 /me slaps himself for being old school
git-svn-id: file:///svn/phpbb/trunk@8650 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-12 07:27:01 +00:00
David M
0ebc5cc9ee The beginnings of the destruction of phpBB's greatest bottleneck, dynamic css...
As of phpBB 3.0.x, we take our "generic" CSS for a theme and later on combine it with the imagesets and languages as needed... What we did for 3.0.x involved dynamically resolving the variables in the CSS and then sending it off, caching it at several layers (except the one that mattered). The biggest issue with style.php is that it is one giant str_replace on every page load, no matter what; cache be damned. Instead, the trick is to cache the full compilation earlier on...
Further work to do: kill all the old crap and fully integrate the new solution


git-svn-id: file:///svn/phpbb/trunk@8649 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-12 07:24:13 +00:00
Meik Sievertsen
0ca7e81ca4 #28595 (AVATAR_IMG available to memberlist_body.html)
git-svn-id: file:///svn/phpbb/trunk@8646 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-10 14:38:07 +00:00
Meik Sievertsen
fc8db76da9 added two comments to describe the functions use-case
git-svn-id: file:///svn/phpbb/trunk@8644 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-10 12:55:32 +00:00
Nils Adermann
d168abdcc9 Regular expression for email matching in posts will no longer die on long words
git-svn-id: file:///svn/phpbb/trunk@8642 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 22:32:51 +00:00
Meik Sievertsen
50f5502cc9 check if folder is not empty (may happen for absolute paths). Thanks paul
git-svn-id: file:///svn/phpbb/trunk@8640 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 17:46:41 +00:00
Meik Sievertsen
e199f55ba2 #27395
git-svn-id: file:///svn/phpbb/trunk@8637 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 17:10:59 +00:00
Henry Sudhof
d7a217c28c #16124
git-svn-id: file:///svn/phpbb/trunk@8635 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 13:06:14 +00:00
Henry Sudhof
8f3c085f7f #27325
git-svn-id: file:///svn/phpbb/trunk@8633 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 12:37:44 +00:00
Henry Sudhof
4ba2921cec #23945
git-svn-id: file:///svn/phpbb/trunk@8632 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 12:37:08 +00:00
Henry Sudhof
fe2343965b merge
git-svn-id: file:///svn/phpbb/trunk@8629 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 11:59:43 +00:00
Henry Sudhof
d0140a096c merge
git-svn-id: file:///svn/phpbb/trunk@8627 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 11:36:17 +00:00
David M
fc126eec66 Rewrote this stuff so that it is all multiple object oriented instead of looping single objects... The way it is written, there should be no speed decrease (and in some places, a speed increase) and maybe a miniscule amount of extra memory used in the move_topics function... Everything in there should be O(n) where n is the number of topics or posts being delete or moved or whatever. Multiple topic insertions are not supported as I cannot forsee where one would like to insert multiple topics into the same forum. Different forums I can understand but there is no way to optimize that _at all_. More work to come...
git-svn-id: file:///svn/phpbb/trunk@8625 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-09 00:59:44 +00:00
Meik Sievertsen
1aa40171e0 merge...
git-svn-id: file:///svn/phpbb/trunk@8624 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-08 21:44:59 +00:00
Meik Sievertsen
6a59f3efd6 fix security test for redirect. Also set common server variables to mimick a real testbed.
git-svn-id: file:///svn/phpbb/trunk@8623 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-08 21:43:27 +00:00
Meik Sievertsen
b54a9ec1e2 #28485
git-svn-id: file:///svn/phpbb/trunk@8618 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-07 13:59:14 +00:00
Meik Sievertsen
24b9d6432f #28635
git-svn-id: file:///svn/phpbb/trunk@8616 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-07 13:51:51 +00:00
Meik Sievertsen
7524ca5249 do not allow [flash=0,0]... not implemented for images due to the reliance on getimagesize() - as usual both sizes are able to be limited by the maximum/minimum image size configuration options
git-svn-id: file:///svn/phpbb/trunk@8614 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-07 13:42:06 +00:00
Henry Sudhof
4dddc3a130 Some xenophobia
git-svn-id: file:///svn/phpbb/trunk@8612 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-06 11:28:55 +00:00
Meik Sievertsen
8822747b91 merge...
git-svn-id: file:///svn/phpbb/trunk@8610 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-05 14:11:42 +00:00
Henry Sudhof
ea3eb9e9c3 merge
git-svn-id: file:///svn/phpbb/trunk@8608 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-05 11:38:33 +00:00
Henry Sudhof
a156e31f0c minor constant fix, won't make it work
git-svn-id: file:///svn/phpbb/trunk@8607 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-05 11:35:43 +00:00
Nils Adermann
443ec9dcb0 merging r8604 into trunk
git-svn-id: file:///svn/phpbb/trunk@8606 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-04 17:28:43 +00:00
Nils Adermann
e08a400b9f HTTP Authentication supports UTF-8 usernames now [Bug #21135]
git-svn-id: file:///svn/phpbb/trunk@8603 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-04 16:05:49 +00:00
Nils Adermann
a11f41986f corrected link for searching post author's other posts [Bug #26455]
git-svn-id: file:///svn/phpbb/trunk@8600 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-04 15:48:00 +00:00
Nils Adermann
150c6c4c24 removed executable props [Bug #6464]
git-svn-id: file:///svn/phpbb/trunk@8599 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-04 15:38:14 +00:00
Meik Sievertsen
e8b7c45d85 fix adm redirect
git-svn-id: file:///svn/phpbb/trunk@8590 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-04 11:23:00 +00:00
Meik Sievertsen
e8e807f797 adding missing props
git-svn-id: file:///svn/phpbb/trunk@8588 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-04 11:06:51 +00:00
Henry Sudhof
65fb840b76 merge
git-svn-id: file:///svn/phpbb/trunk@8587 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-03 16:33:02 +00:00
Meik Sievertsen
59e6bc27f1 erm, no, not yet. :P
git-svn-id: file:///svn/phpbb/trunk@8586 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-03 16:32:49 +00:00
Meik Sievertsen
7591a84c0d two new tests, added security suite and fixed utf8 tests.
git-svn-id: file:///svn/phpbb/trunk@8584 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-03 16:15:01 +00:00
Meik Sievertsen
990e3cd4b2 add missing constant to config file
git-svn-id: file:///svn/phpbb/trunk@8583 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-06-03 14:57:04 +00:00
Vic D'Elfant
de5ddf3907 I'm going to get an award for the smallest commit ever.
git-svn-id: file:///svn/phpbb/trunk@8579 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-29 16:19:06 +00:00
Meik Sievertsen
7c159b8c6e mcp link (not within adm folder) - as well as carrying a session by default
git-svn-id: file:///svn/phpbb/trunk@8576 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-29 14:30:00 +00:00
Henry Sudhof
98dadd5eb8 merge
git-svn-id: file:///svn/phpbb/trunk@8575 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-29 14:07:55 +00:00
Meik Sievertsen
8ce9e1b852 i am very sorry... i played a bit... :(
git-svn-id: file:///svn/phpbb/trunk@8573 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-29 12:28:07 +00:00
Meik Sievertsen
2f4a618900 ok... i hope i haven't messed too much with the code and everything is still working.
Changes:
- Ascraeus now uses constants for the phpbb root path and the php extension. This ensures more security for external applications and modifications (no more overwriting of root path and extension possible through insecure mods and register globals enabled) as well as no more globalizing needed.
- A second change implemented here is an additional short-hand-notation for append_sid(). It is allowed to omit the root path and extension now (for example calling append_sid('memberlist')) - in this case the root path and extension get added automatically. The hook is called after these are added.

git-svn-id: file:///svn/phpbb/trunk@8572 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-29 12:25:56 +00:00
Henry Sudhof
91b4fe1868 Merging mime and referer checks into the Trunk
git-svn-id: file:///svn/phpbb/trunk@8571 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-28 13:05:45 +00:00
Meik Sievertsen
28e8c3ea85 merge
git-svn-id: file:///svn/phpbb/trunk@8570 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-26 12:05:22 +00:00
Meik Sievertsen
0c1fa73423 git-svn-id: file:///svn/phpbb/trunk@8569 89ea8834-ac86-4346-8a33-228a782c2dd0 2008-05-26 12:03:22 +00:00
Meik Sievertsen
e7a043a22a ok... still merge needed... now the fix is spread. :/
git-svn-id: file:///svn/phpbb/trunk@8566 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-18 20:15:41 +00:00
Meik Sievertsen
53dc95d429 #26885
git-svn-id: file:///svn/phpbb/trunk@8564 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-18 20:02:14 +00:00
Meik Sievertsen
41d8c20836 merge fix for bug #27355
git-svn-id: file:///svn/phpbb/trunk@8562 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-18 18:58:42 +00:00
Meik Sievertsen
8dde998e87 merge the quick fix
git-svn-id: file:///svn/phpbb/trunk@8553 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-08 17:36:22 +00:00
Nils Adermann
9aac603888 :o don't allow access to that file for people who cannot add a comment
git-svn-id: file:///svn/phpbb/trunk@8551 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-05 00:17:12 +00:00
Nils Adermann
2cfc6b7e0b fixing access to const members in the normalizer and the normalizer test
git-svn-id: file:///svn/phpbb/trunk@8550 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-05 00:14:46 +00:00
Nils Adermann
6871e7caa4 - adding request_var tests
git-svn-id: file:///svn/phpbb/trunk@8549 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 22:54:16 +00:00
Nils Adermann
0d631c2ae0 Moving code sniffer stuff into subfolder so directory can be linked and doesn't require copying
git-svn-id: file:///svn/phpbb/trunk@8548 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 20:06:02 +00:00
Nils Adermann
1219ff4717 these files should have headers too
git-svn-id: file:///svn/phpbb/trunk@8547 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 15:41:51 +00:00
Nils Adermann
22f6e1ed1e - adding a test for utf8_clean_string()
git-svn-id: file:///svn/phpbb/trunk@8546 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 14:47:54 +00:00
Meik Sievertsen
eb664ddafb some missing merges...
git-svn-id: file:///svn/phpbb/trunk@8545 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 14:47:49 +00:00
Nils Adermann
771fd3696d adding a bbcode test suite
git-svn-id: file:///svn/phpbb/trunk@8541 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 12:54:47 +00:00
Nils Adermann
b1915b6f25 expectation goes first
git-svn-id: file:///svn/phpbb/trunk@8540 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 12:49:20 +00:00
Nils Adermann
378838499e Going further with our attempt to make phpBB more stable: Testing with PHPUnit
git-svn-id: file:///svn/phpbb/trunk@8539 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-04 12:04:08 +00:00
Henry Sudhof
60aad364c8 #26605
git-svn-id: file:///svn/phpbb/trunk@8537 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-02 16:39:30 +00:00
Henry Sudhof
52400baafa merge
git-svn-id: file:///svn/phpbb/trunk@8535 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-02 14:45:19 +00:00
Henry Sudhof
ebb801ebff merge
git-svn-id: file:///svn/phpbb/trunk@8534 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-05-02 14:44:41 +00:00
Meik Sievertsen
4b9077a58b merge
git-svn-id: file:///svn/phpbb/trunk@8532 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-30 15:56:02 +00:00
David M
5e7c936618 Some enhancements to the posting api, replaced the bitfield with two int fields... This represents what the new system could be...
git-svn-id: file:///svn/phpbb/trunk@8528 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-23 00:31:28 +00:00
Meik Sievertsen
c5dcff536a #22855
git-svn-id: file:///svn/phpbb/trunk@8527 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-22 14:13:12 +00:00
Meik Sievertsen
91d0c8b3bf merge again, revisions 8516 to 8525
git-svn-id: file:///svn/phpbb/trunk@8526 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-21 15:10:59 +00:00
Meik Sievertsen
f2ba40f294 merge
git-svn-id: file:///svn/phpbb/trunk@8515 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-21 10:55:47 +00:00
Meik Sievertsen
0cf75b2546 remove changelog for the time being and add changes.txt (only temporary for us to mark changes, else we forget them. :P)
git-svn-id: file:///svn/phpbb/trunk@8512 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-20 11:27:50 +00:00
Meik Sievertsen
5c2b9b17d1 merged #r8490
git-svn-id: file:///svn/phpbb/trunk@8504 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-11 14:22:59 +00:00
Meik Sievertsen
dbae1db24c merge some changes/fixes
henry: is your viewonline fix/change missing? ;)

git-svn-id: file:///svn/phpbb/trunk@8503 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-11 14:21:45 +00:00
Nils Adermann
82454165c3 merging r8489 into trunk
git-svn-id: file:///svn/phpbb/trunk@8490 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-03 14:06:57 +00:00
Marek A. R
4879a7a075 Some fixes
git-svn-id: file:///svn/phpbb/trunk@8488 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-02 21:46:47 +00:00
Meik Sievertsen
c5081a685e #s24575
git-svn-id: file:///svn/phpbb/trunk@8487 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-02 08:52:49 +00:00
David M
2deee69e2f Some neat stuff, the new DBAL function has the potential of removing somewhere in the ballpark of 40% of all the DBAL code. It combines a few very common idioms into one statement, allowing us to implicitly use prepared statements. Short term advantages are the ability to remove the gross code that attempts to work around DB2, Oracle and Firebird. Long term advantages include removing the burden of sanitizing data (at least on input) from our end and placing it on shoulders of the backend PHP driver.
Also included is a new posting API I am working on. It is not a real API in so much as it is a backend that a "nice" API could use. User submitted functions are welcome :) It represents a massive simplification in post and topic accounting and a generalization of concepts like "soft deletion" as it works across both topics and posts (yes, this has preliminary support for soft deletions). The only "interesting" problem left is global topics, this has yet to be solved.

Enough talk, time for sleep.

P.S.
Sorry if I broke stuff, was not done on purpose :)

git-svn-id: file:///svn/phpbb/trunk@8485 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-04-02 08:28:21 +00:00
Meik Sievertsen
3e42df098c merging some changes
git-svn-id: file:///svn/phpbb/trunk@8484 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-31 14:58:14 +00:00
Marek A. R
45c97a40d2 A little cleanup
git-svn-id: file:///svn/phpbb/trunk@8480 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-29 14:11:49 +00:00
Nils Adermann
b935389427 I mean it. Really. Go away.
git-svn-id: file:///svn/phpbb/trunk@8478 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-29 00:10:43 +00:00
Nils Adermann
195cd7e148 Go away evil carriage returns\!
git-svn-id: file:///svn/phpbb/trunk@8477 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-29 00:08:34 +00:00
Marek A. R
22c304092e It's here and it's awesome!
git-svn-id: file:///svn/phpbb/trunk@8476 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-28 22:59:53 +00:00
Henry Sudhof
7596a3bfdc #22385 - David told me to ci this
git-svn-id: file:///svn/phpbb/trunk@8473 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-26 17:32:05 +00:00
Nils Adermann
a3da99f358 new isset_post function and some better comments
git-svn-id: file:///svn/phpbb/trunk@8468 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-24 01:21:42 +00:00
Nils Adermann
6a30daeb59 not sure what the implications of this quick fix are, especially when upgrading from earlier versions we either have to use a different timezone depending on the server or fix timestamps on update, though shouldn't they be gmt already?
git-svn-id: file:///svn/phpbb/trunk@8467 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-24 01:04:27 +00:00
Nils Adermann
5417ec5c4d - add error_reporting to style.php (merge from r8464)
- let the error handler deal with E_STRICT (same as E_WARNING/E_NOTICE) and E_RECOVERABLE_ERROR (same as E_USER_ERROR)


git-svn-id: file:///svn/phpbb/trunk@8466 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-24 00:59:39 +00:00
Nils Adermann
65b0f6b165 add session_forum_id column to schema on trunk too
git-svn-id: file:///svn/phpbb/trunk@8465 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-24 00:53:17 +00:00
Nils Adermann
6c8a8163e8 - merging r8462 from 3.0 branch
git-svn-id: file:///svn/phpbb/trunk@8463 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-24 00:22:16 +00:00
Meik Sievertsen
312bd1a670 merging, revisions #r8453 and #r8454
git-svn-id: file:///svn/phpbb/trunk@8455 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-21 10:50:11 +00:00
Meik Sievertsen
02a5032a52 merging... again
git-svn-id: file:///svn/phpbb/trunk@8452 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-18 14:47:43 +00:00
Manuel Pichler
c34599126f - First PHP_CodeSniffer rule added that checks all files for a valid file doc
comment as specified in "1.ii. File Header" of the phpBB Coding Guidelines.

git-svn-id: file:///svn/phpbb/trunk@8435 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-15 01:01:15 +00:00
Manuel Pichler
9b96e12678 - Initial commit of an ant build file that helps to execute the test suite
for this code sniffer standard implementation. 
  


git-svn-id: file:///svn/phpbb/trunk@8434 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-14 20:21:03 +00:00
Nils Adermann
d1f48526d7 code sniffer directory
git-svn-id: file:///svn/phpbb/trunk@8433 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-14 20:08:44 +00:00
Meik Sievertsen
8c64d7c32a merging #r8426 to #r8430
git-svn-id: file:///svn/phpbb/trunk@8431 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-13 15:25:20 +00:00
Nils Adermann
f115ab68a5 Custom profile fields with date type should be timezone independend [Bug #15003]
git-svn-id: file:///svn/phpbb/trunk@8425 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-03-06 19:31:03 +00:00
Henry Sudhof
cf17b13c98 Problem migrating old cvs working copy to svn
git-svn-id: file:///svn/phpbb/trunk@8423 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-29 13:42:28 +00:00
Meik Sievertsen
da966fed65 #22355 and #22365
git-svn-id: file:///svn/phpbb/trunk@8421 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-28 19:57:52 +00:00
Vic D'Elfant
a765c1aba1 #22285
git-svn-id: file:///svn/phpbb/trunk@8416 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-28 07:39:57 +00:00
Henry Sudhof
f465cdd782 cross-ci
git-svn-id: file:///svn/phpbb/trunk@8415 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-27 15:51:23 +00:00
Henry Sudhof
05ba2058c6 git-svn-id: file:///svn/phpbb/trunk@8413 89ea8834-ac86-4346-8a33-228a782c2dd0 2008-02-27 15:29:35 +00:00
Henry Sudhof
2a3eb724a8 cross-ci
git-svn-id: file:///svn/phpbb/trunk@8411 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-27 15:21:23 +00:00
Nils Adermann
30b24d476c guess we need to initialise it first
git-svn-id: file:///svn/phpbb/trunk@8404 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-26 17:13:12 +00:00
Nils Adermann
f83b47bc11 allow search backends to handle regular updates too, and not just backend switches
git-svn-id: file:///svn/phpbb/trunk@8403 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-25 18:39:16 +00:00
Vic D'Elfant
42073ab0af This will prevent a php warning from being printed (and the layout getting ruined) in case of a conflicting permission restriction such as open_basedir
git-svn-id: file:///svn/phpbb/trunk@8401 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-25 13:07:41 +00:00
Vic D'Elfant
a800565393 #22035
git-svn-id: file:///svn/phpbb/trunk@8396 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-24 15:04:20 +00:00
Meik Sievertsen
0c5839a0b9 merge revisions #r8392 and #r8393
git-svn-id: file:///svn/phpbb/trunk@8394 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-23 15:32:34 +00:00
Meik Sievertsen
2cedbbac09 merge revisions #r8384, #r8387, #r8388, #r8389 and #r8390
git-svn-id: file:///svn/phpbb/trunk@8391 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-23 14:23:34 +00:00
Vic D'Elfant
6dc85449c1 - New set of smilies (they're all face-shaped now), provided by camm15h. Send all your love his way! ;)
- Set svn:ignore on cache/*.php

git-svn-id: file:///svn/phpbb/trunk@8386 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-21 13:14:24 +00:00
Henry Sudhof
95f11a38c0 Cross ci, converter not updated. (as 3.1 schema won't fit any more)
git-svn-id: file:///svn/phpbb/trunk@8383 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-14 12:38:06 +00:00
Henry Sudhof
65ba4fe94e cross-ci
git-svn-id: file:///svn/phpbb/trunk@8382 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-14 12:35:57 +00:00
Henry Sudhof
b33ec670a2 Minor stuff: #20925, #20815
git-svn-id: file:///svn/phpbb/trunk@8376 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-04 12:14:03 +00:00
Nils Adermann
3b669aedfd adding a new option to hide the entire list of subforums on listforums
git-svn-id: file:///svn/phpbb/trunk@8373 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-03 22:39:38 +00:00
David M
7b262babcd Alright, this should give some improved performance :)
This is the end of random seek access to rows. If you have a compelling reason as to why they should stay, contact me. Else, they are gone forevermore...

The following API calls are deprecated:
acm::sql_rowseek() -> no replacement
$db->sql_fetchfield($field, $rownum = false, $query_id = false) -> $db->sql_fetchfield($field, $query_id = false)

Initial tests show that phpBB3 over four percent of memory against phpBB3.1 on an empty board. So far so good :)

Other cool things: 
db2, MS SQL ODBC and MS SQL 2005 all use less memory because they do not need to reference the last executed query to handle random access seeks :)

P.S.
The crazy people using SVN: please report any issues with the new way we itterate through caches, I do not want to miss anything :)

git-svn-id: file:///svn/phpbb/trunk@8372 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-03 10:19:04 +00:00
Meik Sievertsen
e9e9e8e69c merge revisions: #r8359, #r8360, #r8368
git-svn-id: file:///svn/phpbb/trunk@8369 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-02 15:24:55 +00:00
Henry Sudhof
2e5e0a7868 Oh well
git-svn-id: file:///svn/phpbb/trunk@8365 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-01 15:17:04 +00:00
Henry Sudhof
9a4a3a089a cross-ci 8362; #15120, #16029
git-svn-id: file:///svn/phpbb/trunk@8363 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-02-01 13:15:50 +00:00
Meik Sievertsen
48ed77f046 Merging revisions #r8352, #r8353, #r8354 and #r8355
git-svn-id: file:///svn/phpbb/trunk@8356 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-30 21:48:49 +00:00
Meik Sievertsen
4b5fab372f merge with revision #r8350
git-svn-id: file:///svn/phpbb/trunk@8351 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-30 16:14:39 +00:00
Meik Sievertsen
1407460895 Merging revisions #r8346, #r8347 and #r8348
git-svn-id: file:///svn/phpbb/trunk@8349 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-29 15:57:56 +00:00
Meik Sievertsen
e970da6514 Merge revision #r8334
git-svn-id: file:///svn/phpbb/trunk@8345 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-29 14:35:29 +00:00
Meik Sievertsen
1819be3ed1 Merge revision #r8343
git-svn-id: file:///svn/phpbb/trunk@8344 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-29 14:33:53 +00:00
Henry Sudhof
9f5841219a nit rightfully picked
git-svn-id: file:///svn/phpbb/trunk@8341 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-28 15:23:14 +00:00
Henry Sudhof
e683deeeb8 merging #20255
git-svn-id: file:///svn/phpbb/trunk@8338 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-28 13:04:49 +00:00
Henry Sudhof
fedee2c07e cross-ci
git-svn-id: file:///svn/phpbb/trunk@8336 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-24 11:11:11 +00:00
Henry Sudhof
7fed5dd166 cross-checkin for the TRUNK
git-svn-id: file:///svn/phpbb/trunk@8333 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-23 14:32:15 +00:00
Marek A. R
e6991260df Fix parse errors
git-svn-id: file:///svn/phpbb/trunk@8331 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-22 22:15:30 +00:00
Nils Adermann
dbcf8a6f31 poor file being commited without reason
git-svn-id: file:///svn/phpbb/trunk@8330 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-22 19:38:55 +00:00
Marek A. R
835558ea38 Fix parse error
git-svn-id: file:///svn/phpbb/trunk@8329 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-22 19:38:05 +00:00
Nils Adermann
8608cea5c8 test commit on svn
git-svn-id: file:///svn/phpbb/trunk@8328 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-22 19:16:52 +00:00
David M
18a081bc6c oops
#19305


git-svn-id: file:///svn/phpbb/trunk@8325 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-14 05:52:11 +00:00
David M
5195509f3b #19285
git-svn-id: file:///svn/phpbb/trunk@8324 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-13 08:46:37 +00:00
David M
13ee383aad #19245
git-svn-id: file:///svn/phpbb/trunk@8323 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-13 07:49:51 +00:00
David M
9dcb557a5e I suppose I should fix this :P
git-svn-id: file:///svn/phpbb/trunk@8322 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-13 07:47:41 +00:00
David M
b9da54ba91 arg, the voices in my head won't let me focus :P
git-svn-id: file:///svn/phpbb/trunk@8321 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-11 06:25:28 +00:00
David M
24a359e9f5 db tools can now drop tables
git-svn-id: file:///svn/phpbb/trunk@8320 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-11 06:17:46 +00:00
David M
cbb4db46b2 - use proper OOP for db_tools
- made it all static. If one of you disagree, you are free to change it. I just couldn't think of a reason of having it otherwise...


git-svn-id: file:///svn/phpbb/trunk@8319 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-11 05:07:33 +00:00
David M
35f59ceb9a we enter a brave new world...
- fix schema data so that it can now be used
- replace the current system of packaging schemas with phpBB with a new system that dynamically generates the schemas on the fly
- give the db tools package the power to create databases


git-svn-id: file:///svn/phpbb/trunk@8318 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-10 21:46:46 +00:00
David M
b9b46a8b45 - phpBB now uses a less ancient version of Oracle
git-svn-id: file:///svn/phpbb/trunk@8317 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-09 00:21:29 +00:00
David M
7193d91e40 so close to that perfect commit, yet so very far...
git-svn-id: file:///svn/phpbb/trunk@8316 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-08 06:46:08 +00:00
David M
370e189f15 - make viewforum work again
- remove the lower case functions, they were stupid anyway
- added some indexes
- added a group_name_clean column


git-svn-id: file:///svn/phpbb/trunk@8315 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-08 06:44:05 +00:00
Meik Sievertsen
b4e64655af grr
git-svn-id: file:///svn/phpbb/trunk@8314 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-07 19:29:50 +00:00
David M
2928574ed4 - a few tiny clean ups
- a new MS SQL DBAL, it does not work so hot because of issues with the extension it depends on


git-svn-id: file:///svn/phpbb/trunk@8313 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-07 15:19:38 +00:00
Vic D'Elfant
159ce6f8d1 Fixed a problem caused by "-x-" variations of a translation, such as fr-x-strict and de-x-sie. We're now sending the main language code to the output so it will at least be a valid language code
git-svn-id: file:///svn/phpbb/trunk@8311 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-07 09:30:18 +00:00
Meik Sievertsen
5dddcb42ae - Do not split topic list for topics being promoted to announcements after been moved to another forum (Bug #18635)
- Allow editing usernames within database_update on username cleanup (Bug #18415)
- Fixing wrong sync() calls if moving all posts by a member in ACP (Bug #18385)
- Check entered imagemagick path for trailing slash (Bug #18205)
- Use proper title on index for new/unread posts (Bug #13101) - patch provided by Pyramide
- Allow calls to $user->set_cookie() define no cookie time for setting session cookies (Bug #18025)


git-svn-id: file:///svn/phpbb/trunk@8310 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-06 17:00:09 +00:00
David M
6dfa770986 I plan on getting a perfect commit one of these days... Today is not that day :P
git-svn-id: file:///svn/phpbb/trunk@8309 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-06 13:48:28 +00:00
David M
2f08a36062 - add DB2 support
/me takes a nap


git-svn-id: file:///svn/phpbb/trunk@8308 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-06 13:46:20 +00:00
David M
57645ad5bc the end of an era...
- MySQL < 4.1.3 support is removed
- renamed mysql4 to mysql, no need to cause confusion
- changed the cfg cacher, reduces file system lookups and include count by two on every page load


git-svn-id: file:///svn/phpbb/trunk@8307 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-06 02:21:44 +00:00
Meik Sievertsen
f0dea06097 Correctly check empty subjects/messages (Bug #17915)
Do not check usernames against word censor list. Disallowed usernames is already checked and word censor belong to posts. (Bug #17745)
Additionally include non-postable forums for moderators forums shown within the teams list. (Bug #17265)


git-svn-id: file:///svn/phpbb/trunk@8306 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-05 16:10:10 +00:00
Meik Sievertsen
a4633d8ac0 - version jump
- take empty topic_list into account as well as re-enabling for an empty get_forum_ids


git-svn-id: file:///svn/phpbb/trunk@8304 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-05 15:44:31 +00:00
David M
3b29db4545 oops
git-svn-id: file:///svn/phpbb/trunk@8303 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-04 19:54:24 +00:00
David M
f14f82775f ACMs? yep, ACMs...
- Added support for APC, eAccelerator, xcache and memcache systems


git-svn-id: file:///svn/phpbb/trunk@8302 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-04 18:56:42 +00:00
David M
af738dbc2a Ch-ch-ch-changes
- Made us more DB independent by making many queries capability based instead of DB specific
- Finished PHP5ifying of the acm_file class, now with some (hopefully) enhancements to its performance
- Sped up viewforum considerably (also goes towards mcp_forum)

I really hope I didn't explode CVS...


git-svn-id: file:///svn/phpbb/trunk@8301 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-04 18:35:49 +00:00
David M
edd6c34eda do this the proper way
git-svn-id: file:///svn/phpbb/trunk@8300 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-03 19:12:41 +00:00
David M
6b8f2fb4cc PHP, why do you break my heart?
git-svn-id: file:///svn/phpbb/trunk@8299 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-03 18:22:48 +00:00
David M
a7c29a06bf oops
git-svn-id: file:///svn/phpbb/trunk@8298 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-03 17:53:18 +00:00
David M
12d7c9b007 good bye old friend
git-svn-id: file:///svn/phpbb/trunk@8297 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-03 17:14:12 +00:00
David M
4b1b950068 uncomment the second one for ultra debugging power :P
git-svn-id: file:///svn/phpbb/trunk@8296 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-03 17:10:17 +00:00
David M
85055ac97f oh boy...
- Migrate code base to PHP 5.1+


git-svn-id: file:///svn/phpbb/trunk@8295 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-03 17:00:40 +00:00
Henry Sudhof
0f26ffbade cross-ci to the head
git-svn-id: file:///svn/phpbb/trunk@8294 89ea8834-ac86-4346-8a33-228a782c2dd0
2008-01-03 14:37:34 +00:00
Meik Sievertsen
fe56349e34 #16695
#s17235


git-svn-id: file:///svn/phpbb/trunk@8290 89ea8834-ac86-4346-8a33-228a782c2dd0
2007-12-27 17:34:05 +00:00
Meik Sievertsen
5eb46fb67e Ticket #16825
git-svn-id: file:///svn/phpbb/trunk@8289 89ea8834-ac86-4346-8a33-228a782c2dd0
2007-12-27 16:36:24 +00:00
Meik Sievertsen
c3ef1109c0 Ticket #16945
git-svn-id: file:///svn/phpbb/trunk@8288 89ea8834-ac86-4346-8a33-228a782c2dd0
2007-12-27 16:27:24 +00:00
Meik Sievertsen
bf2741ca80 Ticket #17705
git-svn-id: file:///svn/phpbb/trunk@8287 89ea8834-ac86-4346-8a33-228a782c2dd0
2007-12-27 16:04:42 +00:00
Meik Sievertsen
253c07733e re-allow disabling of word censors (we somehow forgot to commit this, i really do not know why :/)
git-svn-id: file:///svn/phpbb/trunk@8286 89ea8834-ac86-4346-8a33-228a782c2dd0
2007-12-26 15:33:06 +00:00
644 changed files with 21990 additions and 113763 deletions

18
.gitignore vendored
View File

@@ -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/*

View File

@@ -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

View File

@@ -1,26 +0,0 @@
[![phpBB](https://www.phpbb.com/theme/images/logos/blue/160x52.png)](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 - [![Build Status](https://secure.travis-ci.org/phpbb/phpbb3.png?branch=develop)](http://travis-ci.org/phpbb/phpbb3)
develop-olympus - [![Build Status](https://secure.travis-ci.org/phpbb/phpbb3.png?branch=develop-olympus)](http://travis-ci.org/phpbb/phpbb3)
## LICENSE
[GNU General Public License v2](http://opensource.org/licenses/gpl-2.0.php)

View File

@@ -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>

View File

@@ -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";
}

View File

@@ -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";
}
?>

View File

@@ -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;
}
}

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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";

View File

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

View File

@@ -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

View File

@@ -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 $$

View File

@@ -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>

View File

@@ -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>

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

View 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
*
*/

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

View 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>

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

Binary file not shown.

View File

@@ -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 $?;

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}
}
}

View File

@@ -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));
}
}

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

View File

@@ -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>&reg; Forum Software &copy; 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)

View File

@@ -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">&nbsp;</textarea></dd>
<dd><textarea style="border: 0;" class="text full" disabled="disabled" name="unbanreason" id="unbanreason" rows="5" cols="80">&nbsp;</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">&nbsp;</textarea></dd>
<dd><textarea style="border: 0;" class="text full" disabled="disabled" name="unbangivereason" id="unbangivereason" rows="5" cols="80">&nbsp;</textarea></dd>
</dl>
<p class="submit-buttons">

View File

@@ -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}" />&nbsp;
<input class="button2" type="reset" id="form_reset" name="reset" value="{L_RESET}" />&nbsp;
</p>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" id="main_submit" name="main_submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="form_reset" name="reset" value="{L_RESET}" />&nbsp;
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -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>

View File

@@ -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}" />&nbsp;
<input class="button1" type="submit" id="submit" name="submit" value="{L_EMAIL}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
</p>
{S_FORM_TOKEN}

View File

@@ -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 -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- ENDIF -->" autocomplete="off" /></dd>
<dd><input type="password" id="forum_password" name="forum_password" value="<!-- IF S_FORUM_PASSWORD_SET -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- 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 -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- ENDIF -->" autocomplete="off" /></dd>
<dd><input type="password" id="forum_password_confirm" name="forum_password_confirm" value="<!-- IF S_FORUM_PASSWORD_SET -->&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;<!-- ENDIF -->" /></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 -->

View File

@@ -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" />&nbsp;
</div>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -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 -->&nbsp;<span style="background-color: #{GROUP_COLOUR}">&nbsp; &nbsp;</span><!-- ENDIF -->&nbsp;&nbsp;<span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
<dd><input name="group_colour" type="text" id="group_colour" value="{GROUP_COLOUR}" size="6" maxlength="6" />&nbsp;&nbsp;<span>[ <a href="{U_SWATCH}" onclick="popup(this.href, 636, 150, '_swatch'); return false">{L_COLOUR_SWATCH}</a> ]</span></dd>
</dl>
<dl>
<dt><label for="group_rank">{L_GROUP_RANK}:</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} &times; </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> &bull; <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> &bull; <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> &bull; <a href="#" onclick="marklist('list', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
</fieldset>
<h1>{L_ADD_USERS}</h1>

View File

@@ -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 -->&nbsp;
<!-- IF items.S_LAST_ROW and not NEXT_PAGE -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
<!-- IF items.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
<!-- IF items.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{items.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
&nbsp;<a href="{items.U_EDIT}">{ICON_EDIT}</a> <a href="{items.U_DELETE}">{ICON_DELETE}</a>
</td>
</tr>
@@ -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}" />&nbsp; &nbsp;<input class="button2" type="submit" name="edit" value="{L_ICON_EDIT}" />
</p>

View File

@@ -12,7 +12,7 @@
<!-- IF PAGINATION -->
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <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>&nbsp;<input type="checkbox" class="radio" name="mark[]" value="{inactive.USER_ID}" />&nbsp;</td>
</tr>
<!-- BEGINELSE -->
@@ -52,25 +46,25 @@
</tbody>
</table>
<fieldset class="display-options">
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}<!-- IF PAGINATION -->&nbsp;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}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
<input class="button2" type="submit" value="{L_GO}" name="sort" />
</fieldset>
<hr />
<!-- IF PAGINATION -->
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <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> &bull; <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> &bull; <a href="#" onclick="marklist('inactive', 'mark', false); return false;">{L_UNMARK_ALL}</a></p>
{S_FORM_TOKEN}
</fieldset>
</form>

View File

@@ -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 -->

View 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 -->
&nbsp;
{S_HIDDEN_FIELDS}<input type="submit" name="login" tabindex="6" value="{L_LOGIN}" class="button1" />
</p>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -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}" />&nbsp;<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> &bull; <span>{PAGINATION}</span>
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<div class="clearfix">&nbsp;</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> &bull; <span>{PAGINATION}</span>
</div>
<!-- ENDIF -->
<!-- ELSE -->
<div class="errorbox">
<p>{L_NO_ENTRIES}</p>
</div>
<!-- ENDIF -->
<fieldset class="display-options">
{L_DISPLAY_LOG}: &nbsp;{S_LIMIT_DAYS}&nbsp;{L_SORT_BY}: {S_SORT_KEY} {S_SORT_DIR}
<input class="button2" type="submit" value="{L_GO}" name="sort" />
{S_FORM_TOKEN}
</fieldset>
<hr />
<!-- IF PAGINATION -->
<div class="pagination">
<a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{S_ON_PAGE}</a> &bull; <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}" />&nbsp;
<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 -->

View File

@@ -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> &middot; <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> &middot; <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> [&nbsp;<a href="{U_VERSIONCHECK_FORCE}">{L_VERSIONCHECK_FORCE_UPDATE}</a>&nbsp;]
</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>

View File

@@ -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};">&laquo; {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 -->

View File

@@ -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}" />

View File

@@ -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>

View File

@@ -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 -->

View File

@@ -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}">&laquo; {L_GO_ACP_MAIN}</a></p>
</div>
<script type="text/javascript">
//<![CDATA[
dE('configlist', -1);
dE('questionnaire-thanks', -1);
//]]>
</script>
<!-- INCLUDE overall_footer.html -->

View File

@@ -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};">&laquo; {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 -->

View File

@@ -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 -->

View File

@@ -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 -->&nbsp;<!-- ENDIF --></td>
<td><!-- IF group.S_IS_MEMBER and not group.S_SPECIAL_GROUP --><a href="{group.U_DEMOTE_PROMOTE}">{group.L_DEMOTE_PROMOTE}</a><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
<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 -->&nbsp;<!-- ENDIF --></td>
<td><a href="{group.U_DELETE}">{L_GROUP_DELETE}</a></td>
</tr>
<!-- ENDIF -->

View File

@@ -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} &times; </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 -->

View File

@@ -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 -->

View File

@@ -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>

View File

@@ -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}" />&nbsp;
<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> &bull; <a href="#" onclick="marklist('list', 'mark', false);">{L_UNMARK_ALL}</a></p>
</fieldset>
{S_FORM_TOKEN}
</form>

View File

@@ -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 {

View File

@@ -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>

View File

@@ -1,7 +1,6 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<a href="{U_ACTION}" style="float: {S_CONTENT_FLOW_END};">&laquo; {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}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />&nbsp;
<input class="button2" type="submit" id="preview" name="preview" value="{L_PREVIEW}" />&nbsp;
</p>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />&nbsp;
<input type="hidden" name="select_captcha" value="{CAPTCHA_NAME}" />
<input type="hidden" name="configure" value="1" />

View File

@@ -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};">&laquo; {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>&nbsp;<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 -->

View File

@@ -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>

View File

@@ -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 -->

View File

@@ -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}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />&nbsp;
</p>
<fieldset class="submit-buttons">
<legend>{L_SUBMIT}</legend>
<input class="button1" type="submit" id="submit" name="submit" value="{L_SUBMIT}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />&nbsp;
<input type="hidden" name="select_captcha" value="{CAPTCHA_NAME}" />
<input type="hidden" name="configure" value="1" />

View File

@@ -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" />&nbsp;
<input type="submit" name="cancel" value="{L_CANCEL}" class="button2" />
</div>
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -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(/&lt\;/ig, '<');
theSelection = theSelection.replace(/&gt\;/ig, '>');
theSelection = theSelection.replace(/&amp\;/ig, '&');
theSelection = theSelection.replace(/&nbsp\;/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>');
}

View File

@@ -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>&reg; Forum Software &copy; phpBB Group
Powered by phpBB &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
</div>
</div>

View File

@@ -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};">&raquo; <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};">&raquo; <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%;">&nbsp;</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 -->&nbsp;<!-- 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 -->&nbsp;<!-- 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%;">&nbsp;</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' -->&nbsp;<!-- 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 -->&nbsp;<!-- 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 -->&nbsp;<!-- 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 -->&nbsp;<!-- 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" />&nbsp; &nbsp;<input type="submit" class="button1" value="{L_DOWNLOAD}" name="download" />
<input type="submit" class="button2" value="{L_CHECK_FILES_AGAIN}" name="check_again" />&nbsp; &nbsp;<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>

View File

@@ -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 -->

View File

@@ -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 &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
<!-- IF TRANSLATION_INFO --><br />{TRANSLATION_INFO}<!-- ENDIF -->
<!-- ENDIF -->

View File

@@ -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(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
}
document.location.href = base_url.replace(/&amp;/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> [&nbsp;<a href="{U_LOGOUT}">{L_LOGOUT}</a>&nbsp;][&nbsp;<a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a>&nbsp;]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><!-- IF S_USER_LOGGED_IN --> {L_LOGGED_IN_AS}<br /><strong>{USERNAME}</strong> [&nbsp;<a href="{U_LOGOUT}">{L_LOGOUT}</a>&nbsp;]<!-- ENDIF --><!-- IF S_USER_ADMIN -->[&nbsp;<a href="{U_ADM_LOGOUT}">{L_ADM_LOGOUT}</a>&nbsp;]<!-- 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">

View File

@@ -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}" />&nbsp;
<input class="button2" type="reset" id="reset" name="reset" value="{L_RESET}" />
{S_HIDDEN_FIELDS}
{S_FORM_TOKEN}
</fieldset>
</form>
<!-- INCLUDE overall_footer.html -->

View File

@@ -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 -->

View File

@@ -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 &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
<!-- IF TRANSLATION_INFO --><br />{TRANSLATION_INFO}<!-- ENDIF -->
<!-- ENDIF -->

View File

@@ -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(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
}
document.location.href = base_url.replace(/&amp;/g, '&') + '&start=' + ((page - 1) * per_page);
}
}

View File

@@ -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'],

View File

@@ -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);
}
?>

View File

@@ -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
View File

@@ -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": [
]
}

View File

@@ -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;

View File

@@ -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();
?>

View File

@@ -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;

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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);
}
}
?>

View File

@@ -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

View File

@@ -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);

View File

@@ -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 '';
}

View File

@@ -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

View File

@@ -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);

View File

@@ -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>&reg; Forum Software &copy; phpBB Group</div>
<div class="copyright" align="center">Powered by phpBB 2.2 &copy; <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>&reg; Forum Software &copy; phpBB Group</div>
<div class="copyright" align="center">Powered by phpBB 2.2 &copy; <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>&reg; Forum Software &copy; phpBB Group</div>
<div class="copyright" align="center">Powered by phpBB 2.2 &copy; <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">phpBB Group</a>, 2003</div>
<br clear="all" /></td>
</tr>

View File

@@ -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&amp;' . time() . '">And now for something completely different...';
echo '<meta http-equiv="refresh" content="10; url=fill.' . PHP_EXT . '?mode=sync&amp;' . 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 . '&amp;' . time() . '">To the next page... (' . $topic_id . '/' . $num_topics . ')';
echo '<meta http-equiv="refresh" content="10; url=fill.' . PHP_EXT . '?start=' . $topic_id . '&amp;' . 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&amp;start=$start&amp;" . time() . "\">And now for something completely different... ($start/$num_topics)";
echo '<meta http-equiv="refresh" content="0; url=fill.' . PHP_EXT . "?mode=sync&amp;start=$start&amp;" . 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>';
}
}

View File

@@ -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

View File

@@ -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");
}

View File

@@ -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