114 Commits

Author SHA1 Message Date
Marc Alexander
44a1937237 Merge pull request #548 from marc1706/ticket/541
[ticket/541] Update versions in composer.json
2015-05-07 15:43:51 +02:00
Marc Alexander
5899c9e7a5 [ticket/541] Update versions in composer.json
B3P-541
2015-05-07 15:01:41 +02:00
Marc Alexander
072957b6ec Merge pull request #543 from marc1706/ticket/542
[ticket/542] Add missing calls to sql_freeresult()
2015-05-06 01:05:17 +02:00
Marc Alexander
76003767d5 [ticket/542] Add missing calls to sql_freeresult()
B3P-542
2015-05-05 23:36:50 +02:00
Marc Alexander
229033a618 Merge pull request #540 from marc1706/ticket/539
[ticket/539] Do not show portal on all pages if board is disabled
2015-05-05 23:07:37 +02:00
Marc Alexander
85337f9a09 [ticket/539] Do not show portal on all pages if board is disabled
B3P-539
2015-05-05 20:43:38 +02:00
Marc Alexander
3e0ec62751 Merge pull request #538 from marc1706/ticket/535
[ticket/535] Update trimmessage tool
2015-05-01 16:08:47 +02:00
Marc Alexander
2239850ba9 [ticket/535] Update trimmessage tool
B3P-535
2015-05-01 15:27:57 +02:00
Marc Alexander
6cd36b4b13 Merge branch 'ticket/532' into 2.1.x 2015-04-30 17:50:18 +02:00
Marc Alexander
5678dd2251 [ticket/532] Update build excludes in travis.yml
B3P-532
2015-04-30 17:47:47 +02:00
Marc Alexander
b4f68afd3c Merge pull request #531 from marc1706/ticket/530
[ticket/530] Update composer.phar for PHP7 compatibility
2015-04-27 19:18:59 +02:00
Marc Alexander
1f6ddc245e Merge pull request #529 from marc1706/ticket/528
[ticket/528] Correctly load module language for 3rd party modules
2015-04-27 19:18:51 +02:00
Marc Alexander
92a960ebd5 [ticket/530] Update composer.phar for PHP7 compatibility
B3P-530
2015-04-27 16:49:55 +02:00
Marc Alexander
9d0146918d [ticket/528] Add missing dependencies to tests
B3P-528
2015-04-27 16:48:21 +02:00
Marc Alexander
d699ef0e3b [ticket/528] Correctly load module language for 3rd party modules
B3P-528
2015-04-27 16:18:04 +02:00
Marc Alexander
6767c6406b Merge pull request #520 from Galixte/patch-5
Update of FRENCH translation for Board3 Portal extension
2015-04-09 13:58:01 +02:00
Marc Alexander
33a96b967b Merge pull request #526 from marc1706/ticket/525
[ticket/525] Use path instead of pattern for routes in tests
2015-04-09 13:38:53 +02:00
Marc Alexander
7e4a6468a2 [ticket/525] Use path instead of pattern for routes in tests
B3P-525
2015-04-09 13:24:07 +02:00
Marc Alexander
5007b9ee35 Merge pull request #524 from marc1706/ticket/521
[ticket/521] Display correct day of week in calendar module
2015-04-08 00:38:02 +02:00
Marc Alexander
8c0c123627 [ticket/521] Display correct day of week in calendar module
B3P-521
2015-04-08 00:12:07 +02:00
Marc Alexander
605c7bc41f Merge pull request #523 from marc1706/ticket/522
[ticket/522] Hide portal on all pages on low resolutions
2015-04-06 23:05:13 +02:00
Marc Alexander
0123621025 [ticket/522] Hide portal on all pages on low resolutions
B3P-522
2015-04-06 17:22:57 +02:00
Raphaël M.
3f2e5d56a6 Update of FRENCH translation for Board3 Portal extension
Update of FRENCH translation for portal_calendar_module.php file
2015-04-02 01:21:58 +02:00
Marc Alexander
dd43a8364c Merge pull request #517 from marc1706/ticket/510
[ticket/510] Order groups by group_legend setting in leaders module
2015-03-21 11:10:23 +01:00
Marc Alexander
6c8b63db06 Merge pull request #516 from marc1706/ticket/513
[ticket/513] Add build script
2015-03-21 10:12:31 +01:00
Marc Alexander
7e0034cd1a [ticket/510] Order groups by group_legend setting in leaders module
B3P-510
2015-03-21 10:11:12 +01:00
Marc Alexander
112b7d2db7 [ticket/513] Add missing line at end of file
B3P-513
2015-03-21 09:52:35 +01:00
Marc Alexander
9792360f03 [ticket/513] Run tests while packaging board3 portal
B3P-513
2015-03-21 09:51:07 +01:00
Marc Alexander
4d042239d6 [ticket/513] Update composer dependencies
B3P-513
2015-03-21 09:51:02 +01:00
Marc Alexander
2a5d91b474 [ticket/513] Add build script
B3P-513
2015-03-21 09:50:57 +01:00
Marc Alexander
61782b6e77 Merge pull request #515 from marc1706/ticket/514
[ticket/514] Add PHP7 to travis build matrix
2015-03-20 18:47:37 +01:00
Marc Alexander
39482d5441 [ticket/514] Use preg_replace_callback in portal
B3P-514
2015-03-20 17:49:41 +01:00
Marc Alexander
6835979dbf [ticket/514] Use preg_replace_callback in main_menu
B3P-514
2015-03-20 17:49:29 +01:00
Marc Alexander
2dd46f61b6 [ticket/514] Add PHP7 to travis build matrix
B3P-514
2015-03-20 15:31:37 +01:00
Marc Alexander
24f18700bb Merge pull request #512 from marc1706/ticket/511
[ticket/511] Do not show <hr> at bottom of prosilver main menu
2015-03-19 11:00:58 +01:00
Marc Alexander
01cb85005a [ticket/511] Do not show <hr> at bottom of prosilver main menu
B3P-511
2015-03-18 13:51:36 +01:00
Marc Alexander
1a4587a2a3 Merge pull request #509 from marc1706/ticket/508
[ticket/508] Only execute portal once when accessed via domain only
2015-03-15 17:29:19 +01:00
Marc Alexander
eb24ba1425 [ticket/508] Only execute portal once when accessed via domain only
B3P-508
2015-03-15 15:26:32 +01:00
Marc Alexander
c0430bb20e Merge pull request #507 from marc1706/ticket/506
[ticket/506] Move module images to styles/all folder
2015-03-15 13:57:29 +01:00
Marc Alexander
08a4d74937 [ticket/506] Only check styles/all folder for module images and fix tests
B3P-506
2015-03-15 13:33:10 +01:00
Marc Alexander
f8de6be004 [ticket/506] Move module images to styles/all folder
B3P-506
2015-03-15 11:56:16 +01:00
Marc Alexander
cd4e7e2993 Merge pull request #505 from marc1706/ticket/504
[ticket/504] Order who is online based on phpBB ACP setting
2015-03-15 11:09:53 +01:00
Marc Alexander
22e48beb8f [ticket/504] Order who is online based on phpBB ACP setting
B3P-504
2015-03-15 09:00:20 +01:00
Marc Alexander
545f7af4de Merge pull request #503 from marc1706/ticket/502
[ticket/502] Remove inner rounded corners from center modules
2015-03-10 21:17:45 +01:00
Marc Alexander
53a9dbf5dd [ticket/502] Remove inner rounded corners from center modules
B3P-502
2015-03-10 20:30:36 +01:00
Marc Alexander
9ca1e197ee Merge pull request #501 from marc1706/ticket/500
[ticket/500] Show correct number of replies in news and announcements
2015-03-09 22:32:24 +01:00
Marc Alexander
131b7a691d [ticket/500] Show correct number of replies in news and announcements
B3P-500
2015-03-09 21:42:27 +01:00
Marc Alexander
c3e1128ad6 Merge pull request #499 from marc1706/ticket/498
[ticket/498] Add nofollow for calendar and add roles for elements
2015-03-05 11:17:36 +01:00
Marc Alexander
2d5a14db22 [ticket/498] Add nofollow for calendar and add roles for elements
B3P-498
2015-03-05 10:59:57 +01:00
Marc Alexander
4134f59a15 Merge pull request #497 from marc1706/ticket/494
[ticket/494] Improve caching and query performance of portal
2015-03-05 10:31:43 +01:00
Marc Alexander
1a74082154 [ticket/494] Remove SQL queries to portal_modules when changing settings
B3P-494
2015-03-04 17:32:53 +01:00
Marc Alexander
9fe7e17124 [ticket/494] Correctly mock sql_save and sql_load methods of cache
B3P-494
2015-03-04 10:23:37 +01:00
Marc Alexander
726f94e798 Merge pull request #496 from marc1706/ticket/495
[ticket/495] Correctly load template files for modules
2015-03-03 15:32:55 +01:00
Marc Alexander
1e405e9d91 [ticket/494] Cache more queries on portal page
B3P-494
2015-03-03 15:25:22 +01:00
Marc Alexander
42973b1a10 [ticket/495] Correctly load template files for modules
B3P-495
2015-03-03 14:55:56 +01:00
Marc Alexander
a699a92e31 Merge pull request #493 from marc1706/ticket/492
[ticket/492] Use B3P controller helper for loading module language
2015-03-02 14:14:33 +01:00
Marc Alexander
22ef20d0e7 [ticket/492] Use B3P controller helper for loading module language
B3P-492
2015-03-02 13:50:28 +01:00
Marc Alexander
a9c5913c1f Merge pull request #491 from Galixte/patch-4
Update for FRENCH translation - UTF8 FRENCH quotes
2015-03-02 11:01:01 +01:00
Raphaël
74adacbe1f Update for FRENCH translation for portal_recent_module.php file
Update for FRENCH translation for portal_recent_module.php file
2015-02-28 15:31:26 +01:00
Raphaël
e2c85346b0 Update for FRENCH translation for portal_poll_module.php file
Update for FRENCH translation for portal_poll_module.php file
2015-02-28 15:31:03 +01:00
Raphaël
7129e5e2a2 Update for FRENCH translation for portal_news_module.php file
Update for FRENCH translation for portal_news_module.php file
2015-02-28 15:30:38 +01:00
Raphaël
af21b2edc4 Update for FRENCH translation for portal_attachments_module.php file
Update for FRENCH translation for portal_attachments_module.php file
2015-02-28 15:30:09 +01:00
Raphaël
f65f132649 Update for FRENCH translation for portal_announcements_module.php file
Update for FRENCH translation for portal_announcements_module.php file
2015-02-28 15:29:45 +01:00
Raphaël
7ac5201425 Update for FRENCH translation - UTF8 FRENCH quotes
Update for FRENCH translation for portal_acp.php file
Update for FRENCH translation for modules/portal_announcements_module.php
Update for FRENCH translation for modules/portal_attachments_module.php
Update for FRENCH translation for modules/portal_news_module.php
Update for FRENCH translation for modules/portal_poll_module.php
Update for FRENCH translation for modules/portal_recent_module.php
2015-02-28 15:28:59 +01:00
Marc Alexander
6488dd8d0c Merge pull request #490 from marc1706/ticket/487
[ticket/487] Add missing language entries to German language
2015-02-27 21:00:17 +01:00
Marc Alexander
df854fe083 [ticket/487] Add missing language entries to German language
B3P-487
2015-02-27 20:41:57 +01:00
Marc Alexander
36db7c0b28 Merge pull request #488 from marc1706/ticket/477
[ticket/477] Expect version_helper to throw RuntimeException
2015-02-27 10:40:39 +01:00
Marc Alexander
3c23f6b405 [ticket/477] Expect version check to return false
B3P-477
2015-02-27 09:24:51 +01:00
Marc Alexander
de98a00df5 [ticket/477] Use class members instead of passing by reference
B3P-477
2015-02-27 09:19:25 +01:00
Marc Alexander
96b31e8abb [ticket/477] Move assignment of update information to seperate method
B3P-477
2015-02-27 09:16:19 +01:00
Marc Alexander
dec789fef7 Merge pull request #489 from marc1706/ticket/464
[ticket/464] Use phpbb_admin_path for links to acp pages
2015-02-27 09:08:13 +01:00
Marc Alexander
3e18e50f89 [ticket/464] Use phpbb_admin_path for links to acp pages
B3P-464
2015-02-26 23:12:29 +01:00
Marc Alexander
53eb8ebe02 [ticket/477] Expect version_helper to throw RuntimeException
B3P-477
2015-02-26 23:08:07 +01:00
Marc Alexander
9551290fcf Merge pull request #485 from marc1706/ticket/482
[ticket/482] Get rid of conflicts between portal and phpBB CSS
2015-02-26 21:12:21 +01:00
Marc Alexander
e838684ae5 Merge pull request #486 from marc1706/ticket/481
[ticket/481] Remove unneeded assignment of S_SEARCH_ACTION in search
2015-02-26 21:06:34 +01:00
Marc Alexander
b68bb7f4a6 [ticket/481] Remove unneeded assignment of S_SEARCH_ACTION in search
B3P-481
2015-02-26 17:55:34 +01:00
Marc Alexander
119855aedf Merge pull request #484 from marc1706/ticket/483
[ticket/483] Use phpBB's 3.1.x branch for travis builds
2015-02-26 17:45:21 +01:00
Marc Alexander
5b6b6740ca [ticket/483] Use phpBB's 3.1.x branch for travis builds
B3P-483
2015-02-26 17:08:00 +01:00
Marc Alexander
3ab38cdf31 [ticket/482] Get rid of conflicts between portal and phpBB CSS
B3P-482
2015-02-26 17:02:11 +01:00
Marc Alexander
5c79d9452a Merge pull request #480 from Galixte/patch-3
Update for FRENCH translation for portal_acp.php file
2015-02-21 11:31:22 +01:00
Raphaël
ce17432e78 Update for FRENCH translation for portal_acp.php file
Update for FRENCH translation for portal_acp.php file
2015-02-21 01:28:54 +01:00
Marc Alexander
7b9380360c Merge pull request #476 from marc1706/ticket/475
[ticket/475] Show "No announcements" if no announcements present
2015-02-15 10:31:47 +01:00
Marc Alexander
a8655fc78d Merge pull request #474 from marc1706/ticket/473
[ticket/473] Correctly create news on read all page
2015-02-15 01:16:57 +01:00
Marc Alexander
d16acc444b [ticket/475] Show "No announcements" if no announcements present
B3P-475
2015-02-15 01:09:57 +01:00
Marc Alexander
76c5f62cbd [ticket/473] Correctly create news on read all page
B3P-473
2015-02-15 01:01:58 +01:00
Marc Alexander
faedc2bd25 Merge pull request #470 from marc1706/ticket/469
[ticket/469] Add setting for displaying portal side columns on all pages
2015-02-14 22:51:08 +01:00
Marc Alexander
cfa2657da4 [ticket/469] Correctly create path to images on pages outside root
B3P-469
2015-02-14 22:30:57 +01:00
Marc Alexander
8e85752c65 [ticket/469] Enable portal on all pages in subsilver2 & add tests
B3P-469
2015-02-14 22:21:10 +01:00
Marc Alexander
9899d4fd3c [ticket/469] Fix incorrect doc block
B3P-469
2015-02-13 22:23:49 +01:00
Marc Alexander
1e7dc9b576 [ticket/469] Add tests for displaying all pages using main controller
B3P-469
2015-02-13 22:23:23 +01:00
Marc Alexander
30bd67f3d8 [ticket/469] Fix tests with new settings
B3P-469
2015-02-13 19:52:00 +01:00
Marc Alexander
311c7cb97f [ticket/469] Only allow showing left or right module on all pages
B3P-469
2015-02-13 16:34:53 +01:00
Marc Alexander
f75dd66601 [ticket/469] Add prosilver events required for portal on all pages
B3P-469
2015-02-13 16:34:52 +01:00
Marc Alexander
0ea8d11360 [ticket/469] Remove unused template variable
B3P-469
2015-02-13 16:34:52 +01:00
Marc Alexander
70efdf099e [ticket/469] Add CSS if portal is displayed on all pages
B3P-469
2015-02-13 16:34:51 +01:00
Marc Alexander
bc3b430569 [ticket/469] Add new language entries for displaying portal on all pages
B3P-469
2015-02-13 16:34:51 +01:00
Marc Alexander
ee096bf60d [ticket/469] Allow restricting portal columns based on parameter in handle
B3P-469
2015-02-13 16:34:50 +01:00
Marc Alexander
f2b002c49b [ticket/469] Check current page with get_current_url()
The current session page seems to be wrong on the first page access.

B3P-469
2015-02-13 16:34:49 +01:00
Marc Alexander
a50e6c04d0 [ticket/469] Make listener display portal if settings are set to true
B3P-469
2015-02-13 16:34:49 +01:00
Marc Alexander
e4861caed8 [ticket/469] Add settings for displaying portal on all pages
B3P-469
2015-02-13 16:34:48 +01:00
Marc Alexander
7a63c9a3a8 [ticket/469] Make sure to not define constants more than once
B3P-469
2015-02-13 16:34:47 +01:00
Marc Alexander
2397563b9a Merge pull request #472 from marc1706/ticket/471
[ticket/471] Do not shorten text if limit is at 0
2015-02-12 23:52:15 +01:00
Marc Alexander
ce42fb4fb8 [ticket/471] Do not shorten text if limit is at 0
Also, text will no longer be shortened if the modules is using the compact
style.

B3P-471
2015-02-12 23:03:33 +01:00
Marc Alexander
b98c6fed23 Merge pull request #468 from marc1706/ticket/467
[ticket/467] Update composer dependencies
2015-02-11 15:30:21 +01:00
Marc Alexander
8d38348f15 [ticket/467] Update composer dependencies
B3P-467
2015-02-11 15:14:39 +01:00
Marc Alexander
64eb8f871a [ticket/467] Update composer.phar to latest version
B3P-467
2015-02-11 15:13:48 +01:00
Marc Alexander
6614a7c320 Merge pull request #466 from marc1706/ticket/465
[ticket/465] Use path instead of pattern in routing.yml
2015-02-11 12:08:26 +01:00
Marc Alexander
9bf8fd049d [ticket/465] Use path instead of pattern in routing.yml
B3P-465
2015-02-11 11:53:19 +01:00
Marc Alexander
6e6e3c504b Merge pull request #463 from Galixte/patch-2
Update for FRENCH translation for Board3 Portal extension
2015-02-08 11:26:48 +01:00
Raphaël
e3163df594 Update for FRENCH translation for portal_topposters_module.php file
Update for FRENCH translation for portal_topposters_module.php file
2015-02-08 00:11:49 +01:00
Raphaël
3713332da0 Update for FRENCH translation for portal_latest_bots_module.php file
Update for FRENCH translation for portal_latest_bots_module.php file
2015-02-08 00:08:16 +01:00
Raphaël
68af642d73 Update for FRENCH translation for portal_random_member_module.php file
Update for FRENCH translation for portal_random_member_module.php file
2015-02-08 00:07:10 +01:00
Marc Alexander
f4ce532f69 Merge pull request #462 from marc1706/ticket/461
[ticket/461] Fix tests for current version
2015-02-07 19:51:59 +01:00
Marc Alexander
2c62ff85a9 [ticket/461] Fix tests for current version
B3P-461
2015-02-07 19:37:59 +01:00
127 changed files with 1199 additions and 310 deletions

3
.gitattributes vendored
View File

@@ -8,5 +8,4 @@ phpunit.xml.* export-ignore
README.md export-ignore README.md export-ignore
git-tools/ export-ignore git-tools/ export-ignore
.coveralls.yml export-ignore .coveralls.yml export-ignore
composer.phar export-ignore build.xml export-ignore
composer.lock export-ignore

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
/.idea/* /.idea/*
/tests/test_config.php /tests/test_config.php
/vendor/ /vendor/
/build/

View File

@@ -22,8 +22,11 @@ matrix:
env: DB=mysqli env: DB=mysqli
- php: hhvm - php: hhvm
env: DB=mysqli env: DB=mysqli
- php: 7.0
env: DB=mysqli
allow_failures: allow_failures:
- php: hhvm - php: hhvm
- php: 7.0
fast_finish: true fast_finish: true
env: env:
@@ -34,11 +37,11 @@ env:
- COVERAGE="1" # Should we send coverage? - COVERAGE="1" # Should we send coverage?
- EPV="1" # Should we run EPV (Extension Pre Validator) on your code? - EPV="1" # Should we run EPV (Extension Pre Validator) on your code?
- SPELLCHECK="1" # Should the php files be checked for obvious spelling errors? - SPELLCHECK="1" # Should the php files be checked for obvious spelling errors?
- PHPBB_BRANCH="develop-ascraeus" - PHPBB_BRANCH="3.1.x"
branches: branches:
except: except:
- master - 2.0.x
- develop-1_0_X - develop-1_0_X
install: install:

View File

@@ -17,7 +17,7 @@ The extension is currently under heavy development and not supported until furth
## AUTOMATED TESTING ## AUTOMATED TESTING
We are starting to have unit and functional tests in order to prevent regressions. You can check our travis build below. We are starting to have unit and functional tests in order to prevent regressions. You can check our travis build below.
develop-2.1.x - [![Build Status](https://api.travis-ci.org/board3/Board3-Portal.png?branch=develop-2.1.x)](https://travis-ci.org/board3/Board3-Portal) 2.1.x - [![Build Status](https://travis-ci.org/board3/Board3-Portal.svg?branch=2.1.x)](https://travis-ci.org/board3/Board3-Portal)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/board3/Board3-Portal/badges/quality-score.png?b=develop-2.1.x)](https://scrutinizer-ci.com/g/board3/Board3-Portal/?branch=develop-2.1.x) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/board3/Board3-Portal/badges/quality-score.png?b=develop-2.1.x)](https://scrutinizer-ci.com/g/board3/Board3-Portal/?branch=develop-2.1.x)
[![Code Coverage](https://scrutinizer-ci.com/g/board3/Board3-Portal/badges/coverage.png?b=develop-2.1.x)](https://scrutinizer-ci.com/g/board3/Board3-Portal/?branch=develop-2.1.x) [![Code Coverage](https://scrutinizer-ci.com/g/board3/Board3-Portal/badges/coverage.png?b=develop-2.1.x)](https://scrutinizer-ci.com/g/board3/Board3-Portal/?branch=develop-2.1.x)

View File

@@ -26,6 +26,9 @@ class portal_module
/** @var \board3\portal\portal\modules\constraints_handler */ /** @var \board3\portal\portal\modules\constraints_handler */
protected $modules_constraints; protected $modules_constraints;
/** @var \board3\portal\controller\helper */
protected $board3_controller_helper;
/** @var int Board3 module enabled */ /** @var int Board3 module enabled */
const B3_MODULE_ENABLED = 1; const B3_MODULE_ENABLED = 1;
@@ -55,8 +58,13 @@ class portal_module
$this->portal_columns = $this->phpbb_container->get('board3.portal.columns'); $this->portal_columns = $this->phpbb_container->get('board3.portal.columns');
$this->modules_manager = $this->phpbb_container->get('board3.portal.modules.manager'); $this->modules_manager = $this->phpbb_container->get('board3.portal.modules.manager');
$this->modules_constraints = $this->phpbb_container->get('board3.portal.modules.constraints_handler'); $this->modules_constraints = $this->phpbb_container->get('board3.portal.modules.constraints_handler');
define('PORTAL_MODULES_TABLE', $this->phpbb_container->getParameter('board3.portal.modules.table')); $this->board3_controller_helper = $this->phpbb_container->get('board3.portal.controller_helper');
define('PORTAL_CONFIG_TABLE', $this->phpbb_container->getParameter('board3.portal.config.table'));
if (!defined('PORTAL_MODULES_TABLE'))
{
define('PORTAL_MODULES_TABLE', $this->phpbb_container->getParameter('board3.portal.modules.table'));
define('PORTAL_CONFIG_TABLE', $this->phpbb_container->getParameter('board3.portal.config.table'));
}
if(!function_exists('obtain_portal_config')) if(!function_exists('obtain_portal_config'))
{ {
@@ -97,6 +105,10 @@ class portal_module
'legend2' => 'ACP_PORTAL_COLUMN_WIDTH_SETTINGS', 'legend2' => 'ACP_PORTAL_COLUMN_WIDTH_SETTINGS',
'board3_left_column_width' => array('lang' => 'PORTAL_LEFT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'text:3:3', 'explain' => true), 'board3_left_column_width' => array('lang' => 'PORTAL_LEFT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'text:3:3', 'explain' => true),
'board3_right_column_width' => array('lang' => 'PORTAL_RIGHT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'text:3:3', 'explain' => true), 'board3_right_column_width' => array('lang' => 'PORTAL_RIGHT_COLUMN_WIDTH', 'validate' => 'int', 'type' => 'text:3:3', 'explain' => true),
'legend3' => 'ACP_PORTAL_SHOW_ALL',
'board3_show_all_pages' => array('lang' => 'ACP_PORTAL_SHOW_ALL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'board3_show_all_side' => array('lang' => 'PORTAL_SHOW_ALL_SIDE', 'validate' => 'bool', 'type' => 'custom', 'method' => array('board3.portal.modules_helper', 'display_left_right'), 'submit' => array('board3.portal.modules_helper', 'store_left_right'), 'explain' => true),
) )
); );
@@ -118,10 +130,9 @@ class portal_module
continue; continue;
} }
if ($this->c_class->get_language()) // Load module language
{ $this->board3_controller_helper->load_module_language($this->c_class);
$this->user->add_lang_ext('board3/portal', 'modules/' . $this->c_class->get_language());
}
$module_name = $this->user->lang[$this->c_class->get_name()]; $module_name = $this->user->lang[$this->c_class->get_name()];
$display_vars = $this->c_class->get_template_acp($module_id); $display_vars = $this->c_class->get_template_acp($module_id);
$this->template->assign_vars(array( $this->template->assign_vars(array(
@@ -129,7 +140,7 @@ class portal_module
'MODULE_IMAGE' => $module_data['module_image_src'], 'MODULE_IMAGE' => $module_data['module_image_src'],
'MODULE_IMAGE_WIDTH' => $module_data['module_image_width'], 'MODULE_IMAGE_WIDTH' => $module_data['module_image_width'],
'MODULE_IMAGE_HEIGHT' => $module_data['module_image_height'], 'MODULE_IMAGE_HEIGHT' => $module_data['module_image_height'],
'MODULE_IMAGE_SRC' => ($module_data['module_image_src']) ? $this->root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/' . $module_data['module_image_src'] : '', 'MODULE_IMAGE_SRC' => ($module_data['module_image_src']) ? $this->root_path . 'styles/all/theme/images/portal/' . $module_data['module_image_src'] : '',
'MODULE_ENABLED' => ($module_data['module_status']) ? true : false, 'MODULE_ENABLED' => ($module_data['module_status']) ? true : false,
'MODULE_SHOW_IMAGE' => (in_array($this->portal_columns->number_to_string($module_data['module_column']), array('center', 'top', 'bottom'))) ? false : true, 'MODULE_SHOW_IMAGE' => (in_array($this->portal_columns->number_to_string($module_data['module_column']), array('center', 'top', 'bottom'))) ? false : true,
)); ));
@@ -215,11 +226,11 @@ class portal_module
if ($null['submit'][0] == 'board3.portal.modules_helper') if ($null['submit'][0] == 'board3.portal.modules_helper')
{ {
$func = array($this->modules_helper, $null['submit'][1]); $func = array($this->modules_helper, $null['submit'][1]);
$args = ($module_id != 0) ? array($config_name, $module_id) : $config_name; $args = ($module_id != 0) ? array($config_name, $module_id) : array($config_name);
} }
else else
{ {
$args = ($module_id != 0) ? array($cfg_array[$config_name], $config_name, $module_id) : $config_name; $args = ($module_id != 0) ? array($cfg_array[$config_name], $config_name, $module_id) : array($config_name);
$func = $null['submit']; $func = $null['submit'];
} }
} }
@@ -285,7 +296,7 @@ class portal_module
WHERE module_id = ' . (int) $module_id; WHERE module_id = ' . (int) $module_id;
$this->db->sql_query($sql); $this->db->sql_query($sql);
$this->cache->destroy('portal_modules'); $this->cache->destroy('sql', PORTAL_MODULES_TABLE);
$this->cache->destroy('sql', CONFIG_TABLE); $this->cache->destroy('sql', CONFIG_TABLE);
if(isset($module_name)) if(isset($module_name))
@@ -299,7 +310,7 @@ class portal_module
{ {
$this->log->add('admin', $this->user->data['user_id'], $this->user->data['user_ip'], 'LOG_PORTAL_CONFIG', false, array($this->user->lang['ACP_PORTAL_' . strtoupper($mode) . '_INFO'])); $this->log->add('admin', $this->user->data['user_id'], $this->user->data['user_ip'], 'LOG_PORTAL_CONFIG', false, array($this->user->lang['ACP_PORTAL_' . strtoupper($mode) . '_INFO']));
} }
trigger_error($this->user->lang['CONFIG_UPDATED'] . ((!empty($img_error) ? '<br /><br />' . $this->user->lang['MODULE_IMAGE_ERROR'] . '<br />' . $img_error : '')) . adm_back_link(($module_id) ? append_sid("{$this->phpbb_root_path}adm/index.{$this->php_ext}", 'i=\board3\portal\acp\portal_module&amp;mode=modules') : $this->u_action)); trigger_error($this->user->lang['CONFIG_UPDATED'] . ((!empty($img_error) ? '<br /><br />' . $this->user->lang['MODULE_IMAGE_ERROR'] . '<br />' . $img_error : '')) . adm_back_link(($module_id) ? append_sid("{$this->phpbb_admin_path}index.{$this->php_ext}", 'i=\board3\portal\acp\portal_module&amp;mode=modules') : $this->u_action));
} }
// show custom HTML files on the settings page of the modules instead of the standard board3 portal one, if chosen by module // show custom HTML files on the settings page of the modules instead of the standard board3 portal one, if chosen by module
@@ -534,10 +545,9 @@ class portal_module
if ($module->get_allowed_columns() & $this->portal_columns->string_to_constant($add_module)) if ($module->get_allowed_columns() & $this->portal_columns->string_to_constant($add_module))
{ {
if ($module->get_language()) // Load module language
{ $this->board3_controller_helper->load_module_language($module);
$this->user->add_lang_ext('board3/portal', 'modules/' . $module->get_language());
}
$fileinfo[] = array( $fileinfo[] = array(
'module' => $module_class, 'module' => $module_class,
'name' => $this->user->lang[$module->get_name()], 'name' => $this->user->lang[$module->get_name()],
@@ -597,10 +607,9 @@ class portal_module
continue; continue;
} }
if ($this->c_class->get_language()) // Load module language
{ $this->board3_controller_helper->load_module_language($this->c_class);
$this->user->add_lang_ext('board3/portal', 'modules/' . $this->c_class->get_language());
}
$template_column = $this->portal_columns->number_to_string($row['module_column']); $template_column = $this->portal_columns->number_to_string($row['module_column']);
// find out of we can move modules to the left or right // find out of we can move modules to the left or right
@@ -666,7 +675,7 @@ class portal_module
$this->template->assign_block_vars('modules_' . $template_column, array( $this->template->assign_block_vars('modules_' . $template_column, array(
'MODULE_NAME' => (isset($this->user->lang[$row['module_name']])) ? $this->user->lang[$row['module_name']] : $row['module_name'], 'MODULE_NAME' => (isset($this->user->lang[$row['module_name']])) ? $this->user->lang[$row['module_name']] : $row['module_name'],
'MODULE_IMAGE' => ($row['module_image_src']) ? '<img src="' . $this->root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/' . $row['module_image_src'] . '" alt="' . $row['module_name'] . '" />' : '', 'MODULE_IMAGE' => ($row['module_image_src']) ? '<img src="' . $this->root_path . 'styles/all/theme/images/portal/' . $row['module_image_src'] . '" alt="' . $row['module_name'] . '" />' : '',
'MODULE_ENABLED' => ($row['module_status']) ? true : false, 'MODULE_ENABLED' => ($row['module_status']) ? true : false,
'U_DELETE' => $this->modules_manager->get_module_link('modules', $row['module_id']) . '&amp;action=delete&amp;module_classname=' . $row['module_classname'], 'U_DELETE' => $this->modules_manager->get_module_link('modules', $row['module_id']) . '&amp;action=delete&amp;module_classname=' . $row['module_classname'],
@@ -683,6 +692,7 @@ class portal_module
'ICON_MOVE_LEFT_DISABLED' => '<img src="' . $this->root_path . 'adm/images/icon_left_disabled.gif" alt="' . $this->user->lang['MOVE_LEFT'] . '" title="' . $this->user->lang['MOVE_LEFT'] . '" />', 'ICON_MOVE_LEFT_DISABLED' => '<img src="' . $this->root_path . 'adm/images/icon_left_disabled.gif" alt="' . $this->user->lang['MOVE_LEFT'] . '" title="' . $this->user->lang['MOVE_LEFT'] . '" />',
'ICON_MOVE_RIGHT' => '<img src="' . $this->root_path . 'adm/images/icon_right.gif" alt="' . $this->user->lang['MOVE_RIGHT'] . '" title="' . $this->user->lang['MOVE_RIGHT'] . '" />', 'ICON_MOVE_RIGHT' => '<img src="' . $this->root_path . 'adm/images/icon_right.gif" alt="' . $this->user->lang['MOVE_RIGHT'] . '" title="' . $this->user->lang['MOVE_RIGHT'] . '" />',
'ICON_MOVE_RIGHT_DISABLED' => '<img src="' . $this->root_path . 'adm/images/icon_right_disabled.gif" alt="' . $this->user->lang['MOVE_RIGHT'] . '" title="' . $this->user->lang['MOVE_RIGHT'] . '" />', 'ICON_MOVE_RIGHT_DISABLED' => '<img src="' . $this->root_path . 'adm/images/icon_right_disabled.gif" alt="' . $this->user->lang['MOVE_RIGHT'] . '" title="' . $this->user->lang['MOVE_RIGHT'] . '" />',
'B3P_U_ACTION' => $this->modules_manager->get_module_link('modules', $module_id),
)); ));
} }

View File

@@ -45,7 +45,7 @@
<h1>{L_ACP_PORTAL_MODULES}</h1> <h1>{L_ACP_PORTAL_MODULES}</h1>
<p>{L_ACP_PORTAL_MODULES_EXP}</p> <p>{L_ACP_PORTAL_MODULES_EXP}</p>
<form id="acp_portal_modules" method="post" action="{U_ACTION}" data-ajax="true"> <form id="acp_portal_modules" method="post" action="{B3P_U_ACTION}" data-ajax="true">
<fieldset class="tabulated"> <fieldset class="tabulated">
<legend>{L_ACP_PORTAL_MODULES}</legend> <legend>{L_ACP_PORTAL_MODULES}</legend>

134
build.xml Normal file
View File

@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="Extension Builder" description="Builds an extension.zip from a git repository" default="all">
<property name="vendor-name" value="board3" />
<property name="extension-name" value="portal" />
<!--
Only set this to "true" if you have dependencies in the composer.json,
otherwise use "false".
-->
<property name="has-dependencies" value="true" />
<target name="clean-package">
<!--
Remove some unnecessary files/directories
${dir}/ is the folder of your extension, e.g. ext/nickvergessen/newspage/
-->
<delete dir="${dir}/tests" />
<delete dir="${dir}/travis" />
<delete dir="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/src/Nickvergessen/TrimMessage/Tests" />
<delete dir="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/tests" />
<delete file="${dir}/.gitignore" />
<delete file="${dir}/.gitattributes" />
<delete file="${dir}/.travis.yml" />
<delete file="${dir}/build.xml" />
<delete file="${dir}/composer.lock" />
<delete file="${dir}/composer.phar" />
<delete file="${dir}/phpunit.xml.dist" />
<delete file="${dir}/README.md" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/composer.lock" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/composer.phar" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/phpunit.xml" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/README.md" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/.gitignore" />
<delete file="${dir}/vendor/nickvergessen/phpbb-tool-trimmessage/.travis.yml" />
</target>
<!--
TODO: DO NOT EDIT BELOW THIS LINE!!!!
-->
<property name="version" value="HEAD" override="true" />
<property name="build-directory" value="build" override="true" />
<property name="package-directory" value="${build-directory}/package/${vendor-name}/${extension-name}" />
<property name="phpbb-root" value="${build-directory}/../../../../../" />
<!-- These are the main targets which you will probably want to use -->
<target name="all" depends="prepare-structure,package" />
<!--
Clean up the build directory
-->
<target name="clean">
<delete dir="${build-directory}" />
</target>
<target name="composer">
<exec dir="${build-directory}/../"
command="php composer.phar install"
passthru="true" />
</target>
<target name="test" depends="clean,composer">
<exec dir="${phpbb-root}"
command="phpBB/vendor/bin/phpunit
-c phpBB/ext/${vendor-name}/${extension-name}/"
passthru="true" />
</target>
<target name="test-slow" depends="clean,composer">
<exec dir="${phpbb-root}"
command="phpBB/vendor/bin/phpunit
-c phpBB/ext/${vendor-name}/${extension-name}/
--group slow"
passthru="true" />
</target>
<!--
Recreate the necessary folders
-->
<target name="prepare-structure" depends="clean,composer,test,test-slow">
<mkdir dir="${build-directory}" />
<mkdir dir="${build-directory}/checkout" />
<mkdir dir="${build-directory}/package" />
<mkdir dir="${build-directory}/package/${vendor-name}" />
<mkdir dir="${build-directory}/package/${vendor-name}/${extension-name}" />
<mkdir dir="${build-directory}/upload" />
</target>
<!--
The real packaging
-->
<target name="package">
<echo msg="Extracting ${version}" />
<phingcall target="git-checkout">
<property name="archive-version" value="${version}" />
</phingcall>
<if>
<equals arg1="${has-dependencies}" arg2="1" />
<then>
<exec dir="${package-directory}" command="php composer.phar install --no-dev"
checkreturn="true" />
</then>
</if>
<phingcall target="clean-package">
<property name="dir" value="${package-directory}" />
</phingcall>
<phingcall target="wrap-package">
<property name="destination-filename" value="${build-directory}/upload/${vendor-name}_${extension-name}-${version}" />
</phingcall>
</target>
<!--
Checkout a given version and install/clean the dependencies
-->
<target name="git-checkout">
<echo msg="Getting archive for ${archive-version}" />
<exec command="git archive ${archive-version} --format zip --output ${build-directory}/checkout/${archive-version}.zip"
checkreturn="true" />
<unzip file="${build-directory}/checkout/${archive-version}.zip" todir="${package-directory}" />
</target>
<!--
Create the zip and tar ball
-->
<target name="wrap-package">
<echo msg="Creating archives (${vendor-name}/${extension-name} ${version})" />
<zip basedir="${build-directory}/package/" destfile="${destination-filename}.zip" />
</target>
</project>

View File

@@ -3,8 +3,8 @@
"type": "phpbb-extension", "type": "phpbb-extension",
"description": "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.", "description": "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.",
"homepage": "http://www.board3.de", "homepage": "http://www.board3.de",
"version": "2.1.0-rc2", "version": "2.1.0-rc3",
"time": "2015-02-07 16:41:42", "time": "2015-05-07 14:01:15",
"license": "GPL-2.0", "license": "GPL-2.0",
"authors": [{ "authors": [{
"name": "Marc Alexander", "name": "Marc Alexander",
@@ -28,7 +28,7 @@
"extra": { "extra": {
"display-name": "Board3 Portal", "display-name": "Board3 Portal",
"soft-require": { "soft-require": {
"phpbb/phpbb": ">=3.1.3,<3.2.*@dev" "phpbb/phpbb": ">=3.1.4,<3.2.*@dev"
}, },
"version-check": { "version-check": {
"host": "board3.de", "host": "board3.de",

73
composer.lock generated
View File

@@ -4,20 +4,20 @@
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"hash": "fcaf26c5c7d6cd3f177ec06f4ce681e6", "hash": "b5a11feb74a85a9825b7b83aaaf8fa0e",
"packages": [ "packages": [
{ {
"name": "nickvergessen/phpbb-tool-trimmessage", "name": "nickvergessen/phpbb-tool-trimmessage",
"version": "1.3.0", "version": "1.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nickvergessen/phpbb-tool-trimmessage.git", "url": "https://github.com/nickvergessen/phpbb-tool-trimmessage.git",
"reference": "2a3d8273dc1238dd06454688bcb6496f62f66c3b" "reference": "0ed883bc2d473ec2e84cabb9c9395785daeeebcf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nickvergessen/phpbb-tool-trimmessage/zipball/2a3d8273dc1238dd06454688bcb6496f62f66c3b", "url": "https://api.github.com/repos/nickvergessen/phpbb-tool-trimmessage/zipball/0ed883bc2d473ec2e84cabb9c9395785daeeebcf",
"reference": "2a3d8273dc1238dd06454688bcb6496f62f66c3b", "reference": "0ed883bc2d473ec2e84cabb9c9395785daeeebcf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -46,7 +46,7 @@
], ],
"description": "This tool contains a class, that is able to trim a message from the phpbb message_parser to a maximum length without breaking the bbcodes/smilies and links.", "description": "This tool contains a class, that is able to trim a message from the phpbb message_parser to a maximum length without breaking the bbcodes/smilies and links.",
"homepage": "https://github.com/nickvergessen/phpbb-tool-trimmessage", "homepage": "https://github.com/nickvergessen/phpbb-tool-trimmessage",
"time": "2014-07-06 19:42:34" "time": "2015-04-17 16:41:50"
} }
], ],
"packages-dev": [ "packages-dev": [
@@ -153,12 +153,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpbb/epv.git", "url": "https://github.com/phpbb/epv.git",
"reference": "07e017ea9d92581d5b83066469eb33b4b2a8f6ed" "reference": "75df9936ffbb8f05a1351cf622cf6f41c7d2d9f2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpbb/epv/zipball/07e017ea9d92581d5b83066469eb33b4b2a8f6ed", "url": "https://api.github.com/repos/phpbb/epv/zipball/75df9936ffbb8f05a1351cf622cf6f41c7d2d9f2",
"reference": "07e017ea9d92581d5b83066469eb33b4b2a8f6ed", "reference": "75df9936ffbb8f05a1351cf622cf6f41c7d2d9f2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -171,7 +171,8 @@
"symfony/yaml": ">=2.3.0|>=2.4.0|>=2.5.0" "symfony/yaml": ">=2.3.0|>=2.4.0|>=2.5.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "4.0.*" "phpunit/phpunit": "4.4.*",
"phpunit/phpunit-mock-objects": "2.3.*"
}, },
"bin": [ "bin": [
"src/EPV.php" "src/EPV.php"
@@ -193,7 +194,7 @@
} }
], ],
"description": "A extension validator for phpBB extensions. Extensions are required to pass the validator when submitted to the extension database.", "description": "A extension validator for phpBB extensions. Extensions are required to pass the validator when submitted to the extension database.",
"time": "2014-12-13 10:15:27" "time": "2015-02-12 12:13:06"
}, },
{ {
"name": "sensiolabs/ansi-to-html", "name": "sensiolabs/ansi-to-html",
@@ -241,17 +242,17 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v2.6.3", "version": "v2.6.5",
"target-dir": "Symfony/Component/Console", "target-dir": "Symfony/Component/Console",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Console.git", "url": "https://github.com/symfony/Console.git",
"reference": "6ac6491ff60c0e5a941db3ccdc75a07adbb61476" "reference": "53f86497ccd01677e22435cfb7262599450a90d1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Console/zipball/6ac6491ff60c0e5a941db3ccdc75a07adbb61476", "url": "https://api.github.com/repos/symfony/Console/zipball/53f86497ccd01677e22435cfb7262599450a90d1",
"reference": "6ac6491ff60c0e5a941db3ccdc75a07adbb61476", "reference": "53f86497ccd01677e22435cfb7262599450a90d1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -260,6 +261,7 @@
"require-dev": { "require-dev": {
"psr/log": "~1.0", "psr/log": "~1.0",
"symfony/event-dispatcher": "~2.1", "symfony/event-dispatcher": "~2.1",
"symfony/phpunit-bridge": "~2.7",
"symfony/process": "~2.1" "symfony/process": "~2.1"
}, },
"suggest": { "suggest": {
@@ -294,26 +296,29 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2015-01-06 17:50:02" "time": "2015-03-13 17:37:22"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v2.6.3", "version": "v2.6.5",
"target-dir": "Symfony/Component/Finder", "target-dir": "Symfony/Component/Finder",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Finder.git", "url": "https://github.com/symfony/Finder.git",
"reference": "16513333bca64186c01609961a2bb1b95b5e1355" "reference": "bebc7479c566fa4f14b9bcef9e32e719eabec74e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/16513333bca64186c01609961a2bb1b95b5e1355", "url": "https://api.github.com/repos/symfony/Finder/zipball/bebc7479c566fa4f14b9bcef9e32e719eabec74e",
"reference": "16513333bca64186c01609961a2bb1b95b5e1355", "reference": "bebc7479c566fa4f14b9bcef9e32e719eabec74e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=5.3.3"
}, },
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -341,26 +346,29 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2015-01-03 08:01:59" "time": "2015-03-12 10:28:44"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v2.6.3", "version": "v2.6.5",
"target-dir": "Symfony/Component/Process", "target-dir": "Symfony/Component/Process",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Process.git", "url": "https://github.com/symfony/Process.git",
"reference": "319794f611bd8bdefbac72beb3f05e847f8ebc92" "reference": "4d717f34f3d1d6ab30fbe79f7132960a27f4a0dc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/319794f611bd8bdefbac72beb3f05e847f8ebc92", "url": "https://api.github.com/repos/symfony/Process/zipball/4d717f34f3d1d6ab30fbe79f7132960a27f4a0dc",
"reference": "319794f611bd8bdefbac72beb3f05e847f8ebc92", "reference": "4d717f34f3d1d6ab30fbe79f7132960a27f4a0dc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=5.3.3"
}, },
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -388,26 +396,29 @@
], ],
"description": "Symfony Process Component", "description": "Symfony Process Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2015-01-06 22:47:52" "time": "2015-03-12 10:28:44"
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v2.6.3", "version": "v2.6.5",
"target-dir": "Symfony/Component/Yaml", "target-dir": "Symfony/Component/Yaml",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/Yaml.git", "url": "https://github.com/symfony/Yaml.git",
"reference": "82462a90848a52c2533aa6b598b107d68076b018" "reference": "0cd8e72071e46e15fc072270ae39ea1b66b10a9d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/82462a90848a52c2533aa6b598b107d68076b018", "url": "https://api.github.com/repos/symfony/Yaml/zipball/0cd8e72071e46e15fc072270ae39ea1b66b10a9d",
"reference": "82462a90848a52c2533aa6b598b107d68076b018", "reference": "0cd8e72071e46e15fc072270ae39ea1b66b10a9d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=5.3.3"
}, },
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@@ -435,7 +446,7 @@
], ],
"description": "Symfony Yaml Component", "description": "Symfony Yaml Component",
"homepage": "http://symfony.com", "homepage": "http://symfony.com",
"time": "2015-01-03 15:33:07" "time": "2015-03-12 10:28:44"
} }
], ],
"aliases": [], "aliases": [],

Binary file not shown.

View File

@@ -311,6 +311,7 @@ services:
class: board3\portal\modules\whois_online class: board3\portal\modules\whois_online
arguments: arguments:
- @auth - @auth
- @config
- @dbal.conn - @dbal.conn
- @template - @template
- @user - @user

View File

@@ -1,5 +1,5 @@
board3_portal_controller: board3_portal_controller:
pattern: /portal path: /portal
defaults: { _controller: board3.portal.main:handle } defaults: { _controller: board3.portal.main:handle }
# This is currently not supported yet # This is currently not supported yet
@@ -9,5 +9,5 @@ board3_portal_controller:
# Redirect to portal by default # Redirect to portal by default
board3_portal_redirect_controller: board3_portal_redirect_controller:
pattern: / path: /
defaults: { _controller: board3.portal.main:handle } defaults: { _controller: board3.portal.main:handle }

View File

@@ -87,6 +87,7 @@ services:
board3.portal.listener: board3.portal.listener:
class: board3\portal\event\listener class: board3\portal\event\listener
arguments: arguments:
- @board3.portal.main
- @auth - @auth
- @config - @config
- @controller.helper - @controller.helper
@@ -102,6 +103,7 @@ services:
arguments: arguments:
- @cache - @cache
- @dbal.conn - @dbal.conn
- @board3.portal.controller_helper
- @board3.portal.columns - @board3.portal.columns
- @board3.portal.helper - @board3.portal.helper
- @board3.portal.modules.constraints_handler - @board3.portal.modules.constraints_handler

View File

@@ -226,8 +226,8 @@ class helper
if (is_array($template_module)) if (is_array($template_module))
{ {
$this->template->assign_block_vars('modules_' . $this->portal_columns->number_to_string($row['module_column']), array( $this->template->assign_block_vars('modules_' . $this->portal_columns->number_to_string($row['module_column']), array(
'TEMPLATE_FILE' => 'portal/modules/' . $template_module['template'], 'TEMPLATE_FILE' => $this->parse_template_file($template_module['template']),
'IMAGE_SRC' => $this->path_helper->get_web_root_path() . $this->root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/' . $template_module['image_src'], 'IMAGE_SRC' => $this->path_helper->get_web_root_path() . ltrim($this->root_path . 'styles/all/theme/images/portal/' . $template_module['image_src'], './'),
'TITLE' => $template_module['title'], 'TITLE' => $template_module['title'],
'CODE' => $template_module['code'], 'CODE' => $template_module['code'],
'MODULE_ID' => $row['module_id'], 'MODULE_ID' => $row['module_id'],
@@ -238,8 +238,8 @@ class helper
else else
{ {
$this->template->assign_block_vars('modules_' . $this->portal_columns->number_to_string($row['module_column']), array( $this->template->assign_block_vars('modules_' . $this->portal_columns->number_to_string($row['module_column']), array(
'TEMPLATE_FILE' => 'portal/modules/' . $template_module, 'TEMPLATE_FILE' => $this->parse_template_file($template_module),
'IMAGE_SRC' => $this->path_helper->get_web_root_path() . $this->root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/' . $row['module_image_src'], 'IMAGE_SRC' => $this->path_helper->get_web_root_path() . ltrim($this->root_path . 'styles/all/theme/images/portal/' . $row['module_image_src'], './'),
'IMAGE_WIDTH' => $row['module_image_width'], 'IMAGE_WIDTH' => $row['module_image_width'],
'IMAGE_HEIGHT' => $row['module_image_height'], 'IMAGE_HEIGHT' => $row['module_image_height'],
'MODULE_ID' => $row['module_id'], 'MODULE_ID' => $row['module_id'],
@@ -264,4 +264,21 @@ class helper
// Obtain portal config // Obtain portal config
obtain_portal_config(); obtain_portal_config();
} }
/**
* Parse template file by prefixing default modules with the portal path
*
* @param string $template_file HTML template
*
* @return string Parsed template file
*/
protected function parse_template_file($template_file)
{
if (strpos($template_file, '@') === false)
{
$template_file = 'portal/modules/' . $template_file;
}
return $template_file;
}
} }

View File

@@ -80,6 +80,12 @@ class main
*/ */
protected $portal_modules; protected $portal_modules;
/** @var int Allowed columns */
protected $allowed_columns;
/** @var bool Portal active flag */
protected $portal_active = false;
/** /**
* Constructor * Constructor
* NOTE: The parameters of this method must match in order and type with * NOTE: The parameters of this method must match in order and type with
@@ -123,12 +129,27 @@ class main
/** /**
* Extension front handler method. This is called automatically when your extension is accessed * Extension front handler method. This is called automatically when your extension is accessed
* through index.php?ext=example/foobar * through index.php?ext=example/foobar
*
* @param array $columns Columns to display
*
* @return null * @return null
*/ */
public function handle() public function handle($columns = array())
{ {
// Do not run portal if it's already active
if ($this->portal_active)
{
return;
}
$this->controller_helper->run_initial_tasks(); $this->controller_helper->run_initial_tasks();
// Set portal active
$this->portal_active = true;
// Check if we should limit the columns to display
$this->set_allowed_columns($columns);
// Set default data // Set default data
$this->portal_modules = obtain_portal_modules(); $this->portal_modules = obtain_portal_modules();
$display_online = false; $display_online = false;
@@ -181,6 +202,14 @@ class main
// Assign specific vars // Assign specific vars
$this->assign_template_vars(); $this->assign_template_vars();
// Return if columns were specified. Columns are only specified if
// portal columns are displayed on pages other than the portal itself.
if ($this->allowed_columns !== 0)
{
$this->template->assign_var('S_PORTAL_ALL', true);
return;
}
// And now to output the page. // And now to output the page.
page_header($this->user->lang('PORTAL'), $display_online); page_header($this->user->lang('PORTAL'), $display_online);
@@ -206,8 +235,15 @@ class main
public function get_module_template($row, $module) public function get_module_template($row, $module)
{ {
$template_module = false; $template_module = false;
$column = $this->portal_columns->number_to_string($row['module_column']); $column = $this->portal_columns->number_to_string($row['module_column']);
// Make sure we should actually load this module
if (!$this->display_module_allowed($this->portal_columns->string_to_constant($column)))
{
return false;
}
if (in_array($column, array('left', 'right')) && $this->config['board3_' . $column . '_column']) if (in_array($column, array('left', 'right')) && $this->config['board3_' . $column . '_column'])
{ {
++$this->module_count[$column]; ++$this->module_count[$column];
@@ -252,7 +288,7 @@ class main
'S_BOTTOM_COLUMN' => $this->check_module_count('bottom'), 'S_BOTTOM_COLUMN' => $this->check_module_count('bottom'),
'S_DISPLAY_PHPBB_MENU' => $this->config['board3_phpbb_menu'], 'S_DISPLAY_PHPBB_MENU' => $this->config['board3_phpbb_menu'],
'B3P_DISPLAY_JUMPBOX' => $this->config['board3_display_jumpbox'], 'B3P_DISPLAY_JUMPBOX' => $this->config['board3_display_jumpbox'],
'T_EXT_THEME_PATH' => $this->path_helper->get_web_root_path() . $this->root_path . 'styles/' . $this->user->style['style_path'] . '/theme/', 'T_EXT_THEME_PATH' => $this->path_helper->get_web_root_path() . ltrim($this->root_path . 'styles/' . $this->user->style['style_path'] . '/theme/', './'),
)); ));
} }
@@ -282,4 +318,36 @@ class main
make_jumpbox(append_sid("{$this->phpbb_root_path}viewforum{$this->php_ext}")); make_jumpbox(append_sid("{$this->phpbb_root_path}viewforum{$this->php_ext}"));
} }
} }
/**
* Check whether displaying the module is allowed
*
* @param int $module_column The column of the module
*
* @return bool True if module can be displayed, false if not
*/
protected function display_module_allowed($module_column)
{
return ($this->allowed_columns > 0) ? (bool) ($this->allowed_columns & $module_column) : true;
}
/**
* Set allowed columns based on supplied columns array
*
* @param array $columns Allowed columns
*/
protected function set_allowed_columns($columns)
{
if (!empty($columns))
{
foreach ($columns as $column => $show)
{
$this->allowed_columns |= ($show) ? $this->portal_columns->string_to_constant($column) : 0;
}
}
else
{
$this->allowed_columns = 0;
}
}
} }

View File

@@ -13,6 +13,9 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class listener implements EventSubscriberInterface class listener implements EventSubscriberInterface
{ {
/** @var \board3\portal\controller\main */
protected $board3_controller;
/** @var \phpbb\auth\auth */ /** @var \phpbb\auth\auth */
protected $auth; protected $auth;
@@ -37,6 +40,7 @@ class listener implements EventSubscriberInterface
/** /**
* Constructor of Board3 Portal event listener * Constructor of Board3 Portal event listener
* *
* @param \board3\portal\controller\main $board3_controller Board3 Portal controller
* @param \phpbb\auth\auth $auth phpBB auth object * @param \phpbb\auth\auth $auth phpBB auth object
* @param \phpbb\config\config $config phpBB config * @param \phpbb\config\config $config phpBB config
* @param \phpbb\controller\helper $controller_helper Controller helper object * @param \phpbb\controller\helper $controller_helper Controller helper object
@@ -45,8 +49,9 @@ class listener implements EventSubscriberInterface
* @param \phpbb\user $user User object * @param \phpbb\user $user User object
* @param string $php_ext phpEx * @param string $php_ext phpEx
*/ */
public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\controller\helper $controller_helper, \phpbb\path_helper $path_helper, \phpbb\template\template $template, \phpbb\user $user, $php_ext) public function __construct(\board3\portal\controller\main $board3_controller, \phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\controller\helper $controller_helper, \phpbb\path_helper $path_helper, \phpbb\template\template $template, \phpbb\user $user, $php_ext)
{ {
$this->board3_controller = $board3_controller;
$this->auth = $auth; $this->auth = $auth;
$this->config = $config; $this->config = $config;
$this->controller_helper = $controller_helper; $this->controller_helper = $controller_helper;
@@ -113,9 +118,10 @@ class listener implements EventSubscriberInterface
return; return;
} }
if (strpos($this->user->data['session_page'], '/portal') === false) if (strpos($this->controller_helper->get_current_url(), '/portal') === false)
{ {
$portal_link = $this->controller_helper->route('board3_portal_controller'); $portal_link = $this->controller_helper->route('board3_portal_controller');
$this->check_portal_all();
} }
else else
{ {
@@ -136,4 +142,37 @@ class listener implements EventSubscriberInterface
{ {
return $this->auth->acl_get('u_view_portal') && $this->config['board3_enable']; return $this->auth->acl_get('u_view_portal') && $this->config['board3_enable'];
} }
/**
* Check if portal on all pages should be shown and display it accordignly
*/
protected function check_portal_all()
{
// Check if we should show the portal
if (isset($this->config['board3_show_all_pages']) && $this->config['board3_show_all_pages'] && !$this->board_disabled())
{
$this->display_portal();
}
}
/**
* Display portal on all pages
*/
protected function display_portal()
{
$this->board3_controller->handle(array(
'left' => $this->config['board3_show_all_side'] == false,
'right' => $this->config['board3_show_all_side'] == true,
));
}
/**
* Check whether the board has been disabled and should not be shown
*
* @return bool True if board has been disabled, false if not
*/
protected function board_disabled()
{
return $this->config['board_disable'] && !defined('IN_LOGIN') && !defined('SKIP_CHECK_DISABLED') && !$this->auth->acl_gets('a_', 'm_') && !$this->auth->acl_getf_global('m_');
}
} }

View File

@@ -70,32 +70,26 @@ function set_portal_config($config_name, $config_value)
} }
/** /**
* Get portal modules * Get portal modules
*/ *
* @return array Portal modules array
*/
function obtain_portal_modules() function obtain_portal_modules()
{ {
global $db, $cache, $portal_modules; global $db;
if (($portal_modules = $cache->get('portal_modules')) === false || defined('DEBUG')) $portal_modules = array();
$sql = 'SELECT *
FROM ' . PORTAL_MODULES_TABLE . '
ORDER BY module_order ASC';
$result = $db->sql_query($sql, 3600);
while ($row = $db->sql_fetchrow($result))
{ {
$portal_modules = $portal_cached_modules = array(); $portal_modules[] = $row;
$sql = 'SELECT *
FROM ' . PORTAL_MODULES_TABLE . '
ORDER BY module_order ASC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$portal_cached_modules[] = $row;
$portal_modules[] = $row;
}
$db->sql_freeresult($result);
$cache->put('portal_modules', $portal_cached_modules);
} }
$db->sql_freeresult($result);
return $portal_modules; return $portal_modules;
} }
@@ -200,7 +194,7 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
$on_page = floor($start_item / $per_page) + 1; $on_page = floor($start_item / $per_page) + 1;
$url_delim = (strpos($base_url, '?') === false) ? '?' : '&amp;'; $url_delim = (strpos($base_url, '?') === false) ? '?' : '&amp;';
$page_string = ($on_page == 1) ? '<ul><li class="active"><span>1</span></li>' : '<ul><li><a href="' . $base_url . $anker .'">1</a></li>'; $page_string = ($on_page == 1) ? '<ul><li class="active"><span>1</span></li>' : '<ul><li><a href="' . $base_url . $anker .'" role="button">1</a></li>';
if ($total_pages > 5) if ($total_pages > 5)
{ {
@@ -212,7 +206,7 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
for ($i = $start_cnt + 1; $i < $end_cnt; ++$i) for ($i = $start_cnt + 1; $i < $end_cnt; ++$i)
{ {
$page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '">' . $i . '</a></li>'; $page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '" role="button">' . $i . '</a></li>';
if ($i < $end_cnt - 1) if ($i < $end_cnt - 1)
{ {
$page_string .= $seperator; $page_string .= $seperator;
@@ -228,25 +222,25 @@ function generate_portal_pagination($base_url, $num_items, $per_page, $start_ite
for ($i = 2; $i < $total_pages; ++$i) for ($i = 2; $i < $total_pages; ++$i)
{ {
$page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '">' . $i . '</a></li>'; $page_string .= ($i == $on_page) ? '<li class="active"><span>' . $i . '</span></li>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($i - 1) * $per_page) . $anker . '" role="button">' . $i . '</a></li>';
if ($i < $total_pages) if ($i < $total_pages)
{ {
$page_string .= $seperator; $page_string .= $seperator;
} }
} }
} }
$page_string .= ($on_page == $total_pages) ? '<li class="active"><span>' . $total_pages . '</span></li></ul>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($total_pages - 1) * $per_page) . $anker . '">' . $total_pages . '</a></li></ul>'; $page_string .= ($on_page == $total_pages) ? '<li class="active"><span>' . $total_pages . '</span></li></ul>' : '<li><a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($total_pages - 1) * $per_page) . $anker . '" role="button">' . $total_pages . '</a></li></ul>';
if ($add_prevnext_text) if ($add_prevnext_text)
{ {
if ($on_page != 1) if ($on_page != 1)
{ {
$page_string = '<a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($on_page - 2) * $per_page) . $anker . '">' . $user->lang['PREVIOUS'] . '</a>&nbsp;&nbsp;' . $page_string; $page_string = '<a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . (($on_page - 2) * $per_page) . $anker . '" role="button">' . $user->lang['PREVIOUS'] . '</a>&nbsp;&nbsp;' . $page_string;
} }
if ($on_page != $total_pages) if ($on_page != $total_pages)
{ {
$page_string .= '&nbsp;&nbsp;<a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . ($on_page * $per_page) . $anker . '">' . $user->lang['NEXT'] . '</a>'; $page_string .= '&nbsp;&nbsp;<a href="' . $base_url . "{$url_delim}" . $pagination_type . '=' . ($on_page * $per_page) . $anker . '" role="button">' . $user->lang['NEXT'] . '</a>';
} }
} }
@@ -433,36 +427,24 @@ function get_portal_tracking_info($fetch_news)
*/ */
function check_file_src($value, $key, $module_id, $force_error = true) function check_file_src($value, $key, $module_id, $force_error = true)
{ {
global $db, $phpbb_root_path, $phpEx, $user; global $phpbb_admin_path, $portal_root_path, $phpEx, $user;
$error = ''; $error = '';
// We check if the chosen file is present in all active styles // We check if the chosen file is present in the styles/all/ folder
$sql = 'SELECT style_path if (!file_exists($portal_root_path . 'styles/all/theme/images/portal/' . $value))
FROM ' . STYLES_TABLE . '
WHERE style_active = 1';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{ {
if (!file_exists($phpbb_root_path . 'styles/' . $row['style_path'] . '/theme/images/portal/' . $value) && $error .= $user->lang['B3P_FILE_NOT_FOUND'] . ': styles/all/theme/images/portal/' . $value . '<br />';
!file_exists($phpbb_root_path . 'ext/board3/portal/styles/' . $row['style_path'] . '/theme/images/portal/' . $value))
{
$error .= $user->lang['B3P_FILE_NOT_FOUND'] . ': styles/' . $row['style_path'] . '/theme/images/portal/' . $value . '<br />';
}
} }
$db->sql_freeresult($result);
if (!empty($error)) if (!empty($error))
{ {
if ($force_error) if ($force_error)
{ {
trigger_error($error . adm_back_link(append_sid("{$phpbb_root_path}adm/index.$phpEx", 'i=\board3\portal\acp\portal_module&amp;mode=config&amp;module_id=' . $module_id)), E_USER_WARNING); trigger_error($error . adm_back_link(append_sid("{$phpbb_admin_path}index.$phpEx", 'i=\board3\portal\acp\portal_module&amp;mode=config&amp;module_id=' . $module_id)), E_USER_WARNING);
}
else
{
return $error;
} }
return $error;
} }
else else
{ {

View File

@@ -158,4 +158,32 @@ class modules_helper
{ {
return $this->controller_helper->route($route, $params, $is_amp, $session_id, $reference_type); return $this->controller_helper->route($route, $params, $is_amp, $session_id, $reference_type);
} }
/**
* Display radio buttons for left/right choice
*
* @param int $value Selected value
* @param string $key Key of config variable
*
* @return string
*/
public function display_left_right($value, $key)
{
$radio_ary = array(0 => 'PORTAL_SHOW_ALL_LEFT', 1 => 'PORTAL_SHOW_ALL_RIGHT');
return h_radio($key, $radio_ary, $value, $key);
}
/**
* Store left right choice
*
* @param string $key Config key
*/
public function store_left_right($key)
{
// Get selected side
$value = $this->request->variable($key, 0);
$this->config->set($key, $value);
}
} }

View File

@@ -41,6 +41,12 @@ class version_check
*/ */
protected $current_version; protected $current_version;
/** @var array Update data */
protected $update_data;
/** @var array Template data */
protected $template_data;
/** /**
* Construct a version_check object * Construct a version_check object
* *
@@ -65,7 +71,7 @@ class version_check
* returning current version * returning current version
* *
* @param bool $return_version Yes if current version should be returned * @param bool $return_version Yes if current version should be returned
* @return string Current version if $return_version is set to true * @return string|bool Current version if $return_version is set to true, false if not
*/ */
public function check($return_version = false) public function check($return_version = false)
{ {
@@ -76,7 +82,15 @@ class version_check
$this->version_helper->force_stability(($this->config['extension_force_unstable'] || !$this->version_helper->is_stable($this->current_version)) ? 'unstable' : null); $this->version_helper->force_stability(($this->config['extension_force_unstable'] || !$this->version_helper->is_stable($this->current_version)) ? 'unstable' : null);
$updates = $this->version_helper->get_suggested_updates(true); // Expect version_helper to throw RuntimeExceptions
try
{
$this->update_data = $this->version_helper->get_suggested_updates(true);
}
catch (\RuntimeException $e)
{
return false;
}
// Return version if $return_version is set to true // Return version if $return_version is set to true
if ($return_version) if ($return_version)
@@ -84,9 +98,9 @@ class version_check
return $this->current_version; return $this->current_version;
} }
$version_up_to_date = empty($updates); $version_up_to_date = empty($this->update_data);
$template_data = array( $this->template_data = array(
'AUTHOR' => $this->version_data['author'], 'AUTHOR' => $this->version_data['author'],
'CURRENT_VERSION' => $this->current_version, 'CURRENT_VERSION' => $this->current_version,
'UP_TO_DATE' => sprintf((!$version_up_to_date) ? $this->user->lang['NOT_UP_TO_DATE'] : $this->user->lang['UP_TO_DATE'], $this->version_data['title']), 'UP_TO_DATE' => sprintf((!$version_up_to_date) ? $this->user->lang['NOT_UP_TO_DATE'] : $this->user->lang['UP_TO_DATE'], $this->version_data['title']),
@@ -96,15 +110,25 @@ class version_check
'LATEST_VERSION' => $this->current_version, 'LATEST_VERSION' => $this->current_version,
); );
if (!$version_up_to_date) $this->display_update_information();
$this->template->assign_block_vars('mods', $this->template_data);
return false;
}
/**
* Display update information if updates exist
*/
protected function display_update_information()
{
if (!empty($this->update_data))
{ {
$updates = array_shift($updates); $update = array_shift($this->update_data);
$template_data = array_merge($template_data, array( $this->template_data = array_merge($this->template_data, array(
'ANNOUNCEMENT' => (string) $updates['announcement'], 'ANNOUNCEMENT' => (string) $update['announcement'],
'DOWNLOAD' => (string) $updates['download'], 'DOWNLOAD' => (string) $update['download'],
'LATEST_VERSION' => $updates['current'], 'LATEST_VERSION' => $update['current'],
)); ));
} }
$this->template->assign_block_vars('mods', $template_data);
} }
} }

View File

@@ -80,6 +80,8 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_CONFIG_INFO' => 'Allgemeine Einstellungen', 'ACP_PORTAL_CONFIG_INFO' => 'Allgemeine Einstellungen',
'ACP_PORTAL_GENERAL_TITLE' => 'Portal Verwaltung', 'ACP_PORTAL_GENERAL_TITLE' => 'Portal Verwaltung',
'ACP_PORTAL_GENERAL_TITLE_EXP' => 'Danke, dass du dich für board3 Portal entschieden hast. Auf dieser Seite kannst du dein Portal verwalten. Diese Anzeige gibt dir einen schnellen Überblick über die verschiedenen Portal-Einstellungen.', 'ACP_PORTAL_GENERAL_TITLE_EXP' => 'Danke, dass du dich für board3 Portal entschieden hast. Auf dieser Seite kannst du dein Portal verwalten. Diese Anzeige gibt dir einen schnellen Überblick über die verschiedenen Portal-Einstellungen.',
'ACP_PORTAL_SHOW_ALL' => 'Zeige portal auf allen Seiten',
'ACP_PORTAL_SHOW_ALL_EXP' => 'Zeigt das Portal auf allen Seiten des Forums an.',
'PORTAL_ENABLE' => 'Portal aktivieren', 'PORTAL_ENABLE' => 'Portal aktivieren',
'PORTAL_ENABLE_EXP' => 'Wenn deaktiviert, wird das komplette Portal abgeschaltet.', 'PORTAL_ENABLE_EXP' => 'Wenn deaktiviert, wird das komplette Portal abgeschaltet.',
'PORTAL_LEFT_COLUMN' => 'Linke Spalte aktivieren', 'PORTAL_LEFT_COLUMN' => 'Linke Spalte aktivieren',
@@ -94,6 +96,10 @@ $lang = array_merge($lang, array(
'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Ändere hier die Breite der rechten Spalte in Pixel, empfohlener Wert 180', 'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Ändere hier die Breite der rechten Spalte in Pixel, empfohlener Wert 180',
'PORTAL_DISPLAY_JUMPBOX' => 'Zeige Jumpbox', 'PORTAL_DISPLAY_JUMPBOX' => 'Zeige Jumpbox',
'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.', '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.',
'PORTAL_SHOW_ALL_SIDE' => 'Spalte die auf allen Seiten angezeigt werden soll',
'PORTAL_SHOW_ALL_SIDE_EXP' => 'Wähle welche Spalte auf allen seiten des Portals angezeigt werden soll.',
'PORTAL_SHOW_ALL_LEFT' => 'Links',
'PORTAL_SHOW_ALL_RIGHT' => 'Rechts',
'LINK_ADDED' => 'Der Link wurde erfolgreich eingetragen', 'LINK_ADDED' => 'Der Link wurde erfolgreich eingetragen',
'LINK_UPDATED' => 'Der Link wurde erfolgreich geändert', 'LINK_UPDATED' => 'Der Link wurde erfolgreich geändert',

View File

@@ -80,6 +80,8 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_CONFIG_INFO' => 'General settings', 'ACP_PORTAL_CONFIG_INFO' => 'General settings',
'ACP_PORTAL_GENERAL_TITLE' => 'Portal Administration', 'ACP_PORTAL_GENERAL_TITLE' => 'Portal Administration',
'ACP_PORTAL_GENERAL_TITLE_EXP' => 'Thank you for choosing Board3 Portal! This is where you can manage your portal page. The options below let you customize the various general settings.', 'ACP_PORTAL_GENERAL_TITLE_EXP' => 'Thank you for choosing Board3 Portal! This is where you can manage your portal page. The options below let you customize the various general settings.',
'ACP_PORTAL_SHOW_ALL' => 'Show portal on all pages',
'ACP_PORTAL_SHOW_ALL_EXP' => 'Display the portal on all pages',
'PORTAL_ENABLE' => 'Enable Portal', 'PORTAL_ENABLE' => 'Enable Portal',
'PORTAL_ENABLE_EXP' => 'Turns the whole portal on or off', 'PORTAL_ENABLE_EXP' => 'Turns the whole portal on or off',
'PORTAL_LEFT_COLUMN' => 'Enable left column', 'PORTAL_LEFT_COLUMN' => 'Enable left column',
@@ -94,6 +96,10 @@ $lang = array_merge($lang, array(
'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Change the width of the left column in pixels; recommended value is 180', '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' => 'Width of the right column',
'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Change the width of the right column in pixels; recommended value is 180', 'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Change the width of the right column in pixels; recommended value is 180',
'PORTAL_SHOW_ALL_SIDE' => 'Column to display on all pages',
'PORTAL_SHOW_ALL_SIDE_EXP' => 'Choose which column should be shown on all pages.',
'PORTAL_SHOW_ALL_LEFT' => 'Left',
'PORTAL_SHOW_ALL_RIGHT' => 'Right',
'LINK_ADDED' => 'The link has been successfully added', 'LINK_ADDED' => 'The link has been successfully added',
'LINK_UPDATED' => 'The link has been successfully updated', 'LINK_UPDATED' => 'The link has been successfully updated',

View File

@@ -55,7 +55,7 @@ $lang = array_merge($lang, array(
'PORTAL_ANNOUNCEMENTS' => 'Afficher les annonces globales', 'PORTAL_ANNOUNCEMENTS' => 'Afficher les annonces globales',
'PORTAL_ANNOUNCEMENTS_EXP' => 'Afficher ce bloc sur le portail.', 'PORTAL_ANNOUNCEMENTS_EXP' => 'Afficher ce bloc sur le portail.',
'PORTAL_ANNOUNCEMENTS_STYLE' => 'Affichage compact du bloc des annonces globales', 'PORTAL_ANNOUNCEMENTS_STYLE' => 'Affichage compact du bloc des annonces globales',
'PORTAL_ANNOUNCEMENTS_STYLE_EXP' => 'Oui affiche de manière compacte le bloc des annonces globales. Non affiche ce bloc de manière plus large (affichage du texte).', 'PORTAL_ANNOUNCEMENTS_STYLE_EXP' => '« Oui » affiche de manière compacte le bloc des annonces globales. « Non » affiche ce bloc de manière plus large (affichage du texte).',
'PORTAL_NUMBER_OF_ANNOUNCEMENTS' => 'Nombre dannonces sur le portail', 'PORTAL_NUMBER_OF_ANNOUNCEMENTS' => 'Nombre dannonces sur le portail',
'PORTAL_NUMBER_OF_ANNOUNCEMENTS_EXP' => '0 signifie un nombre infini.', 'PORTAL_NUMBER_OF_ANNOUNCEMENTS_EXP' => '0 signifie un nombre infini.',
'PORTAL_ANNOUNCEMENTS_DAY' => 'Nombre de jours de laffichage des annonces', 'PORTAL_ANNOUNCEMENTS_DAY' => 'Nombre de jours de laffichage des annonces',
@@ -63,13 +63,13 @@ $lang = array_merge($lang, array(
'PORTAL_ANNOUNCEMENTS_LENGTH' => 'Limite de caractères pour les annonces globales', 'PORTAL_ANNOUNCEMENTS_LENGTH' => 'Limite de caractères pour les annonces globales',
'PORTAL_ANNOUNCEMENTS_LENGTH_EXP' => '0 signifie un nombre infini.', 'PORTAL_ANNOUNCEMENTS_LENGTH_EXP' => '0 signifie un nombre infini.',
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM' => 'Forums des annonces', 'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM' => 'Forums des annonces',
'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM_EXP' => 'Forums depuis lesquels les annonces seront affichées. Laisser vide pour afficher toutes les annonces de tous les forums. Si Exclure des forums est paramétré sur Oui, sélectionner les forums souhaitant être exclus.<br />Si Exclure des forums est paramétré sur Non, sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.', 'PORTAL_GLOBAL_ANNOUNCEMENTS_FORUM_EXP' => 'Forums depuis lesquels les annonces seront affichées. Laisser vide pour afficher toutes les annonces de tous les forums. Si « Exclure des forums » est paramétré sur « Oui », sélectionner les forums souhaitant être exclus.<br />Si « Exclure des forums » est paramétré sur « Non », sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.',
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE' => 'Exclure des forums', 'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE' => 'Exclure des forums',
'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE_EXP'=> 'Sélectionner Oui pour exclure les annonces de certains forums et Non pour voir uniquement les annonces de certains forums.', 'PORTAL_ANNOUNCEMENTS_FORUM_EXCLUDE_EXP'=> 'Sélectionner « Oui » pour exclure les annonces de certains forums et « Non » pour voir uniquement les annonces de certains forums.',
'PORTAL_ANNOUNCEMENTS_PERMISSIONS' => 'Activer / désactiver les permissions', 'PORTAL_ANNOUNCEMENTS_PERMISSIONS' => 'Activer / désactiver les permissions',
'PORTAL_ANNOUNCEMENTS_PERMISSIONS_EXP' => 'Lors de laffichage des annonces prendre en compte les permissions utilisateurs / forums.', 'PORTAL_ANNOUNCEMENTS_PERMISSIONS_EXP' => 'Lors de laffichage des annonces prendre en compte les permissions utilisateurs / forums.',
'PORTAL_ANNOUNCEMENTS_ARCHIVE' => 'Activer le système darchivage des annonces', 'PORTAL_ANNOUNCEMENTS_ARCHIVE' => 'Activer le système darchivage des annonces',
'PORTAL_ANNOUNCEMENTS_ARCHIVE_EXP' => 'Si activé, le système darchivage des annonces sera affiché par numéro de page.', 'PORTAL_ANNOUNCEMENTS_ARCHIVE_EXP' => 'Si activé, le système darchivage des annonces sera affiché par numéro de page.',
'PORTAL_SHOW_REPLIES_VIEWS' => 'Afficher le nombre de réponses et de vus', 'PORTAL_SHOW_REPLIES_VIEWS' => 'Afficher le nombre de réponses et de vus',
'PORTAL_SHOW_REPLIES_VIEWS_EXP' => 'Ce paramètre se rapporte au bloc compact.<br />Lorsquil est paramétré à Oui, le nombre de réponses et de vus sont affichés dans deux colonnes supplémentaires. Lorsquil est paramétré sur Non, le nombre de réponses et de vus sont affichés à côté du nom du forum. Sélectionner sur Non si il y a un problème daffichage avec les deux colonnes supplémentaires (du fait de la largeur supplémentaire requise).', 'PORTAL_SHOW_REPLIES_VIEWS_EXP' => 'Ce paramètre se rapporte au bloc compact.<br />Lorsquil est paramétré à « Oui », le nombre de réponses et de vus sont affichés dans deux colonnes supplémentaires. Lorsquil est paramétré sur « Non », le nombre de réponses et de vus sont affichés à côté du nom du forum. Sélectionner sur « Non » si il y a un problème daffichage avec les deux colonnes supplémentaires (du fait de la largeur supplémentaire requise).',
)); ));

View File

@@ -43,13 +43,13 @@ $lang = array_merge($lang, array(
'PORTAL_ATTACHMENTS_NUMBER' => 'Limite daffichage des fichiers joints', 'PORTAL_ATTACHMENTS_NUMBER' => 'Limite daffichage des fichiers joints',
'PORTAL_ATTACHMENTS_NUMBER_EXP' => '0 signifie un nombre infini.', 'PORTAL_ATTACHMENTS_NUMBER_EXP' => '0 signifie un nombre infini.',
'PORTAL_ATTACHMENTS_FORUM_IDS' => 'Forums des fichiers joints', 'PORTAL_ATTACHMENTS_FORUM_IDS' => 'Forums des fichiers joints',
'PORTAL_ATTACHMENTS_FORUM_IDS_EXP' => 'Forums depuis lesquels les fichiers joints seront affichés. Laisser vide pour afficher tous les fichiers joints de tous les forums. Si Exclure des forums est paramétré sur Oui, sélectionner les forums souhaitant être exclus.<br />Si Exclure des forums est paramétré sur Non, sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.', 'PORTAL_ATTACHMENTS_FORUM_IDS_EXP' => 'Forums depuis lesquels les fichiers joints seront affichés. Laisser vide pour afficher tous les fichiers joints de tous les forums. Si « Exclure des forums » est paramétré sur « Oui », sélectionner les forums souhaitant être exclus.<br />Si « Exclure des forums » est paramétré sur « Non », sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.',
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE' => 'Exclure des forums', 'PORTAL_ATTACHMENTS_FORUM_EXCLUDE' => 'Exclure des forums',
'PORTAL_ATTACHMENTS_FORUM_EXCLUDE_EXP' => 'Sélectionner Oui pour exclure les fichiers joints de certains forums et Non pour voir uniquement les fichiers joints de certains forums.', 'PORTAL_ATTACHMENTS_FORUM_EXCLUDE_EXP' => 'Sélectionner « Oui » pour exclure les fichiers joints de certains forums et « Non » pour voir uniquement les fichiers joints de certains forums.',
'PORTAL_ATTACHMENTS_MAX_LENGTH' => 'Limite de caractères pour chaque fichier joint', 'PORTAL_ATTACHMENTS_MAX_LENGTH' => 'Limite de caractères pour chaque fichier joint',
'PORTAL_ATTACHMENTS_MAX_LENGTH_EXP' => '0 signifie un nombre infini.', 'PORTAL_ATTACHMENTS_MAX_LENGTH_EXP' => '0 signifie un nombre infini.',
'PORTAL_ATTACHMENTS_FILETYPE' => 'Types de fichiers', 'PORTAL_ATTACHMENTS_FILETYPE' => 'Types de fichiers',
'PORTAL_ATTACHMENTS_FILETYPE_EXP' => 'Type de fichiers qui seront affichés. Laisser vide pour afficher tous les types de fichiers joints. Si Exclure des types de fichiers est paramétré sur Oui, sélectionner les types de fichiers souhaitant être exclus.<br />Si Exclure des types de fichiers est paramétré sur Non, sélectionner les types de fichiers souhaités.<br />Pour sélectionner / désélectionner plusieurs types de fichiers maintenir la touche <samp>CTRL</samp> tout en cliquant.', 'PORTAL_ATTACHMENTS_FILETYPE_EXP' => 'Type de fichiers qui seront affichés. Laisser vide pour afficher tous les types de fichiers joints. Si « Exclure des types de fichiers » est paramétré sur « Oui », sélectionner les types de fichiers souhaitant être exclus.<br />Si « Exclure des types de fichiers » est paramétré sur « Non », sélectionner les types de fichiers souhaités.<br />Pour sélectionner / désélectionner plusieurs types de fichiers maintenir la touche <samp>CTRL</samp> tout en cliquant.',
'PORTAL_ATTACHMENTS_EXCLUDE' => 'Exclure des types de fichiers', 'PORTAL_ATTACHMENTS_EXCLUDE' => 'Exclure des types de fichiers',
'PORTAL_ATTACHMENTS_EXCLUDE_EXP' => 'Sélectionner Oui pour exclure certains types de fichiers joints et Non pour voir uniquement certains types fichiers joints.', 'PORTAL_ATTACHMENTS_EXCLUDE_EXP' => 'Sélectionner « Oui » pour exclure certains types de fichiers joints et « Non » pour voir uniquement certains types fichiers joints.',
)); ));

View File

@@ -47,13 +47,13 @@ $lang = array_merge($lang, array(
'mini_cal' => array( 'mini_cal' => array(
'day' => array( 'day' => array(
'1' => 'Lu', '1' => 'Di',
'2' => 'Ma', '2' => 'Lu',
'3' => 'Me', '3' => 'Ma',
'4' => 'Je', '4' => 'Me',
'5' => 'Ve', '5' => 'Je',
'6' => 'Sa', '6' => 'Ve',
'7' => 'Di', '7' => 'Sa',
), ),
'month' => array( 'month' => array(
@@ -98,7 +98,7 @@ $lang = array_merge($lang, array(
'PORTAL_LONG_MONTH' => 'Afficher le nom complet des mois', 'PORTAL_LONG_MONTH' => 'Afficher le nom complet des mois',
'PORTAL_LONG_MONTH_EXP' => 'Si désactivé le nom des mois sera tronqué, comme par exemple : Jan. à la place de Janvier.', 'PORTAL_LONG_MONTH_EXP' => 'Si désactivé le nom des mois sera tronqué, comme par exemple : Jan. à la place de Janvier.',
'PORTAL_SUNDAY_FIRST' => 'Premier jour de la semaine', 'PORTAL_SUNDAY_FIRST' => 'Premier jour de la semaine',
'PORTAL_SUNDAY_FIRST_EXP' => 'Si désactivé le calendrier affichera Ma --> Lu, à la place de Lu --> Di.', 'PORTAL_SUNDAY_FIRST_EXP' => 'Si désactivé le calendrier affichera Lu. --> Di., à la place de Di. --> Sa.',
'PORTAL_DISPLAY_EVENTS' => 'Afficher les évènements', 'PORTAL_DISPLAY_EVENTS' => 'Afficher les évènements',
'PORTAL_DISPLAY_EVENTS_EXP' => 'Afficher les événements qui ont été créés pour le bloc calendrier.', 'PORTAL_DISPLAY_EVENTS_EXP' => 'Afficher les événements qui ont été créés pour le bloc calendrier.',
'PORTAL_EVENTS_MANAGE' => 'Gérer les évènements', 'PORTAL_EVENTS_MANAGE' => 'Gérer les évènements',

View File

@@ -33,7 +33,7 @@ if (empty($lang) || !is_array($lang))
// equally where a string contains only two placeholders which are used to wrap text // equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine // in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array( $lang = array_merge($lang, array(
'LATEST_BOTS' => 'Derniers robots', 'LATEST_BOTS' => 'Dernières visites des robots',
'LAST_VISITED_BOTS' => 'Dernières visites des robots', 'LAST_VISITED_BOTS' => 'Dernières visites des robots',
// ACP // ACP

View File

@@ -49,7 +49,7 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_NEWS_SETTINGS' => 'Paramètres des nouveaux messages', 'ACP_PORTAL_NEWS_SETTINGS' => 'Paramètres des nouveaux messages',
'ACP_PORTAL_NEWS_SETTINGS_EXP' => 'Ici vous personnalisez le bloc des nouveaux messages.', 'ACP_PORTAL_NEWS_SETTINGS_EXP' => 'Ici vous personnalisez le bloc des nouveaux messages.',
'PORTAL_NEWS_STYLE' => 'Affichage compact du bloc des nouveaux messages', 'PORTAL_NEWS_STYLE' => 'Affichage compact du bloc des nouveaux messages',
'PORTAL_NEWS_STYLE_EXP' => 'Oui affiche de manière compacte le bloc des nouveaux messages. Non affiche ce bloc de manière plus large (affichage du texte).', 'PORTAL_NEWS_STYLE_EXP' => '« Oui » affiche de manière compacte le bloc des nouveaux messages. « Non » affiche ce bloc de manière plus large (affichage du texte).',
'PORTAL_SHOW_ALL_NEWS' => 'Afficher tous les messages dans ce forum', 'PORTAL_SHOW_ALL_NEWS' => 'Afficher tous les messages dans ce forum',
'PORTAL_SHOW_ALL_NEWS_EXP' => 'Inclure les post-it.', 'PORTAL_SHOW_ALL_NEWS_EXP' => 'Inclure les post-it.',
'PORTAL_NUMBER_OF_NEWS' => 'Nombre de nouveaux messages sur le portail', 'PORTAL_NUMBER_OF_NEWS' => 'Nombre de nouveaux messages sur le portail',
@@ -57,9 +57,9 @@ $lang = array_merge($lang, array(
'PORTAL_NEWS_LENGTH' => 'Longueur maximale en caractères des nouveaux messages', 'PORTAL_NEWS_LENGTH' => 'Longueur maximale en caractères des nouveaux messages',
'PORTAL_NEWS_LENGTH_EXP' => '0 signifie un nombre infini.', 'PORTAL_NEWS_LENGTH_EXP' => '0 signifie un nombre infini.',
'PORTAL_NEWS_FORUM' => 'Forums des messages', 'PORTAL_NEWS_FORUM' => 'Forums des messages',
'PORTAL_NEWS_FORUM_EXP' => 'Forums depuis lesquels les nouveaux messages seront affichés. Laisser vide pour afficher les nouveaux messages de tous les forums. Si Exclure des forums est paramétré sur Oui, sélectionner les forums souhaitant être exclus.<br />Si Exclure des forums est paramétré sur Non, sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.', 'PORTAL_NEWS_FORUM_EXP' => 'Forums depuis lesquels les nouveaux messages seront affichés. Laisser vide pour afficher les nouveaux messages de tous les forums. Si « Exclure des forums » est paramétré sur « Oui », sélectionner les forums souhaitant être exclus.<br />Si « Exclure des forums » est paramétré sur « Non », sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.',
'PORTAL_NEWS_EXCLUDE' => 'Exclure des forums', 'PORTAL_NEWS_EXCLUDE' => 'Exclure des forums',
'PORTAL_NEWS_EXCLUDE_EXP' => 'Sélectionner sur Oui pour exclure les nouveaux messages de certains forums et Non pour voir uniquement les nouveaux messages de certains forums.', 'PORTAL_NEWS_EXCLUDE_EXP' => 'Sélectionner sur « Oui » pour exclure les nouveaux messages de certains forums et « Non » pour voir uniquement les nouveaux messages de certains forums.',
'PORTAL_NEWS_PERMISSIONS' => 'Activer / désactiver les permissions', 'PORTAL_NEWS_PERMISSIONS' => 'Activer / désactiver les permissions',
'PORTAL_NEWS_PERMISSIONS_EXP' => 'Lors de laffichage des nouveaux messages prendre en compte les permissions utilisateurs / forums.', 'PORTAL_NEWS_PERMISSIONS_EXP' => 'Lors de laffichage des nouveaux messages prendre en compte les permissions utilisateurs / forums.',
'PORTAL_NEWS_SHOW_LAST' => 'Classer suivant lordre des nouveaux messages', 'PORTAL_NEWS_SHOW_LAST' => 'Classer suivant lordre des nouveaux messages',
@@ -67,5 +67,5 @@ $lang = array_merge($lang, array(
'PORTAL_NEWS_ARCHIVE' => 'Activer le système darchivage des nouveaux messages', 'PORTAL_NEWS_ARCHIVE' => 'Activer le système darchivage des nouveaux messages',
'PORTAL_NEWS_ARCHIVE_EXP' => 'Si activé, le système darchivage des nouveaux messages sera affiché par numéro de page.', 'PORTAL_NEWS_ARCHIVE_EXP' => 'Si activé, le système darchivage des nouveaux messages sera affiché par numéro de page.',
'PORTAL_SHOW_REPLIES_VIEWS' => 'Afficher le nombre de réponses et de vus', 'PORTAL_SHOW_REPLIES_VIEWS' => 'Afficher le nombre de réponses et de vus',
'PORTAL_SHOW_REPLIES_VIEWS_EXP' => 'Ce paramètre se rapporte au bloc compact.<br />Lorsquil est paramétré à Oui, le nombre de réponses et de vus sont affichés dans deux colonnes supplémentaires. Lorsquil est paramétré sur Non, le nombre de réponses et de vus sont affichés à côté du nom du forum. Sélectionner sur Non si il y a un problème daffichage avec les deux colonnes supplémentaires (du fait de la largeur supplémentaire requise).', 'PORTAL_SHOW_REPLIES_VIEWS_EXP' => 'Ce paramètre se rapporte au bloc compact.<br />Lorsquil est paramétré à « Oui », le nombre de réponses et de vus sont affichés dans deux colonnes supplémentaires. Lorsquil est paramétré sur « Non », le nombre de réponses et de vus sont affichés à côté du nom du forum. Sélectionner sur « Non » si il y a un problème daffichage avec les deux colonnes supplémentaires (du fait de la largeur supplémentaire requise).',
)); ));

View File

@@ -43,9 +43,9 @@ $lang = array_merge($lang, array(
'ACP_PORTAL_POLLS_SETTINGS' => 'Paramètres des sondages', 'ACP_PORTAL_POLLS_SETTINGS' => 'Paramètres des sondages',
'ACP_PORTAL_POLLS_SETTINGS_EXP' => 'Ici vous personnalisez le bloc des sondages.', 'ACP_PORTAL_POLLS_SETTINGS_EXP' => 'Ici vous personnalisez le bloc des sondages.',
'PORTAL_POLL_TOPIC_ID' => 'Forums des sondages', 'PORTAL_POLL_TOPIC_ID' => 'Forums des sondages',
'PORTAL_POLL_TOPIC_ID_EXP' => 'Forums depuis lesquels les sondages seront affichés. Laisser vide pour afficher tous les sondages de tous les forums. Si Exclure des forums est paramétré sur Oui, sélectionner les forums souhaitant être exclus.<br />Si Exclure des forums est paramétré sur Non, sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.', 'PORTAL_POLL_TOPIC_ID_EXP' => 'Forums depuis lesquels les sondages seront affichés. Laisser vide pour afficher tous les sondages de tous les forums. Si « Exclure des forums » est paramétré sur « Oui », sélectionner les forums souhaitant être exclus.<br />Si « Exclure des forums » est paramétré sur « Non », sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.',
'PORTAL_POLL_EXCLUDE_ID' => 'Exclure des forums', 'PORTAL_POLL_EXCLUDE_ID' => 'Exclure des forums',
'PORTAL_POLL_EXCLUDE_ID_EXP' => 'Sélectionner Oui pour exclure les sondages de certains forums et Non pour voir uniquement les sondages de certains forums.', 'PORTAL_POLL_EXCLUDE_ID_EXP' => 'Sélectionner « Oui » pour exclure les sondages de certains forums et « Non » pour voir uniquement les sondages de certains forums.',
'PORTAL_POLL_LIMIT' => 'Nombre de sondages', 'PORTAL_POLL_LIMIT' => 'Nombre de sondages',
'PORTAL_POLL_LIMIT_EXP' => 'Nombre maximum de sondages affichés sur la page du portail.', 'PORTAL_POLL_LIMIT_EXP' => 'Nombre maximum de sondages affichés sur la page du portail.',
'PORTAL_POLL_ALLOW_VOTE' => 'Permettre de voter', 'PORTAL_POLL_ALLOW_VOTE' => 'Permettre de voter',

View File

@@ -34,9 +34,9 @@ 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 // in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array( $lang = array_merge($lang, array(
'PORTAL_RANDOM_MEMBER' => 'Membre aléatoire', 'PORTAL_RANDOM_MEMBER' => 'Membre aléatoire',
'RND_JOIN' => 'Inscrit', 'RND_JOIN' => 'Enregistré le',
'RND_POSTS' => 'Messages', 'RND_POSTS' => 'Messages',
'RND_OCC' => 'Métier', 'RND_OCC' => 'Emploi',
'RND_FROM' => 'Localisation', 'RND_FROM' => 'Localisation',
'RND_WWW' => 'Site Internet', 'RND_WWW' => 'Site Internet',
)); ));

View File

@@ -46,7 +46,7 @@ $lang = array_merge($lang, array(
'PORTAL_RECENT_TITLE_LIMIT' => 'Limite de caractères pour chaque titre des sujets récents', 'PORTAL_RECENT_TITLE_LIMIT' => 'Limite de caractères pour chaque titre des sujets récents',
'PORTAL_RECENT_TITLE_LIMIT_EXP' => '0 signifie un nombre infini.', 'PORTAL_RECENT_TITLE_LIMIT_EXP' => '0 signifie un nombre infini.',
'PORTAL_RECENT_FORUM' => 'Forums des sujets récents', 'PORTAL_RECENT_FORUM' => 'Forums des sujets récents',
'PORTAL_RECENT_FORUM_EXP' => 'Forums depuis lesquels les sujets récents seront affichés. Laisser vide pour afficher les sujets récents de tous les forums. Si Exclure des forums est paramétré sur Oui, sélectionner les forums souhaitant être exclus.<br />Si Exclure des forums est paramétré sur Non, sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.', 'PORTAL_RECENT_FORUM_EXP' => 'Forums depuis lesquels les sujets récents seront affichés. Laisser vide pour afficher les sujets récents de tous les forums. Si « Exclure des forums » est paramétré sur « Oui », sélectionner les forums souhaitant être exclus.<br />Si « Exclure des forums » est paramétré sur « Non », sélectionner les forums souhaités.<br />Pour sélectionner / désélectionner plusieurs forums maintenir la touche <samp>CTRL</samp> tout en cliquant.',
'PORTAL_EXCLUDE_FORUM' => 'Exclure des forums', 'PORTAL_EXCLUDE_FORUM' => 'Exclure des forums',
'PORTAL_EXCLUDE_FORUM_EXP' => 'Sélectionner Oui pour exclure les sujets récents de certains forums et Non pour voir uniquement les sujets récents de certains forums.', 'PORTAL_EXCLUDE_FORUM_EXP' => 'Sélectionner « Oui » pour exclure les sujets récents de certains forums et « Non » pour voir uniquement les sujets récents de certains forums.',
)); ));

View File

@@ -33,8 +33,8 @@ if (empty($lang) || !is_array($lang))
// equally where a string contains only two placeholders which are used to wrap text // equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine // in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array( $lang = array_merge($lang, array(
'TOPPOSTERS' => 'Utilisateurs actifs', 'TOPPOSTERS' => 'Utilisateurs les plus actifs',
'TOPPOSTERS_CONFIG' => 'Paramètres des utilisateurs actifs', 'TOPPOSTERS_CONFIG' => 'Paramètres des utilisateurs les plus actifs',
// ACP // ACP
'NUM_TOPPOSTERS' => 'Nombre dutilisateurs actifs', 'NUM_TOPPOSTERS' => 'Nombre dutilisateurs actifs',

View File

@@ -54,9 +54,9 @@ $lang = array_merge($lang, array(
'UNABLE_TO_MOVE' => 'Il nest pas possible de déplacer le bloc dans la colonne sélectionnée.', 'UNABLE_TO_MOVE' => 'Il nest pas possible de déplacer le bloc dans la colonne sélectionnée.',
'UNABLE_TO_MOVE_ROW' => 'Il nest pas possible de déplacer le bloc dans la rangée sélectionnée.', 'UNABLE_TO_MOVE_ROW' => 'Il nest pas possible de déplacer le bloc dans la rangée sélectionnée.',
'UNABLE_TO_ADD_MODULE' => 'Il nest pas possible dajouter le module dans la colonne sélectionnée.', 'UNABLE_TO_ADD_MODULE' => 'Il nest pas possible dajouter le module dans la colonne sélectionnée.',
'DELETE_MODULE_CONFIRM' => 'Êtes-vous sûr de vouloir supprimer le module %1$s ?', 'DELETE_MODULE_CONFIRM' => 'Êtes-vous sûr de vouloir supprimer le module « %1$s » ?',
'MODULE_RESET_SUCCESS' => 'Les paramètres du module ont été réinitialisés avec succès.', 'MODULE_RESET_SUCCESS' => 'Les paramètres du module ont été réinitialisés avec succès.',
'MODULE_RESET_CONFIRM' => 'Êtes-vous sûr de vouloir réinitialiser les paramètres du module %1$s ?', 'MODULE_RESET_CONFIRM' => 'Êtes-vous sûr de vouloir réinitialiser les paramètres du module « %1$s » ?',
'MODULE_NOT_EXISTS' => 'Le module sélectionné nexiste pas.', 'MODULE_NOT_EXISTS' => 'Le module sélectionné nexiste pas.',
'MODULE_OPTIONS' => 'Options des modules', 'MODULE_OPTIONS' => 'Options des modules',
@@ -75,18 +75,20 @@ $lang = array_merge($lang, array(
'MODULE_STATUS' => 'Activer le module', 'MODULE_STATUS' => 'Activer le module',
'MODULE_ADD_ONCE' => 'Ce module ne peut être ajouté quune seule fois.', 'MODULE_ADD_ONCE' => 'Ce module ne peut être ajouté quune seule fois.',
'MODULE_IMAGE_ERROR' => 'Il y avait une erreur lors de la vérification de limage du module:', 'MODULE_IMAGE_ERROR' => 'Il y avait une erreur lors de la vérification de limage du module:',
'UNKNOWN_MODULE_METHOD' => 'Le système de module du module %1$s ne peut être résolu.', 'UNKNOWN_MODULE_METHOD' => 'Le système de module du module « %1$s » ne peut être résolu.',
// general // general
'ACP_PORTAL_CONFIG_INFO' => 'Paramètres généraux', 'ACP_PORTAL_CONFIG_INFO' => 'Paramètres généraux',
'ACP_PORTAL_GENERAL_TITLE' => 'Administration du portail', 'ACP_PORTAL_GENERAL_TITLE' => 'Administration du portail',
'ACP_PORTAL_GENERAL_TITLE_EXP' => 'Merci davoir choisi le portail Board3 ! Cest ici que vous pouvez gérer la page de votre portail. Les options ci-dessous vous permettent de personnaliser les différents paramètres généraux.', 'ACP_PORTAL_GENERAL_TITLE_EXP' => 'Merci davoir choisi le portail Board3 ! Cest ici que vous pouvez gérer la page de votre portail. Les options ci-dessous vous permettent de personnaliser les différents paramètres généraux.',
'ACP_PORTAL_SHOW_ALL' => 'Afficher le portail sur toutes les pages',
'ACP_PORTAL_SHOW_ALL_EXP' => 'Afficher le portail sur toutes les pages.',
'PORTAL_ENABLE' => 'Activer le portail', 'PORTAL_ENABLE' => 'Activer le portail',
'PORTAL_ENABLE_EXP' => 'Activer / désactiver tout le portail.', 'PORTAL_ENABLE_EXP' => 'Activer / désactiver tout le portail.',
'PORTAL_LEFT_COLUMN' => 'Activer la colonne de gauche', 'PORTAL_LEFT_COLUMN' => 'Activer la colonne de gauche',
'PORTAL_LEFT_COLUMN_EXP' => 'Changer sur Non si vous souhaitez désactiver la colonne de gauche.', 'PORTAL_LEFT_COLUMN_EXP' => 'Changer sur « Non » si vous souhaitez désactiver la colonne de gauche.',
'PORTAL_RIGHT_COLUMN' => 'Activer la colonne de droite', 'PORTAL_RIGHT_COLUMN' => 'Activer la colonne de droite',
'PORTAL_RIGHT_COLUMN_EXP' => 'Changer sur Non si vous souhaitez désactiver la colonne de droite.', 'PORTAL_RIGHT_COLUMN_EXP' => 'Changer sur « Non » si vous souhaitez désactiver la colonne de droite.',
'PORTAL_VERSION_CHECK' => 'Vérification de la version du portail', 'PORTAL_VERSION_CHECK' => 'Vérification de la version du portail',
'PORTAL_DISPLAY_JUMPBOX' => 'Afficher laccès rapide aux forums', 'PORTAL_DISPLAY_JUMPBOX' => 'Afficher laccès rapide aux forums',
'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Afficher laccès rapide aux forums sur le portail. Laccès rapide aux forums ne sera affiché que si il est également activé dans les fonctionnalités du forum.', 'PORTAL_DISPLAY_JUMPBOX_EXP' => 'Afficher laccès rapide aux forums sur le portail. Laccès rapide aux forums ne sera affiché que si il est également activé dans les fonctionnalités du forum.',
@@ -95,6 +97,10 @@ $lang = array_merge($lang, array(
'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Modifier la largeur de la colonne de gauche en pixels; la valeur recommandée est 180 pixels.', 'PORTAL_LEFT_COLUMN_WIDTH_EXP' => 'Modifier la largeur de la colonne de gauche en pixels; la valeur recommandée est 180 pixels.',
'PORTAL_RIGHT_COLUMN_WIDTH' => 'Largeur de la colonne de droite', 'PORTAL_RIGHT_COLUMN_WIDTH' => 'Largeur de la colonne de droite',
'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Modifier la largeur de la colonne de droite en pixels; la valeur recommandée est 180 pixels.', 'PORTAL_RIGHT_COLUMN_WIDTH_EXP' => 'Modifier la largeur de la colonne de droite en pixels; la valeur recommandée est 180 pixels.',
'PORTAL_SHOW_ALL_SIDE' => 'Colonne à afficher sur toutes les pages',
'PORTAL_SHOW_ALL_SIDE_EXP' => 'Choisir quelle colonne doit safficher sur toutes les pages.',
'PORTAL_SHOW_ALL_LEFT' => 'Gauche',
'PORTAL_SHOW_ALL_RIGHT' => 'Droite',
'LINK_ADDED' => 'Le lien a été ajouté avec succès', 'LINK_ADDED' => 'Le lien a été ajouté avec succès',
'LINK_UPDATED' => 'Le lien a été mis à jour avec succès', 'LINK_UPDATED' => 'Le lien a été mis à jour avec succès',

View File

@@ -183,6 +183,7 @@ class v210_beta1 extends \phpbb\db\migration\migration
$sql = 'SELECT * FROM ' . $this->table_prefix . 'portal_config'; $sql = 'SELECT * FROM ' . $this->table_prefix . 'portal_config';
$result = $this->db->sql_query_limit($sql, 1); $result = $this->db->sql_query_limit($sql, 1);
$row = $this->db->sql_fetchrow($result); $row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
if (!empty($row)) if (!empty($row))
{ {
return; return;
@@ -204,6 +205,7 @@ class v210_beta1 extends \phpbb\db\migration\migration
{ {
$groups_ary[$row['group_name']] = $row['group_id']; $groups_ary[$row['group_name']] = $row['group_id'];
} }
$this->db->sql_freeresult($result);
// set portal config // set portal config
$this->set_portal_config('board3_menu_array_1', serialize(array( $this->set_portal_config('board3_menu_array_1', serialize(array(

27
migrations/v210_rc3.php Normal file
View File

@@ -0,0 +1,27 @@
<?php
/**
*
* @package Board3 Portal v2.1
* @copyright (c) 2015 Board3 Group ( www.board3.de )
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace board3\portal\migrations;
class v210_rc3 extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array('\board3\portal\migrations\v210_rc2');
}
public function update_data()
{
return array(
array('config.update', array('board3_portal_version', '2.1.0-rc3')),
array('config.add', array('board3_show_all_pages', 0)),
array('config.add', array('board3_show_all_side', 0)),
);
}
}

View File

@@ -124,7 +124,7 @@ class announcements extends module_base
$total_announcements = 1; $total_announcements = 1;
// Fetch announcements from portal functions.php with check if "read full" is requested. // Fetch announcements from portal functions.php with check if "read full" is requested.
$portal_announcement_length = ($announcement < 0) ? $this->config['board3_announcements_length_' . $module_id] : 0; $portal_announcement_length = ($announcement < 0 && !$this->config['board3_announcements_style_' . $module_id]) ? $this->config['board3_announcements_length_' . $module_id] : 0;
$this->fetch_posts->set_module_id($module_id); $this->fetch_posts->set_module_id($module_id);
$fetch_news = $this->fetch_posts->get_posts( $fetch_news = $this->fetch_posts->get_posts(
$this->config['board3_global_announcements_forum_' . $module_id], $this->config['board3_global_announcements_forum_' . $module_id],
@@ -154,7 +154,7 @@ class announcements extends module_base
); );
// Any announcements present? If not terminate it here. // Any announcements present? If not terminate it here.
if (sizeof($fetch_news) == 0) if (sizeof($fetch_news) < 3)
{ {
$this->template->assign_block_vars('announcements', $announcements_row); $this->template->assign_block_vars('announcements', $announcements_row);
@@ -225,7 +225,7 @@ class announcements extends module_base
AND topic_moved_id = 0 AND topic_moved_id = 0
' . $post_time . ' ' . $post_time . '
' . $str_where; ' . $str_where;
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 300);
$total_announcements = (int) $this->db->sql_fetchfield('num_topics'); $total_announcements = (int) $this->db->sql_fetchfield('num_topics');
$this->db->sql_freeresult($result); $this->db->sql_freeresult($result);
} }

View File

@@ -53,10 +53,10 @@ class attachments extends module_base
/** @var \phpbb\request\request */ /** @var \phpbb\request\request */
protected $request; protected $request;
/** @var \phpbb\template */ /** @var \phpbb\template\template */
protected $template; protected $template;
/** @var \phpbb\db\driver */ /** @var \phpbb\db\driver\driver_interface */
protected $db; protected $db;
/** @var string PHP file extension */ /** @var string PHP file extension */
@@ -74,8 +74,8 @@ class attachments extends module_base
* @param \phpbb\auth\auth $auth phpBB auth service * @param \phpbb\auth\auth $auth phpBB auth service
* @param \phpbb\config\config $config phpBB config * @param \phpbb\config\config $config phpBB config
* @param \board3\portal\includes\modules_helper $helper Modules helper * @param \board3\portal\includes\modules_helper $helper Modules helper
* @param \phpbb\template $template phpBB template * @param \phpbb\template\template $template phpBB template
* @param \phpbb\db\driver $db Database driver * @param \phpbb\db\driver\driver_interface $db Database driver
* @param \phpbb\request\request $request phpBB request * @param \phpbb\request\request $request phpBB request
* @param string $phpEx php file extension * @param string $phpEx php file extension
* @param string $phpbb_root_path phpBB root path * @param string $phpbb_root_path phpBB root path
@@ -187,6 +187,7 @@ class attachments extends module_base
'title' => $row['extension'], 'title' => $row['extension'],
); );
} }
$this->db->sql_freeresult($result);
$selected = $this->get_selected_filetypes($module_id); $selected = $this->get_selected_filetypes($module_id);
@@ -281,7 +282,7 @@ class attachments extends module_base
' . $where . ' ' . $where . '
ORDER BY ORDER BY
filetime ' . ((!$this->config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC'; filetime ' . ((!$this->config['display_order']) ? 'DESC' : 'ASC') . ', post_msg_id ASC';
$result = $this->db->sql_query_limit($sql, $this->config['board3_attachments_number_' . $module_id]); $result = $this->db->sql_query_limit($sql, $this->config['board3_attachments_number_' . $module_id], 0, 600);
while ($row = $this->db->sql_fetchrow($result)) while ($row = $this->db->sql_fetchrow($result))
{ {

View File

@@ -119,7 +119,7 @@ class birthday_list extends module_base
'ORDER BY' => $order_by, 'ORDER BY' => $order_by,
); );
$sql = $this->db->sql_build_query('SELECT', $sql_array); $sql = $this->db->sql_build_query('SELECT', $sql_array);
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 3600);
$today = sprintf('%2d-%2d-', $now['mday'], $now['mon']); $today = sprintf('%2d-%2d-', $now['mday'], $now['mon']);
while ($row = $this->db->sql_fetchrow($result)) while ($row = $this->db->sql_fetchrow($result))

View File

@@ -176,7 +176,7 @@ class calendar extends module_base
$this->time = $this->user->create_datetime(); $this->time = $this->user->create_datetime();
$now = phpbb_gmgetdate($this->time->getTimestamp() + $this->time->getOffset()); $now = phpbb_gmgetdate($this->time->getTimestamp() + $this->time->getOffset());
$today_timestamp = $now[0]; $today_timestamp = $now[0];
$mini_cal_today = date('Ymd', $today_timestamp - date('Z')); $mini_cal_today = date('Ymd', $today_timestamp);
$this->stamp = (int) $today_timestamp; $this->stamp = (int) $today_timestamp;
$s_cal_month = ($this->mini_cal_month != 0) ? $this->mini_cal_month . ' month' : $mini_cal_today; $s_cal_month = ($this->mini_cal_month != 0) ? $this->mini_cal_month . ' month' : $mini_cal_today;
$this->get_month($s_cal_month); $this->get_month($s_cal_month);
@@ -188,8 +188,8 @@ class calendar extends module_base
// output our general calendar bits // output our general calendar bits
$down = $this->mini_cal_month - 1; $down = $this->mini_cal_month - 1;
$up = $this->mini_cal_month + 1; $up = $this->mini_cal_month + 1;
$prev_month = '<a href="' . $this->modules_helper->route('board3_portal_controller') . "?m$module_id=$down#minical$module_id" . '"><img src="' . $this->portal_root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/cal_icon_left_arrow.png' . '" title="' . $this->user->lang['VIEW_PREVIOUS_MONTH'] . '" height="16" width="16" alt="&lt;&lt;" /></a>'; $prev_month = '<a href="' . $this->modules_helper->route('board3_portal_controller') . "?m$module_id=$down#minical$module_id" . '" rel="nofollow"><img src="' . $this->portal_root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/cal_icon_left_arrow.png' . '" title="' . $this->user->lang['VIEW_PREVIOUS_MONTH'] . '" height="16" width="16" alt="&lt;&lt;" /></a>';
$next_month = '<a href="' . $this->modules_helper->route('board3_portal_controller') . "?m$module_id=$up#minical$module_id" . '"><img src="' . $this->portal_root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/cal_icon_right_arrow.png' . '" title="' . $this->user->lang['VIEW_NEXT_MONTH'] . '" height="16" width="16" alt="&gt;&gt;" /></a>'; $next_month = '<a href="' . $this->modules_helper->route('board3_portal_controller') . "?m$module_id=$up#minical$module_id" . '" rel="nofollow"><img src="' . $this->portal_root_path . 'styles/' . $this->user->style['style_path'] . '/theme/images/portal/cal_icon_right_arrow.png' . '" title="' . $this->user->lang['VIEW_NEXT_MONTH'] . '" height="16" width="16" alt="&gt;&gt;" /></a>';
$this->template->assign_block_vars('minical', array( $this->template->assign_block_vars('minical', array(
'S_SUNDAY_FIRST' => ($this->config['board3_sunday_first_' . $module_id]) ? true : false, 'S_SUNDAY_FIRST' => ($this->config['board3_sunday_first_' . $module_id]) ? true : false,
@@ -712,15 +712,17 @@ class calendar extends module_base
} }
/** /**
* Unserialize links array * Unserialize links array
* *
* @param string $serial_str Serialized string * @param string $serial_str Serialized string
* *
* @return array Unserialized array * @return array Unserialized string
*/ */
protected function utf_unserialize($serial_str) private function utf_unserialize($serial_str)
{ {
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str ); $out = preg_replace_callback('!s:(\d+):"(.*?)";!s', function ($result) {
return 's:' . strlen($result[2]) . ":\"{$result[2]}\";";
}, $serial_str);
return unserialize($out); return unserialize($out);
} }

View File

@@ -49,10 +49,10 @@ class latest_bots extends module_base
/** @var \phpbb\config\config */ /** @var \phpbb\config\config */
protected $config; protected $config;
/** @var \phpbb\db\driver */ /** @var \phpbb\db\driver\driver_interface */
protected $db; protected $db;
/** @var \phpbb\template */ /** @var \phpbb\template\template */
protected $template; protected $template;
/** @var \phpbb\user */ /** @var \phpbb\user */
@@ -62,8 +62,8 @@ class latest_bots extends module_base
* Construct a latest bots object * Construct a latest bots object
* *
* @param \phpbb\config\config $config phpBB config * @param \phpbb\config\config $config phpBB config
* @param \phpbb\db\driver $db phpBB db driver * @param \phpbb\db\driver\driver_interface $db phpBB db driver
* @param \phpbb\template $template phpBB template * @param \phpbb\template\template $template phpBB template
* @param \phpbb\user $user phpBB user object * @param \phpbb\user $user phpBB user object
*/ */
public function __construct($config, $db, $template, $user) public function __construct($config, $db, $template, $user)
@@ -85,7 +85,7 @@ class latest_bots extends module_base
WHERE user_type = ' . USER_IGNORE . ' WHERE user_type = ' . USER_IGNORE . '
AND user_lastvisit > 0 AND user_lastvisit > 0
ORDER BY user_lastvisit DESC'; ORDER BY user_lastvisit DESC';
$result = $this->db->sql_query_limit($sql, $this->config['board3_last_visited_bots_number_' . $module_id]); $result = $this->db->sql_query_limit($sql, $this->config['board3_last_visited_bots_number_' . $module_id], 0, 600);
$show_module = false; $show_module = false;

View File

@@ -44,10 +44,10 @@ class latest_members extends module_base
/** @var \phpbb\config\config */ /** @var \phpbb\config\config */
protected $config; protected $config;
/** @var \phpbb\db\driver */ /** @var \phpbb\db\driver\driver_interface */
protected $db; protected $db;
/** @var \phpbb\template */ /** @var \phpbb\template\template */
protected $template; protected $template;
/** @var \phpbb\user */ /** @var \phpbb\user */
@@ -57,8 +57,8 @@ class latest_members extends module_base
* Construct a latest_members object * Construct a latest_members object
* *
* @param \phpbb\config\config $config phpBB config * @param \phpbb\config\config $config phpBB config
* @param \phpbb\db\driver $db phpBB db driver * @param \phpbb\db\driver\driver_interface $db phpBB db driver
* @param \phpbb\template $template phpBB template * @param \phpbb\template\template $template phpBB template
* @param \phpbb\user $user phpBB user object * @param \phpbb\user $user phpBB user object
*/ */
public function __construct($config, $db, $template, $user) public function __construct($config, $db, $template, $user)
@@ -79,7 +79,7 @@ class latest_members extends module_base
WHERE user_type <> ' . USER_IGNORE . ' WHERE user_type <> ' . USER_IGNORE . '
AND user_inactive_time = 0 AND user_inactive_time = 0
ORDER BY user_regdate DESC'; ORDER BY user_regdate DESC';
$result = $this->db->sql_query_limit($sql, $this->config['board3_max_last_member_' . $module_id]); $result = $this->db->sql_query_limit($sql, $this->config['board3_max_last_member_' . $module_id], 0, 600);
while(($row = $this->db->sql_fetchrow($result)) && ($row['username'])) while(($row = $this->db->sql_fetchrow($result)) && ($row['username']))
{ {

View File

@@ -91,6 +91,7 @@ class leaders extends module_base
{ {
// Display a listing of board admins, moderators // Display a listing of board admins, moderators
$this->user->add_lang('groups'); $this->user->add_lang('groups');
$order_legend = ($this->config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
if($this->config['board3_leaders_ext_' . $module_id]) if($this->config['board3_leaders_ext_' . $module_id])
{ {
@@ -99,14 +100,14 @@ class leaders extends module_base
if ($this->auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) if ($this->auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
{ {
$sql = 'SELECT group_id, group_name, group_colour, group_type $sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend
FROM ' . GROUPS_TABLE . ' FROM ' . GROUPS_TABLE . '
WHERE group_legend >= 1 WHERE group_legend >= 1
ORDER BY group_name ASC'; ORDER BY ' . $order_legend . ' ASC';
} }
else else
{ {
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, g.group_legend
FROM ' . GROUPS_TABLE . ' g FROM ' . GROUPS_TABLE . ' g
LEFT JOIN ' . USER_GROUP_TABLE . ' ug LEFT JOIN ' . USER_GROUP_TABLE . ' ug
ON ( ON (
@@ -116,9 +117,9 @@ class leaders extends module_base
) )
WHERE g.group_legend >= 1 WHERE g.group_legend >= 1
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $this->user->data['user_id'] . ') AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $this->user->data['user_id'] . ')
ORDER BY g.group_name ASC'; ORDER BY g.' . $order_legend . ' ASC';
} }
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 600);
while ($row = $this->db->sql_fetchrow($result)) while ($row = $this->db->sql_fetchrow($result))
{ {
@@ -144,7 +145,7 @@ class leaders extends module_base
ug.user_id = u.user_id ug.user_id = u.user_id
AND '. $this->db->sql_in_set('ug.group_id', $legends) . ' AND '. $this->db->sql_in_set('ug.group_id', $legends) . '
ORDER BY u.username_clean ASC'; ORDER BY u.username_clean ASC';
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 600);
while ($row = $this->db->sql_fetchrow($result)) while ($row = $this->db->sql_fetchrow($result))
{ {
@@ -187,7 +188,7 @@ class leaders extends module_base
else else
{ {
$sql = $this->db->sql_build_query('SELECT', array( $sql = $this->db->sql_build_query('SELECT', array(
'SELECT' => 'u.user_id, u.group_id as default_group, u.username, u.user_colour, u.user_allow_pm, g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id as ug_user_id', 'SELECT' => 'u.user_id, u.group_id as default_group, u.username, u.user_colour, u.user_allow_pm, g.group_id, g.group_name, g.group_colour, g.group_type, g.group_legend, ug.user_id as ug_user_id',
'FROM' => array( 'FROM' => array(
USERS_TABLE => 'u', USERS_TABLE => 'u',
GROUPS_TABLE => 'g' GROUPS_TABLE => 'g'
@@ -198,10 +199,10 @@ class leaders extends module_base
'ON' => 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . $this->user->data['user_id'] 'ON' => 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . $this->user->data['user_id']
)), )),
'WHERE' => 'u.group_id = g.group_id AND ' . $this->db->sql_in_set('g.group_name', array('ADMINISTRATORS', 'GLOBAL_MODERATORS')), 'WHERE' => 'u.group_id = g.group_id AND ' . $this->db->sql_in_set('g.group_name', array('ADMINISTRATORS', 'GLOBAL_MODERATORS')),
'ORDER_BY' => 'g.group_name ASC, u.username_clean ASC' 'ORDER_BY' => 'g.' . $order_legend . ' ASC, u.username_clean ASC'
)); ));
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 600);
while ($row = $this->db->sql_fetchrow($result)) while ($row = $this->db->sql_fetchrow($result))
{ {

View File

@@ -462,15 +462,17 @@ class links extends module_base
} }
/** /**
* Unserialize links array * Unserialize links array
* *
* @param string $serial_str Serialized string * @param string $serial_str Serialized string
* *
* @return array Unserialized string * @return array Unserialized string
*/ */
private function utf_unserialize($serial_str) private function utf_unserialize($serial_str)
{ {
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str); $out = preg_replace_callback('!s:(\d+):"(.*?)";!s', function ($result) {
return 's:' . strlen($result[2]) . ":\"{$result[2]}\";";
}, $serial_str);
return unserialize($out); return unserialize($out);
} }
} }

View File

@@ -526,15 +526,17 @@ class main_menu extends module_base
} }
/** /**
* Unserialize links array * Unserialize links array
* *
* @param string $serial_str Serialized string * @param string $serial_str Serialized string
* *
* @return array Unserialized string * @return array Unserialized string
*/ */
private function utf_unserialize($serial_str) private function utf_unserialize($serial_str)
{ {
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str); $out = preg_replace_callback('!s:(\d+):"(.*?)";!s', function ($result) {
return 's:' . strlen($result[2]) . ":\"{$result[2]}\";";
}, $serial_str);
return unserialize($out); return unserialize($out);
} }
} }

View File

@@ -125,7 +125,7 @@ class news extends module_base
$total_news = 1; $total_news = 1;
// Fetch news from portal functions.php with check if "read full" is requested. // Fetch news from portal functions.php with check if "read full" is requested.
$portal_news_length = ($news < 0) ? $this->config['board3_news_length_' . $module_id] : 0; $portal_news_length = ($news < 0 && !$this->config['board3_news_style_' . $module_id]) ? $this->config['board3_news_length_' . $module_id] : 0;
$this->fetch_posts->set_module_id($module_id); $this->fetch_posts->set_module_id($module_id);
$fetch_news = $this->fetch_posts->get_posts( $fetch_news = $this->fetch_posts->get_posts(
$this->config['board3_news_forum_' . $module_id], $this->config['board3_news_forum_' . $module_id],
@@ -218,7 +218,7 @@ class news extends module_base
AND topic_visibility = ' . ITEM_APPROVED . ' AND topic_visibility = ' . ITEM_APPROVED . '
AND topic_moved_id = 0 AND topic_moved_id = 0
' . $str_where; ' . $str_where;
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 300);
$total_news = (int) $this->db->sql_fetchfield('num_topics'); $total_news = (int) $this->db->sql_fetchfield('num_topics');
$this->db->sql_freeresult($result); $this->db->sql_freeresult($result);
} }
@@ -398,7 +398,7 @@ class news extends module_base
'S_HAS_ATTACHMENTS' => (!empty($fetch_news[$i]['attachments'])) ? true : false, 'S_HAS_ATTACHMENTS' => (!empty($fetch_news[$i]['attachments'])) ? true : false,
)); ));
$this->pagination->generate_template_pagination($view_topic_url, 'news_row.pagination', 'start', $fetch_news[$i]['topic_replies'] + 1, $this->config['posts_per_page'], 1, true, true); $this->pagination->generate_template_pagination($view_topic_url, 'news.news_row.pagination', 'start', $fetch_news[$i]['topic_replies'] + 1, $this->config['posts_per_page'], 1);
if(!empty($fetch_news[$i]['attachments'])) if(!empty($fetch_news[$i]['attachments']))
{ {

View File

@@ -121,7 +121,7 @@ class recent extends module_base
$forum_sql = ' AND ' . $this->db->sql_in_set('t.forum_id', $forum_ary, true); $forum_sql = ' AND ' . $this->db->sql_in_set('t.forum_id', $forum_ary, true);
} }
$result = $this->db->sql_query_limit($sql, 1); $result = $this->db->sql_query_limit($sql, 1, 0, 600);
$g_forum_id = (int) $this->db->sql_fetchfield('forum_id'); $g_forum_id = (int) $this->db->sql_fetchfield('forum_id');
$this->db->sql_freeresult($result); $this->db->sql_freeresult($result);
@@ -134,9 +134,9 @@ class recent extends module_base
AND topic_visibility = ' . ITEM_APPROVED . ' AND topic_visibility = ' . ITEM_APPROVED . '
AND (topic_type = ' . POST_ANNOUNCE . ' OR topic_type = ' . POST_GLOBAL . ') AND (topic_type = ' . POST_ANNOUNCE . ' OR topic_type = ' . POST_GLOBAL . ')
AND topic_moved_id = 0 AND topic_moved_id = 0
' . $sql_where . '' . $forum_sql . ' ' . $sql_where . $forum_sql . '
ORDER BY topic_time DESC'; ORDER BY topic_time DESC';
$result = $this->db->sql_query_limit($sql, $this->config['board3_max_topics_' . $module_id]); $result = $this->db->sql_query_limit($sql, $this->config['board3_max_topics_' . $module_id], 0 , 600);
while(($row = $this->db->sql_fetchrow($result)) && ($row['topic_title'])) while(($row = $this->db->sql_fetchrow($result)) && ($row['topic_title']))
{ {
@@ -160,9 +160,9 @@ class recent extends module_base
WHERE topic_visibility = ' . ITEM_APPROVED . ' WHERE topic_visibility = ' . ITEM_APPROVED . '
AND topic_posts_approved >' . $this->config['hot_threshold'] . ' AND topic_posts_approved >' . $this->config['hot_threshold'] . '
AND topic_moved_id = 0 AND topic_moved_id = 0
' . $sql_where . '' . $forum_sql . ' ' . $sql_where . $forum_sql . '
ORDER BY topic_time DESC'; ORDER BY topic_time DESC';
$result = $this->db->sql_query_limit($sql, $this->config['board3_max_topics_' . $module_id]); $result = $this->db->sql_query_limit($sql, $this->config['board3_max_topics_' . $module_id], 0, 600);
while(($row = $this->db->sql_fetchrow($result)) && ($row['topic_title'])) while(($row = $this->db->sql_fetchrow($result)) && ($row['topic_title']))
{ {
@@ -187,9 +187,9 @@ class recent extends module_base
AND topic_visibility = ' . ITEM_APPROVED . ' AND topic_visibility = ' . ITEM_APPROVED . '
AND topic_type = ' . POST_NORMAL . ' AND topic_type = ' . POST_NORMAL . '
AND topic_moved_id = 0 AND topic_moved_id = 0
' . $sql_where . '' . $forum_sql . ' ' . $sql_where . $forum_sql . '
ORDER BY topic_time DESC'; ORDER BY topic_time DESC';
$result = $this->db->sql_query_limit($sql, $this->config['board3_max_topics_' . $module_id]); $result = $this->db->sql_query_limit($sql, $this->config['board3_max_topics_' . $module_id], 0, 600);
while(($row = $this->db->sql_fetchrow($result)) && ($row['topic_title'])) while(($row = $this->db->sql_fetchrow($result)) && ($row['topic_title']))
{ {

View File

@@ -75,8 +75,6 @@ class search extends module_base
*/ */
public function get_template_side($module_id) public function get_template_side($module_id)
{ {
$this->template->assign_var('S_SEARCH_ACTION', append_sid("{$this->phpbb_root_path}search.{$this->php_ext}"));
return 'search_side.html'; return 'search_side.html';
} }

View File

@@ -90,7 +90,7 @@ class stylechanger extends module_base
FROM ' . STYLES_TABLE . ' FROM ' . STYLES_TABLE . '
WHERE style_active = 1 WHERE style_active = 1
ORDER BY LOWER(style_name) ASC'; ORDER BY LOWER(style_name) ASC';
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 3600);
while ($row = $this->db->sql_fetchrow($result)) while ($row = $this->db->sql_fetchrow($result))
{ {
$style = $this->request->variable('style', 0); $style = $this->request->variable('style', 0);
@@ -113,7 +113,7 @@ class stylechanger extends module_base
// Assign specific vars // Assign specific vars
$this->template->assign_vars(array( $this->template->assign_vars(array(
'S_STYLE_OPTIONS' => ($this->config['override_user_style'] || $style_count < 2) ? '' : style_select($this->user->data['user_style']), 'S_STYLE_OPTIONS' => ($this->config['override_user_style'] || $style_count < 2) ? '' : $style_select,
)); ));
return 'stylechanger_side.html'; return 'stylechanger_side.html';

View File

@@ -44,10 +44,10 @@ class topposters extends module_base
/** @var \phpbb\config\config */ /** @var \phpbb\config\config */
protected $config; protected $config;
/** @var \phpbb\db\driver */ /** @var \phpbb\db\driver\driver_interface */
protected $db; protected $db;
/** @var \phpbb\template */ /** @var \phpbb\template\template */
protected $template; protected $template;
/** @var string PHP file extension */ /** @var string PHP file extension */
@@ -60,8 +60,8 @@ class topposters extends module_base
* Construct a topposers object * Construct a topposers object
* *
* @param \phpbb\config\config $config phpBB config * @param \phpbb\config\config $config phpBB config
* @param \phpbb\db\driver $db phpBB db driver * @param \phpbb\db\driver\driver_interface $db phpBB db driver
* @param \phpbb\template $template phpBB template * @param \phpbb\template\template $template phpBB template
* @param string $phpbb_root_path phpBB root path * @param string $phpbb_root_path phpBB root path
* @param string $phpEx php file extension * @param string $phpEx php file extension
*/ */
@@ -85,7 +85,7 @@ class topposters extends module_base
AND user_posts <> 0 AND user_posts <> 0
AND username <> '' AND username <> ''
ORDER BY user_posts DESC"; ORDER BY user_posts DESC";
$result = $this->db->sql_query_limit($sql, $this->config['board3_topposters_' . $module_id]); $result = $this->db->sql_query_limit($sql, $this->config['board3_topposters_' . $module_id], 0, 600);
while (($row = $this->db->sql_fetchrow($result))) while (($row = $this->db->sql_fetchrow($result)))
{ {

View File

@@ -125,13 +125,13 @@ class user_menu extends module_base
$m_approve_fid_sql = ' AND p.post_visibility = 1'; $m_approve_fid_sql = ' AND p.post_visibility = 1';
} }
$sql = 'SELECT COUNT(distinct t.topic_id) as total $sql = 'SELECT COUNT(DISTINCT t.topic_id) as total
FROM ' . TOPICS_TABLE . ' t FROM ' . TOPICS_TABLE . ' t
WHERE t.topic_last_post_time > ' . $this->user->data['user_lastvisit'] . ' WHERE t.topic_last_post_time > ' . $this->user->data['user_lastvisit'] . '
AND t.topic_moved_id = 0 AND t.topic_moved_id = 0
' . str_replace(array('p.', 'post_'), array('t.', 'topic_'), $m_approve_fid_sql) . ' ' . str_replace(array('p.', 'post_'), array('t.', 'topic_'), $m_approve_fid_sql) . '
' . ((sizeof($ex_fid_ary)) ? 'AND ' . $this->db->sql_in_set('t.forum_id', $ex_fid_ary, true) : ''); ' . ((sizeof($ex_fid_ary)) ? 'AND ' . $this->db->sql_in_set('t.forum_id', $ex_fid_ary, true) : '');
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 600);
$new_posts_count = (int) $this->db->sql_fetchfield('total'); $new_posts_count = (int) $this->db->sql_fetchfield('total');
$this->db->sql_freeresult($result); $this->db->sql_freeresult($result);

View File

@@ -50,10 +50,13 @@ class whois_online extends module_base
/** @var \phpbb\auth\auth */ /** @var \phpbb\auth\auth */
protected $auth; protected $auth;
/** @var \phpbb\db\driver */ /** @var \phpbb\config\config */
protected $config;
/** @var \phpbb\db\driver\driver_interface */
protected $db; protected $db;
/** @var \phpbb\template */ /** @var \phpbb\template\template */
protected $template; protected $template;
/** @var \phpbb\user */ /** @var \phpbb\user */
@@ -69,15 +72,17 @@ class whois_online extends module_base
* Construct a user menu object * Construct a user menu object
* *
* @param \phpbb\auth\auth $auth phpBB auth * @param \phpbb\auth\auth $auth phpBB auth
* @param \phpbb\db\driver $db phpBB db driver * @param \phpbb\config\config $config phpBB config
* @param \phpbb\template $template phpBB template * @param \phpbb\db\driver\driver_interface $db phpBB db driver
* @param \phpbb\template\template $template phpBB template
* @param \phpbb\user $user phpBB user * @param \phpbb\user $user phpBB user
* @param string $phpbb_root_path phpBB root path * @param string $phpbb_root_path phpBB root path
* @param string $phpEx php file extension * @param string $phpEx php file extension
*/ */
public function __construct($auth, $db, $template, $user, $phpbb_root_path, $phpEx) public function __construct($auth, $config, $db, $template, $user, $phpbb_root_path, $phpEx)
{ {
$this->auth = $auth; $this->auth = $auth;
$this->config = $config;
$this->db = $db; $this->db = $db;
$this->template = $template; $this->template = $template;
$this->user = $user; $this->user = $user;
@@ -90,13 +95,15 @@ class whois_online extends module_base
*/ */
public function get_template_center($module_id) public function get_template_center($module_id)
{ {
$order_legend = ($this->config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
// Grab group details for legend display // Grab group details for legend display
if ($this->auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) if ($this->auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
{ {
$sql = 'SELECT group_id, group_name, group_colour, group_type $sql = 'SELECT group_id, group_name, group_colour, group_type
FROM ' . GROUPS_TABLE . ' FROM ' . GROUPS_TABLE . '
WHERE group_legend > 0 WHERE group_legend > 0
ORDER BY group_name ASC'; ORDER BY ' . $order_legend . ' ASC';
} }
else else
{ {
@@ -110,7 +117,7 @@ class whois_online extends module_base
) )
WHERE g.group_legend > 0 WHERE g.group_legend > 0
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $this->user->data['user_id'] . ') AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $this->user->data['user_id'] . ')
ORDER BY g.group_name ASC'; ORDER BY g.' . $order_legend . ' ASC';
} }
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql);

View File

@@ -19,7 +19,7 @@ class fetch_posts
/** /**
* phpBB cache * phpBB cache
* @var \phpbb\cache\driver * @var \phpbb\cache\driver\driver_interface
*/ */
protected $cache; protected $cache;
@@ -31,7 +31,7 @@ class fetch_posts
/** /**
* phpBB db driver * phpBB db driver
* @var \phpbb\db\driver_interface * @var \phpbb\db\driver\driver_interface
*/ */
protected $db; protected $db;
@@ -263,13 +263,14 @@ class fetch_posts
$sql_array['SELECT'] .= ', tp.topic_posted'; $sql_array['SELECT'] .= ', tp.topic_posted';
$sql = $this->db->sql_build_query('SELECT', $sql_array); $sql = $this->db->sql_build_query('SELECT', $sql_array);
// Cache queries for 10 minutes
if ($number_of_posts != 0) if ($number_of_posts != 0)
{ {
$result = $this->db->sql_query_limit($sql, $number_of_posts, $start); $result = $this->db->sql_query_limit($sql, $number_of_posts, $start, 600);
} }
else else
{ {
$result = $this->db->sql_query($sql); $result = $this->db->sql_query($sql, 600);
} }
return $result; return $result;
@@ -320,8 +321,8 @@ class fetch_posts
'icon_id' => $row['icon_id'], 'icon_id' => $row['icon_id'],
'topic_status' => $row['topic_status'], 'topic_status' => $row['topic_status'],
'forum_id' => $row['forum_id'], 'forum_id' => $row['forum_id'],
'topic_replies' => $row['topic_posts_approved'] + $row['topic_posts_unapproved'] + $row['topic_posts_softdeleted'], 'topic_replies' => $row['topic_posts_approved'] + $row['topic_posts_unapproved'] + $row['topic_posts_softdeleted'] - 1,
'topic_replies_real' => $row['topic_posts_approved'], 'topic_replies_real' => $row['topic_posts_approved'] - 1,
'topic_time' => $this->user->format_date($row['post_time']), 'topic_time' => $this->user->format_date($row['post_time']),
'topic_last_post_time' => $row['topic_last_post_time'], 'topic_last_post_time' => $row['topic_last_post_time'],
'topic_title' => $row['topic_title'], 'topic_title' => $row['topic_title'],
@@ -623,7 +624,7 @@ class fetch_posts
*/ */
protected function format_message($row, $text_length, &$posts_striped) protected function format_message($row, $text_length, &$posts_striped)
{ {
if (($text_length !== 0) && (strlen($row['post_text']) > $text_length)) if ($text_length > 0 && (strlen($row['post_text']) > $text_length))
{ {
$message = str_replace(array("\n", "\r"), array('<br />', "\n"), $row['post_text']); $message = str_replace(array("\n", "\r"), array('<br />', "\n"), $row['post_text']);
$message = get_sub_taged_string($message, $row['bbcode_uid'], $text_length); $message = get_sub_taged_string($message, $row['bbcode_uid'], $text_length);

View File

@@ -20,6 +20,9 @@ class manager
/** @var \phpbb\cache\service */ /** @var \phpbb\cache\service */
protected $cache; protected $cache;
/** @var \board3\portal\controller\helper */
protected $controller_helper;
/** @var \board3\portal\portal\columns */ /** @var \board3\portal\portal\columns */
protected $portal_columns; protected $portal_columns;
@@ -55,6 +58,7 @@ class manager
* *
* @param \phpbb\cache\service $cache phpBB cache * @param \phpbb\cache\service $cache phpBB cache
* @param \phpbb\db\driver\driver_interface $db Database driver * @param \phpbb\db\driver\driver_interface $db Database driver
* @param \board3\portal\controller\helper $controller_helper Board3 Portal controller helper
* @param \board3\portal\portal\columns $portal_columns Portal columns helper * @param \board3\portal\portal\columns $portal_columns Portal columns helper
* @param \board3\portal\includes\helper $portal_helper Portal helper * @param \board3\portal\includes\helper $portal_helper Portal helper
* @param \board3\portal\portal\modules\constraints_handler $constraints_handler Modules constraints handler * @param \board3\portal\portal\modules\constraints_handler $constraints_handler Modules constraints handler
@@ -62,10 +66,11 @@ class manager
* @param \phpbb\request\request_interface $request phpBB request * @param \phpbb\request\request_interface $request phpBB request
* @param \phpbb\user $user phpBB user * @param \phpbb\user $user phpBB user
*/ */
public function __construct($cache, driver_interface $db, columns $portal_columns, helper $portal_helper, constraints_handler $constraints_handler, database_handler $database_handler, request_interface $request, $user) public function __construct($cache, driver_interface $db, \board3\portal\controller\helper $controller_helper, columns $portal_columns, helper $portal_helper, constraints_handler $constraints_handler, database_handler $database_handler, request_interface $request, $user)
{ {
$this->cache = $cache; $this->cache = $cache;
$this->db = $db; $this->db = $db;
$this->controller_helper = $controller_helper;
$this->portal_columns = $portal_columns; $this->portal_columns = $portal_columns;
$this->portal_helper = $portal_helper; $this->portal_helper = $portal_helper;
$this->constraints_handler = $constraints_handler; $this->constraints_handler = $constraints_handler;
@@ -215,7 +220,7 @@ class manager
trigger_error($this->user->lang['UNABLE_TO_MOVE' . (($is_row) ? '_ROW' : '')] . adm_back_link($this->u_action)); trigger_error($this->user->lang['UNABLE_TO_MOVE' . (($is_row) ? '_ROW' : '')] . adm_back_link($this->u_action));
} }
$this->cache->destroy('portal_modules'); $this->cache->destroy('sql', PORTAL_MODULES_TABLE);
// Handle ajax requests // Handle ajax requests
$this->handle_ajax_request(array('success' => true)); $this->handle_ajax_request(array('success' => true));
@@ -362,7 +367,7 @@ class manager
{ {
if ($this->module->get_language()) if ($this->module->get_language())
{ {
$this->user->add_lang_ext('board3/portal', 'modules/' . $this->module->get_language()); $this->controller_helper->load_module_language($this->module);
} }
$confirm_text = (isset($this->user->lang[$module_data['module_name']])) ? sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], $this->user->lang[$module_data['module_name']]) : sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], utf8_normalize_nfc($module_data['module_name'])); $confirm_text = (isset($this->user->lang[$module_data['module_name']])) ? sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], $this->user->lang[$module_data['module_name']]) : sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], utf8_normalize_nfc($module_data['module_name']));
confirm_box(false, $confirm_text, build_hidden_fields(array( confirm_box(false, $confirm_text, build_hidden_fields(array(
@@ -375,7 +380,7 @@ class manager
} }
} }
$this->cache->destroy('portal_modules'); $this->cache->destroy('sql', PORTAL_MODULES_TABLE);
} }
/** /**

View File

Before

Width:  |  Height:  |  Size: 1003 B

After

Width:  |  Height:  |  Size: 1003 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 964 B

After

Width:  |  Height:  |  Size: 964 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 738 B

After

Width:  |  Height:  |  Size: 738 B

View File

Before

Width:  |  Height:  |  Size: 696 B

After

Width:  |  Height:  |  Size: 696 B

View File

Before

Width:  |  Height:  |  Size: 895 B

After

Width:  |  Height:  |  Size: 895 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 855 B

After

Width:  |  Height:  |  Size: 855 B

View File

Before

Width:  |  Height:  |  Size: 879 B

After

Width:  |  Height:  |  Size: 879 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 813 B

After

Width:  |  Height:  |  Size: 813 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,40 @@
<!-- IF S_PORTAL_ALL === true -->
</div>
</div>
<!-- [+] left module area -->
<!-- IF S_LEFT_COLUMN -->
<div id="portal-left" style="width: {S_PORTAL_LEFT_COLUMN}px;">
<!-- BEGIN modules_left -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_left.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_left.IMAGE_SRC}' -->
<!-- DEFINE $IMAGE_WIDTH = '{modules_left.IMAGE_WIDTH}' -->
<!-- DEFINE $IMAGE_HEIGHT = '{modules_left.IMAGE_HEIGHT}' -->
<!-- DEFINE $CUSTOM_CODE = '{modules_left.CODE}' -->
<!-- DEFINE $TITLE = '{modules_left.TITLE}' -->
<!-- DEFINE $MODULE_ID = '{modules_left.MODULE_ID}' -->
<!-- INCLUDE {$TEMPLATE_FILE} -->
<!-- END modules_left -->
</div>
<!-- ENDIF -->
<!-- [-] left module area -->
<!-- [+] right module area -->
<!-- IF S_RIGHT_COLUMN -->
<div id="portal-right" style="width: {S_PORTAL_RIGHT_COLUMN}px; margin-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->: -{S_PORTAL_RIGHT_COLUMN}px;">
<!-- BEGIN modules_right -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_right.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_right.IMAGE_SRC}' -->
<!-- DEFINE $IMAGE_WIDTH = '{modules_right.IMAGE_WIDTH}' -->
<!-- DEFINE $IMAGE_HEIGHT = '{modules_right.IMAGE_HEIGHT}' -->
<!-- DEFINE $CUSTOM_CODE = '{modules_right.CODE}' -->
<!-- DEFINE $TITLE = '{modules_right.TITLE}' -->
<!-- DEFINE $MODULE_ID = '{modules_right.MODULE_ID}' -->
<!-- INCLUDE {$TEMPLATE_FILE} -->
<!-- END modules_right -->
</div>
<!-- ENDIF -->
<!-- [-] right module area -->
<br class="portal-clear" />
</div>
</div>
<!-- ENDIF -->

View File

@@ -1,4 +1,9 @@
<!-- IF T_EXT_THEME_PATH --> <!-- IF T_EXT_THEME_PATH -->
<!-- INCLUDECSS ../theme/portal.css --> <!-- INCLUDECSS ../theme/portal.css -->
<!-- IF S_PORTAL_ALL -->
<!-- INCLUDECSS ../theme/portal_all.css -->
<!-- INCLUDECSS ../theme/portal_all_responsive.css -->
<!-- ELSE -->
<!-- INCLUDECSS ../theme/portal_responsive.css --> <!-- INCLUDECSS ../theme/portal_responsive.css -->
<!-- ENDIF --> <!-- ENDIF -->
<!-- ENDIF -->

View File

@@ -0,0 +1,7 @@
<!-- IF S_PORTAL_ALL === true -->
<div id="portal-page-body">
<div id="portal-body">
<div class="portal-body-wrapper">
<!-- INCLUDE portal/_block_config.html -->
<div class="portal-body-center" style="margin: 0 <!-- IF S_RIGHT_COLUMN -->{S_PORTAL_RIGHT_COLUMN}px<!-- ELSE -->-{$BLOCK_DISTANCE}<!-- ENDIF --> 0 <!-- IF S_LEFT_COLUMN -->{S_PORTAL_LEFT_COLUMN}px<!-- ELSE -->-{$BLOCK_DISTANCE}<!-- ENDIF -->; padding: 0 {$BLOCK_DISTANCE};">
<!-- ENDIF -->

View File

@@ -1,18 +1,18 @@
<!-- BEGIN portal_menu --> <!-- BEGIN portal_menu -->
<!-- IF portal_menu.MODULE_ID eq $MODULE_ID --> <!-- IF portal_menu.MODULE_ID eq $MODULE_ID -->
{$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} {$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="portal-navigation"> <div class="portal-navigation" role="menu">
<!-- BEGIN category --> <!-- BEGIN category -->
<div class="menutitle">{portal_menu.category.CAT_TITLE}</div> <div class="menutitle">{portal_menu.category.CAT_TITLE}</div>
<ul> <ul>
<!-- BEGIN links --> <!-- BEGIN links -->
<li><a href="{portal_menu.category.links.LINK_URL}" <!-- IF portal_menu.category.links.NEW_WINDOW -->onclick="window.open('{portal_menu.category.links.LINK_URL}'); return false;"<!-- ENDIF -->>{portal_menu.category.links.LINK_TITLE}</a></li> <li><a href="{portal_menu.category.links.LINK_URL}" role="menuitem" <!-- IF portal_menu.category.links.NEW_WINDOW -->onclick="window.open('{portal_menu.category.links.LINK_URL}'); return false;"<!-- ENDIF -->>{portal_menu.category.links.LINK_TITLE}</a></li>
<!-- END links --> <!-- END links -->
</ul> </ul>
<hr class="dashed" /> <hr class="dashed" />
<!-- BEGINELSE --> <!-- BEGINELSE -->
<ul> <ul>
<span class="portal-title-span gensmall"><strong>{L_MENU_NO_LINKS}</strong></span><br /> <li><span class="portal-title-span gensmall"><strong>{L_MENU_NO_LINKS}</strong></span><br /></li>
</ul> </ul>
<!-- END category --> <!-- END category -->
</div> </div>

View File

@@ -1,6 +1,6 @@
<!-- IF S_STYLE_OPTIONS --> <!-- IF S_STYLE_OPTIONS -->
{$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} {$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}
<select class="portal-stylechanger-select" name="demo" id="demo" onchange="document.location.href = this.options[this.selectedIndex].value;"> <select class="portal-stylechanger-select" name="demo" id="demo" role="listbox" onchange="document.location.href = this.options[this.selectedIndex].value;">
{STYLE_SELECT} {STYLE_SELECT}
</select> </select>
<br /> <br />

View File

@@ -1,4 +1,3 @@
<!-- DEFINE $S_IN_PORTAL = 1 -->
<!-- INCLUDE overall_header.html --> <!-- INCLUDE overall_header.html -->
<!-- INCLUDE portal/_block_config.html --> <!-- INCLUDE portal/_block_config.html -->
@@ -10,9 +9,9 @@
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->
<div id="portal-body"> <div id="portal-body" role="grid">
<!-- IF S_TOP_COLUMN --> <!-- IF S_TOP_COLUMN -->
<div id="portal-top"> <div id="portal-top" role="gridcell">
<!-- [+] top module area --> <!-- [+] top module area -->
<ul> <ul>
<li> <li>
@@ -34,7 +33,7 @@
<!-- [+] center module area --> <!-- [+] center module area -->
<!-- IF S_CENTER_COLUMN --> <!-- IF S_CENTER_COLUMN -->
<div id="portal-center-wrapper"> <div id="portal-center-wrapper">
<div id="portal-center" style="margin: 0 <!-- IF S_RIGHT_COLUMN -->{S_PORTAL_RIGHT_COLUMN}px<!-- ELSE -->-{$BLOCK_DISTANCE}<!-- ENDIF --> 0 <!-- IF S_LEFT_COLUMN -->{S_PORTAL_LEFT_COLUMN}px<!-- ELSE -->-{$BLOCK_DISTANCE}<!-- ENDIF -->; padding: 0 {$BLOCK_DISTANCE};"> <div id="portal-center" style="margin: 0 <!-- IF S_RIGHT_COLUMN -->{S_PORTAL_RIGHT_COLUMN}px<!-- ELSE -->-{$BLOCK_DISTANCE}<!-- ENDIF --> 0 <!-- IF S_LEFT_COLUMN -->{S_PORTAL_LEFT_COLUMN}px<!-- ELSE -->-{$BLOCK_DISTANCE}<!-- ENDIF -->; padding: 0 {$BLOCK_DISTANCE};" role="gridcell">
<!-- BEGIN modules_center --> <!-- BEGIN modules_center -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_center.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_center.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_center.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_center.IMAGE_SRC}' -->
@@ -55,7 +54,7 @@
<!-- [-] center module area --> <!-- [-] center module area -->
<!-- [+] left module area --> <!-- [+] left module area -->
<!-- IF S_LEFT_COLUMN --> <!-- IF S_LEFT_COLUMN -->
<div id="portal-left" style="width: {S_PORTAL_LEFT_COLUMN}px;"> <div id="portal-left" style="width: {S_PORTAL_LEFT_COLUMN}px;" role="gridcell">
<!-- BEGIN modules_left --> <!-- BEGIN modules_left -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_left.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_left.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_left.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_left.IMAGE_SRC}' -->
@@ -72,7 +71,7 @@
<!-- [+] right module area --> <!-- [+] right module area -->
<!-- IF S_RIGHT_COLUMN --> <!-- IF S_RIGHT_COLUMN -->
<div id="portal-right" style="width: {S_PORTAL_RIGHT_COLUMN}px; margin-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->: -{S_PORTAL_RIGHT_COLUMN}px;"> <div id="portal-right" style="width: {S_PORTAL_RIGHT_COLUMN}px; margin-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->: -{S_PORTAL_RIGHT_COLUMN}px;" role="gridcell">
<!-- BEGIN modules_right --> <!-- BEGIN modules_right -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_right.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_right.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_right.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_right.IMAGE_SRC}' -->
@@ -88,7 +87,7 @@
<!-- [-] right module area --> <!-- [-] right module area -->
<br class="portal-clear" /> <br class="portal-clear" />
<!-- IF S_BOTTOM_COLUMN --> <!-- IF S_BOTTOM_COLUMN -->
<div id="portal-bottom"> <div id="portal-bottom" role="gridcell">
<!-- [+] bottom module area --> <!-- [+] bottom module area -->
<ul> <ul>
<li> <li>

View File

@@ -33,10 +33,8 @@
text-decoration: underline; text-decoration: underline;
} }
.portal-navigation tr.menutitle{ .portal-navigation hr.dashed:last-child {
font: bold 90% 'Trebuchet MS', 'Lucida Grande', Arial, sans-serif; display: none;
font-size: 12px;
text-decoration: underline;
} }
.rtl .portal-navigation .menutitle { .rtl .portal-navigation .menutitle {
@@ -54,7 +52,7 @@
} }
.portal-user-icon { .portal-user-icon {
background-image: url("./images/portal/portal_user.png"); background-image: url("../../all/theme/images/portal/portal_user.png");
padding-left: 16px; padding-left: 16px;
padding-top: 16px; padding-top: 16px;
float: left; float: left;
@@ -291,6 +289,10 @@ a.portal-forumtitle {
display: block; display: block;
} }
#portal-center-wrapper .panel, #portal-center-wrapper .post {
border-radius: 0;
}
.rtl #portal-center-wrapper { .rtl #portal-center-wrapper {
float: right; float: right;
} }
@@ -335,8 +337,10 @@ a.portal-forumtitle {
* This is needed in order to have the same spacing between blocks * This is needed in order to have the same spacing between blocks
* as we have between the top blocks and the headerbar * as we have between the top blocks and the headerbar
*/ */
#portal-body .forabg { #portal-left .forabg, #portal-center .forabg,
margin-bottom: 0px; #portal-right .forabg, #portal-top .forabg,
#portal-bottom .forabg {
margin-bottom: 0;
} }
#portal-body td { #portal-body td {
@@ -351,7 +355,10 @@ a.portal-forumtitle {
margin-left: 0px; margin-left: 0px;
margin-right: 0px; margin-right: 0px;
} }
#portal-body li {
#portal-left li, #portal-center li,
#portal-right li, #portal-top li,
#portal-bottom li {
list-style-type: none; list-style-type: none;
} }
@@ -460,7 +467,7 @@ a.portal-forumtitle {
width: 21px; width: 21px;
height: 21px; height: 21px;
background-position: 0 0; background-position: 0 0;
background: url(./images/portal/portal_clock_single.png) no-repeat; background: url("../../all/theme/images/portal/portal_clock_single.png") no-repeat;
} }
/* Minutes start /* Minutes start
@@ -552,7 +559,7 @@ a.portal-forumtitle {
.portal-clock-back-hours-up, .portal-clock-front-hours-up { .portal-clock-back-hours-up, .portal-clock-front-hours-up {
width: 42px; width: 42px;
height: 21px; height: 21px;
background: url(./images/portal/portal_clock_double.png) no-repeat; background: url("../../all/theme/images/portal/portal_clock_double.png") no-repeat;
background-position: 0 0; background-position: 0 0;
vertical-align: bottom; vertical-align: bottom;
display: inline-block; display: inline-block;
@@ -562,7 +569,7 @@ a.portal-forumtitle {
.portal-clock-back-hours-down, .portal-clock-front-hours-down { .portal-clock-back-hours-down, .portal-clock-front-hours-down {
width: 42px; width: 42px;
height: 20px; height: 20px;
background: url(./images/portal/portal_clock_double.png) no-repeat; background: url("../../all/theme/images/portal/portal_clock_double.png") no-repeat;
background-position: 0 -44px; background-position: 0 -44px;
vertical-align: top; vertical-align: top;
display: inline-block; display: inline-block;

View File

@@ -0,0 +1,15 @@
.portal-body-wrapper {
width: 100%;
float: left;
display: block;
}
#portal-page-body {
clear: both;
margin: 4px 0;
}
#page-body {
float: left;
width: 100%;
}

View File

@@ -0,0 +1,29 @@
@media only screen and (max-width: 870px), only screen and (max-device-width: 870px) {
.portal-body-center dd.posts, .portal-body-center dd.views {
display: none !important;
}
.portal-body-center dt { width: 130% !important; }
.portal-body-center dd.lastpost { width: auto; }
}
@media only screen and (max-width: 740px), only screen and (max-device-width: 740px) {
#portal-left ul.topiclist dd, #portal-right ul.topiclist dd { display: block !important; }
#portal-right > .portal-clear, #portal-body > .portal-clear, #portal-left > .portal-clear,
#portal-center > .portal-clear, #portal-login-box .portal-clear { display: none !important; }
}
@media only screen and (max-width: 700px), only screen and (max-device-width: 700px) {
.portal-body-center dt { width: 100% !important; }
}
@media only screen and (max-width: 540px), only screen and (max-device-width: 540px) {
#portal-left, #portal-right {
display: none;
}
.portal-body-center {
margin: 0 !important;
padding: 0 !important;
}
}

View File

@@ -56,7 +56,7 @@
#portal-left ul.topiclist dd, #portal-right ul.topiclist dd { display: block !important; } #portal-left ul.topiclist dd, #portal-right ul.topiclist dd { display: block !important; }
.portal-responsive-show { display: block !important; } .portal-responsive-show { display: block !important; }
.portal-responsive-hide { display: none !important; } .portal-responsive-hide { display: none !important; }
#portal-body { padding-top: 0px !important; } #portal-body { padding-top: 0 !important; }
#portal-right > .portal-clear, #portal-body > .portal-clear, #portal-left > .portal-clear, #portal-right > .portal-clear, #portal-body > .portal-clear, #portal-left > .portal-clear,
#portal-center > .portal-clear, #portal-login-box .portal-clear { display: none !important; } #portal-center > .portal-clear, #portal-login-box .portal-clear { display: none !important; }
#portal-right { width: 50% !important; } #portal-right { width: 50% !important; }

View File

@@ -0,0 +1,21 @@
<!-- IF S_PORTAL_ALL === true -->
</td>
<!-- [+] right module area -->
<!-- IF S_RIGHT_COLUMN -->
<td width="{S_PORTAL_RIGHT_COLUMN}px" valign="top" style="padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->:{$BLOCK_DISTANCE};">
<!-- BEGIN modules_right -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_right.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_right.IMAGE_SRC}' -->
<!-- DEFINE $IMAGE_WIDTH = '{modules_right.IMAGE_WIDTH}' -->
<!-- DEFINE $IMAGE_HEIGHT = '{modules_right.IMAGE_HEIGHT}' -->
<!-- DEFINE $CUSTOM_CODE = '{modules_right.CODE}' -->
<!-- DEFINE $TITLE = '{modules_right.TITLE}' -->
<!-- DEFINE $MODULE_ID = '{modules_right.MODULE_ID}' -->
<!-- INCLUDE {$TEMPLATE_FILE} -->
<!-- END modules_right -->
</td>
<!-- ENDIF -->
<!-- [-] right module area -->
</tr>
</table>
<!-- ENDIF -->

View File

@@ -0,0 +1,22 @@
<!-- IF S_PORTAL_ALL === true -->
<!-- INCLUDE portal/_block_config.html -->
<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center">
<tr>
<!-- [+] left module area -->
<!-- IF S_LEFT_COLUMN -->
<td width="{S_PORTAL_LEFT_COLUMN}px" valign="top" style="padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:{$BLOCK_DISTANCE};">
<!-- BEGIN modules_left -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_left.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_left.IMAGE_SRC}' -->
<!-- DEFINE $IMAGE_WIDTH = '{modules_left.IMAGE_WIDTH}' -->
<!-- DEFINE $IMAGE_HEIGHT = '{modules_left.IMAGE_HEIGHT}' -->
<!-- DEFINE $CUSTOM_CODE = '{modules_left.CODE}' -->
<!-- DEFINE $TITLE = '{modules_left.TITLE}' -->
<!-- DEFINE $MODULE_ID = '{modules_left.MODULE_ID}' -->
<!-- INCLUDE {$TEMPLATE_FILE} -->
<!-- END modules_left -->
</td>
<!-- ENDIF -->
<!-- [-] left module area -->
<td valign="top">
<!-- ENDIF -->

View File

@@ -5,7 +5,7 @@
<!-- IF .attach_center --> <!-- IF .attach_center -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br style="clear:both" /> <span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br style="clear:both" />
<!-- BEGIN attach_center --> <!-- BEGIN attach_center -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="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 class="imageset icon_topic_attach"></span>&nbsp;<a href="{attach_center.U_TOPIC}" title="{attach_center.REAL_FILENAME}"><strong>{attach_center.FILENAME}</strong></a><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_FILESIZE}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_center.FILESIZE}</strong></span><br style="clear:both" /> <span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_FILESIZE}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_center.FILESIZE}</strong></span><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_DOWNLOADS}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_center.DOWNLOAD_COUNT}</strong></span><br style="clear:both" /> <span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_DOWNLOADS}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_center.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
<!-- IF not attach_center.S_LAST_ROW --><hr /><!-- ENDIF --> <!-- IF not attach_center.S_LAST_ROW --><hr /><!-- ENDIF -->

View File

@@ -5,7 +5,7 @@
<!-- IF .attach_side --> <!-- IF .attach_side -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br style="clear:both" /> <span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;"><strong>{L_FILENAME}</strong></span><br style="clear:both" />
<!-- BEGIN attach_side --> <!-- BEGIN attach_side -->
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;" class="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 class="imageset icon_topic_attach"></span>&nbsp;<a href="{attach_side.U_TOPIC}" title="{attach_side.REAL_FILENAME}"><strong>{attach_side.FILENAME}</strong></a><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_FILESIZE}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_side.FILESIZE}</strong></span><br style="clear:both" /> <span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_FILESIZE}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_side.FILESIZE}</strong></span><br style="clear:both" />
<span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_DOWNLOADS}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_side.DOWNLOAD_COUNT}</strong></span><br style="clear:both" /> <span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->;">{L_DOWNLOADS}{L_COLON}</span><span style="float:<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->;" class="gensmall"><strong>{attach_side.DOWNLOAD_COUNT}</strong></span><br style="clear:both" />
<!-- IF not attach_side.S_LAST_ROW --><hr /><!-- ENDIF --> <!-- IF not attach_side.S_LAST_ROW --><hr /><!-- ENDIF -->

View File

@@ -1,7 +1,7 @@
<!-- BEGIN portal_menu --> <!-- BEGIN portal_menu -->
<!-- IF portal_menu.MODULE_ID eq $MODULE_ID --> <!-- IF portal_menu.MODULE_ID eq $MODULE_ID -->
{$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} {$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 class="tablebg" cellspacing="1" width="100%"> <table class="tablebg" cellspacing="1" width="100%" role="menu">
<!-- BEGIN category --> <!-- BEGIN category -->
<tr class="row3"> <tr class="row3">
<td> <td>
@@ -11,7 +11,7 @@
<!-- BEGIN links --> <!-- BEGIN links -->
<tr class="row1"> <tr class="row1">
<td> <td>
<a class="portal-arrow-bullet" href="{portal_menu.category.links.LINK_URL}" title="{portal_menu.category.links.LINK_TITLE}" <!-- IF portal_menu.category.links.NEW_WINDOW -->onclick="window.open('{portal_menu.category.links.LINK_URL}'); return false;"<!-- ENDIF -->>&nbsp;{portal_menu.category.links.LINK_TITLE}</a> <a class="portal-arrow-bullet" href="{portal_menu.category.links.LINK_URL}" role="menuitem" title="{portal_menu.category.links.LINK_TITLE}" <!-- IF portal_menu.category.links.NEW_WINDOW -->onclick="window.open('{portal_menu.category.links.LINK_URL}'); return false;"<!-- ENDIF -->>&nbsp;{portal_menu.category.links.LINK_TITLE}</a>
</td> </td>
</tr> </tr>
<!-- END links --> <!-- END links -->

View File

@@ -3,7 +3,7 @@
<table class="tablebg" cellspacing="1" width="100%"> <table class="tablebg" cellspacing="1" width="100%">
<tr class="row1"> <tr class="row1">
<td> <td>
<select style="width: 150px;" name="demo" id="demo" onchange="document.location.href = this.options[this.selectedIndex].value;"> <select style="width: 150px;" name="demo" id="demo" role="listbox" onchange="document.location.href = this.options[this.selectedIndex].value;">
{STYLE_SELECT} {STYLE_SELECT}
</select> </select>
</td> </td>

View File

@@ -1,4 +1,3 @@
<!-- DEFINE $S_IN_PORTAL = 1 -->
<!-- INCLUDE overall_header.html --> <!-- INCLUDE overall_header.html -->
<!-- INCLUDE portal/_block_config.html --> <!-- INCLUDE portal/_block_config.html -->
@@ -16,11 +15,11 @@
<br /> <br />
<!-- ENDIF --> <!-- ENDIF -->
<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center"> <table cellpadding="0" cellspacing="0" border="0" width="100%" align="center" role="grid">
<!-- IF S_TOP_COLUMN --> <!-- IF S_TOP_COLUMN -->
<tr> <tr>
<!-- [+] top module area --> <!-- [+] top module area -->
<td colspan="3"> <td colspan="3" role="gridcell">
<!-- BEGIN modules_top --> <!-- BEGIN modules_top -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_top.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_top.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_top.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_top.IMAGE_SRC}' -->
@@ -38,7 +37,7 @@
<tr> <tr>
<!-- [+] left module area --> <!-- [+] left module area -->
<!-- IF S_LEFT_COLUMN --> <!-- IF S_LEFT_COLUMN -->
<td width="{S_PORTAL_LEFT_COLUMN}px" valign="top" style="padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:{$BLOCK_DISTANCE};"> <td width="{S_PORTAL_LEFT_COLUMN}px" valign="top" style="padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->left<!-- ELSE -->right<!-- ENDIF -->:{$BLOCK_DISTANCE};" role="gridcell">
<!-- BEGIN modules_left --> <!-- BEGIN modules_left -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_left.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_left.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_left.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_left.IMAGE_SRC}' -->
@@ -55,7 +54,7 @@
<!-- [+] center module area --> <!-- [+] center module area -->
<!-- IF S_CENTER_COLUMN --> <!-- IF S_CENTER_COLUMN -->
<td valign="top"> <td valign="top" role="gridcell">
<!-- BEGIN modules_center --> <!-- BEGIN modules_center -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_center.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_center.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_center.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_center.IMAGE_SRC}' -->
@@ -76,7 +75,7 @@
<!-- [+] right module area --> <!-- [+] right module area -->
<!-- IF S_RIGHT_COLUMN --> <!-- IF S_RIGHT_COLUMN -->
<td width="{S_PORTAL_RIGHT_COLUMN}px" valign="top" style="padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->:{$BLOCK_DISTANCE};"> <td width="{S_PORTAL_RIGHT_COLUMN}px" valign="top" style="padding-<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->right<!-- ELSE -->left<!-- ENDIF -->:{$BLOCK_DISTANCE};" role="gridcell">
<!-- BEGIN modules_right --> <!-- BEGIN modules_right -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_right.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_right.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_right.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_right.IMAGE_SRC}' -->
@@ -94,7 +93,7 @@
<!-- IF S_BOTTOM_COLUMN --> <!-- IF S_BOTTOM_COLUMN -->
<tr> <tr>
<!-- [+] bottom module area --> <!-- [+] bottom module area -->
<td colspan="3"> <td colspan="3" role="gridcell">
<!-- BEGIN modules_bottom --> <!-- BEGIN modules_bottom -->
<!-- DEFINE $TEMPLATE_FILE = '{modules_bottom.TEMPLATE_FILE}' --> <!-- DEFINE $TEMPLATE_FILE = '{modules_bottom.TEMPLATE_FILE}' -->
<!-- DEFINE $IMAGE_SRC = '{modules_bottom.IMAGE_SRC}' --> <!-- DEFINE $IMAGE_SRC = '{modules_bottom.IMAGE_SRC}' -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1003 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 B

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