206 Commits

Author SHA1 Message Date
Marc Alexander
259d6d80e4 Merge pull request #164 from marc1706/birthday/year_opt
[birthday/year_opt] Make year optional for displaying date in birthday ahead
2013-10-29 05:46:28 -07:00
Marc Alexander
36fdb4d33d [birthday/year_opt] Make year optional for displaying date in birthday ahead 2013-10-29 13:43:13 +01:00
Marc Alexander
32a63f3124 Merge pull request #160 from marc1706/update/install
[update/install] Update installation/update files for release
2013-10-27 09:39:28 -07:00
Marc Alexander
8e65ce57aa [update/install] Update installation/update files for release 2013-10-27 17:38:46 +01:00
Marc Alexander
68da22bc28 Merge pull request #159 from marc1706/birthday/php_5_5_compat
[birthday/php_5_5_compat] Remove unneeded functions from birthday list
2013-10-27 09:28:21 -07:00
Marc Alexander
ad82abde08 [birthday/php_5_5_compat] Remove unneeded functions from birthday list 2013-10-27 17:25:09 +01:00
Marc Alexander
bd78cc73cd Merge pull request #158 from marc1706/birthday/php_5_5_compat
[birthday/php_5_5_compat] Filter out array elements from lang dates
2013-10-26 09:43:33 -07:00
Marc Alexander
6bbd7cff42 [birthday/php_5_5_compat] Filter out array elements from lang dates 2013-10-26 18:42:39 +02:00
Marc Alexander
c2e839defb Merge pull request #157 from marc1706/improve/design
[improve/design] Slight changes to menu and recent topics design
2013-10-26 09:05:10 -07:00
Marc Alexander
09dad56bcf [improve/design] Slight changes to menu and recent topics design 2013-10-26 18:03:29 +02:00
Marc Alexander
aae9917f9f Merge pull request #156 from marc1706/birthday/ahead_date
[birthday/ahead_date] Add span title with date to birthday ahead list
2013-10-26 08:38:52 -07:00
Marc Alexander
70a77ca298 [birthday/ahead_date] Add span title with date to birthday ahead list 2013-10-26 17:37:56 +02:00
Marc Alexander
0f7ae90fb6 Merge pull request #155 from marc1706/fix/acp_logs
[fix/acp-logs] Do not create duplicate acp logs and fix custom module logs
2013-10-26 06:01:54 -07:00
Marc Alexander
58ced7a6e7 [fix/acp-logs] Do not create duplicate acp logs and fix custom module logs 2013-10-26 14:56:35 +02:00
Marc Alexander
ee38238199 Merge pull request #151 from marc1706/fix/update
[fix/update] Copy German language files in German language update
2013-10-14 05:07:21 -07:00
Marc Alexander
6c54de1662 [fix/update] Copy German language files in German language update
B3P-FIX-DE_UPDATE
2013-10-14 14:04:55 +02:00
Marc Alexander
6130bcab38 Merge pull request #150 from marc1706/fix/german
[fix/german] Fix incorrect language strings in the German files
2013-10-14 05:03:27 -07:00
Marc Alexander
7d42187fb1 [fix/german] Fix incorrect language strings in the German files
B3P-FIX-DE
2013-10-14 14:02:17 +02:00
Marc Alexander
18c27f17d8 Merge pull request #149 from marc1706/ticket/226
[ticket/226] Use $this->c_class instead of $c_class
2013-10-14 02:57:20 -07:00
Marc Alexander
533701b201 [ticket/226] Use $this->c_class instead of $c_class
B3P-226
2013-10-14 11:56:17 +02:00
Marc Alexander
7b0864411b Merge pull request #148 from marc1706/translate/changes
[translate/changes] Translate 2.0.2 changes to German
2013-10-06 07:09:02 -07:00
Marc Alexander
3ab6e550c4 [translate/changes] Translate 2.0.2 changes to German
B3P-TRNS-CHANGES
2013-10-06 16:07:11 +02:00
Marc Alexander
dc032effb8 Merge pull request #147 from marc1706/remove/format_birthday
[remove/format_birthday] Remove useless function format_birthday()
2013-10-06 06:55:06 -07:00
Marc Alexander
e594d23f79 [remove/format_birthday] Remove useless function format_birthday()
B3P-RM-FORMAT_BIRTHDAY
2013-10-06 15:53:53 +02:00
Marc Alexander
277784bd11 Merge pull request #146 from marc1706/fix/xml
[fix/xml] Use dependency again for mod version check links
2013-10-06 04:08:51 -07:00
Marc Alexander
65c5406ae8 [fix/xml] Use dependency again for mod version check links
B3P-FIX_XML
2013-10-06 13:07:57 +02:00
Marc Alexander
1c6e503d2e Merge pull request #145 from marc1706/update/2.0.2
[update/2.0.2] Update files for 2.0.2 release
2013-10-06 03:59:36 -07:00
Marc Alexander
9d0a483ab3 [update/2.0.2] Update files for 2.0.2 release
This includes an update of MODx to 1.2.6

B3P-UPDATE-2.0.2
2013-10-06 12:58:06 +02:00
Marc Alexander
4640b00d3d Merge pull request #144 from marc1706/gh/113
[gh/113] Update UMIL to 1.0.5
2013-10-06 02:47:03 -07:00
Marc Alexander
7a1cf0e9ee [gh/113] Update UMIL to 1.0.5
B3P-GH-113
2013-10-06 11:46:10 +02:00
Marc Alexander
c71695dfcb Merge pull request #143 from marc1706/feature/clean-up
[feature/clean-up] Remove duplicated code from portal modules
2013-10-06 02:44:43 -07:00
Marc Alexander
93376e16a5 [feature/clean-up] Remove duplicated code from portal modules
B3P-CU
2013-10-05 11:00:33 +02:00
Marc Alexander
7d2a124bbc Merge pull request #142 from marc1706/ticket/223
[ŧicket/223] Set correct permissions to uploaded files (644)
2013-10-04 07:33:46 -07:00
Marc Alexander
651514aa54 [ŧicket/223] Set correct permissions to uploaded files (644)
phpbb_chmod() only sets the owner permissions. As we need to set the
permissions for all users, it is not possible to use phpbb_chmod().

B3P-223
2013-10-04 16:32:10 +02:00
Marc Alexander
aac0e22962 Merge pull request #140 from marc1706/ticket/224
[ticket/224] Add possibility to append username to donation
2013-09-21 05:23:29 -07:00
Marc Alexander
cd4dd32e0d [ticket/224] Add possibility to append username to donation
B3P-224
2013-09-21 14:22:16 +02:00
Marc Alexander
22b51dfb66 Merge pull request #132 from marc1706/ticket/120
[ticket/120] Move birthday block HTML to template files
2013-06-09 07:42:06 -07:00
Marc Alexander
9d8089b287 [ticket/120] Move birthday block HTML to template files
B3P-120
2013-06-09 16:40:56 +02:00
Marc Alexander
a2ffc65d1d Merge pull request #116 from marc1706/calendar/one_day_off
Display correct day of the week with negative UTC offset
2013-02-15 01:46:22 -08:00
Marc Alexander
36903cb9c8 Display correct day of the week with negative UTC offset
A duplicate subtraction of the UTC offset and DST time caused the creation
of an incorrect timestamp. In return this caused us to go back too far and
therefore moved us back one day.
2013-02-15 10:45:12 +01:00
Marc Alexander
58aa86123a Merge pull request #110 from marc1706/cleanup/whitespace
[cleanup/whitespace] Get rid of unnecessary whitespace
2013-01-08 13:51:05 -08:00
Marc Alexander
407f8df8a4 [cleanup/whitespace] Get rid of unnecessary whitespace 2013-01-08 22:33:23 +01:00
Marc Alexander
61685ce96a Merge pull request #109 from marc1706/cleanup/tabs
[cleanup/tabs] Remove unnecessary tabbing in portal files
2013-01-04 08:00:52 -08:00
Marc Alexander
0b4eafdd9e Merge branch 'master' of github.com:board3/Board3-Portal into cleanup/tabs
Conflicts:
	root/includes/acp/acp_portal.php
	root/language/de/mods/info_acp_portal.php
	root/language/en/mods/info_acp_portal.php
2013-01-04 16:59:37 +01:00
Marc Alexander
f948811044 [cleanup/tabs] Remove unnecessary tabbing in portal files 2013-01-04 16:51:43 +01:00
Marc Alexander
8854bb4a4b Merge pull request #106 from marc1706/cleanup/acp
[cleanup/acp] Make acp_portal module more readable
2012-12-24 05:26:33 -08:00
Marc Alexander
316cbfb59b [cleanup/acp] Make acp_portal module more readable 2012-12-24 14:20:47 +01:00
Marc Alexander
741df3475e Merge pull request #105 from marc1706/ticket/217
[ticket/217] Handle incorrect values in the news URL
2012-12-07 16:46:35 -08:00
Marc Alexander
fb84ff92ae [ticket/217] Handle incorrect values in the news URL
The news module was actually comparing the id of the selected news
with the maximum allowed length of a news article.

B3P-217
2012-12-08 01:44:03 +01:00
Marc Alexander
025421ff94 Merge pull request #104 from marc1706/ticket/216
[ticket/216] Add function for obtaining user's groups
2012-12-06 16:04:02 -08:00
Marc Alexander
d5b91d4c01 [ticket/216] Add function for obtaining user's groups
B3P-216
2012-12-07 00:59:57 +01:00
Marc Alexander
075a12dbca Merge pull request #99 from marc1706/master
Add missing language variable "NO_FILE_B3P"
2012-10-13 13:02:37 -07:00
Marc Alexander
0c90a1c613 Add missing error messages to links & main menu modules 2012-10-13 22:01:50 +02:00
Marc Alexander
326d9013b2 Add missing language variable "NO_FILE_B3P" 2012-10-13 21:50:30 +02:00
Marc Alexander
370f96aa99 Update install & update instructions for 2.0.1 2012-09-08 16:30:44 +02:00
Marc Alexander
1f55dd564c Remove update for beta version 2012-08-26 16:36:29 +02:00
Marc Alexander
1aeed1e4ec Remove update instructions for old releases
Fixed #86
2012-08-26 16:30:06 +02:00
Marc Alexander
74b5f6f87c Add missing error messages to links & main menu modules 2012-08-25 17:01:13 +02:00
Marc Alexander
12b792bb38 Merge pull request #93 from marc1706/master
Save module settings even if module image can't be found
2012-08-11 09:18:16 -07:00
Marc Alexander
c4026c9066 Save module settings even if module image can't be found 2012-08-11 17:28:41 +02:00
Marc Alexander
eb5f1f8156 Add .gitignore 2012-08-10 13:17:56 +02:00
Marc Alexander
8234c97a82 Merge pull request #92 from marc1706/master
Remove unnecessary variables from format_birthday() & clean-up
2012-08-09 06:08:04 -07:00
Marc Alexander
2b100c2792 Remove unnecessary variables from format_birthday() & clean-up 2012-08-09 15:02:39 +02:00
Marc Alexander
3645336aeb Merge pull request #91 from marc1706/master
Display events that start in the next 24 Hours as "Current"
2012-08-04 08:14:22 -07:00
Marc Alexander
1ea5e2bfd7 Display events that start in the next 24 Hours as "Current"
Cleaned some more code up, too. Using constants instead of magic
numbers in some places where it makes sense to use them.
2012-08-04 17:12:25 +02:00
Marc Alexander
7ddb84c514 Merge pull request #90 from marc1706/master
Fix: Infinite loop caused by smiley code with "["
2012-08-04 04:26:36 -07:00
Marc Alexander
ec54bb99c4 Fix: Infinite loop caused by smiley code with "["
This reworks the previous commit and fix the incorrect readings.
I would've rebased but my windows git is missing some commands for
not so obvious reasons.
2012-08-04 13:23:05 +02:00
Marc Alexander
1c4a73efa7 Merge pull request #89 from marc1706/master
Only variables can be passed by ref in strict mode
2012-07-30 13:08:09 -07:00
Marc Alexander
8327c46551 Only variables can be passed by ref in strict mode
Fix for PHP 5.5.x
2012-07-30 22:04:58 +02:00
Marc Alexander
b8f9b6a83f Merge pull request #88 from marc1706/master
Fix: Infinite loop caused by smiley code with "["
2012-07-30 13:01:17 -07:00
Marc Alexander
cea6d2b155 Fix: Infinite loop caused by smiley code with "["
Complete error description here:
http://www.flying-bits.org/tracker.php?p=33&t=978
2012-07-30 21:45:06 +02:00
Marc Alexander
4f83baee6f Merge pull request #87 from marc1706/master
Remove converter for Board3 Portal 1.0.6
2012-06-27 08:12:41 -07:00
Marc Alexander
a72b7b788f Remove converter for Board3 Portal 1.0.6
Fixed #85
2012-06-27 17:10:06 +02:00
Marc Alexander
011163669f Merge pull request #84 from marc1706/master
Add missing language var for logs after removing a link
2012-06-23 14:00:50 -07:00
Marc Alexander
591d6af124 Add missing language var for logs after removing a link 2012-06-23 22:59:07 +02:00
Marc Alexander
a68b9b1904 Merge pull request #83 from marc1706/master
Enable stylechanger for guests again
2012-06-23 06:07:52 -07:00
Marc Alexander
009b90f9cb Enable stylechanger for guests again
Update install files for next release
2012-06-23 15:05:39 +02:00
Marc Alexander
d84dda8fe1 Merge pull request #82 from marc1706/master
Properly handle mutated vowels in links
2012-06-19 07:57:47 -07:00
Marc Alexander
e81bb0f967 Properly handle mutated vowels in links 2012-06-19 15:51:41 +02:00
Marc Alexander
0f53f6de07 Merge pull request #81 from marc1706/master
Fix incorrect space above calendar in IE9
2012-06-11 05:03:45 -07:00
Marc Alexander
e5182d667b Merge pull request #80 from marc1706/e5206ff46deb942e4716f2a4125e060c66edc4b2
Fix PHP notice when unable to rename
2012-06-11 05:03:19 -07:00
Marc Alexander
f203232c60 Fix incorrect space above calendar in IE9 2012-06-11 13:50:49 +02:00
Marc Alexander
e5206ff46d Fix PHP notice when unable to rename
Also change chmod() to phpbb_chmod()
2012-06-06 15:00:19 +02:00
Marc Alexander
e0210130d7 Merge pull request #78 from marc1706/master
[ticket/206] Missing link to MCP in subsilver2
2012-06-05 13:51:21 -07:00
Marc Alexander
9907b61aa9 [ticket/206] Missing link to MCP in subsilver2 2012-06-05 22:49:15 +02:00
Marc Alexander
778de7ca84 Merge pull request #77 from marc1706/master
[ticket/207] Debug warning in ACP when using PHP 5.4
2012-06-05 13:46:40 -07:00
Marc Alexander
d8558bafb0 [ticket/207] Debug warning in ACP when using PHP 5.4 2012-06-05 22:43:56 +02:00
Marc Alexander
72c882b691 Merge pull request #76 from marc1706/master
[ticket/203] Future all day events are always displayed as current
2012-06-05 13:27:14 -07:00
Marc Alexander
5ae08f7604 [ticket/203] Future all day events are always displayed as current 2012-06-05 22:24:29 +02:00
Marc Alexander
d7cfebbd31 Merge pull request #75 from marc1706/master
Fix incorrect space between blocks in IE9
2012-06-04 09:04:32 -07:00
Marc Alexander
2acdafd27b Fix incorrect space between blocks in IE9 2012-06-04 18:00:34 +02:00
Marc Alexander
29ac558758 Merge pull request #74 from marc1706/master
Fix error if server-side topic marking is disabled
2012-05-24 11:32:10 -07:00
Marc Alexander
0d6b235b87 Fix error if server-side topic marking is disabled 2012-05-24 20:30:23 +02:00
Marc Alexander
be189babd4 Merge pull request #73 from marc1706/master
Fix incorrect config_name in portal_recent.php
2012-05-14 15:23:04 -07:00
Marc Alexander
7fe2d484ab Fix incorrect config_name in portal_recent.php 2012-05-15 00:19:02 +02:00
Marc Alexander
84bbe65ed7 Merge pull request #72 from marc1706/master
Fix previous commit for calendar
2012-04-30 11:04:05 -07:00
Marc Alexander
9f835088da Fix previous commit for calendar 2012-04-30 20:02:17 +02:00
Marc Alexander
aea49ee61a Merge pull request #71 from marc1706/master
Fixed incorrect handling of months by strtotime
2012-04-30 09:27:19 -07:00
Marc Alexander
d7dc9cfb04 Fixed incorrect handling of months by strtotime 2012-04-30 18:23:50 +02:00
Marc Alexander
62ca3c2478 Merge pull request #70 from marc1706/master
Add rel="nofollow" to calendar navigation
2012-04-20 04:10:01 -07:00
Marc Alexander
7eca7c6b58 Add rel="nofollow" to calendar navigation 2012-04-20 13:08:44 +02:00
Marc Alexander
2f0831eec4 Merge pull request #69 from marc1706/master
Redirect to portal.php when detecting incorrect announcement parameter
2012-04-12 11:05:59 -07:00
Marc Alexander
f97fad470a Redirect to portal.php when detecting incorrect announcement parameter 2012-04-12 20:01:50 +02:00
Marc Alexander
3e841584fa Merge pull request #68 from marc1706/master
Moving algorithm should finally be fixed now
2012-04-08 13:52:19 -07:00
Marc Alexander
361fc247f7 Moving algorithm should finally be fixed now 2012-04-08 22:50:21 +02:00
Marc Alexander
972e10d82c Merge pull request #67 from marc1706/master
Fix me messing up
2012-04-08 08:28:15 -07:00
Marc Alexander
858e643a4b Add missing edit to portal_attachments.php after c0e0191945 2012-04-08 17:23:17 +02:00
Marc Alexander
86eb3e7526 Make sure we can only move modules to allowed columns
Moving a module to a column type (side & center columns) where
this module already exists will cause massive issues
2012-04-08 17:19:01 +02:00
Marc Alexander
a7bb3b3226 Add missing edit to portal_attachments.php after c0e0191945 2012-04-07 17:53:03 +02:00
Marc Alexander
908db8fa6c Merge pull request #63 from marc1706/master
Fix incorrect filtering of custom blocks from drop-down list
2012-04-07 03:24:18 -07:00
Marc Alexander
cf3784b780 Fix incorrect filtering of custom blocks from drop-down list 2012-04-07 12:17:47 +02:00
Marc Alexander
01755ad5b5 Merge pull request #62 from marc1706/master
Updated install.xml
2012-04-06 04:44:03 -07:00
Marc Alexander
0f54212e90 Updated changelog 2012-04-06 13:39:21 +02:00
Marc Alexander
df17f6f59f Add note to DIY-instructions that user needs to remove install folder 2012-04-06 13:29:34 +02:00
Marc Alexander
07c527e855 Merge pull request #61 from marc1706/master
Hide modules that can't be added
2012-04-06 02:51:56 -07:00
Marc Alexander
724505062c Hide modules that can't be added 2012-04-06 11:50:46 +02:00
Marc Alexander
6b86ea9094 Merge pull request #60 from marc1706/master
Moved duplicate javascript to acp_portal.js
2012-04-06 02:39:58 -07:00
Marc Alexander
c34c6efe57 Moved duplicate javascript to acp_portal.js 2012-04-06 11:38:18 +02:00
Marc Alexander
ab6db7e57d Merge pull request #59 from marc1706/master
Fixed exceeding of max execution time when using trim message tool
2012-04-03 02:06:17 -07:00
Marc Alexander
2c0838b2c3 Fixed exceeding of max execution time when using trim message tool 2012-04-03 11:03:07 +02:00
Marc Alexander
435e8b7e5f Merge pull request #58 from marc1706/master
Added missing language vars and removed useless ones
2012-03-13 03:39:17 -07:00
Marc Alexander
f2aad0b6a2 Added missing language vars and removed useless ones
Purge caches via install file
2012-03-13 11:24:48 +01:00
Marc Alexander
bd0659b36f Merge pull request #57 from marc1706/master
Update update instructions in order to fit 83ac08a
2012-03-07 06:22:37 -08:00
Marc Alexander
53953d4476 Update update instructions in order to fit 83ac08a9d2 2012-03-07 15:19:56 +01:00
Marc Alexander
1ecf1372e9 Merge pull request #56 from marc1706/master
[Fix] Don't let Bots use styleswitcher
2012-03-07 03:56:16 -08:00
Marc Alexander
83ac08a9d2 [Fix] Don't let Bots use styleswitcher 2012-03-07 11:53:06 +01:00
Marc Alexander
0e263e7f34 Merge pull request #55 from marc1706/master
Make sure we don't try to copy folders
2012-02-26 04:20:40 -08:00
Marc Alexander
8e4cb28569 Merge pull request #54 from marc1706/master
Get rid of magic numbers in portal.php
2012-02-26 04:20:11 -08:00
Marc Alexander
4917e8ca3c Make sure we don't try to copy folders 2012-02-26 13:19:14 +01:00
Marc Alexander
9e542e181d Get rid of magic numbers in portal.php 2012-02-26 13:00:22 +01:00
Marc Alexander
d92d1fb476 Merge pull request #53 from marc1706/master
Fixing incorrect size of module box for oneliners
2012-02-25 16:04:03 -08:00
Marc Alexander
adaad84a1b Merge pull request #52 from marc1706/master
Fixed "unknown column" issue when installing
2012-02-25 16:03:26 -08:00
Marc Alexander
2e95c0f6ee Fixing incorrect size of module box for oneliners 2012-02-26 01:01:36 +01:00
Marc Alexander
1dd041d67d Fixed "unknown column" issue when installing 2012-02-26 00:42:58 +01:00
Marc Alexander
b198ef8930 Merge pull request #51 from marc1706/master
Fix size of input boxes
2012-02-01 12:59:40 -08:00
Marc Alexander
732098f461 Fix size of input boxes 2012-02-01 21:58:15 +01:00
Marc Alexander
7e6ada25d7 Merge pull request #50 from marc1706/master
Add missing class references
2012-02-01 12:50:36 -08:00
Marc Alexander
8ea4242591 Merge pull request #49 from marc1706/master
Update to last few changes before test release
2012-02-01 12:49:44 -08:00
Marc Alexander
9850484fa3 Add missing class references 2012-02-01 21:43:18 +01:00
Marc Alexander
394a3677c1 Fixed incorrect size of input box in link us module 2012-01-06 20:31:34 +01:00
Marc Alexander
551ebc31f2 Added missing link to update instructions 2012-01-05 13:10:32 +01:00
Marc Alexander
4209c3e1f7 Add missing update instructions for 2.0.0b1 2012-01-05 13:04:34 +01:00
Marc Alexander
9fa1778225 Fixed missing module_status in board3_basic_install() 2012-01-04 16:23:34 +01:00
Marc Alexander
5e8cdd6ba3 Merged small whois online block into whois online module 2012-01-04 16:13:56 +01:00
Marc Alexander
80abc153ea Updated files for upcoming release 2012-01-04 12:05:20 +01:00
Marc Alexander
0cf220a31c Disabled poll module for the side columns 2012-01-03 23:50:04 +01:00
Marc Alexander
4ca2d7c297 Merge pull request #48 from marc1706/master
Fix incorrect spacing in forumlist after commit 1350543
2012-01-03 01:02:05 -08:00
Marc Alexander
5928289ebc Merge pull request #47 from marc1706/master
Fixed incorrect arrow directions when using rtl language
2012-01-03 00:59:52 -08:00
Marc Alexander
d9e56d730a Fix incorrect spacing in forumlist after commit 1350543537 2012-01-03 09:57:04 +01:00
Marc Alexander
baf7909964 Fixed incorrect arrow directions when using rtl language 2012-01-02 20:56:04 +01:00
Marc Alexander
344bfc9690 Merge pull request #46 from marc1706/master
Allow duplicate inclusion of module if it's in a different column type
2012-01-02 11:45:23 -08:00
Marc Alexander
dfd6a77147 Merge pull request #45 from marc1706/master
Reverted changes to trim_message tool
2012-01-02 11:43:55 -08:00
Marc Alexander
c0e0191945 Allow duplicate inclusion of module if it's in a different column type
A module can now be added once in the side columns and once in
the center columns, if the module itself allows that
2012-01-02 20:41:24 +01:00
Marc Alexander
92e1a4ca8c Reverted changes to trim_message tool
htmlspecialchars_decode() gets applied in function get_sub_taged_string() now
2012-01-02 12:42:12 +01:00
Marc Alexander
47e1228028 Merge pull request #44 from marc1706/master
Fixed incorrect ordering of users in leaders module
2012-01-01 09:15:01 -08:00
Marc Alexander
5339a8854d Fixed incorrect ordering of users in leaders module 2012-01-01 18:10:28 +01:00
Marc Alexander
6e51f8fe3d Merge pull request #43 from marc1706/master
Added missing lang entries for removed events
2012-01-01 07:01:08 -08:00
Marc Alexander
6375e4b5a4 Added missing lang entries for removed events 2012-01-01 15:58:07 +01:00
Marc Alexander
02127a28ac Merge pull request #42 from marc1706/master
Add README file
2012-01-01 06:41:50 -08:00
Marc Alexander
05122ddeec Add newline at the end of the file 2012-01-01 15:40:45 +01:00
Marc Alexander
5e2413eefe Add README file 2012-01-01 15:38:04 +01:00
Marc Alexander
1cc86d4276 Merge pull request #41 from marc1706/master
Moved trim_message tool to includes folder
2012-01-01 06:24:30 -08:00
Marc Alexander
96391cf873 Moved trim_message tool to includes folder
Suggested by nickvergessen
Added htmlspecialchars_decode for $message
2012-01-01 13:46:04 +01:00
Marc Alexander
a3eebf916f Merge pull request #40 from marc1706/master
Add possibility to define a different class for callback functions
2011-12-07 10:05:13 -08:00
Marc Alexander
b91473f842 Merge pull request #39 from marc1706/master
Modified language strings as suggested by nickvergessen
2011-12-07 10:04:37 -08:00
Marc Alexander
83c64b941c Add possibility to define a different class for callback functions 2011-12-07 19:03:10 +01:00
Marc Alexander
17ceff91c5 Modified language strings as suggested by nickvergessen 2011-12-07 18:54:39 +01:00
Marc Alexander
40b37e082b Merge pull request #38 from marc1706/master
Added RTL fixes to subsilver2
2011-12-07 09:52:52 -08:00
Marc Alexander
685223cd0f Added RTL fixes to subsilver2 2011-12-06 23:19:53 +01:00
Marc Alexander
2077f0b717 Merge pull request #37 from marc1706/master
Fixed RTL languages on prosilver
2011-12-06 13:43:55 -08:00
Marc Alexander
56a46ab094 Fixed RTL languages on prosilver 2011-11-26 00:19:01 +01:00
Marc Alexander
295ad31ba5 Merge pull request #36 from marc1706/master
Unread topics do not get displayed
2011-08-05 13:19:05 -07:00
Marc Alexander
4cb5081b53 Unread topics do not get displayed 2011-08-05 22:15:15 +02:00
Marc Alexander
e83b9edd2d Merge pull request #35 from marc1706/master
Added a few rtl fixes
2011-07-31 09:25:50 -07:00
Marc Alexander
9ae3012689 Added a few rtl fixes 2011-07-31 18:19:57 +02:00
Marc Alexander
24410b2ba8 Merge pull request #34 from marc1706/master
Jumpbox doesn't care if it is enabled in the ACP
2011-07-31 04:27:57 -07:00
Marc Alexander
204af4c8be Jumpbox doesn't care if it is enabled in the ACP 2011-07-31 13:24:57 +02:00
Marc Alexander
507caa128f Merge pull request #33 from marc1706/master
Modified style of calendar in subsilver2
2011-07-30 12:42:37 -07:00
Marc Alexander
1da08d37d2 Modified style of calendar in subsilver2 2011-07-30 21:33:23 +02:00
Marc Alexander
b8aa3660c3 Fixed incorrect position of event desc in future events (prosilver) 2011-07-30 21:29:38 +02:00
Marc Alexander
222d5912bb Merge pull request #32 from marc1706/master
Added missing permission check for calendar events
2011-07-30 12:26:21 -07:00
Marc Alexander
8ee238ec65 Added missing permission check for calendar events 2011-07-30 21:22:09 +02:00
Marc Alexander
7169a25422 Merge pull request #31 from marc1706/master
Hide module image settings in center, top & bottom column
2011-07-29 12:26:52 -07:00
Marc Alexander
46a55c202e Hide module image settings in center, top & bottom column 2011-07-29 21:23:54 +02:00
Marc Alexander
3cbc7c502b Merge pull request #30 from marc1706/master
Added correct padding between headerbar and portal body
2011-07-29 11:50:56 -07:00
Marc Alexander
32be3764b8 Merge pull request #29 from marc1706/master
Fixed small cosmetic errors in prosilver
2011-07-29 11:48:04 -07:00
Marc Alexander
1350543537 Added correct padding between headerbar and portal body 2011-07-29 20:47:14 +02:00
Marc Alexander
378643a072 Merge pull request #28 from marc1706/master
Modified install&update files for next release
2011-07-29 11:40:48 -07:00
Marc Alexander
320c44b087 Fixed small cosmetic errors in prosilver 2011-07-29 20:39:46 +02:00
Marc Alexander
162e604feb Modified install&update files for next release 2011-07-29 20:37:39 +02:00
Marc Alexander
b1e9c8101d Merge pull request #27 from marc1706/master
Added <br /> in forumlist.html to prevent issues in custom styles
2011-07-24 12:49:38 -07:00
Marc Alexander
c29957e316 Added <br /> in forumlist.html to prevent issues in custom styles 2011-07-24 21:48:21 +02:00
Marc Alexander
acdb07bc38 Merge pull request #26 from marc1706/master
Centered clock in prosilver
2011-07-24 12:47:50 -07:00
Marc Alexander
c2157b502d Centered clock in prosilver 2011-07-24 21:46:35 +02:00
Marc Alexander
7c5462a828 Merge pull request #25 from marc1706/master
Removed number in latest bots title
2011-07-24 12:45:10 -07:00
Marc Alexander
5f3e116e46 Merge pull request #24 from marc1706/master
Fixed incorrect timezone handling of events
2011-07-24 12:43:16 -07:00
Marc Alexander
4e6567c20a Removed number in latest bots title 2011-07-24 21:42:22 +02:00
Marc Alexander
639ee3539b Fixed incorrect timezone handling of events 2011-07-24 21:33:12 +02:00
Marc Alexander
d7e581532b Merge pull request #23 from marc1706/master
Modified module title to "Attachments" as suggested by wang555
2011-07-22 09:32:26 -07:00
Marc Alexander
88b076439c Modified module title to "Attachments" as suggested by wang555 2011-07-22 18:31:02 +02:00
Marc Alexander
0691c3cee9 Merge pull request #22 from marc1706/master
Fixed missing height and width in module images of custom blocks
2011-07-09 07:40:06 -07:00
Marc Alexander
9929d469dd Fixed missing height and width in module images of custom blocks 2011-07-09 16:37:39 +02:00
Marc Alexander
428d3b7950 Merge pull request #21 from marc1706/master
Fixed incorrect handling of utf8 characters in custom blocks
2011-07-09 07:22:16 -07:00
Marc Alexander
ca25262e38 Fixed incorrect handling of utf8 characters in custom blocks 2011-07-09 16:18:41 +02:00
Marc Alexander
6059562beb Merge branch 'master' of github.com:board3/Board3-Portal 2011-06-20 20:27:00 +02:00
Marc Alexander
149469230f Added note to author notes that PHP5 is required 2011-06-09 20:44:36 +02:00
185 changed files with 4223 additions and 4377 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/.idea/*

13
README.md Normal file
View File

@@ -0,0 +1,13 @@
#Board3 Portal 2.0.0
Board Portal 2.0.0 is a second generation portal for phpBB 3.0.x. It adds a portal with several blocks to your forum.
You can change the settings, move the blocks, add new blocks and more in the ACP.
##How to use
You can download the current development version of Board3 Portal 2.0.0 here or download the current release at [www.board3.de](http://www.board3.de/ "Board3 • Portal").
Board3 Portal can be installed via AutoMOD or manually by following the instructions in install.xml (open it with your browser).
##Support
Support for Board3 Portal can be found at [www.board3.de](http://www.board3.de/ "Board3 • Portal") or on [www.phpbb.com](http://www.phpbb.com/community/viewtopic.php?f=70&t=2131824/ "phpBB • Board3 Portal").

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
<!-- $Id$ -->
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<header>
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author-notes>
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
</author-notes>
<github>https://github.com/board3/Board3-Portal</github>
<author-group>
<author>
<realname>Marc Alexander</realname>
<username>marc1706</username>
<username>Marc</username>
<email>admin@m-a-styles.de</email>
<homepage>http://www.m-a-styles.de</homepage>
<contributions-group>
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author>
</author-group>
<mod-version>2.0.0b1</mod-version>
<mod-version>2.0.2</mod-version>
<installation>
<level>easy</level>
<time>120</time>
<target-version>3.0.8</target-version>
<target-version>3.0.12</target-version>
</installation>
<link-group>
@@ -107,4 +106,4 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
<diy-instructions lang="en">See general install.xml file</diy-instructions>
<diy-instructions lang="de">Siehe install.xml</diy-instructions>
</action-group>
</mod>
</mod>

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
This file is released under the GNU GPL version 2. See license.txt.
$Id$ -->
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
<!DOCTYPE xsl:stylesheet[
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
<xsl:variable name="version">
@@ -23,7 +23,7 @@
/* phpBB 3.0 Admin Style Sheet
Original author: subBlue ( http://www.subblue.com/ )
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
*/
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
// The following line from http://www.ryancooper.com/resources/keycode.asp
document.onkeydown = mod_do_keypress;
var host = "http://www.phpbb.com/mods/modx/i18n/";
var host = "https://www.phpbb.com/mods/modx/i18n/";
var enStrings = "dir=ltr\n" +
"h1=Installation instructions for\n" +
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
"a-e=Email:\n" +
"a-n=Name:\n" +
"a-h=WWW:\n" +
"a-git=Github:\n" +
"a-c=Contributions:\n" +
"a-c-f=From\n" +
"a-c-t=to\n" +
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
"icf=Included files\n" +
"icfn=No files have been included with this MOD.\n" +
"dcl=Disclaimer\n" +
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
"isp=and English support\n" +
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
"ant=Author notes:\n" +
"lic=License\n" +
"lict=This MOD has been licensed under the following license:\n" +
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
"regex=This find contains an advanced feature known as regular expressions.\n" +
"mhe-v=- Version\n" +
"mh=MOD history\n" +
"addtl-modx=Additional MODX files\n" +
"imn=This MOD has no additional MODX files.\n" +
"addtl-modx=Additional file(s)\n" +
"imn=This MOD has no additional file(s).\n" +
"link-c=Contrib\n" +
"link-d=Dependency\n" +
"link-l=Language\n" +
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
"installer-h2=PHP install file\n" +
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
"installer-exp2=To run it point your browser to, for example,\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"del-heads=Delete files\n" +
"del-head=Delete file\n" +
"del-file=Delete\n" +
@@ -741,14 +742,14 @@ var arrClasCnt = [
['cde-' , codes_ll ],
['edt-' , edits_ll ],
['fnd' , finds_ll ],
['fnd' , removes_ll ],
['rem' , removes_ll ],
['regex', regex_ll ],
['rplw' , replacewiths_ll ],
['aft' , addafters_ll ],
['bef' , addbefores_ll ],
['inc' , increments_ll ],
['ifnd' , ifinds_ll ],
['ifnd' , iremoves_ll ],
['irem' , iremoves_ll ],
['regex', iregex_ll ],
['irplw', ireplacewiths_ll ],
['iaft' , iaddafters_ll ],
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
applyLanguage(enStrings.split("\n"));
}
xslLanguage(langCode);
show_title(langCode);
}
function load_languages()
@@ -808,6 +811,71 @@ function load_language()
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
}
/**
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
*/
if (typeof document.getElementsByClassName != 'function')
{
document.getElementsByClassName = function()
{
var elms = document.getElementsByTagName('*');
var ei = new Array();
for (i = 0; i < elms.length; i++)
{
if (elms[i].getAttribute('class'))
{
ecl = elms[i].getAttribute('class').split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
else if (elms[i].className)
{
ecl = elms[i].className.split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
}
return ei;
}
}
function show_title(langCode)
{
var sel_title = document.getElementById('title-' + langCode);
if (sel_title == null)
{
// A title in English is required.
sel_title = document.getElementById('title-en')
if (sel_title == null)
{
// No title in English or the selected language.
return;
}
}
var hide_title = document.getElementsByClassName('hide-title');
for (var i = 0; i < hide_title.length; i++)
{
hide_title[i].style.display='none';
}
sel_title.style.display='inline';
document.title = "phpBB MOD » " + sel_title.innerHTML;
}
/*****************
* AJAX Functions *
*****************/
@@ -1425,7 +1493,7 @@ function change_dbms($form)
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$exists = 0;
$tags = document.getElementsByTagName('dbms');
@@ -1440,7 +1508,7 @@ function change_dbms($form)
{
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1472,7 +1540,7 @@ function sql_display($value)
// show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1520,7 +1588,7 @@ function sql_dropdown()
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$options = [];
$ie_options = [];
@@ -1530,7 +1598,7 @@ function sql_dropdown()
// Show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
<div id="debug"></div>
<div id="wrap">
<div id="page-header">
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" /></h1>
<h1>
<span id="lang-h1">Installation instructions for</span>
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
<xsl:for-each select="mod:header/mod:title">
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
</xsl:for-each>
<span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" />
</h1>
<form method="post" action="" id="lang-selector" style="display: none;">
<fieldset class="nobg">
<label for="language"><span id="lang-slg">Select language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
</html>
</xsl:template>
<xsl:template name="give-header">
<fieldset>
<legend id="lang-atm">About this MOD</legend>
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
</xsl:if>
</dd>
</xsl:if>
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
<xsl:if test="contains(mod:github, 'https://github.com/')">
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
</xsl:if>
</xsl:if>
</dl>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
<xsl:for-each select="../mod:action-group">
<xsl:call-template name="give-files-included"></xsl:call-template>
</xsl:for-each>
<h3 id="lang-addtl-modx">Additional MODX files</h3>
<h3 id="lang-addtl-modx">Additional file(s)</h3>
<xsl:if test="count(mod:link-group/mod:link) = 0">
<p id="lang-imn">This MOD has no additional MODX files.</p>
<p id="lang-imn">This MOD has no additional file(s).</p>
</xsl:if>
<ul class="link-group" id="link-group">
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
<div class="mod-about">
<span class="corners-top"><span></span></span>
<div class="mod-about-padding">
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text>&nbsp;<span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
<xsl:for-each select="./mod:mod-version">
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
<div class="mod-about-padding">
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
</div>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
<xsl:with-param name="string-in" select="string($authorurl)"/>
</xsl:call-template>
</xsl:variable>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:when>
<xsl:otherwise>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:otherwise>
</xsl:choose>
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
<option value="mssql">MSSQL</option>
<option value="oracle">Oracle</option>
<option value="postgres">Postgres</option>
<option value="sqllite">SQLLite</option>
<option value="sqlite">SQLite</option>
</select>
</fieldset>
</form>
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
<!-- $Id: subsilver2.xml 658 2010-06-01 12:26:23Z marc1706 $ -->
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<header>
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author-notes>
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
</author-notes>
<github>https://github.com/board3/Board3-Portal</github>
<author-group>
<author>
<realname>Marc Alexander</realname>
<username>marc1706</username>
<username>Marc</username>
<email>admin@m-a-styles.de</email>
<homepage>http://www.m-a-styles.de</homepage>
<contributions-group>
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author>
</author-group>
<mod-version>2.0.0b1</mod-version>
<mod-version>2.0.2</mod-version>
<installation>
<level>easy</level>
<time>120</time>
<target-version>3.0.8</target-version>
<target-version>3.0.12</target-version>
</installation>
<link-group>
@@ -170,4 +169,4 @@ Refresh your Styles:
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
]]></diy-instructions>
</action-group>
</mod>
</mod>

View File

@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
<!-- $Id$ -->
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<header>
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
<title lang="en">board3 Portal - German Language Update for 2.0.0b1</title>
<title lang="de">board3 Portal - Deutsche Sprache Aktualisiering für 2.0.0b1</title>
<title lang="en">board3 Portal - German Language Update for 2.0.2</title>
<title lang="de">board3 Portal - Deutsche Sprache Aktualisiering für 2.0.2</title>
<description lang="en">Adds a portal to your forum.
It has several boxes wich can be turned on an off in the ACP and certain settings.
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author-notes>
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
</author-notes>
<github>https://github.com/board3/Board3-Portal</github>
<author-group>
<author>
<realname>Marc Alexander</realname>
<username>marc1706</username>
<username>Marc</username>
<email>admin@m-a-styles.de</email>
<homepage>http://www.m-a-styles.de</homepage>
<contributions-group>
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author>
</author-group>
<mod-version>2.0.0b1</mod-version>
<mod-version>2.0.2</mod-version>
<installation>
<level>easy</level>
<time>120</time>
<target-version>3.0.8</target-version>
<target-version>3.0.12</target-version>
</installation>
<link-group>
@@ -103,15 +102,7 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
<copy>
<file from="root/language/de/mods/*.*" to="language/de/mods/*.*" />
</copy>
<delete>
<file name="language/de/mods/additional_blocks.php" />
<file name="language/de/mods/info_acp_additional_blocks.php" />
<file name="language/de/mods/install_portal.php" />
<file name="language/de/mods/lang_portal.php" />
<file name="language/de/mods/lang_portal_acp.php" />
</delete>
<diy-instructions lang="en">See general install.xml file</diy-instructions>
<diy-instructions lang="de">Siehe install.xml</diy-instructions>
</action-group>
</mod>
</mod>

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
This file is released under the GNU GPL version 2. See license.txt.
$Id$ -->
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
<!DOCTYPE xsl:stylesheet[
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
<xsl:variable name="version">
@@ -23,7 +23,7 @@
/* phpBB 3.0 Admin Style Sheet
Original author: subBlue ( http://www.subblue.com/ )
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
*/
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
// The following line from http://www.ryancooper.com/resources/keycode.asp
document.onkeydown = mod_do_keypress;
var host = "http://www.phpbb.com/mods/modx/i18n/";
var host = "https://www.phpbb.com/mods/modx/i18n/";
var enStrings = "dir=ltr\n" +
"h1=Installation instructions for\n" +
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
"a-e=Email:\n" +
"a-n=Name:\n" +
"a-h=WWW:\n" +
"a-git=Github:\n" +
"a-c=Contributions:\n" +
"a-c-f=From\n" +
"a-c-t=to\n" +
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
"icf=Included files\n" +
"icfn=No files have been included with this MOD.\n" +
"dcl=Disclaimer\n" +
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
"isp=and English support\n" +
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
"ant=Author notes:\n" +
"lic=License\n" +
"lict=This MOD has been licensed under the following license:\n" +
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
"regex=This find contains an advanced feature known as regular expressions.\n" +
"mhe-v=- Version\n" +
"mh=MOD history\n" +
"addtl-modx=Additional MODX files\n" +
"imn=This MOD has no additional MODX files.\n" +
"addtl-modx=Additional file(s)\n" +
"imn=This MOD has no additional file(s).\n" +
"link-c=Contrib\n" +
"link-d=Dependency\n" +
"link-l=Language\n" +
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
"installer-h2=PHP install file\n" +
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
"installer-exp2=To run it point your browser to, for example,\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"del-heads=Delete files\n" +
"del-head=Delete file\n" +
"del-file=Delete\n" +
@@ -741,14 +742,14 @@ var arrClasCnt = [
['cde-' , codes_ll ],
['edt-' , edits_ll ],
['fnd' , finds_ll ],
['fnd' , removes_ll ],
['rem' , removes_ll ],
['regex', regex_ll ],
['rplw' , replacewiths_ll ],
['aft' , addafters_ll ],
['bef' , addbefores_ll ],
['inc' , increments_ll ],
['ifnd' , ifinds_ll ],
['ifnd' , iremoves_ll ],
['irem' , iremoves_ll ],
['regex', iregex_ll ],
['irplw', ireplacewiths_ll ],
['iaft' , iaddafters_ll ],
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
applyLanguage(enStrings.split("\n"));
}
xslLanguage(langCode);
show_title(langCode);
}
function load_languages()
@@ -808,6 +811,71 @@ function load_language()
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
}
/**
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
*/
if (typeof document.getElementsByClassName != 'function')
{
document.getElementsByClassName = function()
{
var elms = document.getElementsByTagName('*');
var ei = new Array();
for (i = 0; i < elms.length; i++)
{
if (elms[i].getAttribute('class'))
{
ecl = elms[i].getAttribute('class').split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
else if (elms[i].className)
{
ecl = elms[i].className.split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
}
return ei;
}
}
function show_title(langCode)
{
var sel_title = document.getElementById('title-' + langCode);
if (sel_title == null)
{
// A title in English is required.
sel_title = document.getElementById('title-en')
if (sel_title == null)
{
// No title in English or the selected language.
return;
}
}
var hide_title = document.getElementsByClassName('hide-title');
for (var i = 0; i < hide_title.length; i++)
{
hide_title[i].style.display='none';
}
sel_title.style.display='inline';
document.title = "phpBB MOD » " + sel_title.innerHTML;
}
/*****************
* AJAX Functions *
*****************/
@@ -1425,7 +1493,7 @@ function change_dbms($form)
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$exists = 0;
$tags = document.getElementsByTagName('dbms');
@@ -1440,7 +1508,7 @@ function change_dbms($form)
{
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1472,7 +1540,7 @@ function sql_display($value)
// show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1520,7 +1588,7 @@ function sql_dropdown()
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$options = [];
$ie_options = [];
@@ -1530,7 +1598,7 @@ function sql_dropdown()
// Show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
<div id="debug"></div>
<div id="wrap">
<div id="page-header">
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" /></h1>
<h1>
<span id="lang-h1">Installation instructions for</span>
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
<xsl:for-each select="mod:header/mod:title">
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
</xsl:for-each>
<span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" />
</h1>
<form method="post" action="" id="lang-selector" style="display: none;">
<fieldset class="nobg">
<label for="language"><span id="lang-slg">Select language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
</html>
</xsl:template>
<xsl:template name="give-header">
<fieldset>
<legend id="lang-atm">About this MOD</legend>
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
</xsl:if>
</dd>
</xsl:if>
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
<xsl:if test="contains(mod:github, 'https://github.com/')">
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
</xsl:if>
</xsl:if>
</dl>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
<xsl:for-each select="../mod:action-group">
<xsl:call-template name="give-files-included"></xsl:call-template>
</xsl:for-each>
<h3 id="lang-addtl-modx">Additional MODX files</h3>
<h3 id="lang-addtl-modx">Additional file(s)</h3>
<xsl:if test="count(mod:link-group/mod:link) = 0">
<p id="lang-imn">This MOD has no additional MODX files.</p>
<p id="lang-imn">This MOD has no additional file(s).</p>
</xsl:if>
<ul class="link-group" id="link-group">
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
<div class="mod-about">
<span class="corners-top"><span></span></span>
<div class="mod-about-padding">
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text>&nbsp;<span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
<xsl:for-each select="./mod:mod-version">
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
<div class="mod-about-padding">
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
</div>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
<xsl:with-param name="string-in" select="string($authorurl)"/>
</xsl:call-template>
</xsl:variable>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:when>
<xsl:otherwise>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:otherwise>
</xsl:choose>
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
<option value="mssql">MSSQL</option>
<option value="oracle">Oracle</option>
<option value="postgres">Postgres</option>
<option value="sqllite">SQLLite</option>
<option value="sqlite">SQLite</option>
</select>
</fieldset>
</form>
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>

View File

@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
<!-- $Id: subsilver2.xml 658 2010-06-01 12:26:23Z marc1706 $ -->
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<header>
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
<title lang="en">board3 Portal - Update subsilver2 style for 2.0.0b1</title>
<title lang="de">board3 Portal - Aktualisiere das subsilver2 style für 2.0.0b1</title>
<title lang="en">board3 Portal - Update subsilver2 style for 2.0.2</title>
<title lang="de">board3 Portal - Aktualisiere das subsilver2 style für 2.0.2</title>
<description lang="en">Adds a portal to your forum.
It has several boxes wich can be turned on an off in the ACP and certain settings.
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author-notes>
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
</author-notes>
<github>https://github.com/board3/Board3-Portal</github>
<author-group>
<author>
<realname>Marc Alexander</realname>
<username>marc1706</username>
<username>Marc</username>
<email>admin@m-a-styles.de</email>
<homepage>http://www.m-a-styles.de</homepage>
<contributions-group>
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author>
</author-group>
<mod-version>2.0.0b1</mod-version>
<mod-version>2.0.2</mod-version>
<installation>
<level>easy</level>
<time>120</time>
<target-version>3.0.8</target-version>
<target-version>3.0.12</target-version>
</installation>
<link-group>
@@ -101,21 +100,8 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</header>
<action-group>
<copy>
<file from="root/styles/subsilver2/template/portal/*.*" to="styles/subsilver2/template/portal/*.*" />
<file from="root/styles/subsilver2/theme/images/portal/*.*" to="styles/subsilver2/theme/images/portal/*.*" />
<file from="root/styles/subsilver2/template/portal/modules/*.*" to="styles/subsilver2/template/portal/modules/*.*" />
</copy>
<delete>
<file name="styles/subsilver2/template/portal/portal_center.html" />
<file name="styles/subsilver2/template/portal/portal_left.html" />
<file name="styles/subsilver2/template/portal/portal_right.html" />
<file name="styles/subsilver2/template/portal/block/*.*" />
<file name="styles/subsilver2/theme/images/portal/mini_cal_icon_left_arrow.png" />
<file name="styles/subsilver2/theme/images/portal/mini_cal_icon_right_arrow.png" />
<file name="styles/subsilver2/theme/images/portal/portal_login.png" />
<file name="styles/subsilver2/theme/images/portal/portal_minical.png" />
<file name="styles/subsilver2/theme/images/portal/portal_random.png" />
<file name="styles/subsilver2/theme/images/portal/portal_stats.png" />
</delete>
<diy-instructions lang="de"><![CDATA[
Aktualisiere deine Styles:
"Administrations-Bereich" (ACP) > "Styles" > "Templates" > jedes > "Aktualisieren"
@@ -133,4 +119,4 @@ Refresh your Styles:
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
]]></diy-instructions>
</action-group>
</mod>
</mod>

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
This file is released under the GNU GPL version 2. See license.txt.
$Id$ -->
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
<!DOCTYPE xsl:stylesheet[
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
<xsl:variable name="version">
@@ -23,7 +23,7 @@
/* phpBB 3.0 Admin Style Sheet
Original author: subBlue ( http://www.subblue.com/ )
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
*/
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
// The following line from http://www.ryancooper.com/resources/keycode.asp
document.onkeydown = mod_do_keypress;
var host = "http://www.phpbb.com/mods/modx/i18n/";
var host = "https://www.phpbb.com/mods/modx/i18n/";
var enStrings = "dir=ltr\n" +
"h1=Installation instructions for\n" +
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
"a-e=Email:\n" +
"a-n=Name:\n" +
"a-h=WWW:\n" +
"a-git=Github:\n" +
"a-c=Contributions:\n" +
"a-c-f=From\n" +
"a-c-t=to\n" +
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
"icf=Included files\n" +
"icfn=No files have been included with this MOD.\n" +
"dcl=Disclaimer\n" +
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
"isp=and English support\n" +
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
"ant=Author notes:\n" +
"lic=License\n" +
"lict=This MOD has been licensed under the following license:\n" +
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
"regex=This find contains an advanced feature known as regular expressions.\n" +
"mhe-v=- Version\n" +
"mh=MOD history\n" +
"addtl-modx=Additional MODX files\n" +
"imn=This MOD has no additional MODX files.\n" +
"addtl-modx=Additional file(s)\n" +
"imn=This MOD has no additional file(s).\n" +
"link-c=Contrib\n" +
"link-d=Dependency\n" +
"link-l=Language\n" +
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
"installer-h2=PHP install file\n" +
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
"installer-exp2=To run it point your browser to, for example,\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"del-heads=Delete files\n" +
"del-head=Delete file\n" +
"del-file=Delete\n" +
@@ -741,14 +742,14 @@ var arrClasCnt = [
['cde-' , codes_ll ],
['edt-' , edits_ll ],
['fnd' , finds_ll ],
['fnd' , removes_ll ],
['rem' , removes_ll ],
['regex', regex_ll ],
['rplw' , replacewiths_ll ],
['aft' , addafters_ll ],
['bef' , addbefores_ll ],
['inc' , increments_ll ],
['ifnd' , ifinds_ll ],
['ifnd' , iremoves_ll ],
['irem' , iremoves_ll ],
['regex', iregex_ll ],
['irplw', ireplacewiths_ll ],
['iaft' , iaddafters_ll ],
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
applyLanguage(enStrings.split("\n"));
}
xslLanguage(langCode);
show_title(langCode);
}
function load_languages()
@@ -808,6 +811,71 @@ function load_language()
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
}
/**
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
*/
if (typeof document.getElementsByClassName != 'function')
{
document.getElementsByClassName = function()
{
var elms = document.getElementsByTagName('*');
var ei = new Array();
for (i = 0; i < elms.length; i++)
{
if (elms[i].getAttribute('class'))
{
ecl = elms[i].getAttribute('class').split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
else if (elms[i].className)
{
ecl = elms[i].className.split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
}
return ei;
}
}
function show_title(langCode)
{
var sel_title = document.getElementById('title-' + langCode);
if (sel_title == null)
{
// A title in English is required.
sel_title = document.getElementById('title-en')
if (sel_title == null)
{
// No title in English or the selected language.
return;
}
}
var hide_title = document.getElementsByClassName('hide-title');
for (var i = 0; i < hide_title.length; i++)
{
hide_title[i].style.display='none';
}
sel_title.style.display='inline';
document.title = "phpBB MOD » " + sel_title.innerHTML;
}
/*****************
* AJAX Functions *
*****************/
@@ -1425,7 +1493,7 @@ function change_dbms($form)
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$exists = 0;
$tags = document.getElementsByTagName('dbms');
@@ -1440,7 +1508,7 @@ function change_dbms($form)
{
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1472,7 +1540,7 @@ function sql_display($value)
// show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1520,7 +1588,7 @@ function sql_dropdown()
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$options = [];
$ie_options = [];
@@ -1530,7 +1598,7 @@ function sql_dropdown()
// Show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
<div id="debug"></div>
<div id="wrap">
<div id="page-header">
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" /></h1>
<h1>
<span id="lang-h1">Installation instructions for</span>
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
<xsl:for-each select="mod:header/mod:title">
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
</xsl:for-each>
<span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" />
</h1>
<form method="post" action="" id="lang-selector" style="display: none;">
<fieldset class="nobg">
<label for="language"><span id="lang-slg">Select language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
</html>
</xsl:template>
<xsl:template name="give-header">
<fieldset>
<legend id="lang-atm">About this MOD</legend>
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
</xsl:if>
</dd>
</xsl:if>
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
<xsl:if test="contains(mod:github, 'https://github.com/')">
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
</xsl:if>
</xsl:if>
</dl>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
<xsl:for-each select="../mod:action-group">
<xsl:call-template name="give-files-included"></xsl:call-template>
</xsl:for-each>
<h3 id="lang-addtl-modx">Additional MODX files</h3>
<h3 id="lang-addtl-modx">Additional file(s)</h3>
<xsl:if test="count(mod:link-group/mod:link) = 0">
<p id="lang-imn">This MOD has no additional MODX files.</p>
<p id="lang-imn">This MOD has no additional file(s).</p>
</xsl:if>
<ul class="link-group" id="link-group">
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
<div class="mod-about">
<span class="corners-top"><span></span></span>
<div class="mod-about-padding">
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text>&nbsp;<span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
<xsl:for-each select="./mod:mod-version">
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
<div class="mod-about-padding">
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
</div>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
<xsl:with-param name="string-in" select="string($authorurl)"/>
</xsl:call-template>
</xsl:variable>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:when>
<xsl:otherwise>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:otherwise>
</xsl:choose>
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
<option value="mssql">MSSQL</option>
<option value="oracle">Oracle</option>
<option value="postgres">Postgres</option>
<option value="sqllite">SQLLite</option>
<option value="sqlite">SQLite</option>
</select>
</fieldset>
</form>
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>

View File

@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
<!-- $Id: subsilver2.xml 658 2010-06-01 12:26:23Z marc1706 $ -->
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<header>
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
<title lang="en">board3 Portal 2.0.0b1 - Convert from Board3 Portal 1.0.6</title>
<title lang="de">board3 Portal 2.0.0b1 - Konvertiere von Board3 Portal 1.0.6</title>
<title lang="en">board3 Portal 2.0.2 - Update from Board3 Portal 2.0.1</title>
<title lang="de">board3 Portal 2.0.2 - Update von Board3 Portal 2.0.1</title>
<description lang="en">Adds a portal to your forum.
It has several boxes wich can be turned on an off in the ACP and certain settings.
@@ -31,11 +30,11 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author-notes>
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
</author-notes>
<github>https://github.com/board3/Board3-Portal</github>
<author-group>
<author>
<realname>Marc Alexander</realname>
<username>marc1706</username>
<username>Marc</username>
<email>admin@m-a-styles.de</email>
<homepage>http://www.m-a-styles.de</homepage>
<contributions-group>
@@ -86,104 +85,41 @@ Weitere Sprachen kannst in unseren International Forum finden: http://www.board3
</author>
</author-group>
<mod-version>2.0.0b1</mod-version>
<mod-version>2.0.2</mod-version>
<installation>
<level>easy</level>
<time>120</time>
<target-version>3.0.8</target-version>
<target-version>3.0.12</target-version>
</installation>
<link-group>
<link type="parent" lang="de" href="../../install.xml">Installations-Anleitung</link>
<link type="parent" lang="en" href="../../install.xml">Manual</link>
<link type="template" lang="en" href="contrib/subsilver2.xml">Update subsilver2 to Board3 Portal 2.0.0a2</link>
<link type="template" lang="de" href="contrib/subsilver2.xml">Aktualisiere subsilver2 für Board3 Portal 2.0.0a2</link>
<link type="language" lang="en" href="contrib/de.xml">Update German language to Board3 Portal 2.0.0a2</link>
<link type="language" lang="de" href="contrib/de.xml">Aktualisiere deutsche Sprachdateien für Board3 Portal 2.0.0a2</link>
<link type="template" lang="en" href="contrib/subsilver2.xml">Update subsilver2 to Board3 Portal 2.0.2</link>
<link type="template" lang="de" href="contrib/subsilver2.xml">Aktualisiere subsilver2 für Board3 Portal 2.0.2</link>
<link type="language" lang="en" href="contrib/de.xml">Update German language to Board3 Portal 2.0.2</link>
<link type="language" lang="de" href="contrib/de.xml">Aktualisiere deutsche Sprachdateien für Board3 Portal 2.0.2</link>
</link-group>
</header>
<action-group>
<copy>
<file from="root/portal.php" to="portal.php" />
<file from="root/adm/images/*.*" to="adm/images/*.*" />
<file from="root/adm/mods/board3_portal_check_version.php" to="adm/mods/board3_portal_check_version.php" />
<file from="root/adm/style/*.*" to="adm/style/*.*" />
<file from="root/includes/acp/*.*" to="includes/acp/*.*" />
<file from="root/adm/style/portal/acp_portal.js" to="adm/style/portal/acp_portal.js" />
<file from="root/adm/style/portal/acp_portal_custom.html" to="adm/style/portal/acp_portal_custom.html" />
<file from="root/adm/style/portal/acp_portal_welcome.html" to="adm/style/portal/acp_portal_welcome.html" />
<file from="root/includes/acp/acp_portal.php" to="includes/acp/acp_portal.php" />
<file from="root/install/index.php" to="install/index.php" />
<file from="root/language/en/mods/*.*" to="language/en/mods/*.*" />
<file from="root/portal/*.*" to="portal/*.*" />
<file from="root/styles/prosilver/template/portal/*.*" to="styles/prosilver/template/portal/*.*" />
<file from="root/portal/includes/functions.php" to="portal/includes/functions.php" />
<file from="root/portal/includes/functions_upload.php" to="portal/includes/functions_upload.php" />
<file from="root/portal/modules/*.*" to="portal/modules/*.*" />
<file from="root/styles/prosilver/template/portal/modules/*.*" to="styles/prosilver/template/portal/modules/*.*" />
<file from="root/styles/prosilver/theme/portal.css" to="styles/prosilver/theme/portal.css" />
<file from="root/styles/prosilver/theme/images/portal/*.*" to="styles/prosilver/theme/images/portal/*.*" />
<file from="root/umil/*.*" to="umil/*.*" />
<file from="root/portal.php" to="portal.php" />
</copy>
<delete>
<file name="adm/style/acp_portal.html" />
<file name="language/en/mods/additional_blocks.php" />
<file name="language/en/mods/info_acp_additional_blocks.php" />
<file name="language/en/mods/install_portal.php" />
<file name="language/en/mods/lang_portal.php" />
<file name="language/en/mods/lang_portal_acp.php" />
<file name="portal/block/*.*" />
<file name="styles/prosilver/template/portal/portal_center.html" />
<file name="styles/prosilver/template/portal/portal_left.html" />
<file name="styles/prosilver/template/portal/portal_right.html" />
<file name="styles/prosilver/template/portal/block/*.*" />
<file name="styles/prosilver/theme/images/portal/mini_cal_icon_left_arrow.png" />
<file name="styles/prosilver/theme/images/portal/mini_cal_icon_right_arrow.png" />
<file name="styles/prosilver/theme/images/portal/portal_login.png" />
<file name="styles/prosilver/theme/images/portal/portal_minical.png" />
<file name="styles/prosilver/theme/images/portal/portal_random.png" />
<file name="styles/prosilver/theme/images/portal/portal_stats.png" />
</delete>
<open src="viewonline.php">
<edit>
<find><![CDATA[ $user->add_lang('mods/lang_portal');]]></find>
<action type="replace-with"><![CDATA[ $user->add_lang('mods/portal');]]></action>
</edit>
</open>
<open src="includes/constants.php">
<edit>
<remove><![CDATA[define('PORTAL_CONFIG_TABLE', $table_prefix . 'portal_config');]]></remove>
</edit>
</open>
<open src="includes/functions.php">
<edit>
<find><![CDATA[ $user->add_lang(array('mods/lang_portal', 'mods/additional_blocks'));
if (!function_exists('obtain_portal_config'))
{
include($phpbb_root_path . 'portal/includes/functions.' . $phpEx);
}
if(sql_table_exists(PORTAL_CONFIG_TABLE) == true)
{
$portal_config = obtain_portal_config();
}]]></find>
<action type="replace-with"><![CDATA[ $user->add_lang('mods/portal');]]></action>
</edit>
<edit>
<find><![CDATA[ 'U_PORTAL' => (isset($portal_config['portal_enable']) && $portal_config['portal_enable'] == true) ? append_sid("{$phpbb_root_path}portal.$phpEx") : '',]]></find>
<action type="replace-with"><![CDATA[ 'U_PORTAL' => (isset($config['board3_enable']) && $config['board3_enable'] && $auth->acl_get('u_view_portal')) ? append_sid("{$phpbb_root_path}portal.$phpEx") : '',]]></action>
</edit>
</open>
<php-installer>install/index.php</php-installer>
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus
Aktualisiere deine Styles:
"Administrations-Bereich" (ACP) > "Styles" > "Templates" > jedes > "Aktualisieren"
"Administrations-Bereich" (ACP) > "Styles" > "Themes" > jedes > "Aktualisieren"
"Administrations-Bereich" (ACP) > "Styles" > "Grafiksammlungen" > jedes > "Aktualisieren"
Leere den Cache im "Administrations-Bereich" (ACP) > "Allgemein" > "Den Cache leeren"
]]></diy-instructions>
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer
Refresh your Styles:
"Administration Control Panel" (ACP) > "Styles" > "Templates" > each > "refresh"
"Administration Control Panel" (ACP) > "Styles" > "Themes" > each > "refresh"
"Administration Control Panel" (ACP) > "Styles" > "Imagesets" > each > "refresh"
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
]]></diy-instructions>
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus.]]></diy-instructions>
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer.]]></diy-instructions>
</action-group>
</mod>
</mod>

View File

@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
<!--For security purposes, please check: http://www.phpbb.com/mods/ for the latest version of this MOD. Although MODs are checked before being allowed in the MODs Database there is no guarantee that there are no security problems within the MOD. No support will be given for MODs not found within the MODs Database which can be found at http://www.phpbb.com/mods/-->
<!-- $Id$ -->
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<header>
<license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
<title lang="en">board3 Portal 2.0.0 - Beta 1</title>
<title lang="de">board3 Portal 2.0.0 - Beta 1</title>
<title lang="en">board3 Portal</title>
<title lang="de">board3 Portal</title>
<description lang="en">Adds a portal with several blocks to your forum.
You can change the settings, move the blocks, add new blocks and more in the ACP.
@@ -27,15 +26,15 @@ Enthaltenen Sprachdateien:
Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.board3.de/viewforum.php?f=13
</description>
<author-notes lang="en">I hope you get everything working. Further developement, new boxes for the portal or questions are welcome at www.board3.de
<author-notes lang="en">This MOD requires PHP5. I hope you get everything working. Further developement, new boxes for the portal or questions are welcome at www.board3.de
</author-notes>
<author-notes lang="de">Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
<author-notes lang="de">Dieser MOD benötigt PHP5. Ich hoffe ihr habt Spaß am Portal. Neuen Code, bzw neue Boxen und Fragen könnt ihr auf www.board3.de posten.
</author-notes>
<github>https://github.com/board3/Board3-Portal</github>
<author-group>
<author>
<realname>Marc Alexander</realname>
<username>marc1706</username>
<username>Marc</username>
<email>admin@m-a-styles.de</email>
<homepage>http://www.m-a-styles.de</homepage>
<contributions-group>
@@ -86,12 +85,12 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
</author>
</author-group>
<mod-version>2.0.0b1</mod-version>
<mod-version>2.0.2</mod-version>
<installation>
<level>easy</level>
<time>600</time>
<target-version>3.0.8</target-version>
<target-version>3.0.12</target-version>
</installation>
<link-group>
@@ -101,10 +100,193 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
<link type="language" lang="de" href="contrib/de.xml">Anleitung für das deutsche Sprachpaket</link>
<link type="template" lang="en" href="contrib/subsilver2.xml">Manual for subsilver2</link>
<link type="template" lang="de" href="contrib/subsilver2.xml">Anleitung für subsilver2</link>
<link type="contrib" lang="en" href="contrib/update_106_to_200b1/update.xml">Manual for Updating B3P 1.0.6 to 2.0.0b1</link>
<link type="contrib" lang="de" href="contrib/update_106_to_200b1/update.xml">Anleitung für das Aktualisieren von B3P 1.0.6 zu 2.0.0b1</link>
<link type="contrib" lang="en" href="contrib/update_201_to_202/update.xml">Manual for Updating B3P 2.0.1 to 2.0.2</link>
<link type="contrib" lang="de" href="contrib/update_201_to_202/update.xml">Anleitung für das Aktualisieren von B3P 2.0.1 zu 2.0.2</link>
</link-group>
<history>
<entry>
<date>2013-10-27</date>
<rev-version>2.0.2</rev-version>
<changelog lang="en">
<change>[ticket/216] Add function for obtaining user's groups</change>
<change>[ticket/217] Handle incorrect values in the news URL</change>
<change>[cleanup/acp] Make acp_portal module more readable</change>
<change>[cleanup/tabs] Remove unnecessary tabbing in portal files</change>
<change>[cleanup/whitespace] Get rid of unnecessary whitespace</change>
<change>Display correct day of the week with negative UTC offset</change>
<change>[ticket/120] Move birthday block HTML to template files</change>
<change>[ticket/224] Add possibility to append username to donation</change>
<change>[ŧicket/223] Set correct permissions to uploaded files (644)</change>
<change>[feature/clean-up] Remove duplicated code from portal modules</change>
<change>[gh/113] Update UMIL to 1.0.5</change>
<change>Slight changes to design of portal</change>
</changelog>
<changelog lang="de">
<change>[ticket/216] Füge Funktion zur Erlangung der Gruppen eines Benutzers hinzu</change>
<change>[ticket/217] Behandele falsche Parameter in der News URL</change>
<change>[cleanup/acp] Mache acp_portal lesbarer</change>
<change>[cleanup/tabs] Entferne sinnlose Tabs in Portal Dateien</change>
<change>[cleanup/whitespace] Entferne unnötige Leerzeichen</change>
<change>Zeige korrekten Tag der Woche bei negativem UTC Abstand an</change>
<change>[ticket/120] Verschiebe HTML des Geburtstags-Blocks in Template Dateien</change>
<change>[ticket/224] Füge Möglichkeit des Anhängens des Benutzernamens an Spende ein</change>
<change>[ŧicket/223] Setze richtige Berechtigungen für hochgeladene Dateien (644)</change>
<change>[feature/clean-up] Entferne doppelten Code von Portal Modulen</change>
<change>[gh/113] Aktualisiere UMIL zu 1.0.5</change>
<change>Kleine Änderungen im Design des Portals</change>
</changelog>
</entry>
<entry>
<date>2012-10-13</date>
<rev-version>2.0.1</rev-version>
<changelog lang="en">
<change>Redirect to portal.php when detecting incorrect announcement parameter</change>
<change>Add rel="nofollow" to calendar navigation</change>
<change>Fixed incorrect handling of months by strtotime</change>
<change>Fix previous commit for calendar</change>
<change>Fix incorrect config_name in portal_recent.php</change>
<change>Fix error if server-side topic marking is disabled</change>
<change>Fix incorrect space between blocks in IE9</change>
<change>[ticket/203] Future all day events are always displayed as current</change>
<change>[ticket/207] Debug warning in ACP when using PHP 5.4</change>
<change>[ticket/206] Missing link to MCP in subsilver2</change>
<change>Fix PHP notice when unable to rename</change>
<change>Fix incorrect space above calendar in IE9</change>
<change>Properly handle mutated vowels in links</change>
<change>Enable stylechanger for guests again</change>
<change>Add missing language var for logs after removing a link</change>
<change>Remove converter for Board3 Portal 1.0.6</change>
<change>Fix: Infinite loop caused by smiley code with "["</change>
<change>Fix: Only variables can be passed by ref in strict mode</change>
<change>Display events that start in the next 24 Hours as "Current"</change>
<change>Remove unnecessary variables from format_birthday() &amp; clean-up</change>
<change>Save module settings even if module image can't be found</change>
<change>Add missing error messages to links &amp; main menu modules</change>
<change>Remove update instructions for old releases</change>
<change>Remove update for beta version</change>
<change>Add missing language variable "NO_FILE_B3P"</change>
</changelog>
<changelog lang="de">
<change>Leite bei falschen Parametern für Ankündigungen an die portal.php weiter</change>
<change>Füge rel="nofollow" zur Kalender Navigation hinzu</change>
<change>Korrigiere fehlerhafte Behandlung von Monaten mit strtotime</change>
<change>Korrigiere vohergehende Änderung für den Kalender</change>
<change>Korrigiere falschen config_name in portal_recent.php</change>
<change>Korrigiere Fehler falls serverseitiges Markieren von Themen deaktiviert ist</change>
<change>Korrigiere falschen Abstand zwischen Blöcken in IE9</change>
<change>[ticket/203] Future all day events are always displayed as current</change>
<change>[ticket/207] PHP 5.4.0 Unterstützung / Support</change>
<change>[ticket/206] Kein Link zum Moderations-Bereich im user_menu_side.html bei subsilver2</change>
<change>Korrigiere PHP notice falls nicht umbenannt werden kann</change>
<change>Korrigiere falschen Abstand über dem Kalender in IE9</change>
<change>Gehe korrekt mit Umlauten in Links um</change>
<change>Aktiviere Stylechanger wieder für Gäste</change>
<change>Füge fehlende Sprachvariablen für Logs nach dem Entfernen von Links hinzu</change>
<change>Entferne Konverter für Board3 Portal 1.0.6</change>
<change>Korrigiere Endlosschleife durch Smiley Code mit "["</change>
<change>Korrigiere: Only variables can be passed by ref in strict mode</change>
<change>Zeige Veranstaltungen die in den nächsten 24 Stunden beginnen als aktuell an</change>
<change>Entferne unnötige Variablen von format_birthday() &amp; räume etwas auf</change>
<change>Sichere Modul Einstellungen auch wenn die Modul Bilder nicht gefunden werden können</change>
<change>Füge fehlende Fehlermeldungen zu Links &amp; Menü Modulen hinzu</change>
<change>Entferne Update Anleitungen für ältere Veröffentlichungen</change>
<change>Entferne Update Anleitung für Beta Version</change>
<change>Füge fehlende Sprachvariable "NO_FILE_B3P" hinzu</change>
</changelog>
</entry>
<entry>
<date>2012-04-06</date>
<rev-version>2.0.0</rev-version>
<changelog lang="en">
<change>Replaced German language vars with English ones</change>
<change>Fixed 2 small errors in calendar language file</change>
<change>Fixed incorrect links to convert instruction</change>
<change>Added note to author notes that PHP5 is required</change>
<change>Fixed incorrect handling of utf8 characters in custom blocks</change>
<change>Fixed missing height and width in module images of custom blocks</change>
<change>Modified module title to "Attachments" as suggested by wang555</change>
<change>Fixed incorrect timezone handling of events</change>
<change>Removed number in latest bots title</change>
<change>Centered clock in prosilver</change>
<change>Added br-tag in forumlist.html to prevent issues in custom styles</change>
<change>Fixed small cosmetic errors in prosilver</change>
<change>Added correct padding between headerbar and portal body</change>
<change>Hide module image settings in center, top &amp; bottom column</change>
<change>Added missing permission check for calendar events</change>
<change>Fixed incorrect position of event desc in future events (prosilver)</change>
<change>Modified style of calendar in subsilver2</change>
<change>Fixed: Jumpbox doesn't care if it is enabled in the ACP</change>
<change>Added a few rtl fixes</change>
<change>Fixed: Unread topics do not get displayed</change>
<change>Add possibility to define a different class for callback functions</change>
<change>Moved trim_message tool to includes folder</change>
<change>Added missing lang entries for removed events</change>
<change>Fixed incorrect ordering of users in leaders module</change>
<change>Added htmlspecialchars_decode for message before trimming</change>
<change>Allow duplicate inclusion of module if it's in a different column type</change>
<change>Fixed incorrect arrow directions when using rtl language (ACP)</change>
<change>Disabled poll module for the side columns</change>
<change>Merged small whois online block into whois online module</change>
<change>Fixed missing module_status in board3_basic_install()</change>
<change>Add missing update instructions for 2.0.0b1</change>
<change>Fix size of input boxes</change>
<change>Add missing class references</change>
<change>Fixed "unknown column" issue when installing</change>
<change>Fixing incorrect size of module box for oneliners</change>
<change>Get rid of magic numbers in portal.php</change>
<change>Make sure we don't try to copy folders</change>
<change>[Fix] Don't let Bots use styleswitcher </change>
<change>Added missing language vars and removed useless ones</change>
<change>Purge caches via install file</change>
<change>Fixed exceeding of max execution time when using trim message tool</change>
<change>Moved duplicate javascript to acp_portal.js</change>
<change>Hide modules that can't be added</change>
</changelog>
<changelog lang="de">
<change>Deutsche Sprachvariablen mit englischen ersetzt</change>
<change>2 kleine Fehler in Kalender Sprachdatei korrigiert</change>
<change>Falsche Links zu Konvertierungsanleitung korrigiert</change>
<change>PHP5 Anforderung zu Author notes hinzugefügt</change>
<change>Inkorrekte Behandlung von utf8 Zeichen in Eigenen Blöcken korrigiert</change>
<change>Fehlende Höhe- und Breiteangaben für Modul Bilder von Eigenen Blöcken korrigiert</change>
<change>Inkorrekte Behandlung von Zeitzonen bei Veranstaltungen korrigiert</change>
<change>Anzahl im Titel des Letzte Bots Modul entfernt</change>
<change>Uhr in prosilver zentriert</change>
<change>br-tag zu forumlist.html hinzugefügt um Probleme in anderen Styles zu verhindern</change>
<change>Kleine kosmetische Fehler in prosilver korrigiert</change>
<change>Abstand zwischen header und portal_body korrigiert</change>
<change>Verstecke Modul Bild Einstelungen in der Mitte, Oben &amp; Unten</change>
<change>Fehlende Überprüfung von Veranstaltungs-Berechtigungen hinzugefügt</change>
<change>Position der Veranstaltungs-Beschreibung in prosilver angepasst</change>
<change>Styles des Kalenders in subsilver2 geändert</change>
<change>Jumpbox lässt sich jetzt deaktivieren</change>
<change>Korrekturen für RTL Sprachen</change>
<change>Ungelesene Beiträge Icons werden angezeigt</change>
<change>Möglichkeit eine andere Klasse für die callback Funktion zu definieren hinzugefügt</change>
<change>trim_message Tool in den includes Ordner verschoben</change>
<change>Fehlende Sprachvariablen für gelöschte Veranstaltungen hinzugefügt</change>
<change>Falsche Sortierung von Benutzernamen in Team Block korrigiert</change>
<change>Anwendung von htmlspecialchars_decode() auf Nachricht vor dem Kürzen hinzugefügt</change>
<change>Doppelte Einbindung von Modulen erlaubt, falls sie in einem anderen Spaltentyp hinzugefügt werden</change>
<change>Falsche Pfeilrichtungen bei RTL Sprachen korrigiert (Admin-Bereich)</change>
<change>Umfrage Modul in den seitlichen Spalten deaktiviert</change>
<change>Kleinen "Wer ist online?" Block in das "Wer ist online?" Modul eingefügt</change>
<change>Fehlender module_stats in board3_basic_install() korrigiert</change>
<change>Fehlende Update-Anleitung für 2.0.0b1 hinzugefügt</change>
<change>Größe der Input-Boxen korrigiert</change>
<change>Fehlende Globalisierung von Klassen und includes hinzugefügt</change>
<change>"unknown column" Fehler beim Installieren korrigiert</change>
<change>Falsche Größe der Modul Box bei Einzeilern korrigiert</change>
<change>"Magic Numbers" in portal.php entfernt</change>
<change>Stelle sicher, dass wir nicht versuchen Ordner zu kopieren</change>
<change>Lasse Bots nicht den Styleswicher benutzen</change>
<change>Fehlende Sprachvariablen hinzugefügt und Unnötige entfernt</change>
<change>Leere Caches mit dem Install-Skript</change>
<change>Überschreiten der maximalen Ausführungszeit im trim message Tool korrigiert</change>
<change>Doppeltes Javascript in acp_portal.js verschoben</change>
<change>Verstecke Module die nicht hinzugefügt werden können</change>
</changelog>
</entry>
<entry>
<date>2011-06-08</date>
<rev-version>2.0.0b1</rev-version>
@@ -184,6 +366,7 @@ Weitere Sprachen kannst in unserem Internationalen Forum finden: http://www.boar
<file from="root/adm/mods/board3_portal_check_version.php" to="adm/mods/board3_portal_check_version.php" />
<file from="root/adm/style/*.*" to="adm/style/*.*" />
<file from="root/includes/acp/*.*" to="includes/acp/*.*" />
<file from="root/includes/trim_message/*.*" to="includes/trim_message/*.*" />
<file from="root/install/index.php" to="install/index.php" />
<file from="root/language/en/mods/*.*" to="language/en/mods/*.*" />
<file from="root/portal/*.*" to="portal/*.*" />
@@ -228,7 +411,7 @@ Deny from All
<open src="includes/session.php">
<edit>
<find><![CDATA[ if (!empty($_GET['style']) && $auth->acl_get('a_styles') && !defined('ADMIN_START'))]]></find>
<action type="replace-with"><![CDATA[ if (!empty($_GET['style']) && !defined('ADMIN_START'))]]></action>
<action type="replace-with"><![CDATA[ if (!empty($_GET['style']) && !defined('ADMIN_START') && !$this->data['is_bot'])]]></action>
</edit>
</open>
<open src="styles/prosilver/template/overall_header.html">
@@ -269,23 +452,11 @@ Deny from All
</edit>
</open>
<php-installer>install/index.php</php-installer>
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus
<diy-instructions lang="de"><![CDATA[Rufe install/index.php auf und führe den Installer aus.
Aktualisiere deine Styles:
"Administrations-Bereich" (ACP) > "Styles" > "Templates" > jedes > "Aktualisieren"
"Administrations-Bereich" (ACP) > "Styles" > "Themes" > jedes > "Aktualisieren"
"Administrations-Bereich" (ACP) > "Styles" > "Grafiksammlungen" > jedes > "Aktualisieren"
Lösche anschließend das Installationsverzeichnis.]]></diy-instructions>
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer.
Leere den Cache im "Administrations-Bereich" (ACP) > "Allgemein" > "Den Cache leeren"
]]></diy-instructions>
<diy-instructions lang="en"><![CDATA[Browse to install/index.php and run the installer
Refresh your Styles:
"Administration Control Panel" (ACP) > "Styles" > "Templates" > each > "refresh"
"Administration Control Panel" (ACP) > "Styles" > "Themes" > each > "refresh"
"Administration Control Panel" (ACP) > "Styles" > "Imagesets" > each > "refresh"
Clear your cache in the "Administration Control Panel" (ACP) > "General" > "Purge the cache"
]]></diy-instructions>
Remove the install-folder afterwards.]]></diy-instructions>
</action-group>
</mod>
</mod>

View File

@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- MODX by the phpBB MOD Team XSL file v1.2.4 copyright 2005-2010 the phpBB MOD Team.
This file is released under the GNU GPL version 2. See license.txt.
$Id$ -->
$Id: modx.prosilver.en.xsl 211 2010-02-27 20:05:11Z tumba25 $ -->
<!DOCTYPE xsl:stylesheet[
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.5.xsd">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="https://www.phpbb.com/mods/xml/modx-1.2.6.xsd">
<xsl:output method="html" omit-xml-declaration="no" indent="yes" />
<xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
<xsl:variable name="version">
@@ -23,7 +23,7 @@
/* phpBB 3.0 Admin Style Sheet
Original author: subBlue ( http://www.subblue.com/ )
Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
Copyright 2007 phpBB Group ( https://www.phpbb.com/ )
*/
@@ -624,7 +624,7 @@ div.endMOD { padding:0 5px; }
// The following line from http://www.ryancooper.com/resources/keycode.asp
document.onkeydown = mod_do_keypress;
var host = "http://www.phpbb.com/mods/modx/i18n/";
var host = "https://www.phpbb.com/mods/modx/i18n/";
var enStrings = "dir=ltr\n" +
"h1=Installation instructions for\n" +
@@ -646,6 +646,7 @@ var enStrings = "dir=ltr\n" +
"a-e=Email:\n" +
"a-n=Name:\n" +
"a-h=WWW:\n" +
"a-git=Github:\n" +
"a-c=Contributions:\n" +
"a-c-f=From\n" +
"a-c-t=to\n" +
@@ -654,9 +655,9 @@ var enStrings = "dir=ltr\n" +
"icf=Included files\n" +
"icfn=No files have been included with this MOD.\n" +
"dcl=Disclaimer\n" +
"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
"dclt=For security purposes, please check: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a>\n" +
"isp=and English support\n" +
"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
"ispt=English support can be obtained at <a href=\"https://www.phpbb.com/mods/\">https://www.phpbb.com/mods/</a> for released MODs.\n" +
"ant=Author notes:\n" +
"lic=License\n" +
"lict=This MOD has been licensed under the following license:\n" +
@@ -709,8 +710,8 @@ var enStrings = "dir=ltr\n" +
"regex=This find contains an advanced feature known as regular expressions.\n" +
"mhe-v=- Version\n" +
"mh=MOD history\n" +
"addtl-modx=Additional MODX files\n" +
"imn=This MOD has no additional MODX files.\n" +
"addtl-modx=Additional file(s)\n" +
"imn=This MOD has no additional file(s).\n" +
"link-c=Contrib\n" +
"link-d=Dependency\n" +
"link-l=Language\n" +
@@ -722,7 +723,7 @@ var enStrings = "dir=ltr\n" +
"installer-h2=PHP install file\n" +
"installer-exp1=There is a PHP install file that needs to be run in order to complete the installation.\n" +
"installer-exp2=To run it point your browser to, for example,\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"http://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"ispt-int=Support in your language <strong>might</strong> be available at a <a href=\"https://www.phpbb.com/support/intl/\">international support site</a>.\n" +
"del-heads=Delete files\n" +
"del-head=Delete file\n" +
"del-file=Delete\n" +
@@ -741,14 +742,14 @@ var arrClasCnt = [
['cde-' , codes_ll ],
['edt-' , edits_ll ],
['fnd' , finds_ll ],
['fnd' , removes_ll ],
['rem' , removes_ll ],
['regex', regex_ll ],
['rplw' , replacewiths_ll ],
['aft' , addafters_ll ],
['bef' , addbefores_ll ],
['inc' , increments_ll ],
['ifnd' , ifinds_ll ],
['ifnd' , iremoves_ll ],
['irem' , iremoves_ll ],
['regex', iregex_ll ],
['irplw', ireplacewiths_ll ],
['iaft' , iaddafters_ll ],
@@ -780,6 +781,8 @@ function changeLanguage(langCode)
applyLanguage(enStrings.split("\n"));
}
xslLanguage(langCode);
show_title(langCode);
}
function load_languages()
@@ -808,6 +811,71 @@ function load_language()
send('', host + currentLanguage + '.txt?rnd=' + cachernd);
}
/**
* From http://stackoverflow.com/questions/1280903/javascript-ie-and-getelementsbyclassname-problems/8472488#8472488
*/
if (typeof document.getElementsByClassName != 'function')
{
document.getElementsByClassName = function()
{
var elms = document.getElementsByTagName('*');
var ei = new Array();
for (i = 0; i < elms.length; i++)
{
if (elms[i].getAttribute('class'))
{
ecl = elms[i].getAttribute('class').split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
else if (elms[i].className)
{
ecl = elms[i].className.split(' ');
for (j = 0; j < ecl.length; j++)
{
if (ecl[j].toLowerCase() == arguments[0].toLowerCase())
{
ei.push(elms[i]);
}
}
}
}
return ei;
}
}
function show_title(langCode)
{
var sel_title = document.getElementById('title-' + langCode);
if (sel_title == null)
{
// A title in English is required.
sel_title = document.getElementById('title-en')
if (sel_title == null)
{
// No title in English or the selected language.
return;
}
}
var hide_title = document.getElementsByClassName('hide-title');
for (var i = 0; i < hide_title.length; i++)
{
hide_title[i].style.display='none';
}
sel_title.style.display='inline';
document.title = "phpBB MOD » " + sel_title.innerHTML;
}
/*****************
* AJAX Functions *
*****************/
@@ -1425,7 +1493,7 @@ function change_dbms($form)
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$exists = 0;
$tags = document.getElementsByTagName('dbms');
@@ -1440,7 +1508,7 @@ function change_dbms($form)
{
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1472,7 +1540,7 @@ function sql_display($value)
// show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1520,7 +1588,7 @@ function sql_dropdown()
'mssql',
'oracle',
'postgres',
'sqllite'
'sqlite'
];
$options = [];
$ie_options = [];
@@ -1530,7 +1598,7 @@ function sql_dropdown()
// Show the dbms of type we have selected, hide all others except for non dbms specific
for ($i = 0; $i < $tags.length; $i++)
{
if (!($dbms = $tags[$i].attributes['type'].nodeValue))
if (!($dbms = $tags[$i].attributes['type'].value))
{
continue;
}
@@ -1628,7 +1696,14 @@ function toggle_edit(o)
<div id="debug"></div>
<div id="wrap">
<div id="page-header">
<h1><span id="lang-h1">Installation instructions for</span> '<xsl:value-of select="$title" />' <span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" /></h1>
<h1>
<span id="lang-h1">Installation instructions for</span>
<span class="hide-title" lang="{@lang}"> '<xsl:value-of select="$title" />' </span>
<xsl:for-each select="mod:header/mod:title">
<span class="hide-title" lang="{@lang}" id="title-{@lang}" style="display: none;"> '<xsl:value-of select="current()" />' </span>
</xsl:for-each>
<span id="lang-V">version</span>&nbsp;<xsl:value-of select="$version" />
</h1>
<form method="post" action="" id="lang-selector" style="display: none;">
<fieldset class="nobg">
<label for="language"><span id="lang-slg">Select language:</span></label>&nbsp;<select id="language" name="language" onclick="load_languages()"><option value="en" selected="selected">English</option></select>
@@ -1667,6 +1742,7 @@ function toggle_edit(o)
</html>
</xsl:template>
<xsl:template name="give-header">
<fieldset>
<legend id="lang-atm">About this MOD</legend>
@@ -1750,6 +1826,12 @@ function toggle_edit(o)
</xsl:if>
</dd>
</xsl:if>
<xsl:if test="mod:github != 'N/A' and mod:github != 'n/a' and mod:github != ''">
<xsl:if test="contains(mod:github, 'https://github.com/')">
<dt id="lang-a-git[{generate-id()}]">Github:</dt>
<dd name="author-dd"><a href="{mod:github}" dir="ltr"><xsl:value-of select="mod:github" /></a></dd>
</xsl:if>
</xsl:if>
</dl>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1778,9 +1860,9 @@ function toggle_edit(o)
<xsl:for-each select="../mod:action-group">
<xsl:call-template name="give-files-included"></xsl:call-template>
</xsl:for-each>
<h3 id="lang-addtl-modx">Additional MODX files</h3>
<h3 id="lang-addtl-modx">Additional file(s)</h3>
<xsl:if test="count(mod:link-group/mod:link) = 0">
<p id="lang-imn">This MOD has no additional MODX files.</p>
<p id="lang-imn">This MOD has no additional file(s).</p>
</xsl:if>
<ul class="link-group" id="link-group">
@@ -1823,7 +1905,7 @@ function toggle_edit(o)
<div class="mod-about">
<span class="corners-top"><span></span></span>
<div class="mod-about-padding">
<p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-dclt">For security purposes, please check: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a></span></p>
<p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files and databases related to this MOD.</span></p>
<p><span id="lang-ontt2">This MOD was designed for phpBB</span><xsl:text> </xsl:text><xsl:value-of select="mod:installation/mod:target-version" /><xsl:text> </xsl:text>&nbsp;<span id="lang-ontt3">and may not function as stated on other phpBB versions. MODs for phpBB 3.0 will <strong>not</strong> work on phpBB 2.0 and vice versa.</span></p>
<xsl:for-each select="./mod:mod-version">
@@ -1842,8 +1924,8 @@ function toggle_edit(o)
<div class="mod-about-padding">
<p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
<p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
<p><span id="lang-ispt">English support can be obtained at <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="http://www.phpbb.com/support/intl/">international support site</a>.</span></p>
<p><span id="lang-ispt">English support can be obtained at <a href="https://www.phpbb.com/mods/">https://www.phpbb.com/mods/</a> for released MODs.</span></p>
<p><span id="lang-ispt-int">Support in your language <strong>might</strong> be available at a <a href="https://www.phpbb.com/support/intl/">international support site</a>.</span></p>
</div>
<span class="corners-bottom"><span></span></span>
</div>
@@ -1882,10 +1964,10 @@ function toggle_edit(o)
<xsl:with-param name="string-in" select="string($authorurl)"/>
</xsl:call-template>
</xsl:variable>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$operaurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:when>
<xsl:otherwise>
<dd name="author-dd"><a dir="ltr" href="http://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
<dd name="author-dd"><a dir="ltr" href="https://www.phpbb.com/community/memberlist.php?mode=viewprofile&amp;un={$authorurl}"><xsl:value-of select="$authorname" /></a></dd>
</xsl:otherwise>
</xsl:choose>
@@ -2083,7 +2165,7 @@ function toggle_edit(o)
<option value="mssql">MSSQL</option>
<option value="oracle">Oracle</option>
<option value="postgres">Postgres</option>
<option value="sqllite">SQLLite</option>
<option value="sqlite">SQLite</option>
</select>
</fieldset>
</form>
@@ -2652,4 +2734,4 @@ function toggle_edit(o)
</xsl:with-param><xsl:with-param name="charsIn" select="'€'"/><xsl:with-param name="charsOut" select="'%E2%82%AC'"/></xsl:call-template>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>

View File

@@ -0,0 +1,434 @@
/**
* bbCode control by subBlue design [ www.subBlue.com ]
* Includes unixsafe colour palette selector by SHS`
* stripped parts that are useless for the portal
*/
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
var show_panel = 'options-panel';
/**
* Shows the help messages in the helpline window
*/
function helpline(help)
{
return;
}
/**
* Fix a bug involving the TextRange object. From
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
*/
function initInsertions()
{
var doc;
if (document.forms[form_name])
{
doc = document;
}
else
{
doc = opener.document;
}
var textarea = doc.getElementById(text_name);
if (is_ie && typeof(baseHeight) != 'number')
{
textarea.focus();
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
}
}
/**
* bbstyle
*/
function bbstyle(bbnumber)
{
if (bbnumber != -1)
{
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
}
else
{
insert_text('[*]');
document.getElementById(text_name).focus();
}
}
/**
* Apply bbcodes
*/
function bbfontstyle(bbopen, bbclose)
{
theSelection = false;
var textarea = document.getElementById(text_name);
textarea.focus();
if ((clientVer >= 4) && is_ie && is_win)
{
// Get text selection
theSelection = document.selection.createRange().text;
if (theSelection)
{
// Add tags around selection
document.selection.createRange().text = bbopen + theSelection + bbclose;
document.getElementById(text_name).focus();
theSelection = '';
return;
}
}
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
{
mozWrap(document.getElementById(text_name), bbopen, bbclose);
document.getElementById(text_name).focus();
theSelection = '';
return;
}
//The new position for the cursor after adding the bbcode
var caret_pos = getCaretPosition(textarea).start;
var new_pos = caret_pos + bbopen.length;
// Open tag
insert_text(bbopen + bbclose);
// Center the cursor when we don't have a selection
// Gecko and proper browsers
if (!isNaN(textarea.selectionStart))
{
textarea.selectionStart = new_pos;
textarea.selectionEnd = new_pos;
}
// IE
else if (document.selection)
{
var range = textarea.createTextRange();
range.move("character", new_pos);
range.select();
storeCaret(textarea);
}
textarea.focus();
return;
}
/**
* Insert text at position
*/
function insert_text(text, spaces, popup)
{
var textarea;
if (!popup)
{
textarea = document.getElementById(text_name);
}
else
{
textarea = opener.document.getElementById(text_name);
}
if (spaces)
{
text = ' ' + text + ' ';
}
if (!isNaN(textarea.selectionStart))
{
var sel_start = textarea.selectionStart;
var sel_end = textarea.selectionEnd;
mozWrap(textarea, text, '')
textarea.selectionStart = sel_start + text.length;
textarea.selectionEnd = sel_end + text.length;
}
else if (textarea.createTextRange && textarea.caretPos)
{
if (baseHeight != textarea.caretPos.boundingHeight)
{
textarea.focus();
storeCaret(textarea);
}
var caret_pos = textarea.caretPos;
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
}
else
{
textarea.value = textarea.value + text;
}
if (!popup)
{
textarea.focus();
}
}
/**
* Add inline attachment at position
*/
function attach_inline(index, filename)
{
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
document.getElementById(text_name).focus();
}
/**
* Add quote text to message
*/
function addquote(post_id, username)
{
var message_name = 'message_' + post_id;
var theSelection = '';
var divarea = false;
if (document.all)
{
divarea = document.all[message_name];
}
else
{
divarea = document.getElementById(message_name);
}
// Get text selection - not only the post content :(
if (window.getSelection)
{
theSelection = window.getSelection().toString();
}
else if (document.getSelection)
{
theSelection = document.getSelection();
}
else if (document.selection)
{
theSelection = document.selection.createRange().text;
}
if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
{
if (divarea.innerHTML)
{
theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
theSelection = theSelection.replace(/<br\/>/ig, '\n');
theSelection = theSelection.replace(/&lt\;/ig, '<');
theSelection = theSelection.replace(/&gt\;/ig, '>');
theSelection = theSelection.replace(/&amp\;/ig, '&');
theSelection = theSelection.replace(/&nbsp\;/ig, ' ');
}
else if (document.all)
{
theSelection = divarea.innerText;
}
else if (divarea.textContent)
{
theSelection = divarea.textContent;
}
else if (divarea.firstChild.nodeValue)
{
theSelection = divarea.firstChild.nodeValue;
}
}
if (theSelection)
{
if (bbcodeEnabled)
{
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
}
else
{
var lines = split_lines(theSelection);
for (i = 0; i < lines.length; i++)
{
insert_text('> ' + lines[i] + '\n')
}
}
}
return;
}
function split_lines(text)
{
var lines = text.split('\n');
var splitLines = new Array();
var j = 0;
for(i = 0; i < lines.length; i++)
{
if (lines[i].length <= 80)
{
splitLines[j] = lines[i];
j++;
}
else
{
var line = lines[i];
do
{
var splitAt = line.indexOf(' ', 80);
if (splitAt == -1)
{
splitLines[j] = line;
j++
}
else
{
splitLines[j] = line.substring(0, splitAt);
line = line.substring(splitAt);
j++;
}
}
while(splitAt != -1)
}
}
return splitLines;
}
/**
* From http://www.massless.org/mozedit/
*/
function mozWrap(txtarea, open, close)
{
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var scrollTop = txtarea.scrollTop;
if (selEnd == 1 || selEnd == 2)
{
selEnd = selLength;
}
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + open + s2 + close + s3;
txtarea.selectionStart = selStart + open.length;
txtarea.selectionEnd = selEnd + open.length;
txtarea.focus();
txtarea.scrollTop = scrollTop;
return;
}
/**
* Insert at Caret position. Code from
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
*/
function storeCaret(textEl)
{
if (textEl.createTextRange)
{
textEl.caretPos = document.selection.createRange().duplicate();
}
}
/**
* Color pallette
*/
function colorPalette(dir, width, height)
{
var r = 0, g = 0, b = 0;
var numberList = new Array(6);
var color = '';
numberList[0] = '00';
numberList[1] = '40';
numberList[2] = '80';
numberList[3] = 'BF';
numberList[4] = 'FF';
document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
for (r = 0; r < 5; r++)
{
if (dir == 'h')
{
document.writeln('<tr>');
}
for (g = 0; g < 5; g++)
{
if (dir == 'v')
{
document.writeln('<tr>');
}
for (b = 0; b < 5; b++)
{
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
document.writeln('</td>');
}
if (dir == 'v')
{
document.writeln('</tr>');
}
}
if (dir == 'h')
{
document.writeln('</tr>');
}
}
document.writeln('</table>');
}
/**
* Caret Position object
*/
function caretPosition()
{
var start = null;
var end = null;
}
/**
* Get the caret position in an textarea
*/
function getCaretPosition(txtarea)
{
var caretPos = new caretPosition();
// simple Gecko/Opera way
if(txtarea.selectionStart || txtarea.selectionStart == 0)
{
caretPos.start = txtarea.selectionStart;
caretPos.end = txtarea.selectionEnd;
}
// dirty and slow IE way
else if(document.selection)
{
// get current selection
var range = document.selection.createRange();
// a new selection of the whole textarea
var range_all = document.body.createTextRange();
range_all.moveToElementText(txtarea);
// calculate selection start point by moving beginning of range_all to beginning of range
var sel_start;
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
{
range_all.moveStart('character', 1);
}
txtarea.sel_start = sel_start;
// we ignore the end value for IE, this is already dirty enough and we don't need it
caretPos.start = txtarea.sel_start;
caretPos.end = txtarea.sel_start;
}
return caretPos;
}

View File

@@ -102,6 +102,7 @@
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
@@ -117,6 +118,7 @@
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>

View File

@@ -48,6 +48,7 @@
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- ENDIF -->
<!-- IF MODULE_SHOW_IMAGE -->
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
@@ -63,6 +64,7 @@
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>

View File

@@ -1,5 +1,61 @@
<!-- INCLUDE overall_header.html -->
<script type="text/javascript" src="{ROOT_PATH}style/portal/acp_portal.js"></script>
<script type="text/javascript">
// <![CDATA[
/**
* bbCode control by subBlue design [ www.subBlue.com ]
* Includes unixsafe colour palette selector by SHS`
*/
// Startup variables
var imageTag = false;
var theSelection = false;
var bbcodeEnabled = true;
// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
var baseHeight;
var form_name = 'acp_portal_welcome';
var text_name = 'custom_code';
var load_draft = false;
var upload = false;
// Define the bbCode tags
var bbcode = new Array();
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
var imageTag = false;
// Helpline messages
var help_line = {
b: '{LA_BBCODE_B_HELP}',
i: '{LA_BBCODE_I_HELP}',
u: '{LA_BBCODE_U_HELP}',
q: '{LA_BBCODE_Q_HELP}',
c: '{LA_BBCODE_C_HELP}',
l: '{LA_BBCODE_L_HELP}',
o: '{LA_BBCODE_O_HELP}',
p: '{LA_BBCODE_P_HELP}',
w: '{LA_BBCODE_W_HELP}',
a: '{LA_BBCODE_A_HELP}',
s: '{LA_BBCODE_S_HELP}',
f: '{LA_BBCODE_F_HELP}',
e: '{LA_BBCODE_E_HELP}',
d: '{LA_BBCODE_D_HELP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
<!-- END custom_tags -->
}
// ]]>
</script>
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
@@ -20,6 +76,7 @@
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
@@ -35,6 +92,7 @@
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
@@ -74,488 +132,6 @@
<legend>{L_PORTAL_CUSTOM}</legend>
<dl id="bbcode-buttons"<!-- IF not CUSTOM_USE_BBCODE --> style="display: none;"<!-- ENDIF -->>
<dd>
<script type="text/javascript">
// <![CDATA[
/**
* bbCode control by subBlue design [ www.subBlue.com ]
* Includes unixsafe colour palette selector by SHS`
*/
// Startup variables
var imageTag = false;
var theSelection = false;
var bbcodeEnabled = true;
// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
var baseHeight;
var form_name = 'acp_portal_welcome';
var text_name = 'custom_code';
var load_draft = false;
var upload = false;
// Define the bbCode tags
var bbcode = new Array();
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
var imageTag = false;
// Helpline messages
var help_line = {
b: '{LA_BBCODE_B_HELP}',
i: '{LA_BBCODE_I_HELP}',
u: '{LA_BBCODE_U_HELP}',
q: '{LA_BBCODE_Q_HELP}',
c: '{LA_BBCODE_C_HELP}',
l: '{LA_BBCODE_L_HELP}',
o: '{LA_BBCODE_O_HELP}',
p: '{LA_BBCODE_P_HELP}',
w: '{LA_BBCODE_W_HELP}',
a: '{LA_BBCODE_A_HELP}',
s: '{LA_BBCODE_S_HELP}',
f: '{LA_BBCODE_F_HELP}',
e: '{LA_BBCODE_E_HELP}',
d: '{LA_BBCODE_D_HELP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
<!-- END custom_tags -->
}
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
var show_panel = 'options-panel';
/**
* Shows the help messages in the helpline window
*/
function helpline(help)
{
return;
}
/**
* Fix a bug involving the TextRange object. From
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
*/
function initInsertions()
{
var doc;
if (document.forms[form_name])
{
doc = document;
}
else
{
doc = opener.document;
}
var textarea = doc.getElementById(text_name);
if (is_ie && typeof(baseHeight) != 'number')
{
textarea.focus();
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
}
}
/**
* bbstyle
*/
function bbstyle(bbnumber)
{
if (bbnumber != -1)
{
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
}
else
{
insert_text('[*]');
document.getElementById(text_name).focus();
}
}
/**
* Apply bbcodes
*/
function bbfontstyle(bbopen, bbclose)
{
theSelection = false;
var textarea = document.getElementById(text_name);
textarea.focus();
if ((clientVer >= 4) && is_ie && is_win)
{
// Get text selection
theSelection = document.selection.createRange().text;
if (theSelection)
{
// Add tags around selection
document.selection.createRange().text = bbopen + theSelection + bbclose;
document.getElementById(text_name).focus();
theSelection = '';
return;
}
}
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
{
mozWrap(document.getElementById(text_name), bbopen, bbclose);
document.getElementById(text_name).focus();
theSelection = '';
return;
}
//The new position for the cursor after adding the bbcode
var caret_pos = getCaretPosition(textarea).start;
var new_pos = caret_pos + bbopen.length;
// Open tag
insert_text(bbopen + bbclose);
// Center the cursor when we don't have a selection
// Gecko and proper browsers
if (!isNaN(textarea.selectionStart))
{
textarea.selectionStart = new_pos;
textarea.selectionEnd = new_pos;
}
// IE
else if (document.selection)
{
var range = textarea.createTextRange();
range.move("character", new_pos);
range.select();
storeCaret(textarea);
}
textarea.focus();
return;
}
/**
* Insert text at position
*/
function insert_text(text, spaces, popup)
{
var textarea;
if (!popup)
{
textarea = document.getElementById(text_name);
}
else
{
textarea = opener.document.getElementById(text_name);
}
if (spaces)
{
text = ' ' + text + ' ';
}
if (!isNaN(textarea.selectionStart))
{
var sel_start = textarea.selectionStart;
var sel_end = textarea.selectionEnd;
mozWrap(textarea, text, '')
textarea.selectionStart = sel_start + text.length;
textarea.selectionEnd = sel_end + text.length;
}
else if (textarea.createTextRange && textarea.caretPos)
{
if (baseHeight != textarea.caretPos.boundingHeight)
{
textarea.focus();
storeCaret(textarea);
}
var caret_pos = textarea.caretPos;
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
}
else
{
textarea.value = textarea.value + text;
}
if (!popup)
{
textarea.focus();
}
}
/**
* Add inline attachment at position
*/
function attach_inline(index, filename)
{
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
document.getElementById(text_name).focus();
}
/**
* Add quote text to message
*/
function addquote(post_id, username)
{
var message_name = 'message_' + post_id;
var theSelection = '';
var divarea = false;
if (document.all)
{
divarea = document.all[message_name];
}
else
{
divarea = document.getElementById(message_name);
}
// Get text selection - not only the post content :(
if (window.getSelection)
{
theSelection = window.getSelection().toString();
}
else if (document.getSelection)
{
theSelection = document.getSelection();
}
else if (document.selection)
{
theSelection = document.selection.createRange().text;
}
if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
{
if (divarea.innerHTML)
{
theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
theSelection = theSelection.replace(/<br\/>/ig, '\n');
theSelection = theSelection.replace(/&lt\;/ig, '<');
theSelection = theSelection.replace(/&gt\;/ig, '>');
theSelection = theSelection.replace(/&amp\;/ig, '&');
theSelection = theSelection.replace(/&nbsp\;/ig, ' ');
}
else if (document.all)
{
theSelection = divarea.innerText;
}
else if (divarea.textContent)
{
theSelection = divarea.textContent;
}
else if (divarea.firstChild.nodeValue)
{
theSelection = divarea.firstChild.nodeValue;
}
}
if (theSelection)
{
if (bbcodeEnabled)
{
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
}
else
{
var lines = split_lines(theSelection);
for (i = 0; i < lines.length; i++)
{
insert_text('> ' + lines[i] + '\n')
}
}
}
return;
}
function split_lines(text)
{
var lines = text.split('\n');
var splitLines = new Array();
var j = 0;
for(i = 0; i < lines.length; i++)
{
if (lines[i].length <= 80)
{
splitLines[j] = lines[i];
j++;
}
else
{
var line = lines[i];
do
{
var splitAt = line.indexOf(' ', 80);
if (splitAt == -1)
{
splitLines[j] = line;
j++
}
else
{
splitLines[j] = line.substring(0, splitAt);
line = line.substring(splitAt);
j++;
}
}
while(splitAt != -1)
}
}
return splitLines;
}
/**
* From http://www.massless.org/mozedit/
*/
function mozWrap(txtarea, open, close)
{
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var scrollTop = txtarea.scrollTop;
if (selEnd == 1 || selEnd == 2)
{
selEnd = selLength;
}
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + open + s2 + close + s3;
txtarea.selectionStart = selStart + open.length;
txtarea.selectionEnd = selEnd + open.length;
txtarea.focus();
txtarea.scrollTop = scrollTop;
return;
}
/**
* Insert at Caret position. Code from
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
*/
function storeCaret(textEl)
{
if (textEl.createTextRange)
{
textEl.caretPos = document.selection.createRange().duplicate();
}
}
/**
* Color pallette
*/
function colorPalette(dir, width, height)
{
var r = 0, g = 0, b = 0;
var numberList = new Array(6);
var color = '';
numberList[0] = '00';
numberList[1] = '40';
numberList[2] = '80';
numberList[3] = 'BF';
numberList[4] = 'FF';
document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
for (r = 0; r < 5; r++)
{
if (dir == 'h')
{
document.writeln('<tr>');
}
for (g = 0; g < 5; g++)
{
if (dir == 'v')
{
document.writeln('<tr>');
}
for (b = 0; b < 5; b++)
{
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
document.writeln('</td>');
}
if (dir == 'v')
{
document.writeln('</tr>');
}
}
if (dir == 'h')
{
document.writeln('</tr>');
}
}
document.writeln('</table>');
}
/**
* Caret Position object
*/
function caretPosition()
{
var start = null;
var end = null;
}
/**
* Get the caret position in an textarea
*/
function getCaretPosition(txtarea)
{
var caretPos = new caretPosition();
// simple Gecko/Opera way
if(txtarea.selectionStart || txtarea.selectionStart == 0)
{
caretPos.start = txtarea.selectionStart;
caretPos.end = txtarea.selectionEnd;
}
// dirty and slow IE way
else if(document.selection)
{
// get current selection
var range = document.selection.createRange();
// a new selection of the whole textarea
var range_all = document.body.createTextRange();
range_all.moveToElementText(txtarea);
// calculate selection start point by moving beginning of range_all to beginning of range
var sel_start;
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
{
range_all.moveStart('character', 1);
}
txtarea.sel_start = sel_start;
// we ignore the end value for IE, this is already dirty enough and we don't need it
caretPos.start = txtarea.sel_start;
caretPos.end = txtarea.sel_start;
}
return caretPos;
}
// ]]>
</script>
<div id="colour_palette" style="display: none;">
<dl style="clear: left;">
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
@@ -575,7 +151,7 @@
{
dE('colour_palette', 1);
}
if (e.style.display == 'block')
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';

View File

@@ -71,6 +71,7 @@
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
@@ -86,6 +87,7 @@
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>

View File

@@ -78,6 +78,7 @@
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
@@ -93,6 +94,7 @@
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>

View File

@@ -68,9 +68,9 @@
{modules_left.MODULE_IMAGE} {modules_left.MODULE_NAME}<br />
<br />
<!-- IF modules_left.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{modules_left.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
<!-- IF modules_left.U_MOVE_RIGHT --><a href="{modules_left.U_MOVE_RIGHT}">{ICON_MOVE_RIGHT}</a><!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF -->&nbsp;
<!-- IF modules_left.U_MOVE_RIGHT --><a href="{modules_left.U_MOVE_RIGHT}"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT}<!-- ELSE -->{ICON_MOVE_RIGHT}<!-- ENDIF --></a><!-- ELSE --><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT_DISABLED}<!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF --><!-- ENDIF -->&nbsp;
<a href="{modules_left.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_left.U_DELETE}">{ICON_DELETE}</a><br />
{ICON_MOVE_LEFT_DISABLED}&nbsp;
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT_DISABLED}<!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF -->&nbsp;
<!-- IF modules_left.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{modules_left.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
</td>
</tr>
@@ -122,9 +122,9 @@
{modules_right.MODULE_IMAGE} {modules_right.MODULE_NAME}<br />
<br />
<!-- IF modules_right.S_FIRST_ROW -->{ICON_MOVE_UP_DISABLED}<!-- ELSE --><a href="{modules_right.U_MOVE_UP}">{ICON_MOVE_UP}</a><!-- ENDIF -->&nbsp;
{ICON_MOVE_RIGHT_DISABLED}&nbsp;
<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_LEFT_DISABLED}<!-- ELSE -->{ICON_MOVE_RIGHT_DISABLED}<!-- ENDIF -->&nbsp;
<a href="{modules_right.U_EDIT}">{ICON_EDIT}</a> <a href="{modules_right.U_DELETE}">{ICON_DELETE}</a><br />
<!-- IF modules_right.U_MOVE_LEFT --><a href="{modules_right.U_MOVE_LEFT}">{ICON_MOVE_LEFT}</a><!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF -->&nbsp;
<!-- IF modules_right.U_MOVE_LEFT --><a href="{modules_right.U_MOVE_LEFT}"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT}<!-- ELSE -->{ICON_MOVE_LEFT}<!-- ENDIF --></a><!-- ELSE --><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{ICON_MOVE_RIGHT_DISABLED}<!-- ELSE -->{ICON_MOVE_LEFT_DISABLED}<!-- ENDIF --><!-- ENDIF -->&nbsp;
<!-- IF modules_right.S_LAST_ROW -->{ICON_MOVE_DOWN_DISABLED}<!-- ELSE --><a href="{modules_right.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a><!-- ENDIF -->
</td>
</tr>

View File

@@ -1,5 +1,61 @@
<!-- INCLUDE overall_header.html -->
<script type="text/javascript" src="{ROOT_PATH}style/portal/acp_portal.js"></script>
<script type="text/javascript">
// <![CDATA[
/**
* bbCode control by subBlue design [ www.subBlue.com ]
* Includes unixsafe colour palette selector by SHS`
*/
// Startup variables
var imageTag = false;
var theSelection = false;
var bbcodeEnabled = true;
// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
var baseHeight;
var form_name = 'acp_portal_welcome';
var text_name = 'welcome_message';
var load_draft = false;
var upload = false;
// Define the bbCode tags
var bbcode = new Array();
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
var imageTag = false;
// Helpline messages
var help_line = {
b: '{LA_BBCODE_B_HELP}',
i: '{LA_BBCODE_I_HELP}',
u: '{LA_BBCODE_U_HELP}',
q: '{LA_BBCODE_Q_HELP}',
c: '{LA_BBCODE_C_HELP}',
l: '{LA_BBCODE_L_HELP}',
o: '{LA_BBCODE_O_HELP}',
p: '{LA_BBCODE_P_HELP}',
w: '{LA_BBCODE_W_HELP}',
a: '{LA_BBCODE_A_HELP}',
s: '{LA_BBCODE_S_HELP}',
f: '{LA_BBCODE_F_HELP}',
e: '{LA_BBCODE_E_HELP}',
d: '{LA_BBCODE_D_HELP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
<!-- END custom_tags -->
}
// ]]>
</script>
<a name="maincontent"></a>
<h1>{L_TITLE}</h1>
@@ -20,6 +76,7 @@
<dt><label for="module_name">{L_MODULE_NAME}:</label><br /><span>{L_MODULE_NAME_EXP}</span></dt>
<dd><input id="module_name" type="text" value="{MODULE_NAME}" name="module_name" maxlength="255" size="64" /></dd>
</dl>
<!-- IF MODULE_SHOW_IMAGE -->
<dl>
<dt><label for="module_image">{L_MODULE_IMAGE}:</label><br /><span>{L_MODULE_IMAGE_EXP}</span></dt>
<dd><input id="module_image" type="text" value="{MODULE_IMAGE}" name="module_image" maxlength="255" size="64" /></dd>
@@ -35,6 +92,7 @@
<dd><input id="module_img_height" type="text" value="{MODULE_IMAGE_HEIGHT}" name="module_img_height" maxlength="3" size="3" />px</dd>
</dl>
<!-- ENDIF -->
<!-- ENDIF -->
<dl>
<dt><label for="module_reset">{L_MODULE_RESET}:</label><br /><span style="color: #BC2A4D;">{L_MODULE_RESET_EXP}</span></dt>
<dd><input id="module_reset" type="checkbox" value="1" name="module_reset" /></dd>
@@ -74,488 +132,6 @@
<legend>{L_PORTAL_WELCOME}</legend>
<dl>
<dd>
<script type="text/javascript">
// <![CDATA[
/**
* bbCode control by subBlue design [ www.subBlue.com ]
* Includes unixsafe colour palette selector by SHS`
*/
// Startup variables
var imageTag = false;
var theSelection = false;
var bbcodeEnabled = true;
// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
var baseHeight;
var form_name = 'acp_portal_welcome';
var text_name = 'welcome_message';
var load_draft = false;
var upload = false;
// Define the bbCode tags
var bbcode = new Array();
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
var imageTag = false;
// Helpline messages
var help_line = {
b: '{LA_BBCODE_B_HELP}',
i: '{LA_BBCODE_I_HELP}',
u: '{LA_BBCODE_U_HELP}',
q: '{LA_BBCODE_Q_HELP}',
c: '{LA_BBCODE_C_HELP}',
l: '{LA_BBCODE_L_HELP}',
o: '{LA_BBCODE_O_HELP}',
p: '{LA_BBCODE_P_HELP}',
w: '{LA_BBCODE_W_HELP}',
a: '{LA_BBCODE_A_HELP}',
s: '{LA_BBCODE_S_HELP}',
f: '{LA_BBCODE_F_HELP}',
e: '{LA_BBCODE_E_HELP}',
d: '{LA_BBCODE_D_HELP}'
<!-- BEGIN custom_tags -->
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
<!-- END custom_tags -->
}
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
var show_panel = 'options-panel';
/**
* Shows the help messages in the helpline window
*/
function helpline(help)
{
return;
}
/**
* Fix a bug involving the TextRange object. From
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
*/
function initInsertions()
{
var doc;
if (document.forms[form_name])
{
doc = document;
}
else
{
doc = opener.document;
}
var textarea = doc.getElementById(text_name);
if (is_ie && typeof(baseHeight) != 'number')
{
textarea.focus();
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
}
}
/**
* bbstyle
*/
function bbstyle(bbnumber)
{
if (bbnumber != -1)
{
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
}
else
{
insert_text('[*]');
document.getElementById(text_name).focus();
}
}
/**
* Apply bbcodes
*/
function bbfontstyle(bbopen, bbclose)
{
theSelection = false;
var textarea = document.getElementById(text_name);
textarea.focus();
if ((clientVer >= 4) && is_ie && is_win)
{
// Get text selection
theSelection = document.selection.createRange().text;
if (theSelection)
{
// Add tags around selection
document.selection.createRange().text = bbopen + theSelection + bbclose;
document.getElementById(text_name).focus();
theSelection = '';
return;
}
}
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
{
mozWrap(document.getElementById(text_name), bbopen, bbclose);
document.getElementById(text_name).focus();
theSelection = '';
return;
}
//The new position for the cursor after adding the bbcode
var caret_pos = getCaretPosition(textarea).start;
var new_pos = caret_pos + bbopen.length;
// Open tag
insert_text(bbopen + bbclose);
// Center the cursor when we don't have a selection
// Gecko and proper browsers
if (!isNaN(textarea.selectionStart))
{
textarea.selectionStart = new_pos;
textarea.selectionEnd = new_pos;
}
// IE
else if (document.selection)
{
var range = textarea.createTextRange();
range.move("character", new_pos);
range.select();
storeCaret(textarea);
}
textarea.focus();
return;
}
/**
* Insert text at position
*/
function insert_text(text, spaces, popup)
{
var textarea;
if (!popup)
{
textarea = document.getElementById(text_name);
}
else
{
textarea = opener.document.getElementById(text_name);
}
if (spaces)
{
text = ' ' + text + ' ';
}
if (!isNaN(textarea.selectionStart))
{
var sel_start = textarea.selectionStart;
var sel_end = textarea.selectionEnd;
mozWrap(textarea, text, '')
textarea.selectionStart = sel_start + text.length;
textarea.selectionEnd = sel_end + text.length;
}
else if (textarea.createTextRange && textarea.caretPos)
{
if (baseHeight != textarea.caretPos.boundingHeight)
{
textarea.focus();
storeCaret(textarea);
}
var caret_pos = textarea.caretPos;
caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
}
else
{
textarea.value = textarea.value + text;
}
if (!popup)
{
textarea.focus();
}
}
/**
* Add inline attachment at position
*/
function attach_inline(index, filename)
{
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
document.getElementById(text_name).focus();
}
/**
* Add quote text to message
*/
function addquote(post_id, username)
{
var message_name = 'message_' + post_id;
var theSelection = '';
var divarea = false;
if (document.all)
{
divarea = document.all[message_name];
}
else
{
divarea = document.getElementById(message_name);
}
// Get text selection - not only the post content :(
if (window.getSelection)
{
theSelection = window.getSelection().toString();
}
else if (document.getSelection)
{
theSelection = document.getSelection();
}
else if (document.selection)
{
theSelection = document.selection.createRange().text;
}
if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
{
if (divarea.innerHTML)
{
theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
theSelection = theSelection.replace(/<br\/>/ig, '\n');
theSelection = theSelection.replace(/&lt\;/ig, '<');
theSelection = theSelection.replace(/&gt\;/ig, '>');
theSelection = theSelection.replace(/&amp\;/ig, '&');
theSelection = theSelection.replace(/&nbsp\;/ig, ' ');
}
else if (document.all)
{
theSelection = divarea.innerText;
}
else if (divarea.textContent)
{
theSelection = divarea.textContent;
}
else if (divarea.firstChild.nodeValue)
{
theSelection = divarea.firstChild.nodeValue;
}
}
if (theSelection)
{
if (bbcodeEnabled)
{
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
}
else
{
var lines = split_lines(theSelection);
for (i = 0; i < lines.length; i++)
{
insert_text('> ' + lines[i] + '\n')
}
}
}
return;
}
function split_lines(text)
{
var lines = text.split('\n');
var splitLines = new Array();
var j = 0;
for(i = 0; i < lines.length; i++)
{
if (lines[i].length <= 80)
{
splitLines[j] = lines[i];
j++;
}
else
{
var line = lines[i];
do
{
var splitAt = line.indexOf(' ', 80);
if (splitAt == -1)
{
splitLines[j] = line;
j++
}
else
{
splitLines[j] = line.substring(0, splitAt);
line = line.substring(splitAt);
j++;
}
}
while(splitAt != -1)
}
}
return splitLines;
}
/**
* From http://www.massless.org/mozedit/
*/
function mozWrap(txtarea, open, close)
{
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var scrollTop = txtarea.scrollTop;
if (selEnd == 1 || selEnd == 2)
{
selEnd = selLength;
}
var s1 = (txtarea.value).substring(0,selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + open + s2 + close + s3;
txtarea.selectionStart = selStart + open.length;
txtarea.selectionEnd = selEnd + open.length;
txtarea.focus();
txtarea.scrollTop = scrollTop;
return;
}
/**
* Insert at Caret position. Code from
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
*/
function storeCaret(textEl)
{
if (textEl.createTextRange)
{
textEl.caretPos = document.selection.createRange().duplicate();
}
}
/**
* Color pallette
*/
function colorPalette(dir, width, height)
{
var r = 0, g = 0, b = 0;
var numberList = new Array(6);
var color = '';
numberList[0] = '00';
numberList[1] = '40';
numberList[2] = '80';
numberList[3] = 'BF';
numberList[4] = 'FF';
document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
for (r = 0; r < 5; r++)
{
if (dir == 'h')
{
document.writeln('<tr>');
}
for (g = 0; g < 5; g++)
{
if (dir == 'v')
{
document.writeln('<tr>');
}
for (b = 0; b < 5; b++)
{
color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
document.writeln('</td>');
}
if (dir == 'v')
{
document.writeln('</tr>');
}
}
if (dir == 'h')
{
document.writeln('</tr>');
}
}
document.writeln('</table>');
}
/**
* Caret Position object
*/
function caretPosition()
{
var start = null;
var end = null;
}
/**
* Get the caret position in an textarea
*/
function getCaretPosition(txtarea)
{
var caretPos = new caretPosition();
// simple Gecko/Opera way
if(txtarea.selectionStart || txtarea.selectionStart == 0)
{
caretPos.start = txtarea.selectionStart;
caretPos.end = txtarea.selectionEnd;
}
// dirty and slow IE way
else if(document.selection)
{
// get current selection
var range = document.selection.createRange();
// a new selection of the whole textarea
var range_all = document.body.createTextRange();
range_all.moveToElementText(txtarea);
// calculate selection start point by moving beginning of range_all to beginning of range
var sel_start;
for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
{
range_all.moveStart('character', 1);
}
txtarea.sel_start = sel_start;
// we ignore the end value for IE, this is already dirty enough and we don't need it
caretPos.start = txtarea.sel_start;
caretPos.end = txtarea.sel_start;
}
return caretPos;
}
// ]]>
</script>
<div id="colour_palette" style="display: none;">
<dl style="clear: left;">
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
@@ -575,7 +151,7 @@
{
dE('colour_palette', 1);
}
if (e.style.display == 'block')
{
document.getElementById('bbpalette').value = '{LA_FONT_COLOR_HIDE}';

File diff suppressed because it is too large Load Diff

View File

@@ -22,7 +22,7 @@ class acp_portal_info
return array(
'filename' => 'acp_portal',
'title' => 'ACP_PORTAL',
'version' => '2.0.0-a1',
'version' => '2.0.0b2',
'modes' => array(
'config' => array('title' => 'ACP_PORTAL_GENERAL_INFO', 'auth' => 'acl_a_manage_portal', 'cat' => array('ACP_PORTAL')),
'modules' => array('title' => 'ACP_PORTAL_MODULES', 'auth' => 'acl_a_manage_portal', 'cat' => array('ACP_PORTAL')),

View File

@@ -8,7 +8,7 @@
* @package trim_message
* @copyright 2011
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version 1.0
* @version 1.1
*/
/**
@@ -24,6 +24,14 @@ if (!defined('IN_PHPBB'))
*/
class phpbb_trim_message_bbcodes
{
/**
* Some BBCodes, such as img and flash should not be split up in their middle.
* So I added a sensitive BBCode array which protects BBCodes from being split.
* You can also need to add your custom bbcodes in here.
*/
private $sensitive_bbcodes = array('url', 'flash', 'flash=', 'attachment', 'attachment=', 'img', 'email', 'email=');
private $is_sensitive = false;
/**
* Variables
*/
@@ -112,9 +120,23 @@ class phpbb_trim_message_bbcodes
}
}
}
// Or the user just used a normal [ in his post.
else
{
$this->cur_content_length++;
$content_length = $this->get_content_length($exploded_parts[0]);
$max_content_allowed = ($this->max_content_length - $this->cur_content_length);
if (($content_length >= $max_content_allowed) && !$this->trim_position)
{
$allowed_content_position = $this->get_content_position($exploded_parts[0], $max_content_allowed);
$this->trim_position = $this->cur_position + $allowed_content_position;
}
$this->cur_content_length += $content_length;
$this->cur_position += utf8_strlen($exploded_parts[0]);
}
}
/**
* Two element is hte normal case:
* Two element is the normal case:
* String: [bbcode:uid]foobar
* Keys: ^^^^^^ = 0 ^^^^^^ = 1
* String: [/bbcode:uid]foobar
@@ -122,17 +144,43 @@ class phpbb_trim_message_bbcodes
*/
elseif ($num_parts == 2)
{
// We matched it something ;)
if ($exploded_parts[0][0] != '/')
/**
* We found an opening bracket in the quoted username which is not a bbcode
* String: [quote="odd[name":uid]quote-text
* Keys: ^^^^^ = 0 ^^^^^^^^^^ = 1
*/
if ($allow_close_quote && (utf8_substr($exploded_parts[0], -6) == '&quot;'))
{
$this->cur_position += utf8_strlen($exploded_parts[0]) + $bbcode_end_length;
$content_length = $this->get_content_length($exploded_parts[1]);
$max_content_allowed = ($this->max_content_length - $this->cur_content_length);
if (($content_length >= $max_content_allowed) && !$this->trim_position)
{
$allowed_content_position = $this->get_content_position($exploded_parts[1], $max_content_allowed);
$this->trim_position = $this->cur_position + $allowed_content_position;
}
$this->cur_content_length += $content_length;
$this->cur_position += utf8_strlen($exploded_parts[1]);
$allow_close_quote = false;
}
// We matched something ;)
else if ($exploded_parts[0][0] != '/')
{
// Open BBCode-tag
$bbcode_tag = $this->filter_bbcode_tag($exploded_parts[0]);
$bbcode_tag_extended = $this->filter_bbcode_tag($exploded_parts[0], false, false);
if (in_array($bbcode_tag_extended, $this->sensitive_bbcodes))
{
$this->is_sensitive = true;
}
$this->open_bbcode($bbcode_tag, $this->cur_position);
$this->cur_position += utf8_strlen($exploded_parts[0]) + $bbcode_end_length;
$this->bbcode_action($bbcode_tag, 'open_end', $this->cur_position);
if (!$allow_close_quote)
if (!$allow_close_quote && !$this->is_sensitive)
{
// If we allow a closing quote, we are in the username.
// We do not count that as content-length.
@@ -156,6 +204,7 @@ class phpbb_trim_message_bbcodes
{
$bbcode_tag_extended = '';
}
$this->is_sensitive = false;
$this->bbcode_action($bbcode_tag, 'close_start', $this->cur_position);
$this->cur_position += utf8_strlen($exploded_parts[0]) + $bbcode_end_length;
@@ -313,10 +362,21 @@ class phpbb_trim_message_bbcodes
static public function get_content_length($content)
{
$content_length = utf8_strlen($content);
$last_html_opening = $last_html_closing = $last_smiley = false;
$last_smiley = false;
$last_html_opening = $last_html_closing = 0;
while (($last_html_opening = utf8_strpos($content, '<', $last_html_closing)) !== false)
{
$last_html_closing = utf8_strpos($content, '>', $last_html_opening);
/**
* Abort while loop if there are no more ">" or we'll end up in an
* endless loop. The abort needs to be done here or the following
* code will produce incorrect data.
*/
if (!$last_html_closing)
{
break;
}
if (($smiley_code = utf8_substr($content, $last_html_opening + 7, ($last_html_closing - $last_html_opening - 11))) != '--')
{
if ($last_smiley == $smiley_code)
@@ -364,6 +424,15 @@ class phpbb_trim_message_bbcodes
{
// foreach markup we find in the string, we enlarge our text-size.
$last_html_closing = utf8_strpos($content, '>', $last_html_opening);
/**
* Abort while loop if there are no more ">" or the following code
* will produce incorrect data and additionally produce a PHP Notice.
*/
if (!$last_html_closing)
{
break;
}
$content_length += ($last_html_closing - $last_html_opening) + 1;
$smiley_code = utf8_substr($content, $last_html_opening + 7, ($last_html_closing - $last_html_opening - 11));
@@ -395,7 +464,7 @@ class phpbb_trim_message_bbcodes
*
* @return string plain bbcode-tag
*/
static public function filter_bbcode_tag($bbcode_tag, $strip_information = true)
static public function filter_bbcode_tag($bbcode_tag, $strip_information = true, $strip_equal = true)
{
if ($bbcode_tag[0] == '/')
{
@@ -412,9 +481,9 @@ class phpbb_trim_message_bbcodes
return 'list';
}
if ($strip_information && (($equals = utf8_strpos($bbcode_tag, '=')) !== false))
if (($strip_information || !$strip_equal) && (($equals = utf8_strpos($bbcode_tag, '=')) !== false))
{
$bbcode_tag = utf8_substr($bbcode_tag, 0, $equals);
$bbcode_tag = utf8_substr($bbcode_tag, 0, (!$strip_equal) ? $equals + 1 : $equals);
}
return $bbcode_tag;

View File

@@ -24,35 +24,17 @@ if (!file_exists($phpbb_root_path . 'umil/umil_auto.' . $phpEx))
{
trigger_error('Please download the latest UMIL (Unified MOD Install Library) from: <a href="http://www.phpbb.com/mods/umil/">phpBB.com/mods/umil</a>', E_USER_ERROR);
}
if (!function_exists('board3_basic_install'))
{
include($phpbb_root_path . 'portal/includes/functions.' . $phpEx);
}
/**
* Check if we need to convert from Board3 Portal 1.0.6
*/
global $config;
if (!defined('PORTAL_CONFIG_TABLE'))
{
include($phpbb_root_path . 'portal/includes/constants.' . $phpEx);
}
if (sql_table_exists(PORTAL_CONFIG_TABLE) && !isset($config['board3_portal_version']))
{
$portal_config = obtain_portal_config();
/**
* We only allow conversions from Board3 Portal 1.0.6
*/
if (isset($portal_config['portal_version']) && $portal_config['portal_version'] == '1.0.6')
{
set_config('board3_portal_version', '1.0.6');
}
}
// The name of the mod to be displayed during installation.
$mod_name = 'Board3 Portal';
@@ -84,174 +66,7 @@ $language_file = 'mods/info_acp_portal';
* The version numbering must otherwise be compatible with the version_compare function - http://php.net/manual/en/function.version-compare.php
*/
$versions = array(
'1.0.6' => array(
'permission_add' => array(
array('a_portal_manage', 1),
),
'permission_set' => array(
array('ADMINISTRATORS', 'a_manage_portal', 'group'),
),
'table_add' => array(
array(PORTAL_CONFIG_TABLE, array(
'COLUMNS' => array(
'config_name' => array('VCHAR:255', ''),
'config_value'=> array('MTEXT', ''),
),
'PRIMARY_KEY' => 'config_name',
)),
),
'module_add' => array(
array('acp', 'ACP_CAT_DOT_MODS', 'ACP_PORTAL_INFO'),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_GENERAL_INFO',
'module_mode' => 'config',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_NEWS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_ANNOUNCEMENTS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_WELCOME_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_RECENT_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_WORDGRAPH_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_PAYPAL_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_ATTACHMENTS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_MEMBERS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_POLLS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_BOTS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_POSTER_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_MINICALENDAR_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_CUSTOMBLOCK_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_LINKS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_FRIENDS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL_INFO', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_BIRTHDAYS_INFO',
'module_mode' => 'modules',
'module_auth' => 'acl_a_manage_portal',
),
),
),
),
'2.0.0-a1' => array(
'permission_remove' => array(
'a_portal_manage',
),
'permission_add' => array(
array('u_view_portal', 1),
array('a_manage_portal', 1),
@@ -278,10 +93,19 @@ $versions = array(
'module_image_width' => array('INT:3', 0),
'module_image_height' => array('INT:3', 0),
'module_group_ids' => array('VCHAR', ''),
'module_status' => array('TINT:1', 1),
),
'PRIMARY_KEY' => 'module_id',
)),
array(PORTAL_CONFIG_TABLE, array(
'COLUMNS' => array(
'config_name' => array('VCHAR:255', ''),
'config_value'=> array('MTEXT', ''),
),
'PRIMARY_KEY' => 'config_name',
)),
),
'config_add' => array(
@@ -296,38 +120,18 @@ $versions = array(
array('board3_display_jumpbox', 1, 0),
),
'module_remove' => array(
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_GENERAL_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_NEWS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_ANNOUNCEMENTS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_WELCOME_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_RECENT_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_WORDGRAPH_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_PAYPAL_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_ATTACHMENTS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_MEMBERS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_POLLS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_BOTS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_POSTER_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_MINICALENDAR_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_CUSTOMBLOCK_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_LINKS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_FRIENDS_INFO'),
array('acp', 'ACP_PORTAL_INFO', 'ACP_PORTAL_BIRTHDAYS_INFO'),
),
'module_add' => array(
array('acp', 'ACP_CAT_DOT_MODS', 'ACP_PORTAL'),
array('acp', 'ACP_PORTAL', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_GENERAL_INFO',
'module_mode' => 'config',
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_MODULES',
@@ -335,7 +139,7 @@ $versions = array(
'module_auth' => 'acl_a_manage_portal',
),
),
array('acp', 'ACP_PORTAL', array(
'module_basename' => 'portal',
'module_langname' => 'ACP_PORTAL_UPLOAD',
@@ -347,14 +151,61 @@ $versions = array(
'custom' => array('board3_basic_install'),
),
'2.0.0a2' => array(
'table_column_add' => array(
array(PORTAL_MODULES_TABLE, 'module_status', array('TINT:1', 1)),
'2.0.0b1' => array(
// no changes
),
'2.0.0' => array(
// no changes
),
'2.0.1' => array(
// no changes
),
'2.0.2' => array(
'custom' => array('update_donation_modules'),
'cache_purge' => array(
'imageset',
'template',
'theme',
'',
),
),
'2.0.0b1' => array(),
);
// Include the UMIL Auto file, it handles the rest
include($phpbb_root_path . 'umil/umil_auto.' . $phpEx);
/**
* Add missing config setting to existing donation modules
*
* @param string $mode UMIL mode
* @param string $version Version
*/
function update_donation_modules($mode = 'install', $version = '')
{
global $user;
$new_configs = '';
if ($mode === 'update')
{
global $db;
$sql = 'SELECT *
FROM ' . PORTAL_MODULES_TABLE . "
WHERE module_classname = 'donation'";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
set_config('board3_pay_custom_' . $row['module_id'], true);
if (!empty($new_configs))
{
$new_configs .= ', ';
}
$new_configs .= 'board3_pay_custom_' . $row['module_id'];
}
$db->sql_freeresult($result);
}
return $user->lang('CONFIG_ADD', $new_configs);
}

View File

@@ -37,7 +37,7 @@ $lang = array_merge($lang, array(
// Portal Module
'ACP_PORTAL_MODULES' => 'Portal Module',
'ACP_PORTAL_MODULES_EXP' => 'Du kannst deine Portal Module hier verwalten. Falls du alle Module deaktivierst, dann deaktiviere bitte auch das Portal.',
'MODULE_POS_TOP' => 'Oben',
'MODULE_POS_LEFT' => 'Linke Spalte',
'MODULE_POS_RIGHT' => 'Rechte Spalte',
@@ -53,15 +53,17 @@ $lang = array_merge($lang, array(
'MOVE_LEFT' => 'Nach links',
'B3P_FILE_NOT_FOUND' => 'Die angegebene Datei konnte nicht gefunden werden',
'UNABLE_TO_MOVE' => 'Es ist nicht möglich den Block in die gewählte Spalte zu verschieben.',
'UNABLE_TO_MOVE_ROW' => 'Es ist nicht möglich den Block in die gewählte Reihe zu verschieben.',
'DELETE_MODULE_CONFIRM' => 'Bist du sicher, dass du das Modul "%1$s" löschen möchtest?',
'MODULE_RESET_SUCCESS' => 'Modul Einstellungen erfolgreich zurückgesetzt.',
'MODULE_RESET_CONFIRM' => 'Bist du sicher, dass du die Einstellungen des Moduls "%1$s" zurücksetzen willst?',
'MODULE_NOT_EXISTS' => 'Das gewählte Modul existiert nicht.',
'MODULE_OPTIONS' => 'Modul Optionen',
'MODULE_NAME' => 'Modul Name',
'MODULE_NAME_EXP' => 'Gebe den Namen ein der für das Modul in der Modul Konfiguration angezeigt werden soll.',
'MODULE_IMAGE' => 'Modul Bild',
'MODULE_IMAGE_EXP' => 'Gebe den Dateinamen des Modul Bildes ein. Das Bild muss sich in allen styles/*yourstyle*/theme/images/portal/ Ordnern befinden.',
'MODULE_IMAGE_EXP' => 'Gebe den Dateinamen des Modul Bildes ein. Das Bild muss sich in allen styles/{Dein Style}/theme/images/portal/ Ordnern befinden.',
'MODULE_PERMISSIONS' => 'Modul Berechtigungen',
'MODULE_PERMISSIONS_EXP' => 'Wähle die Gruppen aus, die berechtigt sein sollen, das Modul zu sehen. Sollen alle Benutzer das Modul sehen können, wähle nichts aus.<br />An- / abwählen mehrerer Gruppen indem man <samp>Strg</samp> gedrückt hält und klickt.',
'MODULE_IMAGE_WIDTH' => 'Modul Bild Breite',
@@ -72,7 +74,8 @@ $lang = array_merge($lang, array(
'MODULE_RESET_EXP' => 'Dies wird alle Einstellungen des Moduls auf die Standardeinstellungen zurücksetzen!',
'MODULE_STATUS' => 'Aktiviere Modul',
'MODULE_ADD_ONCE' => 'Diese Modul kann nur ein Mal hinzugefügt werden.',
'MODULE_IMAGE_ERROR' => 'Während dem Prüfen des Modul Bildes sind ein oder mehrere Fehler aufgetreten:',
// general
'ACP_PORTAL' => 'Portal',
'ACP_PORTAL_GENERAL_INFO' => 'Allgemeine Einstellungen',
@@ -86,8 +89,6 @@ $lang = array_merge($lang, array(
'PORTAL_RIGHT_COLUMN' => 'Rechte Spalte aktivieren',
'PORTAL_RIGHT_COLUMN_EXP' => 'Die Rechte Spalte auf dem Portal anzeigen',
'PORTAL_VERSION_CHECK' => 'Versioncheck auf Portal',
'PORTAL_FORUM_INDEX' => 'Foren Index (Foren Liste)',
'PORTAL_FORUM_INDEX_EXP' => 'Diesen Block auf dem Portal anzeigen.',
'ACP_PORTAL_COLUMN_WIDTH_SETTINGS' => 'Breiteneinstellung der rechten und linken Spalte',
'PORTAL_LEFT_COLUMN_WIDTH' => 'Breite der linken Spalte',
'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Ändere hier die Breite der linken Spalte in Pixel, empfohlener Wert 180',
@@ -96,21 +97,24 @@ $lang = array_merge($lang, array(
'PORTAL_PHPBB_MENU' => 'phpBB-Menü',
'PORTAL_PHPBB_MENU_EXP' => 'Den phpBB Header auf dem Portal anzeigen.',
'PORTAL_DISPLAY_JUMPBOX' => 'Zeige Jumpbox',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Die Jumpbox auf dem Portal anzeigen',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Die Jumpbox auf dem Portal anzeigen. Die Jumpbox wird nur angezeigt, wenn sie gleichzeitig in den Board-Funktionalitäten aktiviert ist.',
'LINK_ADDED' => 'Der Link wurde erfolgreich eingetragen',
'LINK_UPDATED' => 'Der Link wurde erfolgreich geändert',
'LOG_PORTAL_LINK_ADDED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Link hinzu gefügt: %s ',
'LOG_PORTAL_LINK_UPDATED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Link geändert: %s ',
'LOG_PORTAL_LINK_REMOVED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Link gelöscht: %s ',
'LOG_PORTAL_EVENT_ADDED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Termin eingetragen: %s ',
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Termin geändert: %s ',
'LOG_PORTAL_EVENT_REMOVED' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; Termin gelöscht: %s ',
// Upload Module
'ACP_PORTAL_UPLOAD' => 'Modul hochladen',
'MODULE_UPLOAD' => 'Lade ein Modul hoch',
'MODULE_UPLOAD_EXP' => 'Wähle die ZIP-Datei des Moduls das du hochladen willst:',
'MODULE_UPLOAD_GO' => 'Hochladen',
'NO_MODULE_UPLOAD' => 'Deine Server-Konfiguration erlaubt das Hochladen von Dateien nicht.',
'NO_FILE_B3P' => 'Es wurde keine Zip-Datei ausgewählt.',
'MODULE_UPLOADED' => 'Modul erfolgreich hochgeladen.',
'MODULE_UPLOAD_MKDIR_FAILURE' => 'Es konnte kein Ordner erstellt werden.',
'MODULE_COPY_FAILURE' => 'Die folgende Datei konnte nicht kopiert werden: %1$s',
@@ -121,15 +125,14 @@ $lang = array_merge($lang, array(
'PORTAL_MODULE_STATUS' => 'Status',
'PORTAL_MODULE_SUCCESS' => 'Erfolgreich kopiert.',
'PORTAL_MODULE_ERROR' => 'Datei exisitert schon oder konnte nicht kopiert werden.',
// Install
'PORTAL_BASIC_INSTALL' => 'Füge Basismodule hinzu',
'PORTAL_BASIC_UNINSTALL' => 'Entferne Module von Datenbank',
'PORTAL_CONVERT_SUCCESS' => 'Konvertiere von Board3 Portal 1.0.6 & füge Basismodule hinzu',
// Logs
'LOG_PORTAL_CONFIG' => '<strong>Portal-Einstellungen geändert</strong><br />&raquo; %s',
/**
* A copy of Handyman` s MOD version check, to view it on the gallery overview
*/
@@ -142,9 +145,9 @@ $lang = array_merge($lang, array(
'RELEASE_ANNOUNCEMENT' => 'Ankündigungsthema',
'UP_TO_DATE' => '%s ist aktuell',
'VERSION_CHECK' => 'MOD Version Check',
// Adding the permissions
'acl_a_manage_portal' => array('lang' => 'Kann Portal-Einstellungen ändern', 'cat' => 'misc'),
'acl_u_view_portal' => array('lang' => 'Kann das Portal sehen', 'cat' => 'misc'),
));

View File

@@ -47,7 +47,7 @@ $lang = array_merge($lang, array(
'JUMP_NEWEST' => 'Zum letzten Beitrag springen',
'JUMP_FIRST' => 'Zum ersten Beitrag springen',
'JUMP_TO_POST' => 'Rufe den Beitrag auf',
// ACP
'ACP_PORTAL_ANNOUNCE_SETTINGS' => 'Einstellungen für Bekanntmachungen',
'ACP_PORTAL_ANNOUNCE_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die Bekanntmachungen ändern.',
@@ -62,8 +62,8 @@ $lang = array_merge($lang, array(
'PORTAL_ANNOUNCEMENTS_LENGTH' => 'Maximale Länge der Bekanntmachungen',
'PORTAL_ANNOUNCEMENTS_LENGTH_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM' => 'Foren der Bekanntmachungen',
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM_EXP' => 'Die ID des Forums, aus welchem die Bekanntmachungen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE' => 'Foren aussschließen',
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM_EXP' => 'Die ID des Forums, aus welchem die Bekanntmachungen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE' => 'Foren ausschließen',
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE_EXP'=> 'Wähle "Ja" wenn du die ausgewählten Foren vom Bekanntmachungen-Block ausschließen willst, und "Nein" wenn du nur die Bekanntmachungen aus den ausgewählten Foren im Bekanntmachungen-Block sehen willst.',
'PORTAL_ANNOUNCEMENTS_PERMISSIONS' => 'Berechtigungen prüfen anschalten?',
'PORTAL_ANNOUNCEMENTS_PERMISSIONS_EXP' => 'Berücksichtigt Berechtigungen beim Anzeigen der Bekanntmachungen',

View File

@@ -35,20 +35,20 @@ $lang = array_merge($lang, array(
'DOWNLOADS' => 'Downloads',
'NO_ATTACHMENTS' => 'Keine Dateianhänge',
'PORTAL_ATTACHMENTS' => 'Dateianhänge-Block',
// ACP
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS' => 'Einstellungen für Dateianhänge',
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für Dateianhänge ändern.',
'PORTAL_ATTACHMENTS_NUMBER' => 'Anzahl der anzuzeigenden Dateianhänge',
'PORTAL_ATTACHMENTS_NUMBER_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_ATTACHMENTS_FORUM_IDS' => 'Dateianhänge Foren',
'PORTAL_ATTACHMENTS_FORUM_IDS_EXP' => 'Die Foren, aus welchen die Dateianhänge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren aus, aus denen du die Dateianhänge sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE' => 'Foren aussschließen',
'PORTAL_ATTACHMENTS_FORUM_IDS_EXP' => 'Die Foren, aus welchen die Dateianhänge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren aus, aus denen du die Dateianhänge sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE' => 'Foren ausschließen',
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Dateianhänge-Block ausschließen willst, und "Nein" wenn du nur die Dateianhänge der ausgewählten Foren im Dateianhänge-Block sehen willst.',
'PORTAL_ATTACHMENTS_MAX_LENGTH' => 'Maximal angezeigte Länge der Dateianhänge',
'PORTAL_ATTACHMENTS_MAX_LENGTH_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_ATTACHMENTS_FILETYPE' => 'Dateitypen',
'PORTAL_ATTACHMENTS_FILETYPE_EXP' => 'Falls "Dateitypen ausschließen" auf "Ja" steht, wähle die Dateitypen die du ausschließen willst.<br />Falls "Dateitypen ausschließen" auf "Nein" steht, wähle die Dateitypen die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_ATTACHMENTS_EXCLUDE' => 'Dateitypen aussschließen',
'PORTAL_ATTACHMENTS_EXCLUDE' => 'Dateitypen ausschließen',
'PORTAL_ATTACHMENTS_EXCLUDE_EXP' => 'Wähle "Ja" wenn du die ausgewählten Dateitypen vom Dateianhänge-Block ausschließen willst, und "Nein" wenn du nur die ausgewählten Dateitypen im Dateianhänge-Block sehen willst.',
));

View File

@@ -34,12 +34,11 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'BIRTHDAYS_AHEAD' => 'In den nächsten %s Tagen',
'NO_BIRTHDAYS_AHEAD' => 'In diesem Zeitraum hat kein Mitglied Geburtstag',
// ACP
'ACP_PORTAL_BIRTHDAYS_SETTINGS' => 'Einstellungen für den Geburtstage-Block',
'ACP_PORTAL_BIRTHDAYS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für den Geburtstage-Block ändern.',
'PORTAL_BIRTHDAYS' => 'Geburtstage',
'PORTAL_BIRTHDAYS_EXPLAIN' => 'Diesen Block auf dem Portal anzeigen.',
'PORTAL_BIRTHDAYS_AHEAD' => 'Anstehende Geburtstage',
'PORTAL_BIRTHDAYS_AHEAD_EXP' => 'Zeitraum für die Geburtstagsvorschau (Tage).<br />"0" deaktiviert die Anzeige der bevorstehenden Geburtstage.',
));

View File

@@ -85,7 +85,7 @@ $lang = array_merge($lang, array(
'12'=> 'Dezember',
),
),
// ACP
'ACP_PORTAL_CALENDAR' => 'Kalender Einstellungen',
'ACP_PORTAL_CALENDAR_EXP' => 'Hier kannst du die Einstellungen für den Kalender ändern.',
@@ -127,7 +127,7 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_CALENDAR_PERMISSION' => 'Berechtigungen für die Veranstaltung',
'ACP_PORTAL_CALENDAR_PERMISSION_EXP' => 'Wähle die Gruppen aus, denen es erlaubt sein soll die Veranstaltung zu sehen. Falls alle Benutzer die Veranstaltung sehen sollen, dann wähle nichts aus.<br />Wähle mehrere Gruppen aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_EVENTS_URL_NEW_WINDOW' => 'Öffne externe Veranstaltungsverknüpfungen in einem neuen Fenster',
// Logs
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Veranstaltung aktualisiert</strong><br />&raquo; %s',
'LOG_PORTAL_EVENT_ADDED' => '<strong>Veranstaltung hinzugefügt</strong><br />&raquo; %s',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'CLOCK' => 'Uhr',
// ACP
'ACP_PORTAL_CLOCK_SETTINGS' => 'Uhr Einstellungen',
'ACP_PORTAL_CLOCK_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die Uhr ändern',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_CUSTOM' => 'Eigener Block',
// ACP
'ACP_PORTAL_CUSTOM_SETTINGS' => 'Custom Block Settings',
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'Einstellungen für den eigenen Block',

View File

@@ -55,14 +55,11 @@ $lang = array_merge($lang, array(
'EUR' => 'Euro (EUR)',
'MXN' => 'Mexikanische Pesos (MXN)',
'ILS' => 'Neue Israelische Schekel (ILS)',
// ACP
'ACP_PORTAL_PAYPAL_SETTINGS' => 'Paypal Einstellungen',
'ACP_PORTAL_PAYPAL_SETTINGS_EXP' => 'Hier kannst du die Paypal Einstellungen ändern.',
'PORTAL_PAY_C_BLOCK' => 'Normalen Paypal-Block anzeigen',
'PORTAL_PAY_C_BLOCK_EXP' => 'Diesen Block auf dem Portal anzeigen.',
'PORTAL_PAY_S_BLOCK' => 'Paypal als kleinen Block anzeigen',
'PORTAL_PAY_S_BLOCK_EXP' => 'Diesen Block auf dem Portal anzeigen.',
'PORTAL_PAY_ACC' => 'Paypal Account',
'PORTAL_PAY_ACC_EXP' => 'Gib deine e-mail-Adresse an, die du bei Paypal benutzt, z.B. xxx@xxx.com',
'PORTAL_PAY_CUSTOM' => 'Benutzername an die Paypal Zahlung anhängen',
));

View File

@@ -38,7 +38,7 @@ $lang = array_merge($lang, array(
'NO_FRIENDS' => 'Derzeit sind keine Freunde definiert',
'NO_FRIENDS_OFFLINE' => 'Keine Freunde offline',
'NO_FRIENDS_ONLINE' => 'Keine Freunde online',
// ACP
'ACP_PORTAL_FRIENDS_SETTINGS' => 'Einstellungen für den Freunde-Block',
'ACP_PORTAL_FRIENDS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für den Freunde-Block ändern.',

View File

@@ -34,9 +34,7 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'LATEST_BOTS' => 'Letzte Bots',
'LAST_VISITED_BOTS' => 'Die letzten Bots',
'LAST_VISITED_BOTS_CNT' => 'Die letzten %s Bots',
'LAST_VISITED_BOT' => 'Der letzte Bot',
// ACP
'ACP_PORTAL_BOTS_SETTINGS' => 'Einstellungen für Bot-Besuche',
'ACP_PORTAL_BOTS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für Bot-Besuche ändern.',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'LATEST_MEMBERS' => 'Neue Mitglieder',
// ACP
'ACP_PORTAL_MEMBERS_SETTINGS' => 'Einstellungen für neue Mitglieder',
'ACP_PORTAL_MEMBERS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für neue Mitglieder ändern.',

View File

@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
'NO_MODERATORS_P' => 'Keine Moderatoren',
'NO_GROUPS_P' => 'Keine Gruppen',
'ACP_PORTAL_LEADERS' => 'Das Team',
// ACP
'ACP_PORTAL_LEADERS' => 'Team Block Einstellungen',
'ACP_PORTAL_LEADERS_EXP' => 'Hier kannst Du den Team-Block anpassen',

View File

@@ -34,7 +34,7 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'PORTAL_LINKS' => 'Links',
'LINKS_NO_LINKS' => 'Keine Links vorhanden',
// ACP
'ACP_PORTAL_LINKS' => 'Links-Einstellungen',
'ACP_PORTAL_LINKS_EXP' => 'Einstellungen für die Links ändern.',
@@ -49,4 +49,8 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_LINK_PERMISSION' => 'Link Berechtigungen',
'ACP_PORTAL_LINK_PERMISSION_EXP'=> 'Wähle die Gruppen aus die berechtigt sein sollen den Link zu sehen. Falls alle Benutzer den Link sehen sollen, dann wähle nichts aus.<br />Wähle mehrere Gruppen aus/ab indem du <samp>STRG</samp> gedrückt hältst und klickst.',
'ACP_PORTAL_LINKS_NEW_WINDOW' => 'Öffne externe Verknüpfungen in einem neuen Fenster',
// Errors
'NO_LINK_TITLE' => 'Du musst einen Titel für diesen Link angeben.',
'NO_LINK_URL' => 'Du musst eine Link URL eingeben.',
));

View File

@@ -41,7 +41,7 @@ $lang = array_merge($lang, array(
'M_PRV' => 'Datenschutzrichtlinie',
'M_SEARCH' => 'Suche',
'MENU_NO_LINKS' => 'Keine Links',
// ACP
'ACP_PORTAL_MENU' => 'Hauptmenü-Einstellungen',
'ACP_PORTAL_MENU_LINK_SETTINGS' => 'Link Einstellungen',
@@ -62,4 +62,8 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_MENU_PERMISSION' => 'Link Berechtigungen',
'ACP_PORTAL_MENU_PERMISSION_EXP'=> 'Wähle die Gruppen aus die berechtigt sein sollen den Link zu sehen. Falls alle Benutzer den Link sehen sollen, dann wähle nichts aus.<br />Wähle mehrere Gruppen aus/ab indem du <samp>STRG</samp> gedrückt hältst und klickst.',
'ACP_PORTAL_MENU_EXT_NEW_WINDOW'=> 'Öffne externe Verknüpfungen in einem neuen Fenster',
// Errors
'NO_LINK_TITLE' => 'Du musst einen Titel für diesen Link angeben.',
'NO_LINK_URL' => 'Du musst eine Link URL eingeben.',
));

View File

@@ -43,7 +43,7 @@ $lang = array_merge($lang, array(
'JUMP_NEWEST' => 'Zum letzten Beitrag springen',
'JUMP_FIRST' => 'Zum ersten Beitrag springen',
'JUMP_TO_POST' => 'Rufe den Beitrag auf',
// ACP
'ACP_PORTAL_NEWS_SETTINGS' => 'Aktuelle Beiträge Einstellungen',
'ACP_PORTAL_NEWS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die aktuellen Beiträge ändern.',
@@ -56,8 +56,8 @@ $lang = array_merge($lang, array(
'PORTAL_NEWS_LENGTH' => 'Maximal angezeigte Länge der Beiträge',
'PORTAL_NEWS_LENGTH_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_NEWS_FORUM' => 'Beiträge Foren',
'PORTAL_NEWS_FORUM_EXP' => 'Die Foren, aus welchen die Beiträge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_NEWS_EXCLUDE' => 'Foren aussschließen',
'PORTAL_NEWS_FORUM_EXP' => 'Die Foren, aus welchen die Beiträge angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_NEWS_EXCLUDE' => 'Foren ausschließen',
'PORTAL_NEWS_EXCLUDE_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Aktuelle Beiträge-Block ausschließen willst, und "Nein" wenn du nur die Beiträge aus den ausgewählten Foren im Aktuelle Beiträge-Block sehen willst.',
'PORTAL_NEWS_PERMISSIONS' => 'Berechtigungen prüfen anschalten?',
'PORTAL_NEWS_PERMISSIONS_EXP' => 'Berücksichtigt Berechtigungen beim Anzeigen der aktuellen Beiträge',

View File

@@ -37,12 +37,12 @@ $lang = array_merge($lang, array(
'NO_OPTIONS' => 'Diese Umfrage verfügt über keine Optionen.',
'NO_POLL' => 'Derzeit gibt es keine aktuellen Umfragen',
'RETURN_PORTAL' => '%sZurück zum Portal%s',
// ACP
'ACP_PORTAL_POLLS_SETTINGS' => 'Einstellungen für Umfragen',
'ACP_PORTAL_POLLS_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für Umfragen ändern.',
'PORTAL_POLL_TOPIC_ID' => 'Umfragen Foren',
'PORTAL_POLL_TOPIC_ID_EXP' => 'Die Foren, aus welchen die Umfragen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_POLL_TOPIC_ID_EXP' => 'Die Foren, aus welchen die Umfragen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_POLL_EXCLUDE_ID' => 'Foren ausschließen',
'PORTAL_POLL_EXCLUDE_ID_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Umfragen-Block ausschließen willst, und "Nein" wenn du nur die Themen aus den ausgewählten Foren im Umfragen-Block sehen willst.',
'PORTAL_POLL_LIMIT' => 'Maximale Anzahl der Umfragen',

View File

@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
'PORTAL_RECENT_TOPIC' => 'Aktuelle Themen',
'PORTAL_RECENT_ANN' => 'Aktuelle Bekanntmachungen',
'PORTAL_RECENT_HOT_TOPIC' => 'Beliebte Themen',
// ACP
'ACP_PORTAL_RECENT_SETTINGS' => 'Einstellungen für neueste Themen',
'ACP_PORTAL_RECENT_SETTINGS_EXP' => 'Hier kannst du die Einstellungen für die neuesten Themen ändern.',
@@ -45,7 +45,7 @@ $lang = array_merge($lang, array(
'PORTAL_RECENT_TITLE_LIMIT' => 'Maximal angezeigte Länge der neuesten Themen',
'PORTAL_RECENT_TITLE_LIMIT_EXP' => '0 bedeutet unbegrenzt',
'PORTAL_RECENT_FORUM' => 'Themen Foren',
'PORTAL_RECENT_FORUM_EXP' => 'Die Foren, aus welchen die Themen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren aussschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren aussschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_EXCLUDE_FORUM' => 'Foren aussschließen',
'PORTAL_RECENT_FORUM_EXP' => 'Die Foren, aus welchen die Themen angezeigt werden sollen. Frei lassen, um aus allen Foren anzeigen zu lassen. Falls "Foren ausschließen" auf "Ja" steht, wähle die Foren die du ausschließen willst.<br />Falls "Foren ausschließen" auf "Nein" steht, wähle die Foren die du sehen willst.<br />Wähle mehrere Foren aus/ab, indem du beim Klicken die <samp>Strg</samp>-Taste drückst.',
'PORTAL_EXCLUDE_FORUM' => 'Foren ausschließen',
'PORTAL_EXCLUDE_FORUM_EXP' => 'Wähle "Ja" wenn du die ausgewählten Foren vom Aktuelle Themen-Block ausschließen willst, und "Nein" wenn du nur die Themen aus den ausgewählten Foren im Aktuelle Themen-Block sehen willst.',
));

View File

@@ -34,5 +34,8 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'TOPPOSTERS' => 'Top Poster',
'TOPPOSTERS_CONFIG' => 'Einstellungen zu Top Poster',
// ACP
'NUM_TOPPOSTERS' => 'Anzahl der Top Poster',
'NUM_TOPPOSTERS_EXP' => 'Gebe die Anzahl der Benutzer an, die im Top Poster Block angezeigt werden sollen.',
));

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_WELCOME' => 'Willkommen',
// ACP
'ACP_PORTAL_WELCOME_SETTINGS' => 'Einstellungen für die Willkommens-Nachricht',
'ACP_PORTAL_WELCOME_MESSAGE_SHORT' => 'Die eingegebene Nachricht ist nicht lang genug.',

View File

@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
// Portal Modules
'ACP_PORTAL_MODULES' => 'Portal Modules',
'ACP_PORTAL_MODULES_EXP' => 'You can manage your portal modules here. If you turn off all modules, please also disable the Portal.',
'MODULE_POS_TOP' => 'Top',
'MODULE_POS_LEFT' => 'Left column',
'MODULE_POS_RIGHT' => 'Right column',
@@ -52,15 +52,17 @@ $lang = array_merge($lang, array(
'MOVE_LEFT' => 'Move left',
'B3P_FILE_NOT_FOUND' => 'The requested file could not be found',
'UNABLE_TO_MOVE' => 'It is not possible to move the block to the selected column.',
'UNABLE_TO_MOVE_ROW' => 'It is not possible to move the block to the selected row.',
'DELETE_MODULE_CONFIRM' => 'Are you sure you wish to delete the module "%1$s"?',
'MODULE_RESET_SUCCESS' => 'Successfully reset the module settings.',
'MODULE_RESET_CONFIRM' => 'Are you sure you wish to reset the settings of the module "%1$s"?',
'MODULE_NOT_EXISTS' => 'The selected module does not exist.',
'MODULE_OPTIONS' => 'Module options',
'MODULE_NAME' => 'Module name',
'MODULE_NAME_EXP' => 'Enter the name of the Module that should be displayed in the Module configuration.',
'MODULE_IMAGE' => 'Module image',
'MODULE_IMAGE_EXP' => 'Enter the filename of the module image. Images need to be in all styles/*yourstyle*/theme/images/portal/ folders',
'MODULE_IMAGE_EXP' => 'Enter the filename of the module image. Images need to be in all styles/{yourstyle}/theme/images/portal/ folders',
'MODULE_PERMISSIONS' => 'Module permissions',
'MODULE_PERMISSIONS_EXP' => 'Select the groups that should be authorized to view the module. If you want all users to be able to view the module, dont select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
'MODULE_IMAGE_WIDTH' => 'Module image width',
@@ -71,6 +73,7 @@ $lang = array_merge($lang, array(
'MODULE_RESET_EXP' => 'This will reset all settings to the default!',
'MODULE_STATUS' => 'Enable module',
'MODULE_ADD_ONCE' => 'This module can only be added once.',
'MODULE_IMAGE_ERROR' => 'There was an error while checking for the module image:',
// general
'ACP_PORTAL' => 'Portal',
@@ -88,26 +91,29 @@ $lang = array_merge($lang, array(
'PORTAL_PHPBB_MENU' => 'phpBB menu',
'PORTAL_PHPBB_MENU_EXP' => 'Display the phpBB Header on the portal.',
'PORTAL_DISPLAY_JUMPBOX' => 'Display jumpbox',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Display the jumpbox on the portal',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Display the jumpbox on the portal. The jumpbox will only be displayed if it is also enabled in the board features.',
'ACP_PORTAL_COLUMN_WIDTH_SETTINGS' => 'Left and right column width settings',
'PORTAL_LEFT_COLUMN_WIDTH' => 'Width of the left column',
'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Change the width of the left column in pixels; recommended value is 180',
'PORTAL_RIGHT_COLUMN_WIDTH' => 'Width of the right column',
'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Change the width of the right column in pixels; recommended value is 180',
'LINK_ADDED' => 'The link has been successfully added',
'LINK_UPDATED' => 'The link has been successfully updated',
'LOG_PORTAL_LINK_ADDED' => '<strong>Altered Portal settings</strong><br />&raquo; Link added: %s ',
'LOG_PORTAL_LINK_UPDATED' => '<strong>Altered Portal settings</strong><br />&raquo; Link updated: %s ',
'LOG_PORTAL_LINK_REMOVED' => '<strong>Altered Portal settings</strong><br />&raquo; Link removed: %s ',
'LOG_PORTAL_EVENT_ADDED' => '<strong>Altered Portal settings</strong><br />&raquo; Event added: %s ',
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Altered Portal settings</strong><br />&raquo; Event updated: %s ',
'LOG_PORTAL_EVENT_REMOVED' => '<strong>Altered Portal settings</strong><br />&raquo; Event removed: %s ',
// Upload Module
'ACP_PORTAL_UPLOAD' => 'Upload module',
'MODULE_UPLOAD' => 'Upload a module',
'MODULE_UPLOAD_EXP' => 'Choose the zip file of the module you want to upload:',
'MODULE_UPLOAD_GO' => 'Upload',
'NO_MODULE_UPLOAD' => 'Your server configuration does not allow file uploads.',
'NO_FILE_B3P' => 'No zip file specified.',
'MODULE_UPLOADED' => 'Module uploaded successfully.',
'MODULE_UPLOAD_MKDIR_FAILURE' => 'Unable to create a folder.',
'MODULE_COPY_FAILURE' => 'Unable to copy the following file: %1$s',
@@ -118,15 +124,14 @@ $lang = array_merge($lang, array(
'PORTAL_MODULE_STATUS' => 'Status',
'PORTAL_MODULE_SUCCESS' => 'Success',
'PORTAL_MODULE_ERROR' => 'Error',
// Install
'PORTAL_BASIC_INSTALL' => 'Adding basic set of modules',
'PORTAL_BASIC_UNINSTALL' => 'Removing modules from database',
'PORTAL_CONVERT_SUCCESS' => 'Converting from Board3 Portal 1.0.6 & adding basic set of modules',
// Logs
'LOG_PORTAL_CONFIG' => '<strong>Altered Portal settings</strong><br />&raquo; %s',
/**
* A copy of Handyman` s MOD version check, to view it on the portal overview
*/
@@ -139,7 +144,7 @@ $lang = array_merge($lang, array(
'RELEASE_ANNOUNCEMENT' => 'Annoucement Topic',
'UP_TO_DATE' => '%s is up to date',
'VERSION_CHECK' => 'MOD Version Check',
// Adding the permissions
'acl_a_manage_portal' => array('lang' => 'Can alter Portal settings', 'cat' => 'misc'),
'acl_u_view_portal' => array('lang' => 'Can view the Portal', 'cat' => 'misc'),

View File

@@ -47,7 +47,7 @@ $lang = array_merge($lang, array(
'JUMP_NEWEST' => 'Jump to newest post',
'JUMP_FIRST' => 'Jump to first post',
'JUMP_TO_POST' => 'Jump to post',
// ACP
'ACP_PORTAL_ANNOUNCE_SETTINGS' => 'Global announcements settings',
'ACP_PORTAL_ANNOUNCE_SETTINGS_EXP' => 'This is where you customize the global announcements block.',

View File

@@ -34,12 +34,11 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'DOWNLOADS' => 'Downloads',
'NO_ATTACHMENTS' => 'No attachments',
'PORTAL_ATTACHMENTS' => 'Attachments Block',
'PORTAL_ATTACHMENTS' => 'Attachments',
// ACP
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS' => 'Attachments settings',
'ACP_PORTAL_ATTACHMENTS_NUMBER_SETTINGS_EXP' => 'This is where you customize the attachments block.',
'PORTAL_ATTACHMENTS_EXP' => 'Display this block on the portal.',
'PORTAL_ATTACHMENTS_NUMBER' => 'Limit of displayed attachments',
'PORTAL_ATTACHMENTS_NUMBER_EXP' => '0 means infinite',
'PORTAL_ATTACHMENTS_FORUM_IDS' => 'Attachments forums',

View File

@@ -34,12 +34,11 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'BIRTHDAYS_AHEAD' => 'In the next %s days',
'NO_BIRTHDAYS_AHEAD' => 'No members have a birthday within this period of time.',
// ACP
'ACP_PORTAL_BIRTHDAYS_SETTINGS' => 'Birthdays Settings',
'ACP_PORTAL_BIRTHDAYS_SETTINGS_EXP' => 'This is where you customize the birthday block.',
'PORTAL_BIRTHDAYS' => 'Birthday block',
'PORTAL_BIRTHDAYS_EXP' => 'Display this block on the portal.',
'PORTAL_BIRTHDAYS_AHEAD' => 'Birthdays ahead days',
'PORTAL_BIRTHDAYS_AHEAD_EXP' => 'How many days to look ahead for future birthdays.<br />"0" will disable the ahead birthdays list.',
));

View File

@@ -85,7 +85,7 @@ $lang = array_merge($lang, array(
'12'=> 'December',
),
),
// ACP
'ACP_PORTAL_CALENDAR' => 'Calendar settings',
'ACP_PORTAL_CALENDAR_EXP' => 'This is where you customize the calendar block.',
@@ -127,8 +127,7 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_CALENDAR_PERMISSION' => 'Event permissions',
'ACP_PORTAL_CALENDAR_PERMISSION_EXP' => 'Select the groups that should be authorized to view the event. If you want all users to be able to view the event, dont select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
'PORTAL_EVENTS_URL_NEW_WINDOW' => 'Open external event links in a new window',
// Logs
'LOG_PORTAL_EVENT_UPDATED' => '<strong>Updated Event</strong><br />&raquo; %s',
'LOG_PORTAL_EVENT_ADDED' => '<strong>Added Event</strong><br />&raquo; %s',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'CLOCK' => 'Clock',
// ACP
'ACP_PORTAL_CLOCK_SETTINGS' => 'Clock Settings',
'ACP_PORTAL_CLOCK_SETTINGS_EXP' => 'This is where you customize your clock',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_CUSTOM' => 'Custom Block',
// ACP
'ACP_PORTAL_CUSTOM_SETTINGS' => 'Custom Block Settings',
'ACP_PORTAL_CUSTOM_SETTINGS_EXP' => 'Here you can edit your custom block',

View File

@@ -55,14 +55,11 @@ $lang = array_merge($lang, array(
'EUR' => 'Euros (EUR)',
'MXN' => 'Mexican Pesos (MXN)',
'ILS' => 'Israeli New Shekels (ILS)',
// ACP
'ACP_PORTAL_PAYPAL_SETTINGS' => 'Paypal settings',
'ACP_PORTAL_PAYPAL_SETTINGS_EXPLAIN' => 'This is where you customize the Paypal block.',
'PORTAL_PAY_C_BLOCK' => 'Display paypal center block',
'PORTAL_PAY_C_BLOCK_EXPLAIN' => 'Display this block on the portal.',
'PORTAL_PAY_S_BLOCK' => 'Display paypal small block',
'PORTAL_PAY_S_BLOCK_EXPLAIN' => 'Display this block on the portal.',
'ACP_PORTAL_PAYPAL_SETTINGS_EXP' => 'This is where you customize the Paypal block.',
'PORTAL_PAY_ACC' => 'Paypal account to use',
'PORTAL_PAY_ACC_EXPLAIN' => 'Enter your Paypal e-mail address eg. xxx@xxx.com',
'PORTAL_PAY_ACC_EXP' => 'Enter your Paypal e-mail address eg. xxx@xxx.com',
'PORTAL_PAY_CUSTOM' => 'Append username to Paypal donation',
));

View File

@@ -38,7 +38,7 @@ $lang = array_merge($lang, array(
'NO_FRIENDS' => 'No friends currently defined',
'NO_FRIENDS_OFFLINE' => 'No friends offline',
'NO_FRIENDS_ONLINE' => 'No friends online',
// ACP
'ACP_PORTAL_FRIENDS_SETTINGS' => 'Friends Settings',
'ACP_PORTAL_FRIENDS_SETTINGS_EXP' => 'This is where you customize the friends block.',

View File

@@ -34,9 +34,7 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'LATEST_BOTS' => 'Latest Bots',
'LAST_VISITED_BOTS' => 'Last visited bots',
'LAST_VISITED_BOTS_CNT' => 'Last %s visited bots',
'LAST_VISITED_BOT' => 'Last visited bot',
// ACP
'ACP_PORTAL_BOTS_SETTINGS' => 'Visiting bots settings',
'ACP_PORTAL_BOTS_SETTINGS_EXP' => 'This is where you customize the visiting bots block.',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'LATEST_MEMBERS' => 'Newest members',
// ACP
'ACP_PORTAL_MEMBERS_SETTINGS' => 'Newest members settings',
'ACP_PORTAL_MEMBERS_SETTINGS_EXP' => 'This is where you customize the newest members block.',

View File

@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
'NO_MODERATORS_P' => 'No Moderators',
'NO_GROUPS_P' => 'No Groups',
'ACP_PORTAL_LEADERS' => 'The Team',
// ACP
'ACP_PORTAL_LEADERS' => 'Team Settings',
'ACP_PORTAL_LEADERS_EXP' => 'This is where you customize the team block',

View File

@@ -34,7 +34,7 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'PORTAL_LINKS' => 'Links',
'LINKS_NO_LINKS' => 'No links',
// ACP
'ACP_PORTAL_LINKS' => 'Link Settings',
'ACP_PORTAL_LINKS_EXP' => 'Customize the links listed in the links block',
@@ -49,4 +49,8 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_LINK_PERMISSION' => 'Link permissions',
'ACP_PORTAL_LINK_PERMISSION_EXP'=> 'Select the groups that should be authorized to view the link. If you want all users to be able to view the link, dont select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
'ACP_PORTAL_LINKS_NEW_WINDOW' => 'Open external links in a new window',
// Errors
'NO_LINK_TITLE' => 'You must enter a title for this link.',
'NO_LINK_URL' => 'You must enter a link URL.',
));

View File

@@ -41,7 +41,7 @@ $lang = array_merge($lang, array(
'M_PRV' => 'Privacy policy',
'M_SEARCH' => 'Search',
'MENU_NO_LINKS' => 'No links',
// ACP
'ACP_PORTAL_MENU' => 'Menu settings',
'ACP_PORTAL_MENU_LINK_SETTINGS' => 'Link Settings',
@@ -62,4 +62,8 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_MENU_PERMISSION' => 'Link permissions',
'ACP_PORTAL_MENU_PERMISSION_EXP'=> 'Select the groups that should be authorized to view the link. If you want all users to be able to view the link, dont select anything.<br />Select/Deselect multiple groups by holding <samp>CTRL</samp> and clicking.',
'ACP_PORTAL_MENU_EXT_NEW_WINDOW'=> 'Open external links in a new window',
// Errors
'NO_LINK_TITLE' => 'You must enter a title for this link.',
'NO_LINK_URL' => 'You must enter a link URL.',
));

View File

@@ -43,8 +43,7 @@ $lang = array_merge($lang, array(
'JUMP_NEWEST' => 'Jump to newest post',
'JUMP_FIRST' => 'Jump to first post',
'JUMP_TO_POST' => 'Jump to post',
'BACK' => 'Back',
// ACP
'ACP_PORTAL_NEWS_SETTINGS' => 'News settings',
'ACP_PORTAL_NEWS_SETTINGS_EXP' => 'This is where you customize the news block.',

View File

@@ -37,12 +37,10 @@ $lang = array_merge($lang, array(
'NO_OPTIONS' => 'This poll has no available options.',
'NO_POLL' => 'No polls available',
'RETURN_PORTAL' => '%sReturn to the portal%s',
// ACP
'ACP_PORTAL_POLLS_SETTINGS' => 'Poll settings',
'ACP_PORTAL_POLLS_SETTINGS_EXP' => 'This is where you customize the poll block.',
'PORTAL_POLL_TOPIC' => 'Display poll blocks',
'PORTAL_POLL_TOPIC_EXP' => 'Display this block on the portal.',
'PORTAL_POLL_TOPIC_ID' => 'Poll forum(s)',
'PORTAL_POLL_TOPIC_ID_EXP' => 'The forum(s) from which the polls should be displayed. If "Exclude forums" is set to "Yes", select the forums you want to exclude.<br />If "Exclude forums" is set to "No" select the forums you want to see.<br />Select/Deselect multiple forums by holding <samp>CTRL</samp> and clicking.',
'PORTAL_POLL_EXCLUDE_ID' => 'Exclude Forums',

View File

@@ -36,7 +36,7 @@ $lang = array_merge($lang, array(
'PORTAL_RECENT_TOPIC' => 'Recent topics',
'PORTAL_RECENT_ANN' => 'Recent announcements',
'PORTAL_RECENT_HOT_TOPIC' => 'Recent popular topics',
// ACP
'ACP_PORTAL_RECENT_SETTINGS' => 'Recent topics settings',
'ACP_PORTAL_RECENT_SETTINGS_EXP' => 'This is where you customize the recent topics block.',

View File

@@ -34,7 +34,7 @@ if (empty($lang) || !is_array($lang))
$lang = array_merge($lang, array(
'TOPPOSTERS' => 'Top Posters',
'TOPPOSTERS_CONFIG' => 'Top Poster settings',
// ACP
'NUM_TOPPOSTERS' => 'Number of Top Posters',
'NUM_TOPPOSTERS_EXP' => 'Enter how many users should be displayed in the top posters block.',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_WELCOME' => 'Welcome Message',
// ACP
'ACP_PORTAL_WELCOME_SETTINGS' => 'Welcome Message Settings',
'ACP_PORTAL_WELCOME_MESSAGE_SHORT' => 'The message you entered is not long enough.',

View File

@@ -65,7 +65,7 @@ foreach ($portal_modules as $row)
{
continue;
}
$class_name = 'portal_' . $row['module_classname'] . '_module';
if (!class_exists($class_name))
{
@@ -77,7 +77,7 @@ foreach ($portal_modules as $row)
}
$module = new $class_name();
/**
* Check for permissions before loading anything
* the default group of a user always defines his/her permission (KISS)
@@ -87,35 +87,35 @@ foreach ($portal_modules as $row)
{
continue;
}
if ($module->language)
{
$user->add_lang('mods/portal/' . $module->language);
}
if ($row['module_column'] == 1 && $config['board3_left_column'])
if ($row['module_column'] == column_string_num('left') && $config['board3_left_column'])
{
$template_module = $module->get_template_side($row['module_id']);
$template_column = 'left';
++$module_count['left'];
}
if ($row['module_column'] == 2)
if ($row['module_column'] == column_string_num('center'))
{
$template_module = $module->get_template_center($row['module_id']);
$template_column = 'center';
++$module_count['center'];
}
if ($row['module_column'] == 3 && $config['board3_right_column'])
if ($row['module_column'] == column_string_num('right') && $config['board3_right_column'])
{
$template_module = $module->get_template_side($row['module_id']);
$template_column = 'right';
++$module_count['right'];
}
if ($row['module_column'] == 4)
if ($row['module_column'] == column_string_num('top'))
{
$template_module = $module->get_template_center($row['module_id']);
++$module_count['top'];
}
if ($row['module_column'] == 5)
if ($row['module_column'] == column_string_num('bottom'))
{
$template_module = $module->get_template_center($row['module_id']);
++$module_count['bottom'];
@@ -134,6 +134,8 @@ foreach ($portal_modules as $row)
'TITLE' => $template_module['title'],
'CODE' => $template_module['code'],
'MODULE_ID' => $row['module_id'],
'IMAGE_WIDTH' => $row['module_image_width'],
'IMAGE_HEIGHT' => $row['module_image_height'],
));
}
else
@@ -160,15 +162,15 @@ if($module_count['total'] < 1)
// Assign specific vars
$template->assign_vars(array(
// 'S_SMALL_BLOCK' => true,
'S_PORTAL_LEFT_COLUMN' => $config['board3_left_column_width'],
'S_PORTAL_RIGHT_COLUMN' => $config['board3_right_column_width'],
'S_PORTAL_LEFT_COLUMN' => $config['board3_left_column_width'],
'S_PORTAL_RIGHT_COLUMN' => $config['board3_right_column_width'],
'S_LEFT_COLUMN' => ($module_count['left'] > 0 && $config['board3_left_column']) ? true : false,
'S_CENTER_COLUMN' => ($module_count['center'] > 0) ? true : false,
'S_RIGHT_COLUMN' => ($module_count['right'] > 0 && $config['board3_right_column']) ? true : false,
'S_TOP_COLUMN' => ($module_count['top'] > 0) ? true : false,
'S_BOTTOM_COLUMN' => ($module_count['bottom'] > 0) ? true : false,
'S_DISPLAY_PHPBB_MENU' => $config['board3_phpbb_menu'],
'S_DISPLAY_JUMPBOX' => $config['board3_display_jumpbox'],
'S_DISPLAY_PHPBB_MENU' => $config['board3_phpbb_menu'],
'B3P_DISPLAY_JUMPBOX' => $config['board3_display_jumpbox'],
));
// Output page

View File

@@ -61,7 +61,7 @@ function set_portal_config($config_name, $config_value)
}
$portal_config[$config_name] = $config_value;
$cache->destroy('portal_config');
}
@@ -100,7 +100,7 @@ function phpbb_fetch_posts($module_id, $forum_from, $permissions, $number_of_pos
{
global $db, $phpbb_root_path, $auth, $user, $bbcode_bitfield, $bbcode, $portal_config, $config;
$posts = array();
$posts = $update_count = array();
$post_time = ($time == 0) ? '' : 'AND t.topic_time > ' . (time() - $time * 86400);
$forum_from = (strpos($forum_from, ',') !== FALSE) ? explode(',', $forum_from) : (($forum_from != '') ? array($forum_from) : array());
$str_where = '';
@@ -174,6 +174,11 @@ function phpbb_fetch_posts($module_id, $forum_from, $permissions, $number_of_pos
$post_link = ($config['board3_news_style_' . $module_id]) ? 't.topic_first_post_id = p.post_id' : (($config['board3_news_show_last_' . $module_id]) ? 't.topic_last_post_id = p.post_id' : 't.topic_first_post_id = p.post_id' ) ;
$topic_order = ($config['board3_news_show_last_' . $module_id]) ? 't.topic_last_post_time DESC' : 't.topic_time DESC' ;
break;
default:
$topic_type = $str_where = $user_link = $post_link = '';
$topic_order = 't.topic_time DESC';
// maybe use trigger_error here, as this shouldn't happen
}
if ($type == 'announcements' && $global_f < 1)
@@ -403,12 +408,12 @@ function get_sub_taged_string($message, $bbcode_uid, $length)
if(!class_exists('phpbb_trim_message'))
{
include(PORTAL_ROOT_PATH . 'includes/trim_message/trim_message.' . $phpEx);
include($phpbb_root_path . 'includes/trim_message/trim_message.' . $phpEx);
}
if(!class_exists('phpbb_trim_message_bbcodes'))
{
include(PORTAL_ROOT_PATH . 'includes/trim_message/bbcodes.' . $phpEx);
include($phpbb_root_path . 'includes/trim_message/bbcodes.' . $phpEx);
}
$object = new phpbb_trim_message($message, $bbcode_uid, $length);
@@ -440,6 +445,11 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
$pagination_type = 'np';
$anker = '#n';
break;
default:
// this shouldn't happend @todo: use trigger_error()
$pagination_type = 'ap';
$anker = '#a';
}
// Make sure $per_page is a valid value
@@ -516,39 +526,6 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
return $page_string;
}
/**
* Format user date for the Birthday block
* Note: this function is used as we already added timezones, etc
*
* borrowed from Upcoming Birthday Mod
* @author: lefty
* changed to work outside session.php by B3P
* @function: format_dateucb
*/
function format_birthday($date, $format = false)
{
global $user;
$time->time_now = time();
$lang_dates = $user->lang['datetime'];
$format = (!$format) ? $time->date_format : $format;
// Short representation of month in format
if ((strpos($format, '\M') === false && strpos($format, 'M') !== false) || (strpos($format, '\r') === false && strpos($format, 'r') !== false))
{
$lang_dates['May'] = $lang_dates['May_short'];
}
unset($lang_dates['May_short']);
// We need to create a UNIX timestamp for date()
$day = substr($date, 0, strpos($date, '-'));
$month = substr($date, (strpos($date, '-')+1), 2);
$year = substr($date, -4);
$birthday_time = mktime(0, 0, 0, $month, $day, $year);
return strtr(@date(str_replace('|', '', $format), $birthday_time), $lang_dates);
}
/**
* Check if table exists
* @copyright (c) 2007 phpBB Group
@@ -580,9 +557,9 @@ function sql_table_exists($table_name)
function get_portal_tracking_info($fetch_news)
{
global $config, $user;
$last_read = $topic_ids = $forum_ids = $tracking_info = array();
$last_read = $topic_ids = $forum_ids = $tracking_info = $rev_forum_ids = array();
/**
* group everything by the forum IDs
*/
@@ -590,16 +567,19 @@ function get_portal_tracking_info($fetch_news)
for ($i = 0; $i < $count; ++$i)
{
$tracking_info[$fetch_news[$i]['forum_id']][] = $fetch_news[$i]['topic_id'];
$topic_ids[] = $fetch_news[$i]['topic_id'];
$forum_ids[] = $fetch_news[$i]['forum_id'];
$rev_forum_ids[$fetch_news[$i]['topic_id']] = $fetch_news[$i]['forum_id']; // the other way round also helps
}
foreach ($tracking_info as $forum_id => $current_forum)
{
if ($config['load_db_lastread'] && $user->data['is_registered'])
{
global $db;
$mark_time = array();
$sql = 'SELECT topic_id, mark_time
FROM ' . TOPICS_TRACK_TABLE . "
WHERE user_id = {$user->data['user_id']}
@@ -628,11 +608,16 @@ function get_portal_tracking_info($fetch_news)
}
$db->sql_freeresult($result);
$user_lastmark = (isset($mark_time[$forum_id])) ? $mark_time[$forum_id] : $user->data['user_lastmark'];
// @todo: do not use $current_forum here as this is already used by the outside foreach
foreach($forum_ids as $current_forum)
{
$user_lastmark[$current_forum] = (isset($mark_time[$current_forum])) ? $mark_time[$current_forum] : $user->data['user_lastmark'];
}
// @todo: also check if $user_lastmark has been defined for this specific forum_id
foreach ($topic_ids as $topic_id)
{
$last_read[$topic_id] = $user_lastmark;
$last_read[$topic_id] = (!isset($last_read[$topic_id]) || $user_lastmark[$rev_forum_ids[$topic_id]] > $last_read[$topic_id]) ? $user_lastmark[$rev_forum_ids[$topic_id]] : $last_read[$topic_id];
}
}
}
@@ -670,13 +655,6 @@ function get_portal_tracking_info($fetch_news)
if (sizeof($topic_ids))
{
$mark_time = array();
if ($global_announce_list && sizeof($global_announce_list))
{
if (isset($tracking_topics['f'][0]))
{
$mark_time[0] = base_convert($tracking_topics['f'][0], 36, 10) + $config['board_startdate'];
}
}
if (isset($tracking_topics['f'][$forum_id]))
{
@@ -687,19 +665,12 @@ function get_portal_tracking_info($fetch_news)
foreach ($topic_ids as $topic_id)
{
if ($global_announce_list && isset($global_announce_list[$topic_id]))
{
$last_read[$topic_id] = (isset($mark_time[0])) ? $mark_time[0] : $user_lastmark;
}
else
{
$last_read[$topic_id] = $user_lastmark;
}
$last_read[$topic_id] = $user_lastmark;
}
}
}
}
return $last_read;
}
@@ -716,24 +687,24 @@ function get_portal_tracking_info($fetch_news)
function board3_basic_install($mode = 'install', $purge_modules = true, $u_action = '')
{
global $db, $phpbb_root_path, $phpEx, $cache, $user, $table_prefix, $config;
// Shouldn't happen but we should check this nonetheless
if (!defined('PORTAL_MODULES_TABLE'))
{
include($phpbb_root_path . 'portal/includes/constants.' . $phpEx);
}
if ($mode == 'install' || $mode == 'update')
if ($mode == 'install')
{
$directory = $phpbb_root_path . 'portal/modules/';
if ($purge_modules)
{
$sql = 'DELETE FROM ' . PORTAL_MODULES_TABLE;
$result = $db->sql_query($sql);
$db->sql_freeresult($result);
}
/*
* this is a list of the basic modules that will be installed
* module_name => array(module_column, module_order)
@@ -749,7 +720,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
'portal_topposters' => array(1, 8),
'portal_latest_members' => array(1, 9),
'portal_link_us' => array(1, 10),
// center column
'portal_welcome' => array(2, 1),
'portal_recent' => array(2, 2),
@@ -757,7 +728,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
'portal_news' => array(2, 4),
'portal_poll' => array(2, 5),
'portal_whois_online' => array(2, 6),
// right column
'portal_user_menu' => array(3, 1),
'portal_statistics' => array(3, 2),
@@ -766,7 +737,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
'portal_latest_bots' => array(3, 5),
'portal_links' => array(3, 6),
);
foreach ($modules_ary as $module_name => $module_data)
{
$class_name = $module_name . '_module';
@@ -778,7 +749,7 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
{
trigger_error('CLASS_NOT_FOUND', E_USER_ERROR);
}
$c_class = new $class_name();
$sql_ary = array(
@@ -790,145 +761,18 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
'module_group_ids' => '',
'module_image_width' => 16,
'module_image_height' => 16,
'module_status' => B3_MODULE_ENABLED,
);
$sql = 'INSERT INTO ' . PORTAL_MODULES_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);
$c_class->install($db->sql_nextid());
}
// Make sure we get rid of old data
$cache->destroy('portal_modules');
if ($mode == 'update')
{
/**
* Check if we need to convert from Board3 Portal 1.0.6
*/
global $config;
if ($config['board3_portal_version'] == '1.0.6')
{
$convert = true;
$portal_config = obtain_portal_config();
}
else
{
$convert = false;
}
if ($convert)
{
$portal_modules = obtain_portal_modules();
foreach ($portal_modules as $row)
{
switch($row['module_classname'])
{
case 'announcements':
set_config('board3_announcements_style_' . $row['module_id'], $portal_config['portal_announcements_style']);
set_config('board3_number_of_announcements_' . $row['module_id'], $portal_config['portal_number_of_announcements']);
set_config('board3_announcements_day_' . $row['module_id'], $portal_config['portal_announcements_day']);
set_config('board3_announcements_length_' . $row['module_id'], $portal_config['portal_announcements_length']);
set_config('board3_global_announcements_forum_' . $row['module_id'], $portal_config['portal_global_announcements_forum']);
set_config('board3_announcements_forum_exclude_' . $row['module_id'], $portal_config['portal_announcements_forum_exclude']);
set_config('board3_announcements_archive_' . $row['module_id'], $portal_config['portal_announcements_archive']);
set_config('board3_announcements_permissions_' . $row['module_id'], $portal_config['portal_announcements_permissions']);
set_config('board3_show_announcements_replies_views_' . $row['module_id'], $portal_config['portal_show_announcements_replies_views']);
break;
case 'attachments':
set_config('board3_attachments_number_' . $row['module_id'], $portal_config['portal_attachments_number']);
set_config('board3_attach_max_length_' . $row['module_id'], $portal_config['portal_attach_max_length']);
set_config('board3_attachments_forum_ids_' . $row['module_id'], $portal_config['portal_attachments_forum_ids']);
set_config('board3_attachments_forum_exclude_' . $row['module_id'], $portal_config['portal_attachments_forum_exclude']);
set_config('board3_attachments_filetype_' . $row['module_id'], $portal_config['portal_attachments_filetype']);
set_config('board3_attachments_exclude_' . $row['module_id'], $portal_config['portal_attachments_exclude']);
break;
case 'birthday_list':
set_config('board3_birthdays_ahead_' . $row['module_id'], 'portal_birthdays_ahead');
break;
case 'calendar':
set_config('board3_sunday_first_' . $row['module_id'], $portal_config['portal_sunday_first']);
set_config('board3_calendar_today_color_' . $row['module_id'], $portal_config['portal_minicalendar_today_color']);
set_config('board3_calendar_sunday_color_' . $row['module_id'], $portal_config['portal_minicalendar_sunday_color']);
set_config('board3_long_month_' . $row['module_id'], $portal_config['portal_long_month']);
break;
case 'donation':
set_config('board3_pay_acc_' . $row['module_id'], $portal_config['portal_pay_acc']);
break;
case 'friends':
set_config('board3_max_online_friends_' . $row['module_id'], $portal_config['portal_max_online_friends']);
break;
case 'latest_bots':
set_config('board3_last_visited_bots_number_' . $row['module_id'], $portal_config['portal_last_visited_bots_number']);
break;
case 'latest_members':
set_config('board3_max_last_member_' . $row['module_id'], $portal_config['portal_max_last_member']);
break;
case 'leaders':
set_config('board3_leaders_ext_' . $row['module_id'], $portal_config['portal_leaders_ext']);
break;
case 'news':
set_config('board3_news_length_' . $row['module_id'], $portal_config['portal_news_length']);
set_config('board3_news_forum_' . $row['module_id'], $portal_config['portal_news_forum']);
set_config('board3_news_permissions_' . $row['module_id'], $portal_config['portal_news_permissions']);
set_config('board3_number_of_news_' . $row['module_id'], $portal_config['portal_number_of_news']);
set_config('board3_show_all_news_' . $row['module_id'], $portal_config['portal_show_all_news']);
set_config('board3_news_exclude_' . $row['module_id'], $portal_config['portal_news_exclude']);
set_config('board3_news_archive_' . $row['module_id'], $portal_config['portal_news_archive']);
set_config('board3_news_show_last_' . $row['module_id'], $portal_config['portal_news_show_last']);
set_config('board3_show_news_replies_views_' . $row['module_id'], $portal_config['portal_show_news_replies_views']);
set_config('board3_news_style_' . $row['module_id'], $portal_config['portal_news_style']);
break;
case 'poll':
set_config('board3_poll_allow_vote_' . $row['module_id'], $portal_config['portal_poll_allow_vote']);
set_config('board3_poll_topic_id_' . $row['module_id'], $portal_config['portal_poll_topic_id']);
set_config('board3_poll_exclude_id_' . $row['module_id'], $portal_config['portal_poll_exclude_id']);
set_config('board3_poll_hide_' . $row['module_id'], $portal_config['portal_poll_hide']);
set_config('board3_poll_limit_' . $row['module_id'], $portal_config['portal_poll_limit']);
break;
case 'recent':
set_config('board3_max_topics_' . $row['module_id'], $portal_config['portal_max_topics']);
set_config('board3_recent_title_limit_' . $row['module_id'], $portal_config['portal_recent_title_limit']);
set_config('board3_recent_forum_' . $row['module_id'], $portal_config['portal_recent_forum']);
set_config('board3_recent_exclude_forums_' . $row['module_id'], $portal_config['portal_exclude_forums']);
break;
case 'topposters':
set_config('board3_topposters_' . $row['module_id'], $portal_config['portal_max_most_poster']);
break;
case 'welcome':
set_portal_config('board3_welcome_message_' . $row['module_id'], $portal_config['portal_welcome_intro']);
break;
default:
// do nothing
}
}
// Now that we are done, delete all data that seems useless to us
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE config_name ' . $db->sql_like_expression(utf8_clean_string('portal_') . $db->any_char);
$db->sql_query($sql);
}
return $user->lang['PORTAL_CONVERT_SUCCESS'];
}
else
{
return $user->lang['PORTAL_BASIC_INSTALL'];
}
return $user->lang['PORTAL_BASIC_INSTALL'];
}
else
{
@@ -947,28 +791,28 @@ function board3_basic_install($mode = 'install', $purge_modules = true, $u_actio
$sql = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE config_name ' . $db->sql_like_expression(utf8_clean_string('board3_') . $db->any_char) . '
AND ' . $db->sql_in_set('config_name', $skip_entries, true);
$db->sql_query($sql);
return $user->lang['PORTAL_BASIC_UNINSTALL'];
}
}
/**
* check if the entered source file actually exists
*/
function check_file_src($value, $key, $module_id)
function check_file_src($value, $key, $module_id, $force_error = true)
{
global $db, $phpbb_root_path, $phpEx, $user;
$error = '';
// We check if the chosen file is present in all active styles
$sql = 'SELECT st.theme_path
FROM ' . STYLES_THEME_TABLE . ' st
LEFT JOIN ' . STYLES_TABLE . ' s
ON (st.theme_id = s.style_id)
WHERE s.style_active = 1';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
@@ -978,9 +822,52 @@ function check_file_src($value, $key, $module_id)
}
}
$db->sql_freeresult($result);
if (!empty($error))
{
trigger_error($error . adm_back_link(append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=portal&amp;mode=config&amp;module_id=' . $module_id)), E_USER_WARNING );
if ($force_error)
{
trigger_error($error . adm_back_link(append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=portal&amp;mode=config&amp;module_id=' . $module_id)), E_USER_WARNING );
}
else
{
return $error;
}
}
else
{
return false;
}
}
/**
* Get the groups a user is in
*
* @return array Array containing the user's groups
*/
function get_user_groups()
{
global $cache, $db, $user;
$groups_ary = $cache->get('_user_groups_' . $user->data['user_id']);
if ($groups_ary === false)
{
// get user's groups
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int) $user->data['user_id'] . '
ORDER BY group_id ASC';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
// save data in cache for 60 seconds
$cache->put('_user_groups_' . $user->data['user_id'], $groups_ary, 60);
}
return $groups_ary;
}

View File

@@ -26,6 +26,8 @@ function column_num_string($column)
return 'top';
case 5:
return 'bottom';
default:
return 0;
}
}

109
root/portal/includes/functions_upload.php Normal file → Executable file
View File

@@ -22,7 +22,7 @@ class portal_upload
*/
private $upload_path;
private $u_action;
/*
* constructor function
*/
@@ -37,7 +37,7 @@ class portal_upload
$this->upload_file();
}
}
/**
* upload module zip
*/
@@ -50,12 +50,13 @@ class portal_upload
$upload = new fileupload();
// Only allow ZIP files
$upload->set_allowed_extensions(array('zip'));
$file = $upload->form_upload('modupload');
if (empty($file->filename))
// this is for module zips so don't allow anything else
if (empty($file->filename) || !preg_match('.zip.', $file->get('realname')))
{
trigger_error($user->lang['NO_UPLOAD_FILE'] . adm_back_link($this->u_action), E_USER_WARNING);
trigger_error($user->lang['NO_FILE_B3P'] . adm_back_link($this->u_action), E_USER_WARNING);
}
else
{
@@ -63,7 +64,7 @@ class portal_upload
{
$file->clean_filename('real');
$file->move_file(str_replace($phpbb_root_path, '', $this->upload_path), true, true);
if (!sizeof($file->error))
{
include($phpbb_root_path . 'includes/functions_compress.' . $phpEx);
@@ -85,7 +86,7 @@ class portal_upload
// We need to move that directory then
$this->directory_move($mod_dir . '_tmp/' . $folder_contents[0], $this->upload_path . $folder_contents[0]);
$new_mod_dir = $this->upload_path . $folder_contents[0];
}
else if (!is_dir($mod_dir))
{
@@ -95,25 +96,35 @@ class portal_upload
}
$this->directory_delete($mod_dir . '_tmp/');
// make sure we set $mod_dir to the correct folder after the above step
$mod_dir = (isset($new_mod_dir)) ? $new_mod_dir : $mod_dir;
// if we got until here set $actions['NEW_FILES']
$actions['NEW_FILES'] = array();
// Now we need to get the files inside the folders
//$folder_contents = $this->cut_folder(scandir($mod_dir));
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($mod_dir)); // requires PHP 5
foreach($iterator as $cur_file)
{
$cur_path = $cur_file->getPathname();
$cur_path = str_replace('\\', '/', $cur_path); // we want unix-like paths
$cur_path = str_replace($mod_dir . '/', '', $cur_path);
$cut_pos = strpos($cur_path, '/');
// Only allow files in adm, language, portal and styles folder
/*
* We only copy files. The recursive iterator might grab paths depending on
* the PHP version. This will trigger our error handle with trigger_error()
* though. If we are trying to copy a directory just move on.
*/
if (is_dir($cur_path))
{
continue;
}
// Only allow files in adm, language, portal and styles folder and a license.txt
if(!in_array(substr($cur_path, 0, $cut_pos), array('adm', 'language', 'portal', 'styles')) && $cur_file->getFilename() != 'license.txt')
{
$file->remove();
@@ -131,6 +142,14 @@ class portal_upload
// Let's start moving our files where they belong
foreach ($actions['NEW_FILES'] as $source => $target)
{
/*
* make sure we don't try to copy folders
* folders will be created if necessary in copy_content
*/
if(is_dir($source))
{
continue;
}
$status = $this->copy_content($source, $target);
if ($status !== true && !is_null($status))
@@ -145,7 +164,7 @@ class portal_upload
'TARGET' => $target,
));
}
$template->assign_vars(array(
'S_MOD_SUCCESSBOX' => true,
'MESSAGE' => $user->lang['MODULE_UPLOADED'],
@@ -161,10 +180,10 @@ class portal_upload
{
trigger_error((sizeof($file->error) ? implode('<br />', $file->error) : $user->lang['MOD_UPLOAD_INIT_FAIL']) . adm_back_link($this->u_action), E_USER_WARNING);
}
$this->tpl_name = 'portal/acp_portal_upload_module';
$this->page_title = $user->lang['ACP_PORTAL_UPLOAD'];
$template->assign_vars(array(
'L_TITLE' => $user->lang['ACP_PORTAL_UPLOAD'],
'L_TITLE_EXPLAIN' => '',
@@ -176,7 +195,7 @@ class portal_upload
));
}
}
/**
* Cuts the unneeded '.' and '..' from the folder content info scandir returns
*
@@ -186,19 +205,19 @@ class portal_upload
{
$cut_array = array('.', '..');
$folder_content = array_diff($folder_content, $cut_array);
return $folder_content;
}
private function directory_move($src, $dest)
{
$src_contents = scandir($src);
if (!is_dir($dest) && is_dir($src))
{
mkdir($dest . '/', 0755);
}
foreach ($src_contents as $src_entry)
{
if ($src_entry != '.' && $src_entry != '..')
@@ -209,51 +228,51 @@ class portal_upload
}
else if (is_file($src . '/' . $src_entry) && !is_file($dest . '/' . $src_entry))
{
copy($src . '/' . $src_entry, $dest . '/' . $src_entry);
chmod($dest . '/' . $src_entry, 0644);
@copy($src . '/' . $src_entry, $dest . '/' . $src_entry);
@chmod($dest . '/' . $src_entry, 0644);
}
}
}
}
/**
* the following functions are from the AutoMOD package
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
*/
private function directory_delete($dir)
{
if (!file_exists($dir))
{
return true;
}
if (!is_dir($dir) && is_file($dir))
{
phpbb_chmod($dir, CHMOD_ALL);
return unlink($dir);
@chmod($dir, 0644);
return @unlink($dir);
}
foreach (scandir($dir) as $item)
foreach (scandir($dir) as $item)
{
if ($item == '.' || $item == '..')
if ($item == '.' || $item == '..')
{
continue;
}
if (!$this->directory_delete($dir . "/" . $item))
if (!$this->directory_delete($dir . "/" . $item))
{
phpbb_chmod($dir . "/" . $item, CHMOD_ALL);
if (!$this->directory_delete($dir . "/" . $item))
@chmod($dir . "/" . $item, 0644);
if (!$this->directory_delete($dir . "/" . $item))
{
return false;
}
}
}
}
}
return @rmdir($dir);
}
/**
* Moves files or complete directories
*
@@ -288,29 +307,29 @@ class portal_upload
return sprintf($user->lang['MODULE_UPLOAD_MKDIR_FAILURE'], $dirname_check);
}
}
// leave a backup file if it already exists
if(file_exists($to))
{
// remove old backup file first
if(file_exists($to . '.bak'))
{
phpbb_chmod($to . '.bak', CHMOD_ALL);
@chmod($to . '.bak', 0644);
unlink($to . '.bak');
}
rename($to, $to . '.bak');
phpbb_chmod($to, CHMOD_ALL);
@rename($to, $to . '.bak');
@chmod($to, 0644);
}
if (!@copy($from, $to))
{
return sprintf($user->lang['MODULE_COPY_FAILURE'], $to);
}
@chmod($to, octdec(0644));
@chmod($to, 0644);
return true;
}
/**
* @author Michal Nazarewicz (from the php manual)
* Creates all non-existant directories in a path
@@ -345,4 +364,4 @@ class portal_upload
}
return true;
}
}
}

View File

@@ -63,7 +63,7 @@ class portal_announcements_module
// Any announcements present? If not terminate it here.
if (sizeof($fetch_news) == 0)
{
$template->assign_block_vars('announcements_row', array(
$template->assign_block_vars('announcements_center_row', array(
'S_NO_TOPICS' => true,
'S_NOT_LAST' => false
));
@@ -81,7 +81,7 @@ class portal_announcements_module
$time = ($config['board3_announcements_day_' . $module_id] == 0) ? 0 : $config['board3_announcements_day_' . $module_id];
$post_time = ($time == 0) ? '' : 'AND topic_time > ' . (time() - $time * 86400);
$str_where = '';
if($permissions == true)
@@ -92,7 +92,7 @@ class portal_announcements_module
{
$disallow_access = array();
}
if($config['board3_announcements_forum_exclude_' . $module_id] == true)
{
$disallow_access = array_merge($disallow_access, $forum_from);
@@ -142,7 +142,7 @@ class portal_announcements_module
$total_announcements = (int) $db->sql_fetchfield('num_topics');
$db->sql_freeresult($result);
}
$topic_tracking_info = (get_portal_tracking_info($fetch_news));
if($announcement < 0)
@@ -220,7 +220,7 @@ class portal_announcements_module
// Grab icons
$icons = $cache->obtain_icons();
$template->assign_block_vars('announcements_row', array(
$template->assign_block_vars('announcements_center_row', array(
'ATTACH_ICON_IMG' => ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
'FORUM_NAME' => ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
'TITLE' => $fetch_news[$i]['topic_title'],
@@ -261,7 +261,7 @@ class portal_announcements_module
{
foreach ($fetch_news[$i]['attachments'] as $attachment)
{
$template->assign_block_vars('announcements_row.attachment', array(
$template->assign_block_vars('announcements_center_row.attachment', array(
'DISPLAY_ATTACHMENT' => $attachment)
);
}
@@ -280,10 +280,20 @@ class portal_announcements_module
// Show "read full" page
{
$i = $announcement;
/**
* redirect to portal page if the specified announcement does not exist
* force #top anchor in order to get rid of the #a anchor
*/
if (!isset($fetch_news[$i]))
{
redirect(append_sid($phpbb_root_path . 'portal.' . $phpEx, '#top'));
}
$forum_id = $fetch_news[$i]['forum_id'];
$topic_id = $fetch_news[$i]['topic_id'];
$topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_id, $global_announce_list = false);
$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
$open_bracket = '[ ';
$close_bracket = ' ]';
$read_full = $user->lang['BACK'];
@@ -295,8 +305,8 @@ class portal_announcements_module
{
$pagination = generate_portal_pagination(append_sid("{$phpbb_root_path}portal.$phpEx"), $total_announcements, $config['board3_number_of_announcements_' . $module_id], $start, 'announcements');
}
$template->assign_block_vars('announcements_row', array(
$template->assign_block_vars('announcements_center_row', array(
'ATTACH_ICON_IMG' => ($fetch_news[$i]['attachment'] && $config['allow_attachments']) ? $user->img('icon_topic_attach', $user->lang['TOTAL_ATTACHMENTS']) : '',
'FORUM_NAME' => ($forum_id) ? $fetch_news[$i]['forum_name'] : '',
'TITLE' => $fetch_news[$i]['topic_title'],
@@ -325,7 +335,7 @@ class portal_announcements_module
{
foreach ($fetch_news[$i]['attachments'] as $attachment)
{
$template->assign_block_vars('announcements_row.attachment', array(
$template->assign_block_vars('announcements_center_row.attachment', array(
'DISPLAY_ATTACHMENT' => $attachment)
);
}
@@ -358,11 +368,11 @@ class portal_announcements_module
if ($config['board3_announcements_style_' . $module_id])
{
return 'announcements_compact.html';
return 'announcements_center_compact.html';
}
else
{
return 'announcements.html';
return 'announcements_center.html';
}
}
@@ -399,7 +409,7 @@ class portal_announcements_module
set_config('board3_announcements_archive_' . $module_id, 1);
set_config('board3_announcements_permissions_' . $module_id, 1);
set_config('board3_show_announcements_replies_views_' . $module_id, 1);
return true;
}
@@ -422,14 +432,14 @@ class portal_announcements_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
// Create forum select box
public function select_forums($value, $key, $module_id)
{
global $user, $config;
$forum_list = make_forum_select(false, false, true, true, true, false, true);
$selected = array();
if(isset($config[$key]) && strlen($config[$key]) > 0)
{
@@ -446,18 +456,15 @@ class portal_announcements_module
return $s_forum_options;
}
// Store selected forums
public function store_selected_forums($key, $module_id)
{
global $db, $cache;
// Get selected forums
$values = request_var($key, array(0 => ''));
$news = implode(',', $values);
set_config($key, $news);
}
}

View File

@@ -49,204 +49,12 @@ class portal_attachments_module
public function get_template_center($module_id)
{
global $config, $template, $db, $user, $auth, $phpEx, $phpbb_root_path;
$attach_forums = false;
$where = '';
$filetypes = array();
// Get filetypes and put them into an array
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
{
$filetypes = explode(',', $config['board3_attachments_filetype_' . $module_id]);
}
if($config['board3_attachments_forum_ids_' . $module_id] !== '')
{
$attach_forums_config = (strpos($config['board3_attachments_forum_ids_' . $module_id], ',') !== false) ? explode(',', $config['board3_attachments_forum_ids_' . $module_id]) : array($config['board3_attachments_forum_ids_' . $module_id]);
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
if($config['board3_attachments_forum_exclude_' . $module_id])
{
$forum_list = array_unique(array_diff($forum_list, $attach_forums_config));
}
else
{
$forum_list = array_unique(array_intersect($attach_forums_config, $forum_list));
}
}
else
{
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
}
if(sizeof($forum_list))
{
$attach_forums = true;
$where = 'AND ' . $db->sql_in_set('t.forum_id', $forum_list);
}
if(sizeof($filetypes))
{
if($config['board3_attachments_exclude_' . $module_id])
{
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes, true);
}
else
{
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes);
}
}
if($attach_forums === true)
{
// Just grab all attachment info from database
$sql = 'SELECT
a.*,
t.forum_id
FROM
' . ATTACHMENTS_TABLE . ' a,
' . TOPICS_TABLE . ' t
WHERE
a.topic_id <> 0
AND a.topic_id = t.topic_id
' . $where . '
ORDER BY
filetime ' . ((!$config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC';
$result = $db->sql_query_limit($sql, $config['board3_attachments_number_' . $module_id]);
while ($row = $db->sql_fetchrow($result))
{
$size_lang = ($row['filesize'] >= 1048576) ? $user->lang['MIB'] : (($row['filesize'] >= 1024) ? $user->lang['KIB'] : $user->lang['BYTES']);
$row['filesize'] = ($row['filesize'] >= 1048576) ? round((round($row['filesize'] / 1048576 * 100) / 100), 2) : (($row['filesize'] >= 1024) ? round((round($row['filesize'] / 1024 * 100) / 100), 2) : $row['filesize']);
$replace = character_limit(utf8_substr($row['real_filename'], 0, strrpos($row['real_filename'], '.')), $config['board3_attach_max_length_' . $module_id]);
$template->assign_block_vars('attach', array(
'FILESIZE' => $row['filesize'] . ' ' . $size_lang,
'FILETIME' => $user->format_date($row['filetime']),
'DOWNLOAD_COUNT' => (int) $row['download_count'], // grab downloads count
'FILENAME' => $replace,
'REAL_FILENAME' => $row['real_filename'],
'PHYSICAL_FILENAME' => basename($row['physical_filename']),
'ATTACH_ID' => $row['attach_id'],
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
'POST_MSG_ID' => $row['post_msg_id'], // grab post ID to redirect to post
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $row['attach_id']),
'U_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.'.$phpEx, 'p='.$row['post_msg_id'].'#p'.$row['post_msg_id']),
));
}
$db->sql_freeresult($result);
$template->assign_var('S_DISPLAY_ATTACHMENTS', true);
}
else
{
$template->assign_var('S_DISPLAY_ATTACHMENTS', false);
}
return 'attachments_center.html';
return $this->parse_template($module_id, 'center');
}
public function get_template_side($module_id)
{
global $config, $template, $db, $user, $auth, $phpEx, $phpbb_root_path;
$attach_forums = false;
$where = '';
$filetypes = array();
// Get filetypes and put them into an array
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
{
$filetypes = explode(',', $config['board3_attachments_filetype_' . $module_id]);
}
if($config['board3_attachments_forum_ids_' . $module_id] !== '')
{
$attach_forums_config = (strpos($config['board3_attachments_forum_ids_' . $module_id], ',') !== false) ? explode(',', $config['board3_attachments_forum_ids_' . $module_id]) : array($config['board3_attachments_forum_ids_' . $module_id]);
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
if($config['board3_attachments_forum_exclude_' . $module_id])
{
$forum_list = array_unique(array_diff($forum_list, $attach_forums_config));
}
else
{
$forum_list = array_unique(array_intersect($attach_forums_config, $forum_list));
}
}
else
{
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
}
if(sizeof($forum_list))
{
$attach_forums = true;
$where = 'AND ' . $db->sql_in_set('t.forum_id', $forum_list);
}
if(sizeof($filetypes))
{
if($config['board3_attachments_exclude_' . $module_id])
{
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes, true);
}
else
{
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes);
}
}
if($attach_forums === true)
{
// Just grab all attachment info from database
$sql = 'SELECT
a.*,
t.forum_id
FROM
' . ATTACHMENTS_TABLE . ' a,
' . TOPICS_TABLE . ' t
WHERE
a.topic_id <> 0
AND a.topic_id = t.topic_id
' . $where . '
ORDER BY
filetime ' . ((!$config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC';
$result = $db->sql_query_limit($sql, $config['board3_attachments_number_' . $module_id]);
while ($row = $db->sql_fetchrow($result))
{
$size_lang = ($row['filesize'] >= 1048576) ? $user->lang['MIB'] : (($row['filesize'] >= 1024) ? $user->lang['KIB'] : $user->lang['BYTES']);
$row['filesize'] = ($row['filesize'] >= 1048576) ? round((round($row['filesize'] / 1048576 * 100) / 100), 2) : (($row['filesize'] >= 1024) ? round((round($row['filesize'] / 1024 * 100) / 100), 2) : $row['filesize']);
$replace = character_limit(utf8_substr($row['real_filename'], 0, strrpos($row['real_filename'], '.')), $config['board3_attach_max_length_' . $module_id]);
$template->assign_block_vars('attach', array(
'FILESIZE' => $row['filesize'] . ' ' . $size_lang,
'FILETIME' => $user->format_date($row['filetime']),
'DOWNLOAD_COUNT' => (int) $row['download_count'], // grab downloads count
'FILENAME' => $replace,
'REAL_FILENAME' => $row['real_filename'],
'PHYSICAL_FILENAME' => basename($row['physical_filename']),
'ATTACH_ID' => $row['attach_id'],
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
'POST_MSG_ID' => $row['post_msg_id'], // grab post ID to redirect to post
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $row['attach_id']),
'U_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.'.$phpEx, 'p='.$row['post_msg_id'].'#p'.$row['post_msg_id']),
));
}
$db->sql_freeresult($result);
$template->assign_var('S_DISPLAY_ATTACHMENTS', true);
}
else
{
$template->assign_var('S_DISPLAY_ATTACHMENTS', false);
}
return 'attachments_side.html';
return $this->parse_template($module_id, 'side');
}
public function get_template_acp($module_id)
@@ -295,29 +103,29 @@ class portal_attachments_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
// Create select box for attachment filetype
public function select_filetype($value, $key, $module_id)
{
global $db, $user, $config;
// Get extensions
$sql = 'SELECT *
FROM ' . EXTENSIONS_TABLE . '
ORDER BY extension ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$extensions[] = $row;
}
$selected = array();
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
{
$selected = explode(',', $config['board3_attachments_filetype_' . $module_id]);
}
// Build options
$ext_options = '<select id="' . $key . '" name="' . $key . '[]" multiple="multiple">';
foreach ($extensions as $id => $ext)
@@ -325,31 +133,31 @@ class portal_attachments_module
$ext_options .= '<option value="' . $ext['extension'] . '"' . ((in_array($ext['extension'], $selected)) ? ' selected="selected"' : '') . '>' . $ext['extension'] . '</option>';
}
$ext_options .= '</select>';
return $ext_options;
}
// Store selected filetypes
public function store_filetypes($key, $module_id)
{
global $db, $cache;
// Get selected extensions
$values = request_var($key, array(0 => ''));
$filetypes = implode(',', $values);
set_config('board3_attachments_filetype_' . $module_id, $filetypes);
}
// Create forum select box
public function select_forums($value, $key)
{
global $user, $config;
$forum_list = make_forum_select(false, false, true, true, true, false, true);
$selected = array();
if(isset($config[$key]) && strlen($config[$key]) > 0)
{
@@ -366,18 +174,123 @@ class portal_attachments_module
return $s_forum_options;
}
// Store selected forums
public function store_selected_forums($key)
{
global $db, $cache;
// Get selected extensions
$values = request_var($key, array(0 => ''));
$news = implode(',', $values);
set_config($key, $news);
}
/**
* Parse template variables for module
*
* @param int $module_id Module ID
* @param string $type Module type (center or side)
*/
protected function parse_template($module_id, $type)
{
global $config, $template, $db, $user, $auth, $phpEx, $phpbb_root_path;
$attach_forums = false;
$where = '';
$filetypes = array();
// Get filetypes and put them into an array
if(isset($config['board3_attachments_filetype_' . $module_id]) && strlen($config['board3_attachments_filetype_' . $module_id]) > 0)
{
$filetypes = explode(',', $config['board3_attachments_filetype_' . $module_id]);
}
if($config['board3_attachments_forum_ids_' . $module_id] !== '')
{
$attach_forums_config = (strpos($config['board3_attachments_forum_ids_' . $module_id], ',') !== false) ? explode(',', $config['board3_attachments_forum_ids_' . $module_id]) : array($config['board3_attachments_forum_ids_' . $module_id]);
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
if($config['board3_attachments_forum_exclude_' . $module_id])
{
$forum_list = array_unique(array_diff($forum_list, $attach_forums_config));
}
else
{
$forum_list = array_unique(array_intersect($attach_forums_config, $forum_list));
}
}
else
{
$forum_list = array_unique(array_keys($auth->acl_getf('f_read', true)));
}
if(sizeof($forum_list))
{
$attach_forums = true;
$where = 'AND ' . $db->sql_in_set('t.forum_id', $forum_list);
}
if(sizeof($filetypes))
{
if($config['board3_attachments_exclude_' . $module_id])
{
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes, true);
}
else
{
$where .= ' AND ' . $db->sql_in_set('a.extension', $filetypes);
}
}
if($attach_forums === true)
{
// Just grab all attachment info from database
$sql = 'SELECT
a.*,
t.forum_id
FROM
' . ATTACHMENTS_TABLE . ' a,
' . TOPICS_TABLE . ' t
WHERE
a.topic_id <> 0
AND a.topic_id = t.topic_id
' . $where . '
ORDER BY
filetime ' . ((!$config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC';
$result = $db->sql_query_limit($sql, $config['board3_attachments_number_' . $module_id]);
while ($row = $db->sql_fetchrow($result))
{
$size_lang = ($row['filesize'] >= 1048576) ? $user->lang['MIB'] : (($row['filesize'] >= 1024) ? $user->lang['KIB'] : $user->lang['BYTES']);
$row['filesize'] = ($row['filesize'] >= 1048576) ? round((round($row['filesize'] / 1048576 * 100) / 100), 2) : (($row['filesize'] >= 1024) ? round((round($row['filesize'] / 1024 * 100) / 100), 2) : $row['filesize']);
$raw_filename = utf8_substr($row['real_filename'], 0, strrpos($row['real_filename'], '.'));
$replace = character_limit($raw_filename, $config['board3_attach_max_length_' . $module_id]);
$template->assign_block_vars('attach_' . $type, array(
'FILESIZE' => $row['filesize'] . ' ' . $size_lang,
'FILETIME' => $user->format_date($row['filetime']),
'DOWNLOAD_COUNT' => (int) $row['download_count'], // grab downloads count
'FILENAME' => $replace,
'REAL_FILENAME' => $row['real_filename'],
'PHYSICAL_FILENAME' => basename($row['physical_filename']),
'ATTACH_ID' => $row['attach_id'],
'POST_IDS' => (!empty($post_ids[$row['attach_id']])) ? $post_ids[$row['attach_id']] : '',
'POST_MSG_ID' => $row['post_msg_id'], // grab post ID to redirect to post
'U_FILE' => append_sid($phpbb_root_path . 'download/file.' . $phpEx, 'id=' . $row['attach_id']),
'U_TOPIC' => append_sid($phpbb_root_path . 'viewtopic.'.$phpEx, 'p='.$row['post_msg_id'].'#p'.$row['post_msg_id']),
));
}
$db->sql_freeresult($result);
$template->assign_var('S_DISPLAY_ATTACHMENTS', true);
}
else
{
$template->assign_var('S_DISPLAY_ATTACHMENTS', false);
}
return 'attachments_' . $type . '.html';
}
}

View File

@@ -61,7 +61,8 @@ class portal_birthday_list_module
while ($cache_days > 0)
{
$day = getdate(time() + 86400 * $cache_days + $user->timezone + $user->dst - date('Z'));
$sql_days .= " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $day['mday'], $day['mon'])) . "%'";
$like_expression = $db->sql_like_expression($db->any_char . (sprintf('%2d-%2d-', $day['mday'], $day['mon'])) . $db->any_char);
$sql_days .= " OR u.user_birthday " . $like_expression . "";
$cache_days--;
}
@@ -92,21 +93,20 @@ class portal_birthday_list_module
{
if (substr($row['user_birthday'], 0, 6) == $today)
{
$birthday_list .= '<span style="float:left;"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;">' . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . '</span><span style="float: right;">';
if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_list .= ' (' . ($now['year'] - $age) . ')';
}
$birthday_list .= '</span><br style="clear: both" />';
$birthday_list = true;
$template->assign_block_vars('board3_birthday_list', array(
'USER' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
'AGE' => ($age = (int) substr($row['user_birthday'], -4)) ? ' (' . ($now['year'] - $age) . ')' : '',
));
}
elseif ($config['board3_birthdays_ahead_' . $module_id] > 0)
{
$birthday_ahead_list .= '<span style="float:left;"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;"><span title="' . format_birthday($row['user_birthday'], 'd M') . '">' . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) . '</span></span><span style="float: right;">';
if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_ahead_list .= ' (' . ($now['year'] - $age) . ')';
}
$birthday_ahead_list .= '</span><br style="clear: both" />';
$birthday_ahead_list = true;
$template->assign_block_vars('board3_birthday_ahead_list', array(
'USER' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
'AGE' => ($age = (int) substr($row['user_birthday'], -4)) ? ' (' . ($now['year'] - $age) . ')' : '',
'DATE' => $this->format_birthday($user, $row['user_birthday'], 'd M'),
));
}
}
$db->sql_freeresult($result);
@@ -155,4 +155,25 @@ class portal_birthday_list_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
/**
* Format birthday for span title
*
* @param object $user phpBB user object
* @param string $birthday User's birthday from database
* @param string $date_settings Settings for date() function
*/
protected function format_birthday($user, $birthday, $date_settings)
{
if (!preg_match('/(?:[0-9])+-+(?:[0-9]{2})+-+(?:[0-9]{4})?/', $birthday, $match))
{
return '';
}
$date = explode('-', $birthday);
$time = mktime(0, 0, 0, $date[1], $date[0], (isset($date[2])) ? $date[2] : 0);
$lang_dates = array_filter($user->lang['datetime'], 'is_string');
return strtr(date($date_settings, $time), $lang_dates);
}
}

View File

@@ -46,22 +46,29 @@ class portal_calendar_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_calendar_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
*/
public $custom_acp_tpl = 'acp_portal_calendar';
/**
* additional variables
*/
private $mini_cal_fdow;
/**
* constants
*/
const TIME_DAY = 86400;
const DAYS_PER_WEEK = 6; // indexes start at 0
const MONTHS_PER_YEAR = 12;
public function get_template_side($module_id)
{
global $config, $template, $user, $phpbb_root_path, $phpEx;
global $config, $template, $user, $phpbb_root_path, $phpEx, $db;
$portal_config = obtain_portal_config();
// 0 = Sunday first - 1 = Monday first. ;-)
@@ -75,26 +82,26 @@ class portal_calendar_module
}
// get the calendar month
$mini_cal_month = 0;
$this->mini_cal_month = 0;
if(isset($_GET['m' . $module_id]) || isset($_POST['m' . $module_id]))
{
$mini_cal_month = request_var('m' . $module_id, 0);
$this->mini_cal_month = request_var('m' . $module_id, 0);
}
// initialise some variables
$today_timestamp = time() + $user->timezone + $user->dst;
$mini_cal_today = date('Ymd', time() + $user->timezone + $user->dst - date('Z'));
$s_cal_month = ($mini_cal_month != 0) ? $mini_cal_month . ' month' : $mini_cal_today;
$s_cal_month = ($this->mini_cal_month != 0) ? $this->mini_cal_month . ' month' : $mini_cal_today;
$this->getMonth($s_cal_month);
$mini_cal_count = $this->mini_cal_fdow;
$mini_cal_this_year = $this->dateYYYY;
$mini_cal_this_month = $this->dateMM;
$mini_cal_this_day = $this->dateDD;
$mini_cal_month_days = $this->daysMonth;
// output our general calendar bits
$down = $mini_cal_month - 1;
$up = $mini_cal_month + 1;
$down = $this->mini_cal_month - 1;
$up = $this->mini_cal_month + 1;
$prev_month = '<a href="' . append_sid("{$phpbb_root_path}portal.$phpEx", "m$module_id=$down#minical$module_id") . '"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/cal_icon_left_arrow.png' . '" title="' . $user->lang['VIEW_PREVIOUS_MONTH'] . '" height="16" width="16" alt="&lt;&lt;" /></a>';
$next_month = '<a href="' . append_sid("{$phpbb_root_path}portal.$phpEx", "m$module_id=$up#minical$module_id") . '"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/cal_icon_right_arrow.png' . '" title="' . $user->lang['VIEW_NEXT_MONTH'] . '" height="16" width="16" alt="&gt;&gt;" /></a>';
@@ -115,7 +122,7 @@ class portal_calendar_module
));
// output the days for the current month
for($i=0; $i < $mini_cal_month_days;)
for($i = 0; $i < $mini_cal_month_days;)
{
// is this the first day of the week?
if($mini_cal_count == $this->mini_cal_fdow)
@@ -135,7 +142,7 @@ class portal_calendar_module
$template->assign_block_vars('minical.mini_cal_row.mini_cal_days', array(
'MINI_CAL_DAY' => ($mini_cal_count == 0) ? '<span style="color: ' . $config['board3_calendar_sunday_color_' . $module_id] . ';">' . $mini_cal_day . '</span>' : $mini_cal_day)
);
);
$i++;
}
// no day
@@ -143,11 +150,11 @@ class portal_calendar_module
{
$template->assign_block_vars('minical.mini_cal_row.mini_cal_days', array(
'MINI_CAL_DAY' => ' ')
);
);
}
// is this the last day of the week?
if ($mini_cal_count == 6)
if ($mini_cal_count == self::DAYS_PER_WEEK)
{
// if so then reset the count
$mini_cal_count = 0;
@@ -173,46 +180,64 @@ class portal_calendar_module
$time_ary[$key] = $cur_event['start_time'];
}
array_multisort($time_ary, SORT_NUMERIC, $events);
$groups_ary = get_user_groups();
foreach($events as $key => $cur_event)
{
if($cur_event['start_time'] >= $today_timestamp || $cur_event['end_time'] >= $today_timestamp || (($cur_event['start_time'] + 86400) >= $today_timestamp && $cur_event['all_day']))
if(($cur_event['start_time'] + $user->timezone + $user->dst) >= $today_timestamp ||
($cur_event['end_time'] + $user->timezone + $user->dst) >= $today_timestamp ||
(($cur_event['start_time'] + $user->timezone + $user->dst + self::TIME_DAY) >= $today_timestamp && $cur_event['all_day']))
{
// check if this is an external link
if (isset($cur_event['url']) && strpos($cur_event['url'], generate_board_url()) === false)
$cur_permissions = explode(',', $cur_event['permission']);
$permission_check = array_intersect($groups_ary, $cur_permissions);
if(!empty($permission_check) || $cur_event['permission'] == '')
{
$is_external = true;
}
else
{
$is_external = false;
}
// current events
if((($cur_event['start_time'] + 86400) >= $today_timestamp && $cur_event['all_day']) || ($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] >= $today_timestamp))
{
$template->assign_block_vars('minical.cur_events', array(
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
'EVENT_TITLE' => $cur_event['title'],
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
'END_TIME' => (!empty($cur_event['end_time'])) ? $user->format_date($cur_event['end_time'], 'j. M Y, H:i') : false,
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
'ALL_DAY' => ($cur_event['all_day']) ? true : false,
'MODULE_ID' => $module_id,
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
));
}
else
{
$template->assign_block_vars('minical.upcoming_events', array(
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
'EVENT_TITLE' => $cur_event['title'],
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
'END_TIME' => $user->format_date($cur_event['end_time'], 'j. M Y, H:i'),
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
'ALL_DAY' => (($cur_event['start_time'] - $cur_event['end_time']) == 1) ? true : false,
'MODULE_ID' => $module_id,
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
));
// check if this is an external link
if (isset($cur_event['url']) && strpos($cur_event['url'], generate_board_url()) === false)
{
$is_external = true;
}
else
{
$is_external = false;
}
/**
* Current events
*
* Events are treated as current if the following is met:
* - We have an all day event and the start of that event is less than 1 day (86400 seconds) away
* - We have a normal event with a start that is less then 1 day away and that hasn't ended yet
*/
if((($cur_event['start_time'] + $user->timezone + $user->dst - $today_timestamp) <= self::TIME_DAY && $cur_event['all_day']) ||
(($cur_event['start_time'] + $user->timezone + $user->dst - $today_timestamp) <= self::TIME_DAY && ($cur_event['end_time'] + $user->timezone + $user->dst) >= $today_timestamp))
{
$template->assign_block_vars('minical.cur_events', array(
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
'EVENT_TITLE' => $cur_event['title'],
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
'END_TIME' => (!empty($cur_event['end_time'])) ? $user->format_date($cur_event['end_time'], 'j. M Y, H:i') : false,
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
'ALL_DAY' => ($cur_event['all_day']) ? true : false,
'MODULE_ID' => $module_id,
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
));
}
else
{
$template->assign_block_vars('minical.upcoming_events', array(
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
'EVENT_TITLE' => $cur_event['title'],
'START_TIME' => $user->format_date($cur_event['start_time'], 'j. M Y, H:i'),
'END_TIME' => (!$cur_event['all_day']) ? $user->format_date($cur_event['end_time'], 'j. M Y, H:i') : '',
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
'ALL_DAY' => (($cur_event['start_time'] - $cur_event['end_time']) == 1) ? true : false,
'MODULE_ID' => $module_id,
'EVENT_URL_NEW_WINDOW' => ($is_external && $config['board3_events_url_new_window_' . $module_id]) ? true : false,
));
}
}
}
}
@@ -250,7 +275,7 @@ class portal_calendar_module
set_config('board3_display_events_' . $module_id, 0);
set_config('board3_events_' . $module_id, '');
set_config('board3_events_url_new_window_' . $module_id, 0);
set_portal_config('board3_calendar_events_' . $module_id, '');
return true;
}
@@ -258,13 +283,13 @@ class portal_calendar_module
public function uninstall($module_id)
{
global $db;
$del_config = array(
'board3_calendar_events_' . $module_id,
);
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$db->sql_query($sql);
$del_config = array(
@@ -280,11 +305,11 @@ class portal_calendar_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
public function manage_events($value, $key, $module_id)
{
global $db, $portal_config, $config, $template, $user, $phpEx, $phpbb_admin_path;
$action = request_var('action', '');
$action = (isset($_POST['add'])) ? 'add' : $action;
$action = (isset($_POST['save'])) ? 'save' : $action;
@@ -294,7 +319,7 @@ class portal_calendar_module
$events = (strlen($portal_config['board3_calendar_events_' . $module_id]) >= 1) ? $this->utf_unserialize($portal_config['board3_calendar_events_' . $module_id]) : array();
$u_action = append_sid($phpbb_admin_path . 'index.' . $phpEx, 'i=portal&amp;mode=config&amp;module_id=' . $module_id);
switch($action)
{
// Save changes
@@ -314,7 +339,7 @@ class portal_calendar_module
$event_url = request_var('event_url', ' ');
$event_permission = request_var('permission-setting-calendar', array(0 => ''));
$groups_ary = array();
/*
* parse the event time
* first check for obvious errors, we don't want to waste server resources
@@ -338,7 +363,7 @@ class portal_calendar_module
$start_year = (int) substr($event_start_day, $second_start_hyphen + 1, $start_day_length - $second_start_hyphen);
$start_hour = (int) substr($event_start_time, 0, $start_colon_pos);
$start_minute = (int) substr($event_start_time, $start_colon_pos + 1, ($start_time_length - $start_colon_pos) - 1);
if(!$event_all_day)
{
$first_end_hyphen = strpos($event_end_day, '-', 0);
@@ -352,12 +377,12 @@ class portal_calendar_module
$end_hour = (int) substr($event_end_time, 0, $end_colon_pos);
$end_minute = (int) substr($event_end_time, $end_colon_pos + 1, ($end_time_length - $end_colon_pos) - 1);
}
// UNIX timestamps
$start_time = gmmktime($start_hour, $start_minute, 0, $start_month, $start_day, $start_year) - $user->timezone - $user->dst;
$end_time = (!$event_all_day) ? gmmktime($end_hour, $end_minute, 0, $end_month, $end_day, $end_year) - $user->timezone - $user->dst : '';
if(($end_time) <= time() && !(($start_time + 86400) >= time() && $event_all_day))
if(($end_time) <= time() && !(($start_time + self::TIME_DAY) >= time() && $event_all_day))
{
trigger_error($user->lang['ACP_PORTAL_CALENDAR_EVENT_PAST']. adm_back_link($u_action), E_USER_WARNING);
}
@@ -365,7 +390,7 @@ class portal_calendar_module
{
trigger_error($user->lang['ACP_PORTAL_CALENDAR_EVENT_START_FIRST']. adm_back_link($u_action), E_USER_WARNING);
}
// get groups and check if the selected groups actually exist
$sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . '
@@ -376,7 +401,7 @@ class portal_calendar_module
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
$event_permission = array_intersect($event_permission, $groups_ary);
$event_permission = implode(',', $event_permission);
@@ -395,7 +420,7 @@ class portal_calendar_module
if (isset($link_id) && $link_id < sizeof($events))
{
$message = $user->lang['EVENT_UPDATED'];
$events[$link_id] = array(
'title' => $event_title,
'desc' => $event_desc,
@@ -411,7 +436,7 @@ class portal_calendar_module
else
{
$message = $user->lang['EVENT_ADDED'];
$events[] = array(
'title' => $event_title,
'desc' => $event_desc,
@@ -423,7 +448,7 @@ class portal_calendar_module
);
add_log('admin', 'LOG_PORTAL_EVENT_ADDED', $event_title);
}
// we sort the $events array by the start time
foreach($events as $key => $cur_event)
{
@@ -451,7 +476,7 @@ class portal_calendar_module
// delete the selected link and reset the array numbering afterwards
array_splice($events, $link_id, 1);
$events = array_merge($events);
$board3_events_array = serialize($events);
set_portal_config('board3_calendar_events_' . $module_id, $board3_events_array);
@@ -471,7 +496,7 @@ class portal_calendar_module
case 'edit':
case 'add':
$event_all_day = (isset($events[$link_id]['all_day']) && $events[$link_id]['all_day'] == true) ? true : false;
$template->assign_vars(array(
'EVENT_TITLE' => (isset($events[$link_id]['title']) && $action != 'add') ? $events[$link_id]['title'] : '',
'EVENT_DESC' => (isset($events[$link_id]['desc']) && $action != 'add') ? $events[$link_id]['desc'] : '',
@@ -487,9 +512,9 @@ class portal_calendar_module
'S_EDIT' => true,
));
$groups_ary = (isset($events[$link_id]['permission'])) ? explode(',', $events[$link_id]['permission']) : array();
// get group info from database and assign the block vars
$sql = 'SELECT group_id, group_name
FROM ' . GROUPS_TABLE . '
@@ -509,13 +534,13 @@ class portal_calendar_module
break;
}
for ($i = 0; $i < sizeof($events); $i++)
{
$event_all_day = ($events[$i]['all_day'] == true) ? true : false;
$start_time_format = (!intval($user->format_date($events[$i]['start_time'], 'H')) && !intval($user->format_date($events[$i]['start_time'], 'i'))) ? 'j. M Y' : 'j. M Y, H:i';
$end_time_format = (!intval($user->format_date($events[$i]['end_time'], 'H')) && !intval($user->format_date($events[$i]['end_time'], 'i'))) ? 'j. M Y' : 'j. M Y, H:i';
$template->assign_block_vars('events', array(
'EVENT_TITLE' => ($action != 'add') ? ((isset($user->lang[$events[$i]['title']])) ? $user->lang[$events[$i]['title']] : $events[$i]['title']) : '',
'EVENT_DESC' => ($action != 'add') ? $events[$i]['desc'] : '',
@@ -528,14 +553,14 @@ class portal_calendar_module
'EVENT_ALL_DAY' => $event_all_day,
));
}
}
public function update_events($key, $module_id)
{
$this->manage_events('', $key, $module_id);
}
private $dateYYY; // year in numeric format (YYYY)
private $dateMM; // month in numeric format (MM)
private $dateDD; // day in numeric format (DD)
@@ -549,6 +574,8 @@ class portal_calendar_module
**/
private function makeTimestamp($date)
{
global $user;
$this->stamp = strtotime($date);
return ($this->stamp);
}
@@ -558,33 +585,67 @@ class portal_calendar_module
**/
private function getMonth($callDate)
{
global $user;
$this->makeTimestamp($callDate);
// last or first day of some months need to be treated in a special way
if (!empty($this->mini_cal_month))
{
$today_timestamp = time() + $user->timezone + $user->dst;
$cur_month = date("n", $today_timestamp);
$correct_month = $cur_month + $this->mini_cal_month;
// move back or forth the correct number of years
while ($correct_month < 1 || $correct_month > self::MONTHS_PER_YEAR)
{
if ($correct_month < 1)
{
$correct_month = $correct_month + self::MONTHS_PER_YEAR;
}
else
{
$correct_month = $correct_month - self::MONTHS_PER_YEAR;
}
}
// fix incorrect months
while (date("n", $this->stamp) != $correct_month)
{
if (date("n", $this->stamp) > $correct_month)
{
$this->stamp = $this->stamp - self::TIME_DAY; // go back one day
}
else
{
$this->stamp = $this->stamp + self::TIME_DAY; // move forward one day
}
}
}
$this->dateYYYY = date("Y", $this->stamp);
$this->dateMM = date("n", $this->stamp);
$this->ext_dateMM = date("F", $this->stamp);
$this->dateDD = date("d", $this->stamp);
$this->daysMonth = date("t", $this->stamp);
for($i=1; $i < $this->daysMonth+1; $i++)
for ($i = 1; $i < $this->daysMonth + 1; $i++)
{
$this->makeTimestamp("$i $this->ext_dateMM $this->dateYYYY");
$this->makeTimestamp("$i {$this->ext_dateMM} {$this->dateYYYY}");
$this->day[] = array(
"0" => "$i",
"1" => $this->dateMM,
"2" => $this->dateYYYY,
"3" => (date('w', $this->stamp))
'0' => "$i",
'1' => $this->dateMM,
'2' => $this->dateYYYY,
'3' => date('w', $this->stamp)
);
}
}
// Unserialize links array
private function utf_unserialize($serial_str)
{
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
return unserialize($out);
}
/**
* validate URLs and execute apppend_sid if necessary
*/
@@ -595,19 +656,19 @@ class portal_calendar_module
$url = str_replace("\r\n", "\n", str_replace('\"', '"', trim($url)));
$url = str_replace(' ', '%20', $url);
$url = str_replace('&', '&amp;', $url);
// if there is no scheme, then add http schema
if (!preg_match('#^[a-z][a-z\d+\-.]*:/{2}#i', $url))
{
$url = 'http://' . $url;
}
// Is this a link to somewhere inside this board? If so then run reapply_sid()
if (strpos($url, generate_board_url()) !== false)
{
$url = reapply_sid($url);
}
return $url;
}
}

View File

@@ -46,7 +46,7 @@ class portal_custom_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_custom_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
@@ -55,72 +55,12 @@ class portal_custom_module
public function get_template_center($module_id)
{
global $config, $template, $portal_config, $user;
/*
* Run generate_text_for_display if the user uses BBCode for designing his custom block
* HTML won't be parsed if the user chooses to use BBCodes in the ACP
* If BBCodes are turned off, the custom Block code will be directly assigned and HTML will be parsed
*/
if ($config['board3_custom_' . $module_id . '_bbcode'])
{
// Generate text for display and assign template vars
$uid = $config['board3_custom_' . $module_id . '_uid'];
$bitfield = $config['board3_custom_' . $module_id . '_bitfield'];
$bbcode_options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
$assign_code = generate_text_for_display($portal_config['board3_custom_' . $module_id . '_code'], $uid, $bitfield, $bbcode_options);
}
else
{
$assign_code = htmlspecialchars_decode($portal_config['board3_custom_' . $module_id . '_code'], ENT_QUOTES);
}
$title = (!empty($config['board3_custom_' . $module_id . '_title'])) ? ((isset($user->lang[$config['board3_custom_' . $module_id . '_title']])) ? $user->lang[$config['board3_custom_' . $module_id . '_title']] : $config['board3_custom_' . $module_id . '_title']) : $user->lang[$this->name];
if(!empty($assign_code))
{
return array(
'template' => 'custom_center.html',
'title' => $title,
'code' => $assign_code,
'image_src' => '', // no image for center blocks
);
}
return $this->parse_template($module_id);
}
public function get_template_side($module_id)
{
global $config, $template, $portal_config, $user;
/*
* Run generate_text_for_display if the user uses BBCode for designing his custom block
* HTML won't be parsed if the user chooses to use BBCodes in the ACP
* If BBCodes are turned off, the custom Block code will be directly assigned and HTML will be parsed
*/
if ($config['board3_custom_' . $module_id . '_bbcode'])
{
// Generate text for display and assign template vars
$uid = $config['board3_custom_' . $module_id . '_uid'];
$bitfield = $config['board3_custom_' . $module_id . '_bitfield'];
$bbcode_options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
$assign_code = generate_text_for_display($portal_config['board3_custom_' . $module_id . '_code'], $uid, $bitfield, $bbcode_options);
}
else
{
$assign_code = htmlspecialchars_decode($portal_config['board3_custom_' . $module_id . '_code'], ENT_QUOTES);
}
$title = (!empty($config['board3_custom_' . $module_id . '_title'])) ? ((isset($user->lang[$config['board3_custom_' . $module_id . '_title']])) ? $user->lang[$config['board3_custom_' . $module_id . '_title']] : $config['board3_custom_' . $module_id . '_title']) : $user->lang[$this->name];
if(!empty($assign_code))
{
return array(
'template' => 'custom_side.html',
'title' => $title,
'code' => $assign_code,
'image_src' => (!empty($config['board3_custom_' . $module_id . '_image_src'])) ? $config['board3_custom_' . $module_id . '_image_src'] : $this->image_src,
);
}
return $this->parse_template($module_id, 'side');
}
public function get_template_acp($module_id)
@@ -159,7 +99,7 @@ class portal_custom_module
);
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$check = $db->sql_query($sql);
$del_config = array(
@@ -174,19 +114,19 @@ class portal_custom_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return ((!$check) ? $check : $db->sql_query($sql)); // if something went wrong, make sure we are aware of the first query
}
public function manage_custom($value, $key, $module_id)
{
global $db, $portal_config, $config, $template, $user, $phpEx, $phpbb_admin_path, $phpbb_root_path;
$action = (isset($_POST['reset'])) ? 'reset' : '';
$action = (isset($_POST['submit'])) ? 'save' : $action;
$action = (isset($_POST['preview'])) ? 'preview' : $action;
$portal_config = obtain_portal_config();
$u_action = append_sid($phpbb_admin_path . 'index.' . $phpEx, 'i=portal&amp;mode=config&amp;module_id=' . $module_id);
switch($action)
{
// Save changes
@@ -199,7 +139,7 @@ class portal_custom_module
$custom_code = utf8_normalize_nfc(request_var('custom_code', '', true));
$custom_bbcode = request_var('custom_use_bbcode', 1); // default to BBCode
$custom_permission = request_var('permission-setting', array(0 => ''));
$custom_title = utf8_normalize_nfc(request_var('module_name', ''));
$custom_title = utf8_normalize_nfc(request_var('module_name', '', true));
$custom_image_src = utf8_normalize_nfc(request_var('module_image', ''));
$groups_ary = array();
$uid = $bitfield = $flags = '';
@@ -208,14 +148,13 @@ class portal_custom_module
{
generate_text_for_storage($custom_code, $uid, $bitfield, $flags, true, true, true);
}
// first check for obvious errors, we don't want to waste server resources
if(empty($custom_code))
{
trigger_error($user->lang['ACP_PORTAL_CUSTOM_CODE_SHORT']. adm_back_link($u_action), E_USER_WARNING);
}
// get groups and check if the selected groups actually exist
$sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . '
@@ -226,12 +165,21 @@ class portal_custom_module
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
$custom_permission = array_intersect($custom_permission, $groups_ary);
$custom_permission = implode(',', $custom_permission);
add_log('admin', 'LOG_PORTAL_CONFIG', $user->lang['PORTAL_CUSTOM'] . '&nbsp;-&nbsp;' . $config['board3_custom_' . $module_id . '_title']);
if (isset($user->lang[$custom_title]))
{
$log_title = $user->lang[$custom_title];
}
else
{
$log_title = $custom_title;
}
add_log('admin', 'LOG_PORTAL_CONFIG', $user->lang['PORTAL_CUSTOM'] . ':&nbsp;' . $log_title);
// set_portal_config will take care of escaping the welcome message
set_portal_config('board3_custom_' . $module_id . '_code', $custom_code);
set_config('board3_custom_' . $module_id . '_bbcode', $custom_bbcode);
@@ -244,7 +192,7 @@ class portal_custom_module
//trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link(($module_id) ? append_sid("{$phpbb_admin_path}index.$phpEx", 'i=portal&mode=modules') : $u_action));
break;
case 'preview':
$custom_code = $text = utf8_normalize_nfc(request_var('custom_code', '', true));
$custom_bbcode = request_var('custom_use_bbcode', 1); // default to BBCode
@@ -252,13 +200,13 @@ class portal_custom_module
$custom_title = utf8_normalize_nfc(request_var('module_name', ''));
$custom_image_src = utf8_normalize_nfc(request_var('module_image', ''));
$groups_ary = array();
// first check for obvious errors, we don't want to waste server resources
if(empty($custom_code))
{
trigger_error($user->lang['ACP_PORTAL_CUSTOM_CODE_SHORT']. adm_back_link($u_action), E_USER_WARNING);
}
if (!class_exists('parse_message'))
{
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
@@ -270,19 +218,19 @@ class portal_custom_module
$bitfield = (isset($config['board3_custom_' . $module_id . '_bitfield'])) ? $config['board3_custom_' . $module_id . '_bitfield'] : '';
$options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
generate_text_for_storage($text, $uid, $bitfield, $options, true, true, true);
$text = generate_text_for_display($text, $uid, $bitfield, $options);
}
else
{
$text = htmlspecialchars_decode($text, ENT_QUOTES);
}
$template->assign_vars(array(
'PREVIEW_TEXT' => $text,
'S_PREVIEW' => true,
));
// get groups and check if the selected groups actually exist
$sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . '
@@ -293,7 +241,7 @@ class portal_custom_module
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
$temp_permissions = array_intersect($custom_permission, $groups_ary);
// Edit or add menu item
@@ -317,9 +265,9 @@ class portal_custom_module
'S_BBCODE_ALLOWED' => true,
'MAX_FONT_SIZE' => (int) $config['max_post_font_size'],
));
$groups_ary = (isset($temp_permissions)) ? $temp_permissions : ((isset($config['board3_custom_' . $module_id . '_permission'])) ? explode(',', $config['board3_custom_' . $module_id . '_permission']) : array());
// get group info from database and assign the block vars
$sql = 'SELECT group_id, group_name
FROM ' . GROUPS_TABLE . '
@@ -334,12 +282,12 @@ class portal_custom_module
));
}
$db->sql_freeresult($result);
if(!function_exists('display_forums'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
}
// Build custom bbcodes array
display_custom_bbcodes();
$user->add_lang('posting');
@@ -347,9 +295,53 @@ class portal_custom_module
break;
}
}
public function update_custom($key, $module_id)
{
$this->manage_custom('', $key, $module_id);
}
/**
* Parse template for custom blocks
*
* @param int $module_id Module ID of current module
* @param string $type Type of module (center or side), default to
* center to not show module image unless wanted
* @return array An array containing the custom module data
*/
protected function parse_template($module_id, $type = 'center')
{
global $config, $template, $portal_config, $user;
/*
* Run generate_text_for_display if the user uses BBCode for designing his custom block
* HTML won't be parsed if the user chooses to use BBCodes in the ACP
* If BBCodes are turned off, the custom Block code will be directly assigned and HTML will be parsed
*/
if ($config['board3_custom_' . $module_id . '_bbcode'])
{
// Generate text for display and assign template vars
$uid = $config['board3_custom_' . $module_id . '_uid'];
$bitfield = $config['board3_custom_' . $module_id . '_bitfield'];
$bbcode_options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
$assign_code = generate_text_for_display($portal_config['board3_custom_' . $module_id . '_code'], $uid, $bitfield, $bbcode_options);
}
else
{
$assign_code = htmlspecialchars_decode($portal_config['board3_custom_' . $module_id . '_code'], ENT_QUOTES);
}
$title = (!empty($config['board3_custom_' . $module_id . '_title'])) ? ((isset($user->lang[$config['board3_custom_' . $module_id . '_title']])) ? $user->lang[$config['board3_custom_' . $module_id . '_title']] : $config['board3_custom_' . $module_id . '_title']) : $user->lang[$this->name];
if(!empty($assign_code))
{
return array(
'template' => 'custom_' . $type . '.html',
'title' => $title,
'code' => $assign_code,
// no image for center blocks
'image_src' => ($type === 'center') ? '' : ((!empty($config['board3_custom_' . $module_id . '_image_src'])) ? $config['board3_custom_' . $module_id . '_image_src'] : $this->image_src),
);
}
}
}

View File

@@ -46,13 +46,13 @@ class portal_modulename_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = '';
/**
* custom acp template
* file must be in "adm/style/portal/"
*/
public $custom_acp_tpl = '';
/**
* hide module name in ACP configuration page
*/

View File

@@ -49,18 +49,24 @@ class portal_donation_module
public function get_template_center($module_id)
{
global $config, $template;
$template->assign_var('PAY_ACC', $config['board3_pay_acc_' . $module_id]);
global $config, $template, $user;
$template->assign_vars(array(
'PAY_ACC_CENTER' => $config['board3_pay_acc_' . $module_id],
'PAY_CUSTOM_CENTER' => (!empty($config['board3_pay_custom_' . $module_id])) ? $user->data['username_clean'] : false,
));
return 'donation_center.html';
}
public function get_template_side($module_id)
{
global $config, $template;
global $config, $template, $user;
$template->assign_var('PAY_ACC', $config['board3_pay_acc_' . $module_id]);
$template->assign_vars(array(
'PAY_ACC_SIDE' => $config['board3_pay_acc_' . $module_id],
'PAY_CUSTOM_SIDE' => (!empty($config['board3_pay_custom_' . $module_id])) ? $user->data['username_clean'] : false,
));
return 'donation_side.html';
}
@@ -71,7 +77,8 @@ class portal_donation_module
'title' => 'ACP_PORTAL_PAYPAL_SETTINGS',
'vars' => array(
'legend1' => 'ACP_PORTAL_PAYPAL_SETTINGS',
'board3_pay_acc_' . $module_id => array('lang' => 'PORTAL_PAY_ACC' , 'validate' => 'string', 'type' => 'text:25:100', 'explain' => true),
'board3_pay_acc_' . $module_id => array('lang' => 'PORTAL_PAY_ACC', 'validate' => 'string', 'type' => 'text:25:100', 'explain' => true),
'board3_pay_custom_' . $module_id => array('lang' => 'PORTAL_PAY_CUSTOM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
)
);
}
@@ -82,6 +89,7 @@ class portal_donation_module
public function install($module_id)
{
set_config('board3_pay_acc_' . $module_id, 'your@paypal.com');
set_config('board3_pay_custom_' . $module_id, true);
return true;
}
@@ -91,6 +99,7 @@ class portal_donation_module
$del_config = array(
'board3_pay_acc_' . $module_id,
'board3_pay_custom_' . $module_id,
);
$sql = 'DELETE FROM ' . CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);

View File

@@ -46,7 +46,7 @@ class portal_forumlist_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_forumlist_module';
/**
* custom acp template
* file must be in "adm/style/portal/"

View File

@@ -49,7 +49,7 @@ class portal_friends_module
public function get_template_side($module_id)
{
global $config, $template, $db, $user;
global $config, $template, $db, $user, $auth;
$s_display_friends = false;

View File

@@ -46,11 +46,11 @@ class portal_latest_bots_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_latest_bots_module';
/**
* hide module name in ACP configuration page
*/
public $hide_name = true;
public $hide_name = false;
public function get_template_side($module_id)
@@ -64,7 +64,7 @@ class portal_latest_bots_module
AND user_lastvisit > 0
ORDER BY user_lastvisit DESC';
$result = $db->sql_query_limit($sql, $config['board3_last_visited_bots_number_' . $module_id]);
$show_module = false;
while ($row = $db->sql_fetchrow($result))
@@ -76,27 +76,6 @@ class portal_latest_bots_module
$show_module = true;
}
$db->sql_freeresult($result);
if($config['board3_last_visited_bots_number_' . $module_id] != 0)
{
if($config['board3_last_visited_bots_number_' . $module_id] == 1)
{
$last_visited_bots = $user->lang['LAST_VISITED_BOT'];
}
else
{
$last_visited_bots = sprintf($user->lang['LAST_VISITED_BOTS_CNT'], $config['board3_last_visited_bots_number_' . $module_id]);
}
}
else
{
$last_visited_bots = $user->lang['LAST_VISITED_BOTS'];
}
// Assign specific vars
$template->assign_vars(array(
'LAST_VISITED_BOTS' => $last_visited_bots,
));
if($show_module)
{

View File

@@ -50,7 +50,7 @@ class portal_leaders_module
public function get_template_side($module_id)
{
global $config, $template, $user, $auth, $db, $phpEx, $phpbb_root_path;
// Display a listing of board admins, moderators
$user->add_lang('groups');
@@ -97,14 +97,15 @@ class portal_leaders_module
if(sizeof($legends))
{
$sql = 'SELECT
u.user_id AS user_id, u.username AS username, u.user_colour AS user_colour, ug.group_id AS group_id
u.user_id AS user_id, u.username AS username, u.username_clean AS username_clean,
u.user_colour AS user_colour, ug.group_id AS group_id
FROM
' . USERS_TABLE . ' AS u,
' . USER_GROUP_TABLE . ' AS ug
WHERE
ug.user_id = u.user_id
AND '. $db->sql_in_set('ug.group_id', $legends) . '
ORDER BY u.username ASC';
ORDER BY u.username_clean ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
@@ -163,7 +164,7 @@ class portal_leaders_module
));
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
if ($row['group_name'] == 'ADMINISTRATORS')

View File

@@ -46,13 +46,13 @@ class portal_links_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_links_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
*/
public $custom_acp_tpl = 'acp_portal_links';
/**
* constants
*/
@@ -65,22 +65,12 @@ class portal_links_module
$links = array();
$portal_config = obtain_portal_config();
$links = $this->utf_unserialize($portal_config['board3_links_array_' . $module_id]);
// get user's groups
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int) $user->data['user_id'] . '
ORDER BY group_id ASC';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
$groups_ary = get_user_groups();
for ($i = 0; $i < sizeof($links); $i++)
{
if($links[$i]['type'] == self::LINK_INT)
@@ -92,10 +82,10 @@ class portal_links_module
{
$cur_url = $links[$i]['url'];
}
$cur_permissions = explode(',', $links[$i]['permission']);
$permission_check = array_intersect($groups_ary, $cur_permissions);
if(!empty($permission_check) || $links[$i]['permission'] == '')
{
$template->assign_block_vars('portallinks', array(
@@ -129,29 +119,29 @@ class portal_links_module
public function install($module_id)
{
global $phpbb_root_path, $db;
$links = array();
$links_titles = array(
'Board3.de',
'phpBB.com',
);
$links_types = array(
self::LINK_EXT,
self::LINK_EXT,
);
$links_urls = array(
'http://www.board3.de/',
'http://www.phpbb.com/',
);
$links_permissions = array(
'',
'',
);
foreach($links_urls as $i => $url)
{
$links[] = array(
@@ -161,12 +151,12 @@ class portal_links_module
'permission' => $links_permissions[$i],
);
}
$board3_menu_array = serialize($links);
set_portal_config('board3_links_array_' . $module_id, $board3_menu_array);
set_config('board3_links_' . $module_id, '');
set_config('board3_links_url_new_window_' . $module_id, 0);
return true;
}
@@ -179,9 +169,9 @@ class portal_links_module
);
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$db->sql_query($sql);
$del_config = array(
'board3_links_' . $module_id,
'board3_links_url_new_window_' . $module_id
@@ -190,18 +180,18 @@ class portal_links_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
// Manage the menu links
public function manage_links($value, $key, $module_id)
{
global $config, $phpbb_admin_path, $user, $phpEx, $db, $template;
$action = request_var('action', '');
$action = (isset($_POST['add'])) ? 'add' : $action;
$action = (isset($_POST['save'])) ? 'save' : $action;
$link_id = request_var('id', 99999999); // 0 will trigger unwanted behavior, therefore we set a number we should never reach
$portal_config = obtain_portal_config();
$links = array();
$links = $this->utf_unserialize($portal_config['board3_links_array_' . $module_id]);
@@ -219,11 +209,11 @@ class portal_links_module
$link_title = utf8_normalize_nfc(request_var('link_title', ' ', true));
$link_type = request_var('link_type', 2); // default to B3_LINK_EXT, no categories in Links block
$link_url = request_var('link_url', ' ');
$link_url = utf8_normalize_nfc(request_var('link_url', ' ', true));
$link_url = str_replace('&amp;', '&', $link_url);
$link_permission = request_var('permission-setting-link', array(0 => ''));
$groups_ary = array();
// get groups and check if the selected groups actually exist
$sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . '
@@ -234,7 +224,7 @@ class portal_links_module
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
$link_permissions = array_intersect($link_permission, $groups_ary);
$link_permissions = implode(',', $link_permissions);
@@ -253,7 +243,7 @@ class portal_links_module
if (isset($link_id) && $link_id < sizeof($links))
{
$message = $user->lang['LINK_UPDATED'];
$links[$link_id] = array(
'title' => $link_title,
'url' => htmlspecialchars_decode($link_url),
@@ -275,7 +265,7 @@ class portal_links_module
);
add_log('admin', 'LOG_PORTAL_LINK_ADDED', $link_title);
}
$board3_links_array = serialize($links);
set_portal_config('board3_links_array_' . $module_id, $board3_links_array);
@@ -297,7 +287,7 @@ class portal_links_module
// delete the selected link and reset the array numbering afterwards
array_splice($links, $link_id, 1);
$links = array_merge($links);
$board3_links_array = serialize($links);
set_portal_config('board3_links_array_' . $module_id, $board3_links_array);
@@ -342,7 +332,7 @@ class portal_links_module
'type' => $links[$link_id]['type'],
'permission' => $links[$link_id]['permission'],
);
// move the info of the links we replace in the order
$links[$link_id] = array(
'title' => $links[$switch_order_id]['title'],
@@ -350,7 +340,7 @@ class portal_links_module
'type' => $links[$switch_order_id]['type'],
'permission' => $links[$switch_order_id]['permission'],
);
// insert the info of the moved link
$links[$switch_order_id] = $cur_link;
@@ -372,9 +362,9 @@ class portal_links_module
'S_EDIT' => true,
'S_LINK_IS_INT' => (isset($links[$link_id]['type']) && $links[$link_id]['type'] == self::LINK_INT) ? true : false,
));
$groups_ary = (isset($links[$link_id]['permission'])) ? explode(',', $links[$link_id]['permission']) : array();
// get group info from database and assign the block vars
$sql = 'SELECT group_id, group_name
FROM ' . GROUPS_TABLE . '
@@ -408,12 +398,12 @@ class portal_links_module
));
}
}
public function update_links($key, $module_id)
{
$this->manage_links('', $key, $module_id);
}
// Unserialize links array
private function utf_unserialize($serial_str)
{

View File

@@ -46,13 +46,13 @@ class portal_main_menu_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_main_menu_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
*/
public $custom_acp_tpl = 'acp_portal_menu';
/**
* constants
*/
@@ -66,22 +66,12 @@ class portal_main_menu_module
$links = array();
$portal_config = obtain_portal_config();
$links = $this->utf_unserialize($portal_config['board3_menu_array_' . $module_id]);
// get user's groups
$sql = 'SELECT group_id
FROM ' . USER_GROUP_TABLE . '
WHERE user_id = ' . (int) $user->data['user_id'] . '
ORDER BY group_id ASC';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
$groups_ary = get_user_groups();
for ($i = 0; $i < sizeof($links); $i++)
{
if($links[$i]['type'] == self::LINK_CAT)
@@ -102,10 +92,10 @@ class portal_main_menu_module
{
$cur_url = $links[$i]['url'];
}
$cur_permissions = explode(',', $links[$i]['permission']);
$permission_check = array_intersect($groups_ary, $cur_permissions);
if(!empty($permission_check) || $links[$i]['permission'] == '')
{
$template->assign_block_vars('portalmenu.links', array(
@@ -139,19 +129,19 @@ class portal_main_menu_module
public function install($module_id)
{
global $phpbb_root_path, $phpEx, $db;
// get the correct group IDs from the database
$in_ary = array('GUESTS', 'REGISTERED', 'REGISTERED_COPPA');
$sql = 'SELECT group_id, group_name FROM ' . GROUPS_TABLE . ' WHERE ' . $db->sql_in_set('group_name', $in_ary);
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$groups_ary[$row['group_name']] = $row['group_id'];
}
$links = array();
$links_titles = array(
'M_CONTENT',
'INDEX',
@@ -165,7 +155,7 @@ class portal_main_menu_module
'M_TERMS',
'M_PRV',
);
$links_types = array(
self::LINK_CAT,
self::LINK_INT,
@@ -179,7 +169,7 @@ class portal_main_menu_module
self::LINK_INT,
self::LINK_INT,
);
$links_urls = array(
'',
'index.' . $phpEx,
@@ -193,7 +183,7 @@ class portal_main_menu_module
'ucp.' . $phpEx . '?mode=terms',
'ucp.' . $phpEx . '?mode=privacy',
);
$links_permissions = array(
'',
'',
@@ -207,7 +197,7 @@ class portal_main_menu_module
'',
'',
);
foreach($links_urls as $i => $url)
{
$links[] = array(
@@ -217,12 +207,12 @@ class portal_main_menu_module
'permission' => $links_permissions[$i],
);
}
$board3_menu_array = serialize($links);
set_portal_config('board3_menu_array_' . $module_id, $board3_menu_array);
set_config('board3_menu_' . $module_id, '');
set_config('board3_menu_url_new_window_' . $module_id, 0);
return true;
}
@@ -235,9 +225,9 @@ class portal_main_menu_module
);
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$db->sql_query($sql);
$del_config = array(
'board3_menu_' . $module_id,
'board3_menu_url_new_window_' . $module_id,
@@ -246,18 +236,18 @@ class portal_main_menu_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
// Manage the menu links
public function manage_links($value, $key, $module_id)
{
global $config, $phpbb_admin_path, $user, $phpEx, $db, $template;
$action = request_var('action', '');
$action = (isset($_POST['add'])) ? 'add' : $action;
$action = (isset($_POST['save'])) ? 'save' : $action;
$link_id = request_var('id', 99999999); // 0 will trigger unwanted behavior, therefore we set a number we should never reach
$portal_config = obtain_portal_config();
$links = array();
$links = $this->utf_unserialize($portal_config['board3_menu_array_' . $module_id]);
@@ -276,11 +266,11 @@ class portal_main_menu_module
$link_title = utf8_normalize_nfc(request_var('link_title', ' ', true));
$link_is_cat = request_var('link_is_cat', false);
$link_type = (!$link_is_cat) ? request_var('link_type', self::LINK_INT) : self::LINK_CAT;
$link_url = ($link_is_cat) ? ' ' : request_var('link_url', ' ');
$link_url = ($link_is_cat) ? ' ' : utf8_normalize_nfc(request_var('link_url', ' ', true));
$link_url = str_replace('&amp;', '&', $link_url);
$link_permission = request_var('permission-setting-menu', array(0 => ''));
$groups_ary = array();
// get groups and check if the selected groups actually exist
$sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . '
@@ -291,7 +281,7 @@ class portal_main_menu_module
$groups_ary[] = $row['group_id'];
}
$db->sql_freeresult($result);
$link_permissions = array_intersect($link_permission, $groups_ary);
$link_permissions = implode(',', $link_permissions);
@@ -310,7 +300,7 @@ class portal_main_menu_module
if (isset($link_id) && $link_id < sizeof($links))
{
$message = $user->lang['LINK_UPDATED'];
$links[$link_id] = array(
'title' => $link_title,
'url' => htmlspecialchars_decode($link_url),
@@ -336,7 +326,7 @@ class portal_main_menu_module
);
add_log('admin', 'LOG_PORTAL_LINK_ADDED', $link_title);
}
$board3_menu_array = serialize($links);
set_portal_config('board3_menu_array_' . $module_id, $board3_menu_array);
@@ -358,7 +348,7 @@ class portal_main_menu_module
// delete the selected link and reset the array numbering afterwards
array_splice($links, $link_id, 1);
$links = array_merge($links);
$board3_menu_array = serialize($links);
set_portal_config('board3_menu_array_' . $module_id, $board3_menu_array);
@@ -403,7 +393,7 @@ class portal_main_menu_module
'type' => $links[$link_id]['type'],
'permission' => $links[$link_id]['permission'],
);
// move the info of the links we replace in the order
$links[$link_id] = array(
'title' => $links[$switch_order_id]['title'],
@@ -411,7 +401,7 @@ class portal_main_menu_module
'type' => $links[$switch_order_id]['type'],
'permission' => $links[$switch_order_id]['permission'],
);
// insert the info of the moved link
$links[$switch_order_id] = $cur_link;
@@ -434,9 +424,9 @@ class portal_main_menu_module
'S_LINK_IS_CAT' => (!isset($links[$link_id]['type']) || $links[$link_id]['type'] == self::LINK_CAT) ? true : false,
'S_LINK_IS_INT' => (isset($links[$link_id]['type']) && $links[$link_id]['type'] == self::LINK_INT) ? true : false,
));
$groups_ary = (isset($links[$link_id]['permission'])) ? explode(',', $links[$link_id]['permission']) : array();
// get group info from database and assign the block vars
$sql = 'SELECT group_id, group_name
FROM ' . GROUPS_TABLE . '
@@ -472,12 +462,12 @@ class portal_main_menu_module
));
}
}
public function update_links($key, $module_id)
{
$this->manage_links('', $key, $module_id);
}
// Unserialize links array
private function utf_unserialize($serial_str)
{

View File

@@ -52,7 +52,7 @@ class portal_news_module
global $config, $template, $db, $user, $auth, $cache, $phpEx, $phpbb_root_path;
$news = request_var('news', -1);
$news = ($news > $config['board3_news_length_' . $module_id] -1) ? -1 : $news;
$news = ($news > $config['board3_number_of_news_' . $module_id] -1) ? -1 : $news;
$user->add_lang('viewforum');
$start = request_var('np', 0);
$start = ($start < 0) ? 0 : $start;
@@ -90,7 +90,7 @@ class portal_news_module
{
$disallow_access = array();
}
if($config['board3_news_exclude_' . $module_id] == true)
{
$disallow_access = array_merge($disallow_access, $forum_from);
@@ -134,7 +134,7 @@ class portal_news_module
$total_news = (int) $db->sql_fetchfield('num_topics');
$db->sql_freeresult($result);
}
$topic_tracking_info = get_portal_tracking_info($fetch_news);
if($news < 0)
@@ -159,7 +159,7 @@ class portal_news_module
$forum_id = $fetch_news[$i]['forum_id'];
$topic_id = $fetch_news[$i]['topic_id'];
$unread_topic = (isset($topic_tracking_info[$topic_id]) && $fetch_news[$i]['topic_last_post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
$read_full_url = (isset($_GET['np'])) ? 'np='. $start . '&amp;news=' . $i . '#n' . $i : 'news=' . $i . '#n' . $i;
$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&amp;t=' . $topic_id);
if ($config['board3_news_archive_' . $module_id])
@@ -274,7 +274,7 @@ class portal_news_module
$open_bracket = '[ ';
$close_bracket = ' ]';
$read_full = $user->lang['BACK'];
$read_full_url = (isset($_GET['np'])) ? append_sid("{$phpbb_root_path}portal.$phpEx", "np=$start#n$i") : append_sid("{$phpbb_root_path}portal.$phpEx#n$i");
$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($fetch_news[$i]['forum_id']) ? $fetch_news[$i]['forum_id'] : $forum_id) . '&amp;t=' . $topic_id);
if ($config['board3_news_archive_' . $module_id])
@@ -412,14 +412,14 @@ class portal_news_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
// Create forum select box
public function select_forums($value, $key, $module_id)
{
global $user, $config;
$forum_list = make_forum_select(false, false, true, true, true, false, true);
$selected = array();
if(isset($config[$key]) && strlen($config[$key]) > 0)
{
@@ -436,18 +436,18 @@ class portal_news_module
return $s_forum_options;
}
// Store selected forums
public function store_selected_forums($key, $module_id)
{
global $db, $cache;
// Get selected extensions
$values = request_var($key, array(0 => ''));
$news = implode(',', $values);
set_config($key, $news);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -46,7 +46,7 @@ class portal_random_member_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_random_member_module';
/**
* custom acp template
* file must be in "adm/style/portal/"

View File

@@ -46,7 +46,7 @@ class portal_recent_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_recent_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
@@ -64,8 +64,8 @@ class portal_recent_module
if ($config['board3_recent_forum_' . $module_id] > 0)
{
$exclude_forums = explode(',', $config['board3_recent_forum_' . $module_id]);
$sql_where = ' AND ' . $db->sql_in_set('forum_id', array_map('intval', $exclude_forums), ($config['board3_exclude_forums_' . $module_id]) ? true : false);
$sql_where = ' AND ' . $db->sql_in_set('forum_id', array_map('intval', $exclude_forums), ($config['board3_recent_exclude_forums_' . $module_id]) ? true : false);
}
// Get a list of forums the user cannot read
@@ -210,14 +210,14 @@ class portal_recent_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
// Create forum select box
public function select_forums($value, $key, $module_id)
{
global $user, $config;
$forum_list = make_forum_select(false, false, true, true, true, false, true);
$selected = array();
if(isset($config[$key]) && strlen($config[$key]) > 0)
{
@@ -234,18 +234,18 @@ class portal_recent_module
return $s_forum_options;
}
// Store selected forums
public function store_selected_forums($key, $module_id)
{
global $db, $cache;
// Get selected extensions
$values = request_var($key, array(0 => ''));
$news = implode(',', $values);
set_config($key, $news);
}
}

View File

@@ -46,7 +46,7 @@ class portal_search_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_search_module';
/**
* custom acp template
* file must be in "adm/style/portal/"

View File

@@ -46,7 +46,7 @@ class portal_statistics_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_statistics_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
@@ -158,22 +158,22 @@ class portal_statistics_module
{
return true;
}
// Better function with only one query
public function get_topics_count()
{
global $db, $user;
$return_ary = array(
POST_ANNOUNCE => 0,
POST_STICKY => 0,
);
$sql_in = array(
POST_ANNOUNCE,
POST_STICKY,
);
$sql = 'SELECT DISTINCT(topic_id) AS topic_id, topic_type AS type
FROM ' . TOPICS_TABLE . '
WHERE ' . $db->sql_in_set('topic_type', $sql_in, false);
@@ -185,14 +185,14 @@ class portal_statistics_module
case POST_ANNOUNCE:
++$return_ary[POST_ANNOUNCE];
break;
case POST_STICKY:
++$return_ary[POST_STICKY];
break;
}
}
$db->sql_freeresult($result);
return $return_ary;
}
}

View File

@@ -50,7 +50,7 @@ class portal_user_menu_module
public function get_template_side($module_id)
{
global $config, $template, $user, $auth, $db, $phpEx, $phpbb_root_path;
if (!function_exists('display_forums'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
@@ -62,7 +62,7 @@ class portal_user_menu_module
// + new posts since last visit & you post number
//
$ex_fid_ary = array_unique(array_merge(array_keys($auth->acl_getf('!f_read', true)), array_keys($auth->acl_getf('!f_search', true))));
if ($auth->acl_get('m_approve'))
{
$m_approve_fid_ary = array(-1);
@@ -88,7 +88,7 @@ class portal_user_menu_module
$result = $db->sql_query($sql);
$new_posts_count = (int) $db->sql_fetchfield('total');
$db->sql_freeresult($result);
// unread posts
$sql_where = 'AND t.topic_moved_id = 0
' . str_replace(array('p.', 'post_'), array('t.', 'topic_'), $m_approve_fid_sql) . '

View File

@@ -46,7 +46,7 @@ class portal_welcome_module
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_welcome_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
@@ -56,7 +56,7 @@ class portal_welcome_module
public function get_template_center($module_id)
{
global $config, $template, $portal_config, $phpEx;
// Generate text for display and assign template vars
$uid = $config['board3_welcome_message_uid_' . $module_id];
$bitfield = $config['board3_welcome_message_bitfield_' . $module_id];
@@ -102,7 +102,7 @@ class portal_welcome_module
);
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$check = $db->sql_query($sql);
$del_config = array(
@@ -114,19 +114,19 @@ class portal_welcome_module
WHERE ' . $db->sql_in_set('config_name', $del_config);
return ((!$check) ? $check : $db->sql_query($sql)); // if something went wrong, make sure we are aware of the first query
}
public function manage_welcome($value, $key, $module_id)
{
global $db, $portal_config, $config, $template, $user, $phpEx, $phpbb_admin_path, $phpbb_root_path;
$action = (isset($_POST['reset'])) ? 'reset' : '';
$action = (isset($_POST['submit'])) ? 'save' : $action;
$action = (isset($_POST['preview'])) ? 'preview' : $action;
$portal_config = obtain_portal_config();
$u_action = append_sid($phpbb_admin_path . 'index.' . $phpEx, 'i=portal&amp;mode=config&amp;module_id=' . $module_id);
switch($action)
{
// Save changes
@@ -140,22 +140,21 @@ class portal_welcome_module
$uid = $bitfield = $flags = '';
$options = 7;
generate_text_for_storage($welcome_message, $uid, $bitfield, $flags, true, true, true);
// first check for obvious errors, we don't want to waste server resources
if(empty($welcome_message))
{
trigger_error($user->lang['ACP_PORTAL_WELCOME_MESSAGE_SHORT']. adm_back_link($u_action), E_USER_WARNING);
}
add_log('admin', 'LOG_PORTAL_CONFIG', $user->lang['PORTAL_WELCOME']);
// set_portal_config will take care of escaping the welcome message
set_portal_config('board3_welcome_message_' . $module_id, $welcome_message);
set_config('board3_welcome_message_uid_' . $module_id, $uid);
set_config('board3_welcome_message_bitfield_' . $module_id, $bitfield);
break;
case 'preview':
$welcome_message = $text = utf8_normalize_nfc(request_var('welcome_message', '', true));
@@ -169,9 +168,9 @@ class portal_welcome_module
$bitfield = (isset($config['board3_welcome_message_bitfield_' . $module_id])) ? $config['board3_welcome_message_bitfield_' . $module_id] : '';
$options = OPTION_FLAG_BBCODE + OPTION_FLAG_SMILIES + OPTION_FLAG_LINKS;
generate_text_for_storage($text, $uid, $bitfield, $options, true, true, true);
$text = generate_text_for_display($text, $uid, $bitfield, $options);
$template->assign_vars(array(
'PREVIEW_TEXT' => $text,
'S_PREVIEW' => true,
@@ -184,7 +183,7 @@ class portal_welcome_module
{
$welcome_message = generate_text_for_edit($portal_config['board3_welcome_message_' . $module_id], $config['board3_welcome_message_uid_' . $module_id], '');
}
$template->assign_vars(array(
'WELCOME_MESSAGE' => (is_array($welcome_message)) ? $welcome_message['text'] : $welcome_message,
//'U_BACK' => $u_action,
@@ -197,12 +196,12 @@ class portal_welcome_module
'S_BBCODE_ALLOWED' => true,
'MAX_FONT_SIZE' => (int) $config['max_post_font_size'],
));
if(!function_exists('display_forums'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
}
// Build custom bbcodes array
display_custom_bbcodes();
$user->add_lang('posting');
@@ -210,7 +209,7 @@ class portal_welcome_module
break;
}
}
public function update_welcome($key, $module_id)
{
$this->manage_welcome('', $key, $module_id);

View File

@@ -28,7 +28,7 @@ class portal_whois_online_module
* right 8
* bottom 16
*/
public $columns = 21;
public $columns = 31;
/**
* Default modulename
@@ -39,14 +39,14 @@ class portal_whois_online_module
* Default module-image:
* file must be in "{T_THEME_PATH}/images/portal/"
*/
public $image_src = '';
public $image_src = 'portal_friends.png';
/**
* module-language file
* file must be in "language/{$user->lang}/mods/portal/"
*/
public $language = 'portal_whois_online_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
@@ -99,12 +99,21 @@ class portal_whois_online_module
$db->sql_freeresult($result);
$legend = implode(', ', $legend);
$template->assign_var('PORTAL_LEGEND', $legend);
return 'whois_online_center.html';
}
public function get_template_side($module_id)
{
global $config, $template, $user, $auth, $db, $phpbb_root_path, $phpEx;
// No legend on the side so just return the template file
return 'whois_online_side.html';
}
public function get_template_acp($module_id)
{
return array(

View File

@@ -1,51 +0,0 @@
<!-- BEGIN announcements_row -->
<!-- IF announcements_row.S_FIRST_ROW -->
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
<!-- ENDIF -->
<!-- IF $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
<!-- IF announcements_row.S_NO_TOPICS -->
<div class="post bg2" style="margin-bottom: 0px">
<div class="inner"><span class="portal-corners-top-inner"></span>
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
<!-- ELSE -->
<div style="margin-bottom: <!-- IF announcements_row.S_LAST_ROW -->0px<!-- ELSE -->1px<!-- ENDIF -->" class="post <!-- IF announcements_row.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
<div class="inner"><span class="portal-corners-top-inner"></span>
<h4 class="first"><a name="a"></a><a name="a{announcements_row.A_ID}"></a><!-- IF announcements_row.S_UNREAD_INFO --><a href="{announcements_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --> {announcements_row.ATTACH_ICON_IMG} <!-- IF announcements_row.S_POLL --> <strong>{L_VIEW_TOPIC_POLL}: </strong><!-- ENDIF --><!-- IF announcements_row.TOPIC_ICON_IMG --><img src="{T_ICONS_PATH}{announcements_row.TOPIC_ICON_IMG}" width="{announcements_row.TOPIC_ICON_IMG_WIDTH}" height="{announcements_row.TOPIC_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="{announcements_row.U_VIEW_COMMENTS}"><strong>{announcements_row.TITLE}</strong></a></h4>
<!-- IF announcements_row.PAGINATION --><strong class="pagination"><span>{announcements_row.PAGINATION}</span></strong><!-- ENDIF -->
<ul class="linklist">
<li>{L_POSTED} {L_POST_BY_AUTHOR}: {announcements_row.POSTER_FULL} &raquo; {announcements_row.TIME}</li>
<li class="rightside"><!-- IF announcements_row.FORUM_NAME -->{L_FORUM}: <strong><a href="{announcements_row.U_VIEWFORUM}">{announcements_row.FORUM_NAME}</a></strong><!-- ELSE -->{L_GLOBAL_ANNOUNCEMENT}<!-- ENDIF --></li>
</ul>
<!-- IF not $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
<div class="content">
<br />{announcements_row.TEXT}
</div>
<!-- IF announcements_row.S_HAS_ATTACHMENTS -->
<dl class="attachbox">
<dt>{L_ATTACHMENTS}</dt>
<!-- BEGIN attachment -->
<dd>{announcements_row.attachment.DISPLAY_ATTACHMENT}</dd>
<!-- END attachment -->
</dl>
<!-- ENDIF -->
<br style="clear:both" />
<span style="float: left;">{L_TOPIC_VIEWS}: {announcements_row.TOPIC_VIEWS} &nbsp;&bull;&nbsp; <a href="{announcements_row.U_VIEW_COMMENTS}" title="{L_VIEW_COMMENTS}">{L_COMMENTS}: {announcements_row.REPLIES}</a> &nbsp;&bull;&nbsp; <a href="{announcements_row.U_POST_COMMENT}">{L_POST_REPLY}</a></span>
<span style="float: right; margin: 0 0 5px 0">{announcements_row.OPEN}<a href="{announcements_row.U_READ_FULL}">{announcements_row.L_READ_FULL}</a>{announcements_row.CLOSE}</span>
<div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div>
<!-- IF announcements_row.S_NOT_LAST --><br style="clear:both" /><!-- ENDIF -->
<!-- IF announcements_row.S_LAST_ROW and (AP_PAGINATION or TOTAL_ANNOUNCEMENTS) -->
<hr class="dashed" />
<div class="pagination">
{TOTAL_ANNOUNCEMENTS}
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> &bull; {AP_PAGE_NUMBER} &bull; <span>{AP_PAGINATION}</span><!-- ELSE --> &bull; {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
</div>
<!-- ENDIF -->
<!-- IF not $S_POSTBODY_TOP --></div><!-- ENDIF -->
<!-- ENDIF -->
<span class="portal-corners-bottom-inner"></span></div>
</div>
<!-- IF $S_POSTBODY_TOP --></div><!-- ENDIF -->
<!-- IF announcements_row.S_LAST_ROW -->
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
<!-- ENDIF -->
<!-- END announcements_row -->

View File

@@ -0,0 +1,51 @@
<!-- BEGIN announcements_center_row -->
<!-- IF announcements_center_row.S_FIRST_ROW -->
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
<!-- ENDIF -->
<!-- IF $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
<!-- IF announcements_center_row.S_NO_TOPICS -->
<div class="post bg2" style="margin-bottom: 0px">
<div class="inner"><span class="portal-corners-top-inner"></span>
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
<!-- ELSE -->
<div style="margin-bottom: <!-- IF announcements_center_row.S_LAST_ROW -->0px<!-- ELSE -->1px<!-- ENDIF -->" class="post <!-- IF announcements_center_row.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">
<div class="inner"><span class="portal-corners-top-inner"></span>
<h4 class="first"><a <!-- IF announcements_center_row.S_FIRST_ROW -->id="a" <!-- ENDIF -->name="a{announcements_center_row.A_ID}"></a><!-- IF announcements_center_row.S_UNREAD_INFO --><a href="{announcements_center_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_center_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --> {announcements_center_row.ATTACH_ICON_IMG} <!-- IF announcements_center_row.S_POLL --> <strong>{L_VIEW_TOPIC_POLL}: </strong><!-- ENDIF --><!-- IF announcements_center_row.TOPIC_ICON_IMG --><img src="{T_ICONS_PATH}{announcements_center_row.TOPIC_ICON_IMG}" width="{announcements_center_row.TOPIC_ICON_IMG_WIDTH}" height="{announcements_center_row.TOPIC_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="{announcements_center_row.U_VIEW_COMMENTS}"><strong>{announcements_center_row.TITLE}</strong></a></h4>
<!-- IF announcements_center_row.PAGINATION --><strong class="pagination"><span>{announcements_center_row.PAGINATION}</span></strong><!-- ENDIF -->
<ul class="linklist">
<li>{L_POSTED} {L_POST_BY_AUTHOR}: {announcements_center_row.POSTER_FULL} &raquo; {announcements_center_row.TIME}</li>
<li class="rightside"><!-- IF announcements_center_row.FORUM_NAME -->{L_FORUM}: <strong><a href="{announcements_center_row.U_VIEWFORUM}">{announcements_center_row.FORUM_NAME}</a></strong><!-- ELSE -->{L_GLOBAL_ANNOUNCEMENT}<!-- ENDIF --></li>
</ul>
<!-- IF not $S_POSTBODY_TOP --><div class="postbody" style="width: 100%"><!-- ENDIF -->
<div class="content">
<br />{announcements_center_row.TEXT}
</div>
<!-- IF announcements_center_row.S_HAS_ATTACHMENTS -->
<dl class="attachbox">
<dt>{L_ATTACHMENTS}</dt>
<!-- BEGIN attachment -->
<dd>{announcements_center_row.attachment.DISPLAY_ATTACHMENT}</dd>
<!-- END attachment -->
</dl>
<!-- ENDIF -->
<br style="clear:both" />
<span style="float: left;">{L_TOPIC_VIEWS}: {announcements_center_row.TOPIC_VIEWS} &nbsp;&bull;&nbsp; <a href="{announcements_center_row.U_VIEW_COMMENTS}" title="{L_VIEW_COMMENTS}">{L_COMMENTS}: {announcements_center_row.REPLIES}</a> &nbsp;&bull;&nbsp; <a href="{announcements_center_row.U_POST_COMMENT}">{L_POST_REPLY}</a></span>
<span style="float: right; margin: 0 0 5px 0">{announcements_center_row.OPEN}<a href="{announcements_center_row.U_READ_FULL}">{announcements_center_row.L_READ_FULL}</a>{announcements_center_row.CLOSE}</span>
<div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div>
<!-- IF announcements_center_row.S_NOT_LAST --><br style="clear:both" /><!-- ENDIF -->
<!-- IF announcements_center_row.S_LAST_ROW and (AP_PAGINATION or TOTAL_ANNOUNCEMENTS) -->
<hr class="dashed" />
<div class="pagination">
{TOTAL_ANNOUNCEMENTS}
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> &bull; {AP_PAGE_NUMBER} &bull; <span>{AP_PAGINATION}</span><!-- ELSE --> &bull; {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
</div>
<!-- ENDIF -->
<!-- IF not $S_POSTBODY_TOP --></div><!-- ENDIF -->
<!-- ENDIF -->
<span class="portal-corners-bottom-inner"></span></div>
</div>
<!-- IF $S_POSTBODY_TOP --></div><!-- ENDIF -->
<!-- IF announcements_center_row.S_LAST_ROW -->
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
<!-- ENDIF -->
<!-- END announcements_center_row -->

View File

@@ -0,0 +1,58 @@
<!-- BEGIN announcements_center_row -->
<!-- IF announcements_center_row.S_NO_TOPICS -->
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
<div class="post bg2" style="margin-bottom: 0px">
<div class="inner"><span class="portal-corners-top-inner"></span>
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
<span class="portal-corners-bottom-inner"></span></div>
</div>
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
<!-- ELSE -->
<!-- IF announcements_center_row.S_FIRST_ROW -->
{$CC_BLOCK_H_L}
<dt id="a" <!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->style="width: 44%"<!-- ELSE -->style="width: 60%"<!-- ENDIF -->>{$TITLE}</dt>
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
<dd class="posts" style="width: 11%">{L_REPLIES}</dd>
<dd class="views" style="width: 11%">{L_VIEWS}</dd>
<!-- ENDIF -->
<dd class="lastpost" style="width: 25%"><span>{L_LAST_POST}</span></dd>
{$CC_BLOCK_H_R}
<ul class="topiclist topics">
<!-- ENDIF -->
<li class="row<!-- IF announcements_center_row.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
<dl class="icon" style="background-image: url({announcements_center_row.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
<dt style="<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->width: 44%;<!-- ELSE -->width: 60%;<!-- ENDIF --> <!-- IF announcements_center_row.TOPIC_ICON_IMG -->background-image: url({T_ICONS_PATH}{announcements_center_row.TOPIC_ICON_IMG}); background-repeat: no-repeat;<!-- ENDIF -->" title="{announcements_center_row.TOPIC_FOLDER_IMG_ALT}"><!-- IF announcements_center_row.S_UNREAD_TOPIC --><a href="{announcements_center_row.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --><!-- IF announcements_center_row.ATTACH_ICON_IMG -->{announcements_center_row.ATTACH_ICON_IMG} <!-- ENDIF --><!-- IF announcements_center_row.S_POLL --><strong>{L_VIEW_TOPIC_POLL}</strong><!-- ENDIF --><a href="{announcements_center_row.U_VIEW_COMMENTS}" title="{announcements_center_row.TITLE}" class="topictitle">{announcements_center_row.TITLE}</a><!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --> &bull; <a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> &bull; <!-- ENDIF -->
<!-- IF announcements_center_row.PAGINATION --><strong class="pagination"><span>{announcements_center_row.PAGINATION}</span></strong><!-- ENDIF -->
<br />{L_POSTED} {L_POST_BY_AUTHOR} {announcements_center_row.POSTER_FULL} &raquo; {announcements_center_row.TIME}
<!-- IF announcements_center_row.FORUM_NAME -->
<br />{L_FORUM}: <a href="{announcements_center_row.U_VIEWFORUM}" style="font-weight: bold;">{announcements_center_row.FORUM_NAME}</a>
<!-- ELSE -->
<br />{L_GLOBAL_ANNOUNCEMENT}
<!-- ENDIF -->
<!-- IF not S_DISPLAY_ANNOUNCEMENTS_RVS --><!-- IF announcements_center_row.FORUM_NAME -->&bull; <!-- ENDIF -->{L_REPLIES}: <strong>{announcements_center_row.REPLIES}</strong> &bull; {L_VIEWS}: <strong>{announcements_center_row.TOPIC_VIEWS}</strong><!-- ENDIF -->
</dt>
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
<dd class="posts" style="width: 11%">{announcements_center_row.REPLIES} <dfn>{L_REPLIES}</dfn></dd>
<dd class="views" style="width: 11%">{announcements_center_row.TOPIC_VIEWS} <dfn>{L_VIEWS}</dfn></dd>
<!-- ENDIF -->
<dd class="lastpost" style="width: 25%"><span><dfn>{L_LAST_POST}</dfn>{L_POST_BY_AUTHOR} {announcements_center_row.USERNAME_FULL_LAST} <!-- IF announcements_center_row.S_UNREAD_INFO --><a href="{announcements_center_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_center_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --><br />
{announcements_center_row.LAST_POST_TIME}</span>
</dd>
</dl>
</li>
<!-- IF announcements_center_row.S_LAST_ROW -->
<!-- IF AP_PAGINATION or TOTAL_ANNOUNCEMENTS -->
<li class="row<!-- IF announcements_center_row.S_ROW_COUNT is even --> bg2<!-- ELSE --> bg1<!-- ENDIF -->">
<div class="topic-actions">
<div class="pagination">
{TOTAL_ANNOUNCEMENTS}
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> &bull; {AP_PAGE_NUMBER} &bull; <span>{AP_PAGINATION}</span><!-- ELSE --> &bull; {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF --> &nbsp;
</div>
</div>
</li>
<!-- ENDIF -->
</ul>
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
<!-- ENDIF -->
<!-- ENDIF -->
<!-- END announcements_center_row -->

View File

@@ -1,59 +0,0 @@
<!-- BEGIN announcements_row -->
<!-- IF announcements_row.S_NO_TOPICS -->
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
<div class="post bg2" style="margin-bottom: 0px">
<div class="inner"><span class="portal-corners-top-inner"></span>
<span style="text-align: center;"><strong>{L_NO_ANNOUNCEMENTS}</strong></span>
<span class="portal-corners-bottom-inner"></span></div>
</div>
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
<!-- ELSE -->
<!-- IF announcements_row.S_FIRST_ROW -->
<a name="a"></a>
{$CC_BLOCK_H_L}
<dt <!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->style="width: 44%"<!-- ELSE -->style="width: 60%"<!-- ENDIF -->>{$TITLE}</dt>
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
<dd class="posts" style="width: 11%">{L_REPLIES}</dd>
<dd class="views" style="width: 11%">{L_VIEWS}</dd>
<!-- ENDIF -->
<dd class="lastpost" style="width: 25%"><span>{L_LAST_POST}</span></dd>
{$CC_BLOCK_H_R}
<ul class="topiclist topics">
<!-- ENDIF -->
<li class="row<!-- IF announcements_row.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
<dl class="icon" style="background-image: url({announcements_row.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
<dt style="<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->width: 44%;<!-- ELSE -->width: 60%;<!-- ENDIF --> <!-- IF announcements_row.TOPIC_ICON_IMG -->background-image: url({T_ICONS_PATH}{announcements_row.TOPIC_ICON_IMG}); background-repeat: no-repeat;<!-- ENDIF -->" title="{announcements_row.TOPIC_FOLDER_IMG_ALT}"><!-- IF announcements_row.S_UNREAD_TOPIC --><a href="{announcements_row.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --><!-- IF announcements_row.ATTACH_ICON_IMG -->{announcements_row.ATTACH_ICON_IMG} <!-- ENDIF --><!-- IF announcements_row.S_POLL --><strong>{L_VIEW_TOPIC_POLL}</strong><!-- ENDIF --><a href="{announcements_row.U_VIEW_COMMENTS}" title="{announcements_row.TITLE}" class="topictitle">{announcements_row.TITLE}</a><!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --> &bull; <a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> &bull; <!-- ENDIF -->
<!-- IF announcements_row.PAGINATION --><strong class="pagination"><span>{announcements_row.PAGINATION}</span></strong><!-- ENDIF -->
<br />{L_POSTED} {L_POST_BY_AUTHOR} {announcements_row.POSTER_FULL} &raquo; {announcements_row.TIME}
<!-- IF announcements_row.FORUM_NAME -->
<br />{L_FORUM}: <a href="{announcements_row.U_VIEWFORUM}" style="font-weight: bold;">{announcements_row.FORUM_NAME}</a>
<!-- ELSE -->
<br />{L_GLOBAL_ANNOUNCEMENT}
<!-- ENDIF -->
<!-- IF not S_DISPLAY_ANNOUNCEMENTS_RVS --><!-- IF announcements_row.FORUM_NAME -->&bull; <!-- ENDIF -->{L_REPLIES}: <strong>{announcements_row.REPLIES}</strong> &bull; {L_VIEWS}: <strong>{announcements_row.TOPIC_VIEWS}</strong><!-- ENDIF -->
</dt>
<!-- IF S_DISPLAY_ANNOUNCEMENTS_RVS -->
<dd class="posts" style="width: 11%">{announcements_row.REPLIES} <dfn>{L_REPLIES}</dfn></dd>
<dd class="views" style="width: 11%">{announcements_row.TOPIC_VIEWS} <dfn>{L_VIEWS}</dfn></dd>
<!-- ENDIF -->
<dd class="lastpost" style="width: 25%"><span><dfn>{L_LAST_POST}</dfn>{L_POST_BY_AUTHOR} {announcements_row.USERNAME_FULL_LAST} <!-- IF announcements_row.S_UNREAD_INFO --><a href="{announcements_row.U_VIEW_UNREAD}">{NEWEST_POST_IMG}</a><!-- ELSE --><a href="{announcements_row.U_LAST_COMMENTS}">{READ_POST_IMG}</a><!-- ENDIF --><br />
{announcements_row.LAST_POST_TIME}</span>
</dd>
</dl>
</li>
<!-- IF announcements_row.S_LAST_ROW -->
<!-- IF AP_PAGINATION or TOTAL_ANNOUNCEMENTS -->
<li class="row<!-- IF announcements_row.S_ROW_COUNT is even --> bg2<!-- ELSE --> bg1<!-- ENDIF -->">
<div class="topic-actions">
<div class="pagination">
{TOTAL_ANNOUNCEMENTS}
<!-- IF AP_PAGE_NUMBER --><!-- IF AP_PAGINATION --> &bull; {AP_PAGE_NUMBER} &bull; <span>{AP_PAGINATION}</span><!-- ELSE --> &bull; {AP_PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF --> &nbsp;
</div>
</div>
</li>
<!-- ENDIF -->
</ul>
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
<!-- ENDIF -->
<!-- ENDIF -->
<!-- END announcements_row -->

View File

@@ -1,16 +1,16 @@
{$C_BLOCK_H_L}{$TITLE}{$C_BLOCK_H_R}
<div class="panel bg1" style="margin-bottom: 0px">
<div class="inner"><span class="portal-corners-top-inner"></span>
<!-- IF .attach -->
<span style="float:left;"><strong>{L_FILENAME}</strong></span><br />
<!-- BEGIN attach -->
<span style="float:left;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" />&nbsp;<a href="{attach.U_TOPIC}" title="{attach.REAL_FILENAME}"><strong>{attach.FILENAME}</strong></a></span><br style="clear:both" />
<span style="float:left;padding-right:10px;">{L_FILESIZE}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.FILESIZE}</strong></span><br style="clear:both" />
<span style="float:left;padding-right:10px;">{L_DOWNLOADS}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
<!-- IF not attach.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
<!-- END .attach -->
<!-- IF .attach_center -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br />
<!-- BEGIN attach_center -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" />&nbsp;<a href="{attach_center.U_TOPIC}" title="{attach_center.REAL_FILENAME}"><strong>{attach_center.FILENAME}</strong></a></span><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_FILESIZE}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_center.FILESIZE}</strong></span><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_DOWNLOADS}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_center.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
<!-- IF not attach_center.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
<!-- END .attach_center -->
<!-- ELSE -->
<span style="float:left;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
<!-- ENDIF -->
<span class="portal-corners-bottom-inner"></span></div>
</div>

View File

@@ -1,13 +1,13 @@
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
<!-- IF .attach -->
<span style="float:left;"><strong>{L_FILENAME}</strong></span><br />
<!-- BEGIN attach -->
<span style="float:left;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" />&nbsp;<a href="{attach.U_TOPIC}" title="{attach.REAL_FILENAME}"><strong>{attach.FILENAME}</strong></a></span><br style="clear:both" />
<span style="float:left;padding-right:10px;">{L_FILESIZE}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.FILESIZE}</strong></span><br style="clear:both" />
<span style="float:left;padding-right:10px;">{L_DOWNLOADS}:</span><span style="float:right;padding-right:10px;" class="portal-gensmall"><strong>{attach.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
<!-- IF not attach.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
<!-- END .attach -->
<!-- IF .attach_side -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br />
<!-- BEGIN attach_side -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><img src="{T_THEME_PATH}/images/portal/icon_topic_attach.gif" alt="" />&nbsp;<a href="{attach_side.U_TOPIC}" title="{attach_side.REAL_FILENAME}"><strong>{attach_side.FILENAME}</strong></a></span><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_FILESIZE}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_side.FILESIZE}</strong></span><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;">{L_DOWNLOADS}:</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:10px;" class="portal-gensmall"><strong>{attach_side.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
<!-- IF not attach_side.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
<!-- END .attach_side -->
<!-- ELSE -->
<span style="float:left;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="portal-gensmall"><strong>{L_NO_ATTACHMENTS}</strong></span><br />
<!-- ENDIF -->
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}

View File

@@ -1,6 +1,17 @@
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
<!-- IF BIRTHDAY_LIST -->
<strong>{L_CONGRATULATIONS}:</strong><br /> {BIRTHDAY_LIST}
<strong>{L_CONGRATULATIONS}:</strong><br />
<!-- BEGIN board3_birthday_list -->
<span style="float:left;">
<img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" />
</span>
<span style="float:left; padding-left:5px; padding-top:2px;">
{board3_birthday_list.USER}
</span>
<span style="float: right;">
<!-- IF board3_birthday_list.AGE -->{board3_birthday_list.AGE}<!-- ENDIF -->
</span><br style="clear: both" />
<!-- END board3_birthday_list -->
<!-- ELSE -->
{L_NO_BIRTHDAYS}
<!-- ENDIF -->
@@ -9,9 +20,19 @@
<strong>{L_BIRTHDAYS_AHEAD}</strong>
<br />
<!-- IF BIRTHDAYS_AHEAD_LIST -->
{BIRTHDAYS_AHEAD_LIST}
<!-- BEGIN board3_birthday_ahead_list -->
<span style="float:left;">
<img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" />
</span>
<span style="float:left; padding-left:5px; padding-top:2px;">
<span title="{board3_birthday_ahead_list.DATE}">{board3_birthday_ahead_list.USER}</span>
</span>
<span style="float: right;">
<!-- IF board3_birthday_ahead_list.AGE -->{board3_birthday_ahead_list.AGE}<!-- ENDIF -->
</span><br style="clear: both" />
<!-- END board3_birthday_ahead_list -->
<!-- ELSE -->
{L_NO_BIRTHDAYS_AHEAD}
<!-- ENDIF -->
<!-- ENDIF -->
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}

View File

@@ -1,12 +1,12 @@
<!-- BEGIN minical -->
<!-- IF minical.MODULE_ID eq $MODULE_ID -->
<a name="minical{minical.MODULE_ID}"></a>
<a id="minical{minical.MODULE_ID}" style="float: right;"></a>
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
<table width="100%" cellspacing="1">
<tr>
<td align="left" colspan="2">{minical.U_PREV_MONTH}</td>
<td align="left" colspan="2"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{minical.U_NEXT_MONTH}<!-- ELSE -->{minical.U_PREV_MONTH}<!-- ENDIF --></td>
<td colspan="3" align="center"><span class="genmed">{minical.L_MINI_CAL_MONTH}</span></td>
<td align="right" colspan="2">{minical.U_NEXT_MONTH}</td>
<td align="right" colspan="2"><!-- IF S_CONTENT_DIRECTION eq 'rtl' -->{minical.U_PREV_MONTH}<!-- ELSE -->{minical.U_NEXT_MONTH}<!-- ENDIF --></td>
</tr>
<tr>
<!-- IF minical.S_SUNDAY_FIRST -->
@@ -61,26 +61,27 @@
<div class="menutitle" style="font: bold 12px 'Trebuchet MS','Lucida Grande',Arial,sans-serif; text-decoration: underline;">{L_UPCOMING_EVENTS}:</div>
<ul class="portal-events">
<!-- BEGIN upcoming_events -->
<li class="row">
<dl class="icon">
<dt style="width: 100%; padding-left: 0px; padding-bottom: 5px;">
<!-- IF minical.upcoming_events.EVENT_URL --><a href="{minical.upcoming_events.EVENT_URL}" title="{minical.upcoming_events.EVENT_TITLE}" <!-- IF minical.upcoming_events.EVENT_URL_NEW_WINDOW -->onclick="window.open('{minical.upcoming_events.EVENT_URL}'); return false;"<!-- ENDIF -->><!-- ENDIF -->
<span style="font-weight: bold;">{minical.upcoming_events.EVENT_TITLE}:</span><br />
<!-- IF minical.upcoming_events.EVENT_DESC --><span style="font-style: italic;">{minical.upcoming_events.EVENT_DESC}</span><br /><!-- ENDIF -->
<!-- IF not minical.upcoming_events.ALL_DAY and not minical.upcoming_events.END_TIME -->{L_EVENT_TIME}:&nbsp;{minical.upcoming_events.START_TIME}<br />
<!-- ELSEIF not minical.upcoming_events.ALL_DAY and minical.upcoming_events.END_TIME -->{L_EVENT_START}:&nbsp;{minical.upcoming_events.START_TIME}<br />{L_EVENT_END}:&nbsp;{minical.upcoming_events.END_TIME}<br />
<!-- ELSE -->{L_EVENT_TIME}:&nbsp;{minical.upcoming_events.START_TIME}<br />{L_EVENT_ALL_DAY}<br />
<!-- ENDIF -->
<!-- IF minical.upcoming_events.EVENT_DESC --><span style="font-style: italic;">{minical.upcoming_events.EVENT_DESC}</span><br /><!-- ENDIF -->
<!-- IF minical.upcoming_events.EVENT_URL --></a><!-- ENDIF -->
</dt>
</dl>
</li>
<!-- BEGINELSE -->
<li class="calendar-info"><span style="float:left;" class="gensmall"><strong>{L_NO_UPCOMING_EVENTS}</strong></span><br /></li>
<!-- END upcoming_events -->
</ul>
<br />
<!-- ENDIF -->
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
<!-- ENDIF -->

View File

@@ -6,5 +6,4 @@
<param name="movie" value="{T_THEME_PATH}/images/portal/board3clock.swf" />
</object>
</div>
<br />
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}

View File

@@ -2,7 +2,7 @@
<div class="panel bg1" style="margin-bottom: 0px">
<div class="inner"><span class="portal-corners-top-inner"></span>
<div class="postbody" style="width: 100%">
<div class="content">{$CUSTOM_CODE}</div>
<div class="content" style="min-height: 1em;">{$CUSTOM_CODE}</div>
</div>
<span class="portal-corners-bottom-inner"></span></div>
</div>

View File

@@ -1,7 +1,7 @@
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$LR_BLOCK_H_R}
<div class="inner"><span class="portal-corners-top-inner"></span>
<div class="postbody" style="width: 100%">
<div class="content">{$CUSTOM_CODE}</div>
<div class="content" style="min-height: 1em;">{$CUSTOM_CODE}</div>
</div>
<span class="portal-corners-bottom-inner"></span></div>
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}

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