diff --git a/CONTRIBUTING.md b/.github/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to .github/CONTRIBUTING.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..39eb83e454 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,10 @@ +Checklist: + +- [ ] Correct branch: master for new features; 3.2.x, 3.1.x for fixes +- [ ] Tests pass +- [ ] Code follows coding guidelines: [master / 3.2.x](https://area51.phpbb.com/docs/master/coding-guidelines.html), [3.1.x](https://area51.phpbb.com/docs/31x/coding-guidelines.html) +- [ ] Commit follows commit message [format](https://wiki.phpbb.com/Git#Commit_Messages) + +Tracker ticket (set the ticket ID to **your ticket ID**): + +https://tracker.phpbb.com/browse/PHPBB3-12345 diff --git a/.jshintrc b/.jshintrc index 90d3bb613e..c1efecd573 100644 --- a/.jshintrc +++ b/.jshintrc @@ -19,6 +19,7 @@ "jquery": true, "globals": { - "JSON": true + "JSON": true, + "phpbb": true } } diff --git a/build/sami-all.conf.php b/build/sami-all.conf.php index 9c10209e8b..4bf812eb02 100644 --- a/build/sami-all.conf.php +++ b/build/sami-all.conf.php @@ -25,6 +25,7 @@ $config['versions'] = Sami\Version\GitVersionCollection::create(__DIR__ . '/../' */ ->add('3.0.x') ->add('3.1.x') + ->add('3.2.x') ->add('master') ; diff --git a/phpBB/adm/style/acp_database.html b/phpBB/adm/style/acp_database.html index bf0c80bcd9..39f06319f9 100644 --- a/phpBB/adm/style/acp_database.html +++ b/phpBB/adm/style/acp_database.html @@ -14,7 +14,7 @@ {L_RESTORE_OPTIONS}
-
+

diff --git a/phpBB/adm/style/acp_main.html b/phpBB/adm/style/acp_main.html index 4af3f1a62c..efcb25cb68 100644 --- a/phpBB/adm/style/acp_main.html +++ b/phpBB/adm/style/acp_main.html @@ -14,7 +14,11 @@

{L_ADMIN_INTRO}

- + +
+

{L_UPDATE_INCOMPLETE} {L_MORE_INFORMATION}

+
+

{L_VERSIONCHECK_FAIL}

{VERSIONCHECK_FAIL_REASON}

diff --git a/phpBB/adm/style/acp_update.html b/phpBB/adm/style/acp_update.html index 0cc995959b..351a3ba26c 100644 --- a/phpBB/adm/style/acp_update.html +++ b/phpBB/adm/style/acp_update.html @@ -6,11 +6,16 @@

{L_VERSION_CHECK_EXPLAIN}

+ +
+

{L_UPDATE_INCOMPLETE} {L_UPDATE_INCOMPLETE_MORE}

+
+

{L_VERSION_UP_TO_DATE_ACP} - {L_VERSIONCHECK_FORCE_UPDATE}

- +

{L_VERSION_NOT_UP_TO_DATE_ACP} - {L_VERSIONCHECK_FORCE_UPDATE}

@@ -18,10 +23,21 @@
+
{CURRENT_VERSION}
+ +
+
+
{FILES_VERSION}
+
+
+
+
{CURRENT_VERSION}
+
+
@@ -38,6 +54,11 @@ + + {INCOMPLETE_INSTRUCTIONS} +
+ + {UPDATE_INSTRUCTIONS}

diff --git a/phpBB/composer.lock b/phpBB/composer.lock index cd27d96f81..5d6b1ba7a7 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -1,10 +1,11 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], "hash": "33fa9de480a8a9c8f7e3f2926cd4c034", + "content-hash": "2d9c1857e65554ceb4cfa435495df188", "packages": [ { "name": "lusitanian/oauth", @@ -109,17 +110,17 @@ }, { "name": "symfony/config", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Config", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "1324aed10a750ed5a0446a71d95e321bf5d3bd24" + "reference": "16a645cef1c09ebfc907d3c9b3e9f5836a7d4d3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/1324aed10a750ed5a0446a71d95e321bf5d3bd24", - "reference": "1324aed10a750ed5a0446a71d95e321bf5d3bd24", + "url": "https://api.github.com/repos/symfony/config/zipball/16a645cef1c09ebfc907d3c9b3e9f5836a7d4d3b", + "reference": "16a645cef1c09ebfc907d3c9b3e9f5836a7d4d3b", "shasum": "" }, "require": { @@ -156,21 +157,21 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:12:06" + "time": "2016-05-30 08:14:41" }, { "name": "symfony/console", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Console", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "cc386594e19024e53e81ee7b6d6c37c221864c4e" + "reference": "20c12c6d6c5a087a66d4e77999451713a92a3507" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cc386594e19024e53e81ee7b6d6c37c221864c4e", - "reference": "cc386594e19024e53e81ee7b6d6c37c221864c4e", + "url": "https://api.github.com/repos/symfony/console/zipball/20c12c6d6c5a087a66d4e77999451713a92a3507", + "reference": "20c12c6d6c5a087a66d4e77999451713a92a3507", "shasum": "" }, "require": { @@ -212,21 +213,21 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2016-03-04 09:20:54" + "time": "2016-05-26 08:04:58" }, { "name": "symfony/debug", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Debug", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "a6f7b78e406658897f689fa8b00a06205446bebd" + "reference": "863d29c31a1ddfcf1faedf5f8362f392e3261632" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/a6f7b78e406658897f689fa8b00a06205446bebd", - "reference": "a6f7b78e406658897f689fa8b00a06205446bebd", + "url": "https://api.github.com/repos/symfony/debug/zipball/863d29c31a1ddfcf1faedf5f8362f392e3261632", + "reference": "863d29c31a1ddfcf1faedf5f8362f392e3261632", "shasum": "" }, "require": { @@ -274,21 +275,21 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2016-03-04 13:04:09" + "time": "2016-03-30 09:02:35" }, { "name": "symfony/dependency-injection", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/DependencyInjection", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "7cbda8ce5b5e4bd865401cf243070708e1f9a5e6" + "reference": "06265ee128644eb70356bd72ab28c9ded6618d19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7cbda8ce5b5e4bd865401cf243070708e1f9a5e6", - "reference": "7cbda8ce5b5e4bd865401cf243070708e1f9a5e6", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/06265ee128644eb70356bd72ab28c9ded6618d19", + "reference": "06265ee128644eb70356bd72ab28c9ded6618d19", "shasum": "" }, "require": { @@ -333,21 +334,21 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2016-03-08 16:58:37" + "time": "2016-05-30 08:31:06" }, { "name": "symfony/event-dispatcher", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/EventDispatcher", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b2d9d812e21d6e00983061d49ee61a82f54cace7" + "reference": "fd6d162d97bf3e6060622e5c015af39ca72e33bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b2d9d812e21d6e00983061d49ee61a82f54cace7", - "reference": "b2d9d812e21d6e00983061d49ee61a82f54cace7", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fd6d162d97bf3e6060622e5c015af39ca72e33bc", + "reference": "fd6d162d97bf3e6060622e5c015af39ca72e33bc", "shasum": "" }, "require": { @@ -390,21 +391,21 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:12:06" + "time": "2016-04-04 09:22:54" }, { "name": "symfony/filesystem", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Filesystem", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "56f6725f520a357e19deaef6558c3d223046b843" + "reference": "8fd9cd1da0afe63f0d9d4f27875782a2b7d590d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/56f6725f520a357e19deaef6558c3d223046b843", - "reference": "56f6725f520a357e19deaef6558c3d223046b843", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/8fd9cd1da0afe63f0d9d4f27875782a2b7d590d3", + "reference": "8fd9cd1da0afe63f0d9d4f27875782a2b7d590d3", "shasum": "" }, "require": { @@ -440,21 +441,21 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2016-03-10 16:50:02" + "time": "2016-04-12 15:20:10" }, { "name": "symfony/http-foundation", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/HttpFoundation", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f5cd42d4895d9ede5d26cb1b2883dd4f7e455a40" + "reference": "9f4dbb1f3e3cad22d9462e0306c9c71212458f61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f5cd42d4895d9ede5d26cb1b2883dd4f7e455a40", - "reference": "f5cd42d4895d9ede5d26cb1b2883dd4f7e455a40", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9f4dbb1f3e3cad22d9462e0306c9c71212458f61", + "reference": "9f4dbb1f3e3cad22d9462e0306c9c71212458f61", "shasum": "" }, "require": { @@ -494,21 +495,21 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2016-03-12 16:03:08" + "time": "2016-05-13 15:22:39" }, { "name": "symfony/http-kernel", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/HttpKernel", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "a704146970a1ff261c05e865b636bcc5d95f1b5b" + "reference": "57e0329236e8edf2b0e683043c604f7c9aba9398" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a704146970a1ff261c05e865b636bcc5d95f1b5b", - "reference": "a704146970a1ff261c05e865b636bcc5d95f1b5b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/57e0329236e8edf2b0e683043c604f7c9aba9398", + "reference": "57e0329236e8edf2b0e683043c604f7c9aba9398", "shasum": "" }, "require": { @@ -570,20 +571,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2016-03-13 16:38:02" + "time": "2016-05-30 08:41:10" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.1.1", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "1289d16209491b584839022f29257ad859b8532d" + "reference": "dff51f72b0706335131b00a7f49606168c582594" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d", - "reference": "1289d16209491b584839022f29257ad859b8532d", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", + "reference": "dff51f72b0706335131b00a7f49606168c582594", "shasum": "" }, "require": { @@ -595,7 +596,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "1.2-dev" } }, "autoload": { @@ -629,21 +630,21 @@ "portable", "shim" ], - "time": "2016-01-20 09:13:37" + "time": "2016-05-18 14:26:46" }, { "name": "symfony/routing", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Routing", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "9f464f27cb127232f5c32d5a736fe769e5249442" + "reference": "5b8a2bb7569df81401171829498809e90d6e446c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/9f464f27cb127232f5c32d5a736fe769e5249442", - "reference": "9f464f27cb127232f5c32d5a736fe769e5249442", + "url": "https://api.github.com/repos/symfony/routing/zipball/5b8a2bb7569df81401171829498809e90d6e446c", + "reference": "5b8a2bb7569df81401171829498809e90d6e446c", "shasum": "" }, "require": { @@ -691,21 +692,21 @@ ], "description": "Symfony Routing Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:12:06" + "time": "2016-05-29 10:13:06" }, { "name": "symfony/yaml", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Yaml", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "d5a6f4c771ae5d3faedda30eeb8db4cfb40a59fe" + "reference": "2cb5f366f9e0df014fc93de46cc416ba0a3055f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/d5a6f4c771ae5d3faedda30eeb8db4cfb40a59fe", - "reference": "d5a6f4c771ae5d3faedda30eeb8db4cfb40a59fe", + "url": "https://api.github.com/repos/symfony/yaml/zipball/2cb5f366f9e0df014fc93de46cc416ba0a3055f8", + "reference": "2cb5f366f9e0df014fc93de46cc416ba0a3055f8", "shasum": "" }, "require": { @@ -741,20 +742,20 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:12:08" + "time": "2016-05-30 08:10:17" }, { "name": "twig/twig", - "version": "v1.24.0", + "version": "v1.24.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8" + "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8", - "reference": "3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3566d311a92aae4deec6e48682dc5a4528c4a512", + "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512", "shasum": "" }, "require": { @@ -802,7 +803,7 @@ "keywords": [ "templating" ], - "time": "2016-01-25 21:22:18" + "time": "2016-05-30 09:11:59" } ], "packages-dev": [ @@ -1421,21 +1422,24 @@ }, { "name": "phpunit/php-timer", - "version": "1.0.7", + "version": "1.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" + "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", - "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260", + "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260", "shasum": "" }, "require": { "php": ">=5.3.3" }, + "require-dev": { + "phpunit/phpunit": "~4|~5" + }, "type": "library", "autoload": { "classmap": [ @@ -1458,7 +1462,7 @@ "keywords": [ "timer" ], - "time": "2015-06-21 08:01:12" + "time": "2016-05-12 18:03:57" }, { "name": "phpunit/php-token-stream", @@ -1863,16 +1867,16 @@ }, { "name": "sebastian/environment", - "version": "1.3.5", + "version": "1.3.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf" + "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf", - "reference": "dc7a29032cf72b54f36dac15a1ca5b3a1b6029bf", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716", + "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716", "shasum": "" }, "require": { @@ -1909,20 +1913,20 @@ "environment", "hhvm" ], - "time": "2016-02-26 18:40:46" + "time": "2016-05-17 03:18:57" }, { "name": "sebastian/exporter", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e" + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", "shasum": "" }, "require": { @@ -1930,12 +1934,13 @@ "sebastian/recursion-context": "~1.0" }, "require-dev": { + "ext-mbstring": "*", "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -1975,7 +1980,7 @@ "export", "exporter" ], - "time": "2015-06-21 07:55:53" + "time": "2016-06-17 09:04:28" }, { "name": "sebastian/recursion-context", @@ -2067,19 +2072,20 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "2.5.1", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "6731851d6aaf1d0d6c58feff1065227b7fda3ba8" + "reference": "4edb770cb853def6e60c93abb088ad5ac2010c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6731851d6aaf1d0d6c58feff1065227b7fda3ba8", - "reference": "6731851d6aaf1d0d6c58feff1065227b7fda3ba8", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/4edb770cb853def6e60c93abb088ad5ac2010c83", + "reference": "4edb770cb853def6e60c93abb088ad5ac2010c83", "shasum": "" }, "require": { + "ext-simplexml": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", "php": ">=5.1.2" @@ -2140,11 +2146,11 @@ "phpcs", "standards" ], - "time": "2016-01-19 23:39:10" + "time": "2016-07-13 23:29:13" }, { "name": "symfony/browser-kit", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/BrowserKit", "source": { "type": "git", @@ -2202,7 +2208,7 @@ }, { "name": "symfony/css-selector", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/CssSelector", "source": { "type": "git", @@ -2256,17 +2262,17 @@ }, { "name": "symfony/dom-crawler", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/DomCrawler", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "507dca599566359a4489aa732612347ff65b9a51" + "reference": "b1a52aeafe4dd31914c75e72fc9b9ca3a3e5981d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/507dca599566359a4489aa732612347ff65b9a51", - "reference": "507dca599566359a4489aa732612347ff65b9a51", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b1a52aeafe4dd31914c75e72fc9b9ca3a3e5981d", + "reference": "b1a52aeafe4dd31914c75e72fc9b9ca3a3e5981d", "shasum": "" }, "require": { @@ -2308,21 +2314,21 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:12:08" + "time": "2016-04-06 13:13:46" }, { "name": "symfony/finder", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Finder", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "24cbc57da78ef7d05250c657b18b1ddcb1298bdf" + "reference": "dce4b58434fc1cbd66e3006e539bb53074dfea82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/24cbc57da78ef7d05250c657b18b1ddcb1298bdf", - "reference": "24cbc57da78ef7d05250c657b18b1ddcb1298bdf", + "url": "https://api.github.com/repos/symfony/finder/zipball/dce4b58434fc1cbd66e3006e539bb53074dfea82", + "reference": "dce4b58434fc1cbd66e3006e539bb53074dfea82", "shasum": "" }, "require": { @@ -2358,21 +2364,21 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2016-03-09 12:50:31" + "time": "2016-05-13 14:58:35" }, { "name": "symfony/process", - "version": "v2.3.39", + "version": "v2.3.42", "target-dir": "Symfony/Component/Process", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "12b5d095f70d2dd706c181e51106005e008e5ca8" + "reference": "89aced1438655ad81fc828c2e2e555e9b88fef3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/12b5d095f70d2dd706c181e51106005e008e5ca8", - "reference": "12b5d095f70d2dd706c181e51106005e008e5ca8", + "url": "https://api.github.com/repos/symfony/process/zipball/89aced1438655ad81fc828c2e2e555e9b88fef3b", + "reference": "89aced1438655ad81fc828c2e2e555e9b88fef3b", "shasum": "" }, "require": { @@ -2408,7 +2414,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2016-03-04 07:12:06" + "time": "2016-03-31 08:39:43" } ], "aliases": [], diff --git a/phpBB/config/feed.yml b/phpBB/config/feed.yml index 48bd9fe76f..b69f80b2c5 100644 --- a/phpBB/config/feed.yml +++ b/phpBB/config/feed.yml @@ -25,6 +25,7 @@ services: - @user - @auth - @content.visibility + - @dispatcher - %core.php_ext% feed.forums: @@ -38,6 +39,7 @@ services: - @user - @auth - @content.visibility + - @dispatcher - %core.php_ext% feed.news: @@ -51,6 +53,7 @@ services: - @user - @auth - @content.visibility + - @dispatcher - %core.php_ext% feed.overall: @@ -64,6 +67,7 @@ services: - @user - @auth - @content.visibility + - @dispatcher - %core.php_ext% feed.topic: @@ -77,6 +81,7 @@ services: - @user - @auth - @content.visibility + - @dispatcher - %core.php_ext% feed.topics: @@ -90,6 +95,7 @@ services: - @user - @auth - @content.visibility + - @dispatcher - %core.php_ext% feed.topics_active: @@ -103,4 +109,5 @@ services: - @user - @auth - @content.visibility + - @dispatcher - %core.php_ext% diff --git a/phpBB/cron.php b/phpBB/cron.php index 3f022b1db8..aed68f6aeb 100644 --- a/phpBB/cron.php +++ b/phpBB/cron.php @@ -55,6 +55,18 @@ if ($cron_lock->acquire()) $task = $cron->find_task($cron_type); if ($task) { + /** + * This event enables you to catch the task before it runs + * + * @event core.cron_run_before + * @var \phpbb\cron\task\wrapper task Current Cron task + * @since 3.1.8-RC1 + */ + $vars = array( + 'task', + ); + extract($phpbb_dispatcher->trigger_event('core.cron_run_before', compact($vars))); + if ($task->is_parametrized()) { $task->parse_parameters($request); diff --git a/phpBB/docs/INSTALL.html b/phpBB/docs/INSTALL.html index 333d367aa7..9f8bbe74b8 100644 --- a/phpBB/docs/INSTALL.html +++ b/phpBB/docs/INSTALL.html @@ -160,7 +160,7 @@
  • zlib Compression support
  • Remote FTP support
  • XML support
  • -
  • Imagemagick support
  • +
  • ImageMagick support
  • GD Support
  • diff --git a/phpBB/docs/events.md b/phpBB/docs/events.md index fced20ecfe..1fe8b915f1 100644 --- a/phpBB/docs/events.md +++ b/phpBB/docs/events.md @@ -843,6 +843,14 @@ mcp_front_latest_unapproved_before * Since: 3.1.3-RC1 * Purpose: Add content before latest unapproved posts list +mcp_move_before +=== +* Locations: + + styles/prosilver/template/mcp_move.html + + styles/subsilver2/template/mcp_move.html +* Since: 3.1.10-RC1 +* Purpose: Add content before move topic/post form + mcp_post_additional_options === * Locations: @@ -1853,6 +1861,18 @@ topiclist_row_append * Changed: 3.1.6-RC1 Added event to mcp_forum.html * Purpose: Add content into topic rows (inside the elements containing topic titles) +topiclist_row_topic_title_after +=== +* Locations: + + styles/prosilver/template/search_results.html + + styles/prosilver/template/viewforum_body.html + + styles/prosilver/template/mcp_forum.html + + styles/subsilver2/template/search_results.html + + styles/subsilver2/template/viewforum_body.html + + styles/subsilver2/template/mcp_forum.html +* Since: 3.1.10-RC1 +* Purpose: Add content into topic rows (after the elements containing the topic titles) + ucp_agreement_terms_after === * Locations: diff --git a/phpBB/feed.php b/phpBB/feed.php index e0c0b01db6..6fd0ed800f 100644 --- a/phpBB/feed.php +++ b/phpBB/feed.php @@ -84,6 +84,20 @@ $feed->open(); // Iterate through items while ($row = $feed->get_item()) { + /** + * Event to modify the feed row + * + * @event core.feed_modify_feed_row + * @var int forum_id Forum ID + * @var string mode Feeds mode (forums|topics|topics_new|topics_active|news) + * @var array row Array with feed data + * @var int topic_id Topic ID + * + * @since 3.1.10-RC1 + */ + $vars = array('forum_id', 'mode', 'row', 'topic_id'); + extract($phpbb_dispatcher->trigger_event('core.feed_modify_feed_row', compact($vars))); + // BBCode options to correctly disable urls, smilies, bbcode... if ($feed->get('options') === NULL) { diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index cec621e89d..e004d2e81f 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -449,7 +449,7 @@ class acp_board 'legend2' => 'SMTP_SETTINGS', 'smtp_delivery' => array('lang' => 'USE_SMTP', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true), - 'smtp_host' => array('lang' => 'SMTP_SERVER', 'validate' => 'string', 'type' => 'text:25:50', 'explain' => false), + 'smtp_host' => array('lang' => 'SMTP_SERVER', 'validate' => 'string', 'type' => 'text:25:50', 'explain' => true), 'smtp_port' => array('lang' => 'SMTP_PORT', 'validate' => 'int:0:99999', 'type' => 'number:0:99999', 'explain' => true), 'smtp_auth_method' => array('lang' => 'SMTP_AUTH_METHOD', 'validate' => 'string', 'type' => 'select', 'method' => 'mail_auth_select', 'explain' => true), 'smtp_username' => array('lang' => 'SMTP_USERNAME', 'validate' => 'string', 'type' => 'text:25:255', 'explain' => true), diff --git a/phpBB/includes/acp/acp_main.php b/phpBB/includes/acp/acp_main.php index afa0f1ea61..848cafeb67 100644 --- a/phpBB/includes/acp/acp_main.php +++ b/phpBB/includes/acp/acp_main.php @@ -453,6 +453,12 @@ class acp_main $template->assign_var('S_VERSION_UP_TO_DATE', true); } + // Incomplete update? + if (phpbb_version_compare($config['version'], PHPBB_VERSION, '<')) + { + $template->assign_var('S_UPDATE_INCOMPLETE', true); + } + /** * Notice admin * diff --git a/phpBB/includes/acp/acp_update.php b/phpBB/includes/acp/acp_update.php index 0167a06dbb..529f0f2185 100644 --- a/phpBB/includes/acp/acp_update.php +++ b/phpBB/includes/acp/acp_update.php @@ -62,5 +62,17 @@ class acp_update 'UPDATE_INSTRUCTIONS' => sprintf($user->lang['UPDATE_INSTRUCTIONS'], $update_link), )); + + // Incomplete update? + if (phpbb_version_compare($config['version'], PHPBB_VERSION, '<')) + { + $database_update_link = append_sid($phpbb_root_path . 'install/database_update.' . $phpEx); + + $template->assign_vars(array( + 'S_UPDATE_INCOMPLETE' => true, + 'FILES_VERSION' => PHPBB_VERSION, + 'INCOMPLETE_INSTRUCTIONS' => $user->lang('UPDATE_INCOMPLETE_EXPLAIN', $database_update_link), + )); + } } } diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index b225effacc..12ca5540ca 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -4334,6 +4334,30 @@ function obtain_users_online_string($online_users, $item_id = 0, $item = 'forum' } } } + + /** + * Modify online userlist data + * + * @event core.obtain_users_online_string_before_modify + * @var array online_users Array with online users data + * from obtain_users_online() + * @var int item_id Restrict online users to item id + * @var string item Restrict online users to a certain + * session item, e.g. forum for + * session_forum_id + * @var array rowset Array with online users data + * @var array user_online_link Array with online users items (usernames) + * @since 3.1.10-RC1 + */ + $vars = array( + 'online_users', + 'item_id', + 'item', + 'rowset', + 'user_online_link', + ); + extract($phpbb_dispatcher->trigger_event('core.obtain_users_online_string_before_modify', compact($vars))); + $online_userlist = implode(', ', $user_online_link); if (!$online_userlist) diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index 4ecb7b9354..9c543eaac6 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -201,7 +201,7 @@ function group_select_options($group_id, $exclude_ids = false, $manage_founder = */ function get_forum_list($acl_list = 'f_list', $id_only = true, $postable_only = false, $no_cache = false) { - global $db, $auth; + global $db, $auth, $phpbb_dispatcher; static $forum_rows; if (!isset($forum_rows)) @@ -256,6 +256,16 @@ function get_forum_list($acl_list = 'f_list', $id_only = true, $postable_only = } } + /** + * Modify the forum list data + * + * @event core.get_forum_list_modify_data + * @var array rowset Array with the forum list data + * @since 3.1.10-RC1 + */ + $vars = array('rowset'); + extract($phpbb_dispatcher->trigger_event('core.get_forum_list_modify_data', compact($vars))); + return $rowset; } @@ -2531,7 +2541,7 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = false, /** * Prune function */ -function prune($forum_id, $prune_mode, $prune_date, $prune_flags = 0, $auto_sync = true) +function prune($forum_id, $prune_mode, $prune_date, $prune_flags = 0, $auto_sync = true, $prune_limit = 0) { global $db, $phpbb_dispatcher; @@ -2583,9 +2593,19 @@ function prune($forum_id, $prune_mode, $prune_date, $prune_flags = 0, $auto_sync * @var int prune_flags The prune flags * @var bool auto_sync Whether or not to perform auto sync * @var string sql_and SQL text appended to where clause + * @var int prune_limit The prune limit * @since 3.1.3-RC1 + * @changed 3.1.10-RC1 Added prune_limit */ - $vars = array('forum_id', 'prune_mode', 'prune_date', 'prune_flags', 'auto_sync', 'sql_and'); + $vars = array( + 'forum_id', + 'prune_mode', + 'prune_date', + 'prune_flags', + 'auto_sync', + 'sql_and', + 'prune_limit', + ); extract($phpbb_dispatcher->trigger_event('core.prune_sql', compact($vars))); $sql = 'SELECT topic_id @@ -2593,7 +2613,7 @@ function prune($forum_id, $prune_mode, $prune_date, $prune_flags = 0, $auto_sync WHERE ' . $db->sql_in_set('forum_id', $forum_id) . " AND poll_start = 0 $sql_and"; - $result = $db->sql_query($sql); + $result = $db->sql_query_limit($sql, $prune_limit); $topic_list = array(); while ($row = $db->sql_fetchrow($result)) @@ -2610,7 +2630,7 @@ function prune($forum_id, $prune_mode, $prune_date, $prune_flags = 0, $auto_sync AND poll_start > 0 AND poll_last_vote < $prune_date $sql_and"; - $result = $db->sql_query($sql); + $result = $db->sql_query_limit($sql, $prune_limit); while ($row = $db->sql_fetchrow($result)) { @@ -2643,12 +2663,15 @@ function auto_prune($forum_id, $prune_mode, $prune_flags, $prune_days, $prune_fr $prune_date = time() - ($prune_days * 86400); $next_prune = time() + ($prune_freq * 86400); - prune($forum_id, $prune_mode, $prune_date, $prune_flags, true); + $result = prune($forum_id, $prune_mode, $prune_date, $prune_flags, true, 300); - $sql = 'UPDATE ' . FORUMS_TABLE . " - SET prune_next = $next_prune - WHERE forum_id = $forum_id"; - $db->sql_query($sql); + if ($result['topics'] == 0 && $result['posts'] == 0) + { + $sql = 'UPDATE ' . FORUMS_TABLE . " + SET prune_next = $next_prune + WHERE forum_id = $forum_id"; + $db->sql_query($sql); + } add_log('admin', 'LOG_AUTO_PRUNE', $row['forum_name']); } diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index e05fcb0586..87dd306e8a 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -150,7 +150,7 @@ function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key, */ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list = false, $force_display = false) { - global $config, $auth, $template, $user, $db, $phpbb_path_helper; + global $config, $auth, $template, $user, $db, $phpbb_path_helper, $phpbb_dispatcher; // We only return if the jumpbox is not forced to be displayed (in case it is needed for functionality) if (!$config['load_jumpbox'] && $force_display === false) @@ -205,20 +205,21 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list continue; } + $tpl_ary = array(); if (!$display_jumpbox) { - $template->assign_block_vars('jumpbox_forums', array( + $tpl_ary[] = array( 'FORUM_ID' => ($select_all) ? 0 : -1, 'FORUM_NAME' => ($select_all) ? $user->lang['ALL_FORUMS'] : $user->lang['SELECT_FORUM'], 'S_FORUM_COUNT' => $iteration, 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $forum_id)), - )); + ); $iteration++; $display_jumpbox = true; } - $template->assign_block_vars('jumpbox_forums', array( + $tpl_ary[] = array( 'FORUM_ID' => $row['forum_id'], 'FORUM_NAME' => $row['forum_name'], 'SELECTED' => ($row['forum_id'] == $forum_id) ? ' selected="selected"' : '', @@ -227,7 +228,25 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list 'S_IS_LINK' => ($row['forum_type'] == FORUM_LINK) ? true : false, 'S_IS_POST' => ($row['forum_type'] == FORUM_POST) ? true : false, 'LINK' => $phpbb_path_helper->append_url_params($action, array('f' => $row['forum_id'])), - )); + ); + + /** + * Modify the jumpbox before it is assigned to the template + * + * @event core.make_jumpbox_modify_tpl_ary + * @var array row The data of the forum + * @var array tpl_ary Template data of the forum + * @since 3.1.10-RC1 + */ + $vars = array( + 'row', + 'tpl_ary', + ); + extract($phpbb_dispatcher->trigger_event('core.make_jumpbox_modify_tpl_ary', compact($vars))); + + $template->assign_block_vars_array('jumpbox_forums', $tpl_ary); + + unset($tpl_ary); for ($i = 0; $i < $padding; $i++) { diff --git a/phpBB/includes/functions_download.php b/phpBB/includes/functions_download.php index 2c5cba2c0d..2c6f62227c 100644 --- a/phpBB/includes/functions_download.php +++ b/phpBB/includes/functions_download.php @@ -166,7 +166,7 @@ function send_file_to_browser($attachment, $upload_dir, $category) } // Make sure the database record for the filesize is correct - if ($size > 0 && $size != $attachment['filesize']) + if ($size > 0 && $size != $attachment['filesize'] && strpos($attachment['physical_filename'], 'thumb_') === false) { // Update database record $sql = 'UPDATE ' . ATTACHMENTS_TABLE . ' diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index b2713fef07..57c68d4935 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -702,7 +702,7 @@ function create_thumbnail($source, $destination, $mimetype) $used_imagick = false; - // Only use imagemagick if defined and the passthru function not disabled + // Only use ImageMagick if defined and the passthru function not disabled if ($config['img_imagick'] && function_exists('passthru')) { if (substr($config['img_imagick'], -1) !== '/') diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index bfdd1badc3..8a09f055bf 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -119,19 +119,29 @@ function user_update_name($old_name, $new_name) global $config, $db, $cache, $phpbb_dispatcher; $update_ary = array( - FORUMS_TABLE => array('forum_last_poster_name'), - MODERATOR_CACHE_TABLE => array('username'), - POSTS_TABLE => array('post_username'), - TOPICS_TABLE => array('topic_first_poster_name', 'topic_last_poster_name'), + FORUMS_TABLE => array( + 'forum_last_poster_id' => 'forum_last_poster_name', + ), + MODERATOR_CACHE_TABLE => array( + 'user_id' => 'username', + ), + POSTS_TABLE => array( + 'poster_id' => 'post_username', + ), + TOPICS_TABLE => array( + 'topic_poster' => 'topic_first_poster_name', + 'topic_last_poster_id' => 'topic_last_poster_name', + ), ); foreach ($update_ary as $table => $field_ary) { - foreach ($field_ary as $field) + foreach ($field_ary as $id_field => $name_field) { $sql = "UPDATE $table - SET $field = '" . $db->sql_escape($new_name) . "' - WHERE $field = '" . $db->sql_escape($old_name) . "'"; + SET $name_field = '" . $db->sql_escape($new_name) . "' + WHERE $name_field = '" . $db->sql_escape($old_name) . "' + AND $id_field <> " . ANONYMOUS; $db->sql_query($sql); } } diff --git a/phpBB/includes/ucp/ucp_pm_compose.php b/phpBB/includes/ucp/ucp_pm_compose.php index aae80b0c06..d365e8b489 100644 --- a/phpBB/includes/ucp/ucp_pm_compose.php +++ b/phpBB/includes/ucp/ucp_pm_compose.php @@ -751,6 +751,34 @@ function compose_pm($id, $mode, $action, $user_folders = array()) $enable_urls = (isset($_POST['disable_magic_url'])) ? 0 : 1; $enable_sig = (!$config['allow_sig'] ||!$config['allow_sig_pm']) ? false : ((isset($_POST['attach_sig'])) ? true : false); + /** + * Modify private message + * + * @event core.ucp_pm_compose_modify_parse_before + * @var bool enable_bbcode Whether or not bbcode is enabled + * @var bool enable_smilies Whether or not smilies are enabled + * @var bool enable_urls Whether or not urls are enabled + * @var bool enable_sig Whether or not signature is enabled + * @var string subject PM subject text + * @var object message_parser The message parser object + * @var bool submit Whether or not the form has been sumitted + * @var bool preview Whether or not the signature is being previewed + * @var array error Any error strings + * @since 3.1.10-RC1 + */ + $vars = array( + 'enable_bbcode', + 'enable_smilies', + 'enable_urls', + 'enable_sig', + 'subject', + 'message_parser', + 'submit', + 'preview', + 'error', + ); + extract($phpbb_dispatcher->trigger_event('core.ucp_pm_compose_modify_parse_before', compact($vars))); + if ($submit) { $status_switch = (($enable_bbcode+1) << 8) + (($enable_smilies+1) << 4) + (($enable_urls+1) << 2) + (($enable_sig+1) << 1); diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php index 2708a8dedf..0be1930f1a 100644 --- a/phpBB/includes/ucp/ucp_profile.php +++ b/phpBB/includes/ucp/ucp_profile.php @@ -479,6 +479,32 @@ class ucp_profile { $message_parser = new parse_message($signature); + /** + * Modify user signature on editing profile in UCP + * + * @event core.ucp_profile_modify_signature + * @var bool enable_bbcode Whether or not bbcode is enabled + * @var bool enable_smilies Whether or not smilies are enabled + * @var bool enable_urls Whether or not urls are enabled + * @var string signature Users signature text + * @var object message_parser The message parser object + * @var array error Any error strings + * @var bool submit Whether or not the form has been sumitted + * @var bool preview Whether or not the signature is being previewed + * @since 3.1.10-RC1 + */ + $vars = array( + 'enable_bbcode', + 'enable_smilies', + 'enable_urls', + 'signature', + 'message_parser', + 'error', + 'submit', + 'preview', + ); + extract($phpbb_dispatcher->trigger_event('core.ucp_profile_modify_signature', compact($vars))); + // Allowing Quote BBCode $message_parser->parse($enable_bbcode, $enable_urls, $enable_smilies, $config['allow_sig_img'], $config['allow_sig_flash'], true, $config['allow_sig_links'], true, 'sig'); @@ -505,6 +531,16 @@ class ucp_profile 'user_sig_bbcode_bitfield' => $message_parser->bbcode_bitfield ); + /** + * Modify user registration data before submitting it to the database + * + * @event core.ucp_profile_modify_signature_sql_ary + * @var array sql_ary Array with user signature data to submit to the database + * @since 3.1.10-RC1 + */ + $vars = array('sql_ary'); + extract($phpbb_dispatcher->trigger_event('core.ucp_profile_modify_signature_sql_ary', compact($vars))); + $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE user_id = ' . $user->data['user_id']; diff --git a/phpBB/index.php b/phpBB/index.php index eb9a657b3f..e4c03949c1 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -184,8 +184,8 @@ if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets(' * Event to modify the birthdays list * * @event core.index_modify_birthdays_list - * @var array birthdays Array with the users birhtdays data - * @var array rows Array with the birhtdays SQL query result + * @var array birthdays Array with the users birthdays data + * @var array rows Array with the birthdays SQL query result * @since 3.1.7-RC1 */ $vars = array('birthdays', 'rows'); diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php index 5b818f9475..8e57ed3edd 100644 --- a/phpBB/install/install_install.php +++ b/phpBB/install/install_install.php @@ -151,10 +151,10 @@ class install_install extends module 'LEGEND_EXPLAIN' => $lang['PHP_SETTINGS_EXPLAIN'], )); - // Test the minimum PHP version + // Test the minimum and maximum version of PHP $php_version = PHP_VERSION; - if (version_compare($php_version, '5.3.3') < 0) + if ((version_compare($php_version, '5.3.3') < 0) || (version_compare($php_version, '7.0.0-dev', '>='))) { $result = '' . $lang['NO'] . ''; } @@ -404,7 +404,7 @@ class install_install extends module )); } - // Can we find Imagemagick anywhere on the system? + // Can we find ImageMagick anywhere on the system? $exe = (DIRECTORY_SEPARATOR == '\\') ? '.exe' : ''; $magic_home = getenv('MAGICK_HOME'); diff --git a/phpBB/language/en/acp/attachments.php b/phpBB/language/en/acp/attachments.php index cf2f0a45d2..7d3d93d693 100644 --- a/phpBB/language/en/acp/attachments.php +++ b/phpBB/language/en/acp/attachments.php @@ -117,7 +117,7 @@ $lang = array_merge($lang, array( 'IMAGE_LINK_SIZE' => 'Image link dimensions', 'IMAGE_LINK_SIZE_EXPLAIN' => 'Display image attachment as an inline text link if image is larger than this. To disable this behaviour, set the values to 0px by 0px.', - 'IMAGICK_PATH' => 'Imagemagick path', + 'IMAGICK_PATH' => 'ImageMagick path', 'IMAGICK_PATH_EXPLAIN' => 'Full path to the imagemagick convert application, e.g. /usr/bin/.', 'MAX_ATTACHMENTS' => 'Maximum number of attachments per post', @@ -153,7 +153,7 @@ $lang = array_merge($lang, array( 'REMOVE_DISALLOWED_IPS' => 'Remove or un-exclude disallowed IPs/hostnames', 'RESYNC_FILES_STATS_CONFIRM' => 'Are you sure you wish to resynchronise file statistics?', - 'SEARCH_IMAGICK' => 'Search for Imagemagick', + 'SEARCH_IMAGICK' => 'Search for ImageMagick', 'SECURE_ALLOW_DENY' => 'Allow/Deny list', 'SECURE_ALLOW_DENY_EXPLAIN' => 'Change the default behaviour when secure downloads are enabled of the Allow/Deny list to that of a whitelist (Allow) or a blacklist (Deny).', 'SECURE_DOWNLOADS' => 'Enable secure downloads', diff --git a/phpBB/language/en/acp/board.php b/phpBB/language/en/acp/board.php index 8d6c1c141d..8b4db6a061 100644 --- a/phpBB/language/en/acp/board.php +++ b/phpBB/language/en/acp/board.php @@ -570,6 +570,7 @@ $lang = array_merge($lang, array( 'SMTP_PORT' => 'SMTP server port', 'SMTP_PORT_EXPLAIN' => 'Only change this if you know your SMTP server is on a different port.', 'SMTP_SERVER' => 'SMTP server address', + 'SMTP_SERVER_EXPLAIN' => 'Note that you have to provide the protocol that your server uses. If you are using SSL, this has to be "ssl://your.mailserver.com"', 'SMTP_SETTINGS' => 'SMTP settings', 'SMTP_USERNAME' => 'SMTP username', 'SMTP_USERNAME_EXPLAIN' => 'Only enter a username if your SMTP server requires it.', diff --git a/phpBB/language/en/email/forum_notify.txt b/phpBB/language/en/email/forum_notify.txt index a05be5fd96..ccae82c862 100644 --- a/phpBB/language/en/email/forum_notify.txt +++ b/phpBB/language/en/email/forum_notify.txt @@ -2,7 +2,7 @@ Subject: Forum post notification - "{FORUM_NAME}" Hello {USERNAME}, -You are receiving this notification because you are watching the forum "{FORUM_NAME}" at "{SITENAME}". This forum has received a new reply to the topic "{TOPIC_TITLE}" by {AUTHOR_NAME} since your last visit. You can use the following link to view the last unread reply, no more notifications will be sent until you visit the topic. +You are receiving this notification because you are watching the forum "{FORUM_NAME}" at "{SITENAME}". This forum has received a new reply to the topic "{TOPIC_TITLE}" by {AUTHOR_NAME} since your last visit. You can use the following link to view the last unread reply, no more notifications will be sent until you visit the topic. {U_NEWEST_POST} diff --git a/phpBB/language/en/email/newtopic_notify.txt b/phpBB/language/en/email/newtopic_notify.txt index 5089e7dcb8..b9416d8e40 100644 --- a/phpBB/language/en/email/newtopic_notify.txt +++ b/phpBB/language/en/email/newtopic_notify.txt @@ -2,7 +2,7 @@ Subject: New topic notification - "{FORUM_NAME}" Hello {USERNAME}, -You are receiving this notification because you are watching the forum "{FORUM_NAME}" at "{SITENAME}". This forum has received a new topic by {AUTHOR_NAME} since your last visit, "{TOPIC_TITLE}". You can use the following link to view the forum, no more notifications will be sent until you visit the forum. +You are receiving this notification because you are watching the forum "{FORUM_NAME}" at "{SITENAME}". This forum has received a new topic by {AUTHOR_NAME} since your last visit, "{TOPIC_TITLE}". You can use the following link to view the forum, no more notifications will be sent until you visit the forum. {U_FORUM} diff --git a/phpBB/language/en/email/short/newtopic_notify.txt b/phpBB/language/en/email/short/newtopic_notify.txt index 5089e7dcb8..b9416d8e40 100644 --- a/phpBB/language/en/email/short/newtopic_notify.txt +++ b/phpBB/language/en/email/short/newtopic_notify.txt @@ -2,7 +2,7 @@ Subject: New topic notification - "{FORUM_NAME}" Hello {USERNAME}, -You are receiving this notification because you are watching the forum "{FORUM_NAME}" at "{SITENAME}". This forum has received a new topic by {AUTHOR_NAME} since your last visit, "{TOPIC_TITLE}". You can use the following link to view the forum, no more notifications will be sent until you visit the forum. +You are receiving this notification because you are watching the forum "{FORUM_NAME}" at "{SITENAME}". This forum has received a new topic by {AUTHOR_NAME} since your last visit, "{TOPIC_TITLE}". You can use the following link to view the forum, no more notifications will be sent until you visit the forum. {U_FORUM} diff --git a/phpBB/language/en/email/short/topic_notify.txt b/phpBB/language/en/email/short/topic_notify.txt index 529478eae2..b1ed65727c 100644 --- a/phpBB/language/en/email/short/topic_notify.txt +++ b/phpBB/language/en/email/short/topic_notify.txt @@ -2,7 +2,7 @@ Subject: Topic reply notification - "{TOPIC_TITLE}" Hello {USERNAME}, -You are receiving this notification because you are watching the topic "{TOPIC_TITLE}" at "{SITENAME}". This topic has received a reply by {AUTHOR_NAME} since your last visit. You can use the following link to view the replies made, no more notifications will be sent until you visit the topic. +You are receiving this notification because you are watching the topic "{TOPIC_TITLE}" at "{SITENAME}". This topic has received a reply by {AUTHOR_NAME} since your last visit. You can use the following link to view the replies made, no more notifications will be sent until you visit the topic. If you want to view the newest post made since your last visit, click the following link: {U_NEWEST_POST} diff --git a/phpBB/language/en/email/topic_notify.txt b/phpBB/language/en/email/topic_notify.txt index d5272d7416..20b86ee729 100644 --- a/phpBB/language/en/email/topic_notify.txt +++ b/phpBB/language/en/email/topic_notify.txt @@ -2,7 +2,7 @@ Subject: Topic reply notification - "{TOPIC_TITLE}" Hello {USERNAME}, -You are receiving this notification because you are watching the topic "{TOPIC_TITLE}" at "{SITENAME}". This topic has received a reply by {AUTHOR_NAME} since your last visit. No more notifications will be sent until you visit the topic. +You are receiving this notification because you are watching the topic "{TOPIC_TITLE}" at "{SITENAME}". This topic has received a reply by {AUTHOR_NAME} since your last visit. No more notifications will be sent until you visit the topic. If you want to view the newest post made since your last visit, click the following link: {U_NEWEST_POST} diff --git a/phpBB/language/en/install.php b/phpBB/language/en/install.php index dd22e84fcb..6477a929e9 100644 --- a/phpBB/language/en/install.php +++ b/phpBB/language/en/install.php @@ -44,7 +44,7 @@ $lang = array_merge($lang, array( 'ADMIN_TEST' => 'Check administrator settings', 'ADMIN_USERNAME' => 'Administrator username', 'ADMIN_USERNAME_EXPLAIN' => 'Please enter a username between 3 and 20 characters in length.', - 'APP_MAGICK' => 'Imagemagick support [ Attachments ]', + 'APP_MAGICK' => 'ImageMagick support [ Attachments ]', 'AUTHOR_NOTES' => 'Author notes
    » %s', 'AVAILABLE' => 'Available', 'AVAILABLE_CONVERTORS' => 'Available convertors', @@ -282,7 +282,7 @@ $lang = array_merge($lang, array( 'NOT_UNDERSTAND' => 'Could not understand %s #%d, table %s (“%s”)', 'NO_CONVERTORS' => 'No convertors are available for use.', 'NO_CONVERT_SPECIFIED' => 'No convertor specified.', - 'NO_LOCATION' => 'Cannot determine location. If you know Imagemagick is installed, you may specify the location later within your administration control panel', + 'NO_LOCATION' => 'Cannot determine location. If you know ImageMagick is installed, you may specify the location later within your administration control panel', 'NO_TABLES_FOUND' => 'No tables found.', 'OVERVIEW_BODY' => 'Welcome to phpBB3!

    phpBB® is the most widely used open source bulletin board solution in the world. phpBB3 is the latest installment in a package line started in 2000. Like its predecessors, phpBB3 is feature-rich, user-friendly, and fully supported by the phpBB Team. phpBB3 greatly improves on what made phpBB2 popular, and adds commonly requested features that were not present in previous versions. We hope it exceeds your expectations.

    This installation system will guide you through installing phpBB3, updating to the latest version of phpBB3 from past releases, as well as converting to phpBB3 from a different discussion board system (including phpBB2). For more information, we encourage you to read the installation guide.

    To read the phpBB3 license or learn about obtaining support and our stance on it, please select the respective options from the side menu. To continue, please select the appropriate tab above.', @@ -301,10 +301,10 @@ $lang = array_merge($lang, array( 'PHP_REGISTER_GLOBALS_EXPLAIN' => 'phpBB will still run if this setting is enabled, but if possible, it is recommended that register_globals is disabled on your PHP install for security reasons.', 'PHP_SAFE_MODE' => 'Safe mode', 'PHP_SETTINGS' => 'PHP version and settings', - 'PHP_SETTINGS_EXPLAIN' => 'Required - You must be running at least version 5.3.3 of PHP in order to install phpBB. If safe mode is displayed below your PHP installation is running in that mode. This will impose limitations on remote administration and similar features.', + 'PHP_SETTINGS_EXPLAIN' => 'Required - You must be running at least version 5.3.3 of PHP (PHP 7 is not supported) in order to install phpBB. If safe mode is displayed below your PHP installation is running in that mode. This will impose limitations on remote administration and similar features.', 'PHP_URL_FOPEN_SUPPORT' => 'PHP setting allow_url_fopen is enabled', 'PHP_URL_FOPEN_SUPPORT_EXPLAIN' => 'Optional - This setting is optional, however certain phpBB functions like off-site avatars will not work properly without it.', - 'PHP_VERSION_REQD' => 'PHP version >= 5.3.3', + 'PHP_VERSION_REQD' => 'PHP version: >= 5.3.3, < 7.0.0-dev', 'POST_ID' => 'Post ID', 'PREFIX_FOUND' => 'A scan of your tables has shown a valid installation using %s as table prefix.', 'PREPROCESS_STEP' => 'Executing pre-processing functions/queries', @@ -400,6 +400,7 @@ $lang = array_merge($lang, array( 'DATABASE_UPDATE_CONTINUE' => 'Continue database update', 'DATABASE_UPDATE_INFO_OLD' => 'The database update file within the install directory is outdated. Please make sure you uploaded the correct version of the file.', 'DATABASE_UPDATE_NOT_COMPLETED' => 'The database update has not yet completed.', + 'DATABASE_VERSION' => 'Database version', 'DELETE_USER_REMOVE' => 'Delete user and remove posts', 'DELETE_USER_RETAIN' => 'Delete user but keep posts', 'DESTINATION' => 'Destination file', @@ -439,6 +440,7 @@ $lang = array_merge($lang, array( 'FILES_NOT_MODIFIED_EXPLAIN' => 'The following files are not modified and represent the original phpBB files from the version you want to update from.', 'FILES_UP_TO_DATE' => 'Already updated files', 'FILES_UP_TO_DATE_EXPLAIN' => 'The following files are already up to date and do not need to be updated.', + 'FILES_VERSION' => 'Files Version', 'FTP_SETTINGS' => 'FTP settings', 'FTP_UPDATE_METHOD' => 'FTP upload', @@ -486,6 +488,7 @@ $lang = array_merge($lang, array( 'OLD_UPDATE_FILES' => 'Update files are out of date. The update files found are for updating from phpBB %1$s to phpBB %2$s but the latest version of phpBB is %3$s.', 'PACKAGE_UPDATES_TO' => 'Current package updates to version', + 'PACKAGE_VERSION' => 'Package version installed', 'PERFORM_DATABASE_UPDATE' => 'Perform database update', 'PERFORM_DATABASE_UPDATE_EXPLAIN' => 'Below you will find a button to the database update script. The database update can take a while, so please do not stop the execution if it seems to hang. After the database update has been performed just follow the instructions to continue the update process.', 'PREVIOUS_VERSION' => 'Previous version', @@ -530,6 +533,12 @@ $lang = array_merge($lang, array( 'UPDATE_DATABASE_SCHEMA' => 'Updating database schema', 'UPDATE_FILES' => 'Update files', 'UPDATE_FILES_NOTICE' => 'Please make sure you have updated your board files too, this file is only updating your database.', + 'UPDATE_INCOMPLETE' => 'Your phpBB installation has not been correctly updated.', + 'UPDATE_INCOMPLETE_MORE' => 'Please read the information below in order to fix this error.', + 'UPDATE_INCOMPLETE_EXPLAIN' => '

    Incomplete update

    + +

    We noticed that the last update of your phpBB installation hasn’t been completed. Visit the database_update script and run it. If it is missing, please download your package version, upload the "install" folder to your phpBB root directory (where your config.php file is) and run the database update script.

    ', + 'UPDATE_INSTALLATION' => 'Update phpBB installation', 'UPDATE_INSTALLATION_EXPLAIN' => 'With this option, it is possible to update your phpBB installation to the latest version.
    During the process all of your files will be checked for their integrity. You are able to review all differences and files before the update.

    The file update itself can be done in two different ways.

    Manual Update

    With this update you only download your personal set of changed files to make sure you do not lose your file modifications you may have done. After you downloaded this package you need to manually upload the files to their correct position under your phpBB root directory. Once done, you are able to do the file check stage again to see if you moved the files to their correct location.

    Automatic Update with FTP

    This method is similar to the first one but without the need to download the changed files and uploading them on your own. This will be done for you. In order to use this method you need to know your FTP login details since you will be asked for them. Once finished you will be redirected to the file check again to make sure everything got updated correctly.

    ', 'UPDATE_INSTRUCTIONS' => ' diff --git a/phpBB/language/en/search_ignore_words.php b/phpBB/language/en/search_ignore_words.php deleted file mode 100644 index 3db209d120..0000000000 --- a/phpBB/language/en/search_ignore_words.php +++ /dev/null @@ -1,271 +0,0 @@ - -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -if (!defined('IN_PHPBB')) -{ - exit; -} - -$words = array( - 'a', - 'about', - 'after', - 'ago', - 'all', - 'almost', - 'along', - 'alot', - 'also', - 'am', - 'an', - 'and', - 'answer', - 'any', - 'anybody', - 'anybodys', - 'anywhere', - 'are', - 'arent', - 'around', - 'as', - 'ask', - 'askd', - 'at', - 'bad', - 'be', - 'because', - 'been', - 'before', - 'being', - 'best', - 'better', - 'between', - 'big', - 'btw', - 'but', - 'by', - 'can', - 'cant', - 'come', - 'could', - 'couldnt', - 'day', - 'days', - 'days', - 'did', - 'didnt', - 'do', - 'does', - 'doesnt', - 'dont', - 'down', - 'each', - 'etc', - 'either', - 'else', - 'even', - 'ever', - 'every', - 'everybody', - 'everybodys', - 'everyone', - 'far', - 'find', - 'for', - 'found', - 'from', - 'get', - 'go', - 'going', - 'gone', - 'good', - 'got', - 'gotten', - 'had', - 'has', - 'have', - 'havent', - 'having', - 'her', - 'here', - 'hers', - 'him', - 'his', - 'home', - 'how', - 'hows', - 'href', - 'I', - 'Ive', - 'if', - 'in', - 'ini', - 'into', - 'is', - 'isnt', - 'it', - 'its', - 'its', - 'just', - 'know', - 'large', - 'less', - 'like', - 'liked', - 'little', - 'looking', - 'look', - 'looked', - 'looking', - 'lot', - 'maybe', - 'many', - 'me', - 'more', - 'most', - 'much', - 'must', - 'mustnt', - 'my', - 'near', - 'need', - 'never', - 'new', - 'news', - 'no', - 'none', - 'not', - 'nothing', - 'now', - 'of', - 'off', - 'often', - 'old', - 'on', - 'once', - 'only', - 'oops', - 'or', - 'other', - 'our', - 'ours', - 'out', - 'over', - 'page', - 'please', - 'put', - 'question', - 'questions', - 'questioned', - 'quote', - 'rather', - 'really', - 'recent', - 'said', - 'saw', - 'say', - 'says', - 'she', - 'see', - 'sees', - 'should', - 'sites', - 'small', - 'so', - 'some', - 'something', - 'sometime', - 'somewhere', - 'soon', - 'take', - 'than', - 'true', - 'thank', - 'that', - 'thatd', - 'thats', - 'the', - 'their', - 'theirs', - 'theres', - 'theirs', - 'them', - 'then', - 'there', - 'these', - 'they', - 'theyll', - 'theyd', - 'theyre', - 'this', - 'those', - 'though', - 'through', - 'thus', - 'time', - 'times', - 'to', - 'too', - 'under', - 'until', - 'untrue', - 'up', - 'upon', - 'use', - 'users', - 'version', - 'very', - 'via', - 'want', - 'was', - 'way', - 'we', - 'well', - 'went', - 'were', - 'werent', - 'what', - 'when', - 'where', - 'which', - 'who', - 'whom', - 'whose', - 'why', - 'wide', - 'will', - 'with', - 'within', - 'without', - 'wont', - 'world', - 'worse', - 'worst', - 'would', - 'wrote', - 'www', - 'yes', - 'yet', - 'you', - 'youd', - 'youll', - 'your', - 'youre', - 'yours', - 'AFAIK', - 'IIRC', - 'LOL', - 'ROTF', - 'ROTFLMAO', - 'YMMV', -); diff --git a/phpBB/language/en/search_synonyms.php b/phpBB/language/en/search_synonyms.php deleted file mode 100644 index 6a8c257f0b..0000000000 --- a/phpBB/language/en/search_synonyms.php +++ /dev/null @@ -1,191 +0,0 @@ - -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -if (!defined('IN_PHPBB')) -{ - exit; -} - -$synonyms = array( - 'abcense' => 'absence', - 'abridgement' => 'abridgment', - 'accomodate' => 'accommodate', - 'acknowledgment' => 'acknowledgement', - 'airplane' => 'aeroplane', - 'allright' => 'alright ', - 'andy' => 'andrew', - 'anemia' => 'anaemia', - 'anemic' => 'anaemic', - 'anesthesia' => 'anaesthesia', - 'apologize' => 'apologise', - 'archean' => 'archaean', - 'archeology' => 'archaeology', - 'archeozoic' => 'archaeozoic', - 'armor' => 'armour', - 'artic' => 'arctic', - 'attachment' => 'attachement', - 'attendence' => 'attendance', - - 'barbecue' => 'barbeque', - 'behavior' => 'behaviour', - 'biassed' => 'biased', - 'biol' => 'biology', - 'buletin' => 'bulletin', - - 'calender' => 'calendar', - 'canceled' => 'cancelled', - 'car' => 'automobile', - 'catalog' => 'catalogue', - 'cenozoic' => 'caenozoic', - 'center' => 'centre', - 'check' => 'cheque', - 'color' => 'colour', - 'comission' => 'commission', - 'comittee' => 'committee', - 'commitee' => 'committee', - 'conceed' => 'concede', - 'creating' => 'createing', - 'curiculum' => 'curriculum', - - 'defense' => 'defence', - 'develope' => 'develop', - 'discription' => 'description', - 'dulness' => 'dullness', - - 'encyclopedia' => 'encyclopaedia', - 'enroll' => 'enrol', - 'esthetic' => 'aesthetic', - 'etiology' => 'aetiology', - 'exhorbitant' => 'exorbitant', - 'exhuberant' => 'exuberant', - 'existance' => 'existence', - - 'favorite' => 'favourite', - 'fetus' => 'foetus', - 'ficticious' => 'fictitious', - 'flavor' => 'flavour', - 'flourescent' => 'fluorescent', - 'foriegn' => 'foreign', - 'fourty' => 'forty', - - 'gage' => 'gauge', - 'geneology' => 'genealogy', - 'grammer' => 'grammar', - 'gray' => 'grey', - 'guerilla' => 'guerrilla', - 'gynecology' => 'gynaecology', - - 'harbor' => 'harbour', - 'heighth' => 'height', - 'hemaglobin' => 'haemaglobin', - 'hematin' => 'haematin', - 'hematite' => 'haematite', - 'hematology' => 'haematology', - 'honor' => 'honour', - - 'innoculate' => 'inoculate', - 'installment' => 'instalment', - 'irrelevent' => 'irrelevant', - 'irrevelant' => 'irrelevant', - - 'jeweler' => 'jeweller', - 'judgment' => 'judgement', - - 'labeled' => 'labelled', - 'labor' => 'labour', - 'laborer' => 'labourer', - 'laborers' => 'labourers', - 'laboring' => 'labouring', - 'licence' => 'license', - 'liesure' => 'leisure', - 'liquify' => 'liquefy', - - 'maintainance' => 'maintenance', - 'maintenence' => 'maintenance', - 'medieval' => 'mediaeval', - 'meter' => 'metre', - 'milage' => 'mileage', - 'millipede' => 'millepede', - 'miscelaneous' => 'miscellaneous', - 'morgage' => 'mortgage', - - 'noticable' => 'noticeable', - - 'occurence' => 'occurrence', - 'offense' => 'offence', - 'ommision' => 'omission', - 'ommission' => 'omission', - 'optimize' => 'optimise', - 'organize' => 'organise', - - 'pajamas' => 'pyjamas', - 'paleography' => 'palaeography', - 'paleolithic' => 'palaeolithic', - 'paleontological' => 'palaeontological', - 'paleontologist' => 'palaeontologist', - 'paleontology' => 'palaeontology', - 'paleozoic' => 'palaeozoic', - 'pamplet' => 'pamphlet', - 'paralell' => 'parallel', - 'parl' => 'parliament', - 'parlt' => 'parliament', - 'pediatric' => 'paediatric', - 'pediatrician' => 'paediatrician', - 'pediatrics' => 'paediatrics', - 'pedodontia' => 'paedodontia', - 'pedodontics' => 'paedodontics', - 'personel' => 'personnel', - 'practise' => 'practice', - 'program' => 'programme', - 'psych' => 'psychology', - - 'questionaire' => 'questionnaire', - - 'rarify' => 'rarefy', - 'reccomend' => 'recommend', - 'recieve' => 'receive', - 'resistence' => 'resistance', - 'restaraunt' => 'restaurant', - - 'savior' => 'saviour', - 'sep' => 'september', - 'seperate' => 'separate', - 'sept' => 'september', - 'sieze' => 'seize', - 'summarize' => 'summarise', - 'summerize' => 'summarise', - 'superceed' => 'supercede', - 'superintendant' => 'superintendent', - 'supersede' => 'supercede', - 'suprise' => 'surprise', - 'surprize' => 'surprise', - 'synchronise' => 'synchronize', - - 'temperary' => 'temporary', - 'theater' => 'theatre', - 'threshhold' => 'threshold', - 'transfered' => 'transferred', - 'truely' => 'truly', - 'truley' => 'truly', - - 'useable' => 'usable', - - 'valor' => 'valour', - 'vigor' => 'vigour', - 'vol' => 'volume', - - 'whack' => 'wack', - 'withold' => 'withhold', - - 'yeild' => 'yield', -); diff --git a/phpBB/phpbb/avatar/driver/gravatar.php b/phpBB/phpbb/avatar/driver/gravatar.php index bb4977c30c..7a43b55852 100644 --- a/phpBB/phpbb/avatar/driver/gravatar.php +++ b/phpBB/phpbb/avatar/driver/gravatar.php @@ -52,8 +52,8 @@ class gravatar extends \phpbb\avatar\driver\driver public function prepare_form($request, $template, $user, $row, &$error) { $template->assign_vars(array( - 'AVATAR_GRAVATAR_WIDTH' => (($row['avatar_type'] == $this->get_name() || $row['avatar_type'] == 'gravatar') && $row['avatar_width']) ? $row['avatar_width'] : $request->variable('avatar_gravatar_width', 0), - 'AVATAR_GRAVATAR_HEIGHT' => (($row['avatar_type'] == $this->get_name() || $row['avatar_type'] == 'gravatar') && $row['avatar_height']) ? $row['avatar_height'] : $request->variable('avatar_gravatar_width', 0), + 'AVATAR_GRAVATAR_WIDTH' => (($row['avatar_type'] == $this->get_name() || $row['avatar_type'] == 'gravatar') && $row['avatar_width']) ? $row['avatar_width'] : $request->variable('avatar_gravatar_width', ''), + 'AVATAR_GRAVATAR_HEIGHT' => (($row['avatar_type'] == $this->get_name() || $row['avatar_type'] == 'gravatar') && $row['avatar_height']) ? $row['avatar_height'] : $request->variable('avatar_gravatar_width', ''), 'AVATAR_GRAVATAR_EMAIL' => (($row['avatar_type'] == $this->get_name() || $row['avatar_type'] == 'gravatar') && $row['avatar']) ? $row['avatar'] : '', )); diff --git a/phpBB/phpbb/avatar/driver/remote.php b/phpBB/phpbb/avatar/driver/remote.php index 4b0ee3f06f..bec54897b2 100644 --- a/phpBB/phpbb/avatar/driver/remote.php +++ b/phpBB/phpbb/avatar/driver/remote.php @@ -36,8 +36,8 @@ class remote extends \phpbb\avatar\driver\driver public function prepare_form($request, $template, $user, $row, &$error) { $template->assign_vars(array( - 'AVATAR_REMOTE_WIDTH' => ((in_array($row['avatar_type'], array(AVATAR_REMOTE, $this->get_name(), 'remote'))) && $row['avatar_width']) ? $row['avatar_width'] : $request->variable('avatar_remote_width', 0), - 'AVATAR_REMOTE_HEIGHT' => ((in_array($row['avatar_type'], array(AVATAR_REMOTE, $this->get_name(), 'remote'))) && $row['avatar_height']) ? $row['avatar_height'] : $request->variable('avatar_remote_width', 0), + 'AVATAR_REMOTE_WIDTH' => ((in_array($row['avatar_type'], array(AVATAR_REMOTE, $this->get_name(), 'remote'))) && $row['avatar_width']) ? $row['avatar_width'] : $request->variable('avatar_remote_width', ''), + 'AVATAR_REMOTE_HEIGHT' => ((in_array($row['avatar_type'], array(AVATAR_REMOTE, $this->get_name(), 'remote'))) && $row['avatar_height']) ? $row['avatar_height'] : $request->variable('avatar_remote_width', ''), 'AVATAR_REMOTE_URL' => ((in_array($row['avatar_type'], array(AVATAR_REMOTE, $this->get_name(), 'remote'))) && $row['avatar']) ? $row['avatar'] : '', )); diff --git a/phpBB/phpbb/content_visibility.php b/phpBB/phpbb/content_visibility.php index 0ba0489cb7..147b8ebbff 100644 --- a/phpBB/phpbb/content_visibility.php +++ b/phpBB/phpbb/content_visibility.php @@ -417,6 +417,11 @@ class content_visibility return array(); } + if (!function_exists('truncate_string')) + { + include($this->phpbb_root_path . 'includes/functions_content.' . $this->php_ext); + } + $data = array( 'post_visibility' => (int) $visibility, 'post_delete_user' => (int) $user_id, @@ -628,6 +633,11 @@ class content_visibility } } + if (!function_exists('truncate_string')) + { + include($this->phpbb_root_path . 'includes/functions_content.' . $this->php_ext); + } + // Note, we do not set a reason for the posts, just for the topic $data = array( 'topic_visibility' => (int) $visibility, diff --git a/phpBB/phpbb/cron/manager.php b/phpBB/phpbb/cron/manager.php index 079ce8107e..9bd30a0a5b 100644 --- a/phpBB/phpbb/cron/manager.php +++ b/phpBB/phpbb/cron/manager.php @@ -110,7 +110,7 @@ class manager * Web runner uses this method to resolve names to tasks. * * @param string $name Name of the task to look up. - * @return \phpbb\cron\task\task A task corresponding to the given name, or null. + * @return \phpbb\cron\task\wrapper A wrapped task corresponding to the given name, or null. */ public function find_task($name) { diff --git a/phpBB/phpbb/feed/base.php b/phpBB/phpbb/feed/base.php index 322e2ee9f1..eeea0a55df 100644 --- a/phpBB/phpbb/feed/base.php +++ b/phpBB/phpbb/feed/base.php @@ -39,6 +39,12 @@ abstract class base /** @var \phpbb\auth\auth */ protected $auth; + /** @var \phpbb\content_visibility */ + protected $content_visibility; + + /** @var \phpbb\event\dispatcher_interface */ + protected $phpbb_dispatcher; + /** @var string */ protected $phpEx; @@ -79,10 +85,21 @@ abstract class base * @param \phpbb\cache\driver\driver_interface $cache Cache object * @param \phpbb\user $user User object * @param \phpbb\auth\auth $auth Auth object - * @param \phpbb\content_visibility $content_visibility Auth object + * @param \phpbb\content_visibility $content_visibility Content visibility object + * @param \phpbb\event\dispatcher_interface $phpbb_dispatcher Event dispatcher object * @param string $phpEx php file extension */ - function __construct(\phpbb\feed\helper $helper, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\cache\driver\driver_interface $cache, \phpbb\user $user, \phpbb\auth\auth $auth, \phpbb\content_visibility $content_visibility, $phpEx) + function __construct( + \phpbb\feed\helper $helper, + \phpbb\config\config $config, + \phpbb\db\driver\driver_interface $db, + \phpbb\cache\driver\driver_interface $cache, + \phpbb\user $user, + \phpbb\auth\auth $auth, + \phpbb\content_visibility $content_visibility, + \phpbb\event\dispatcher_interface $phpbb_dispatcher, + $phpEx + ) { $this->config = $config; $this->helper = $helper; @@ -91,6 +108,7 @@ abstract class base $this->user = $user; $this->auth = $auth; $this->content_visibility = $content_visibility; + $this->phpbb_dispatcher = $phpbb_dispatcher; $this->phpEx = $phpEx; $this->set_keys(); @@ -239,6 +257,21 @@ abstract class base return false; } + $sql_ary = $this->sql; + + /** + * Event to modify the feed item sql + * + * @event core.feed_base_modify_item_sql + * @var array sql_ary The SQL array to get the feed item data + * + * @since 3.1.10-RC1 + */ + $vars = array('sql_ary'); + extract($this->phpbb_dispatcher->trigger_event('core.feed_base_modify_item_sql', compact($vars))); + $this->sql = $sql_ary; + unset($sql_ary); + // Query database $sql = $this->db->sql_build_query('SELECT', $this->sql); $this->result = $this->db->sql_query_limit($sql, $this->num_items); diff --git a/phpBB/phpbb/notification/manager.php b/phpBB/phpbb/notification/manager.php index 222d9fe9e6..ecba8938f2 100644 --- a/phpBB/phpbb/notification/manager.php +++ b/phpBB/phpbb/notification/manager.php @@ -192,7 +192,7 @@ class manager $sql = 'SELECT n.*, nt.notification_type_name FROM ' . $this->notifications_table . ' n, ' . $this->notification_types_table . ' nt WHERE n.user_id = ' . (int) $options['user_id'] . - (($options['notification_id']) ? ((is_array($options['notification_id'])) ? ' AND ' . $this->db->sql_in_set('n.notification_id', $options['notification_id']) : ' AND n.notification_id = ' . (int) $options['notification_id']) : '') . ' + (($options['notification_id']) ? ' AND ' . $this->db->sql_in_set('n.notification_id', $options['notification_id']) : '') . ' AND nt.notification_type_id = n.notification_type_id AND nt.notification_type_enabled = 1 ORDER BY n.' . $this->db->sql_escape($options['order_by']) . ' ' . $this->db->sql_escape($options['order_dir']); @@ -275,10 +275,9 @@ class manager $sql = 'UPDATE ' . $this->notifications_table . " SET notification_read = 1 WHERE notification_time <= " . (int) $time . - (($notification_type_name !== false) ? ' AND ' . - (is_array($notification_type_name) ? $this->db->sql_in_set('notification_type_id', $this->get_notification_type_ids($notification_type_name)) : 'notification_type_id = ' . $this->get_notification_type_id($notification_type_name)) : '') . - (($user_id !== false) ? ' AND ' . (is_array($user_id) ? $this->db->sql_in_set('user_id', $user_id) : 'user_id = ' . (int) $user_id) : '') . - (($item_id !== false) ? ' AND ' . (is_array($item_id) ? $this->db->sql_in_set('item_id', $item_id) : 'item_id = ' . (int) $item_id) : ''); + (($notification_type_name !== false) ? ' AND ' . $this->db->sql_in_set('notification_type_id', $this->get_notification_type_ids($notification_type_name)) : '') . + (($user_id !== false) ? ' AND ' . $this->db->sql_in_set('user_id', $user_id) : '') . + (($item_id !== false) ? ' AND ' . $this->db->sql_in_set('item_id', $item_id) : ''); $this->db->sql_query($sql); } @@ -297,10 +296,9 @@ class manager $sql = 'UPDATE ' . $this->notifications_table . " SET notification_read = 1 WHERE notification_time <= " . (int) $time . - (($notification_type_name !== false) ? ' AND ' . - (is_array($notification_type_name) ? $this->db->sql_in_set('notification_type_id', $this->get_notification_type_ids($notification_type_name)) : 'notification_type_id = ' . $this->get_notification_type_id($notification_type_name)) : '') . - (($item_parent_id !== false) ? ' AND ' . (is_array($item_parent_id) ? $this->db->sql_in_set('item_parent_id', $item_parent_id, false, true) : 'item_parent_id = ' . (int) $item_parent_id) : '') . - (($user_id !== false) ? ' AND ' . (is_array($user_id) ? $this->db->sql_in_set('user_id', $user_id) : 'user_id = ' . (int) $user_id) : ''); + (($notification_type_name !== false) ? ' AND ' . $this->db->sql_in_set('notification_type_id', $this->get_notification_type_ids($notification_type_name)) : '') . + (($item_parent_id !== false) ? ' AND ' . $this->db->sql_in_set('item_parent_id', $item_parent_id, false, true) : '') . + (($user_id !== false) ? ' AND ' . $this->db->sql_in_set('user_id', $user_id) : ''); $this->db->sql_query($sql); } @@ -317,7 +315,7 @@ class manager $sql = 'UPDATE ' . $this->notifications_table . " SET notification_read = 1 WHERE notification_time <= " . (int) $time . ' - AND ' . ((is_array($notification_id)) ? $this->db->sql_in_set('notification_id', $notification_id) : 'notification_id = ' . (int) $notification_id); + AND ' . $this->db->sql_in_set('notification_id', $notification_id); $this->db->sql_query($sql); } @@ -542,8 +540,8 @@ class manager $sql = 'DELETE FROM ' . $this->notifications_table . ' WHERE notification_type_id = ' . (int) $notification_type_id . ' - AND ' . (is_array($item_id) ? $this->db->sql_in_set('item_id', $item_id) : 'item_id = ' . (int) $item_id) . - (($parent_id !== false) ? ' AND ' . ((is_array($parent_id) ? $this->db->sql_in_set('item_parent_id', $parent_id) : 'item_parent_id = ' . (int) $parent_id)) : ''); + AND ' . $this->db->sql_in_set('item_id', $item_id) . + (($parent_id !== false) ? ' AND ' . $this->db->sql_in_set('item_parent_id', $parent_id) : ''); $this->db->sql_query($sql); } @@ -969,11 +967,16 @@ class manager /** * Get notification type ids (as an array) * - * @param array $notification_type_names Array of strings + * @param string|array $notification_type_names Notification type names * @return array Array of integers */ - public function get_notification_type_ids(array $notification_type_names) + public function get_notification_type_ids($notification_type_names) { + if (!is_array($notification_type_names)) + { + $notification_type_names = array($notification_type_names); + } + $notification_type_ids = array(); foreach ($notification_type_names as $name) diff --git a/phpBB/phpbb/search/base.php b/phpBB/phpbb/search/base.php index 30781975d8..d9313dddab 100644 --- a/phpBB/phpbb/search/base.php +++ b/phpBB/phpbb/search/base.php @@ -36,52 +36,6 @@ class base $error = true; } - /** - * Retrieves a language dependend list of words that should be ignored by the search - */ - function get_ignore_words() - { - if (!sizeof($this->ignore_words)) - { - global $user, $phpEx; - - $words = array(); - - if (file_exists("{$user->lang_path}{$user->lang_name}/search_ignore_words.$phpEx")) - { - // include the file containing ignore words - include("{$user->lang_path}{$user->lang_name}/search_ignore_words.$phpEx"); - } - - $this->ignore_words = $words; - unset($words); - } - } - - /** - * Stores a list of synonyms that should be replaced in $this->match_synonym and $this->replace_synonym and caches them - */ - function get_synonyms() - { - if (!sizeof($this->match_synonym)) - { - global $user, $phpEx; - - $synonyms = array(); - - if (file_exists("{$user->lang_path}{$user->lang_name}/search_synonyms.$phpEx")) - { - // include the file containing synonyms - include("{$user->lang_path}{$user->lang_name}/search_synonyms.$phpEx"); - } - - $this->match_synonym = array_keys($synonyms); - $this->replace_synonym = array_values($synonyms); - - unset($synonyms); - } - } - /** * Retrieves cached search results * diff --git a/phpBB/phpbb/template/twig/twig.php b/phpBB/phpbb/template/twig/twig.php index bd754d9bbd..d1bbb2b55a 100644 --- a/phpBB/phpbb/template/twig/twig.php +++ b/phpBB/phpbb/template/twig/twig.php @@ -350,7 +350,7 @@ class twig extends \phpbb\template\base return $this->twig->render($this->get_filename_from_handle($handle), $this->get_template_vars()); } - $this->assign_var($template_var, $this->twig->render($this->get_filename_from_handle($handle, $this->get_template_vars()))); + $this->assign_var($template_var, $this->twig->render($this->get_filename_from_handle($handle), $this->get_template_vars())); return $this; } diff --git a/phpBB/search.php b/phpBB/search.php index 7469daa49c..a0380590c1 100644 --- a/phpBB/search.php +++ b/phpBB/search.php @@ -320,7 +320,10 @@ if ($keywords || $author || $author_id || $search_id || $submit) * @var array ex_fid_ary Array of excluded forum ids * @var array author_id_ary Array of exclusive author ids * @var string search_id The id of the search request + * @var array id_ary Array of post or topic ids for search result + * @var string show_results 'posts' or 'topics' type of ids * @since 3.1.3-RC1 + * @changed 3.1.10-RC1 Added id_ary, show_results */ $vars = array( 'keywords', @@ -328,6 +331,8 @@ if ($keywords || $author || $author_id || $search_id || $submit) 'ex_fid_ary', 'author_id_ary', 'search_id', + 'id_ary', + 'show_results', ); extract($phpbb_dispatcher->trigger_event('core.search_modify_param_before', compact($vars))); @@ -1249,6 +1254,7 @@ if ($keywords || $author || $author_id || $search_id || $submit) } // Search forum +$rowset = array(); $s_forums = ''; $sql = 'SELECT f.forum_id, f.forum_name, f.parent_id, f.forum_type, f.left_id, f.right_id, f.forum_password, f.enable_indexing, fa.user_id FROM ' . FORUMS_TABLE . ' f @@ -1257,11 +1263,27 @@ $sql = 'SELECT f.forum_id, f.forum_name, f.parent_id, f.forum_type, f.left_id, f ORDER BY f.left_id ASC"; $result = $db->sql_query($sql); +while ($row = $db->sql_fetchrow($result)) +{ + $rowset[(int) $row['forum_id']] = $row; +} +$db->sql_freeresult($result); + $right = $cat_right = $padding_inc = 0; $padding = $forum_list = $holding = ''; $pad_store = array('0' => ''); -while ($row = $db->sql_fetchrow($result)) +/** +* Modify the forum select list for advanced search page +* +* @event core.search_modify_forum_select_list +* @var array rowset Array with the forums list data +* @since 3.1.10-RC1 +*/ +$vars = array('rowset'); +extract($phpbb_dispatcher->trigger_event('core.search_modify_forum_select_list', compact($vars))); + +foreach ($rowset as $row) { if ($row['forum_type'] == FORUM_CAT && ($row['left_id'] + 1 == $row['right_id'])) { @@ -1333,8 +1355,8 @@ if ($holding) $s_forums .= $holding; } -$db->sql_freeresult($result); unset($pad_store); +unset($rowset); if (!$s_forums) { diff --git a/phpBB/styles/prosilver/template/mcp_forum.html b/phpBB/styles/prosilver/template/mcp_forum.html index 9b472ccd30..3033ef799c 100644 --- a/phpBB/styles/prosilver/template/mcp_forum.html +++ b/phpBB/styles/prosilver/template/mcp_forum.html @@ -50,7 +50,7 @@ {REPORTED_IMG}  [ {L_DELETE_SHADOW_TOPIC} ]
    - +