diff options
26 files changed, 343 insertions, 178 deletions
diff --git a/build/build.xml b/build/build.xml index 5e7c672195..b4fab62c29 100644 --- a/build/build.xml +++ b/build/build.xml @@ -3,8 +3,8 @@ <project name="phpBB" description="The phpBB forum software" default="all" basedir="../"> <!-- a few settings for the build --> <property name="newversion" value="3.2.4-dev" /> - <property name="prevversion" value="3.2.2" /> - <property name="olderversions" value="3.0.14, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.2.0-a1, 3.2.0-a2, 3.2.0-b1, 3.2.0-b2, 3.2.0-RC1, 3.2.0-RC2, 3.2.0, 3.2.1" /> + <property name="prevversion" value="3.2.3" /> + <property name="olderversions" value="3.0.14, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.2.0-a1, 3.2.0-a2, 3.2.0-b1, 3.2.0-b2, 3.2.0-RC1, 3.2.0-RC2, 3.2.0, 3.2.1, 3.2.2" /> <!-- no configuration should be needed beyond this point --> <property name="oldversions" value="${olderversions}, ${prevversion}" /> diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index 752dfa4ab2..32be1cf6ed 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -935,9 +935,9 @@ phpbb.addAjaxCallback('alt_text', function() { $anchor.each(function() { var $this = $(this); altText = $this.attr('data-alt-text'); - $this.attr('data-alt-text', $this.text()); - $this.attr('title', $.trim(altText)); - $this.text(altText); + $this.attr('data-alt-text', $.trim($this.text())); + $this.attr('title', altText); + $this.children('span').text(altText); }); }); diff --git a/phpBB/assets/javascript/plupload.js b/phpBB/assets/javascript/plupload.js index 8b3543880f..495d756c79 100644 --- a/phpBB/assets/javascript/plupload.js +++ b/phpBB/assets/javascript/plupload.js @@ -211,7 +211,7 @@ phpbb.plupload.updateHiddenData = function(row, attach, index) { .attr('type', 'hidden') .attr('name', 'attachment_data[' + index + '][' + key + ']') .attr('value', attach[key]); - $('textarea', row).after(input); + $(row).append(input); } }; diff --git a/phpBB/composer.lock b/phpBB/composer.lock index 444736506a..c83ff7aa51 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -84,16 +84,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "5.3.2", + "version": "5.3.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "f9acb4761844317e626a32259205bec1f1bc60d2" + "reference": "93bbdb30d59be6cd9839495306c65f2907370eb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f9acb4761844317e626a32259205bec1f1bc60d2", - "reference": "f9acb4761844317e626a32259205bec1f1bc60d2", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/93bbdb30d59be6cd9839495306c65f2907370eb9", + "reference": "93bbdb30d59be6cd9839495306c65f2907370eb9", "shasum": "" }, "require": { @@ -133,20 +133,20 @@ "rest", "web service" ], - "time": "2018-01-15 07:18:01" + "time": "2018-07-31 13:33:10" }, { "name": "guzzlehttp/ringphp", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/guzzle/RingPHP.git", - "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b" + "reference": "5e2a174052995663dd68e6b5ad838afd47dd615b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b", - "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b", + "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/5e2a174052995663dd68e6b5ad838afd47dd615b", + "reference": "5e2a174052995663dd68e6b5ad838afd47dd615b", "shasum": "" }, "require": { @@ -184,7 +184,7 @@ } ], "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.", - "time": "2015-05-20 03:37:09" + "time": "2018-07-31 13:22:33" }, { "name": "guzzlehttp/streams", @@ -343,7 +343,7 @@ "oauth", "security" ], - "time": "2018-02-14 22:37:14" + "time": "2016-07-12 22:15:00" }, { "name": "marc1706/fast-image-size", @@ -506,7 +506,7 @@ "pseudorandom", "random" ], - "time": "2018-04-04 21:48:54" + "time": "2017-03-13 16:22:52" }, { "name": "patchwork/utf8", @@ -727,16 +727,16 @@ }, { "name": "symfony/config", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "93bdf96d0e3c9b29740bf9050e7a996b443c8436" + "reference": "06c0be4cdd8363f3ec8d592c9a4d1b981d5052af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/93bdf96d0e3c9b29740bf9050e7a996b443c8436", - "reference": "93bdf96d0e3c9b29740bf9050e7a996b443c8436", + "url": "https://api.github.com/repos/symfony/config/zipball/06c0be4cdd8363f3ec8d592c9a4d1b981d5052af", + "reference": "06c0be4cdd8363f3ec8d592c9a4d1b981d5052af", "shasum": "" }, "require": { @@ -780,20 +780,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2018-05-01 22:52:40" + "time": "2018-07-26 11:13:39" }, { "name": "symfony/console", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "e8e59b74ad1274714dad2748349b55e3e6e630c7" + "reference": "0c1fcbb9afb5cff992c982ff99c0434f0146dcfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/e8e59b74ad1274714dad2748349b55e3e6e630c7", - "reference": "e8e59b74ad1274714dad2748349b55e3e6e630c7", + "url": "https://api.github.com/repos/symfony/console/zipball/0c1fcbb9afb5cff992c982ff99c0434f0146dcfc", + "reference": "0c1fcbb9afb5cff992c982ff99c0434f0146dcfc", "shasum": "" }, "require": { @@ -841,20 +841,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-05-15 21:17:45" + "time": "2018-07-26 11:13:39" }, { "name": "symfony/debug", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "a26ddce7fe4e884097d72435653bc7e703411f26" + "reference": "cbb8a5f212148964efbc414838c527229f9951b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/a26ddce7fe4e884097d72435653bc7e703411f26", - "reference": "a26ddce7fe4e884097d72435653bc7e703411f26", + "url": "https://api.github.com/repos/symfony/debug/zipball/cbb8a5f212148964efbc414838c527229f9951b7", + "reference": "cbb8a5f212148964efbc414838c527229f9951b7", "shasum": "" }, "require": { @@ -898,20 +898,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-06-22 15:01:26" + "time": "2018-08-03 09:45:57" }, { "name": "symfony/dependency-injection", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "0f42a0827d99a867ffd279ae083e7daf1fe42cb7" + "reference": "ad2446d39d11c3daaa7f147d957941a187e47357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0f42a0827d99a867ffd279ae083e7daf1fe42cb7", - "reference": "0f42a0827d99a867ffd279ae083e7daf1fe42cb7", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ad2446d39d11c3daaa7f147d957941a187e47357", + "reference": "ad2446d39d11c3daaa7f147d957941a187e47357", "shasum": "" }, "require": { @@ -961,20 +961,20 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2018-05-25 13:50:34" + "time": "2018-07-26 11:13:39" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c" + "reference": "84ae343f39947aa084426ed1138bb96bf94d1f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9b69aad7d4c086dc94ebade2d5eb9145da5dac8c", - "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/84ae343f39947aa084426ed1138bb96bf94d1f12", + "reference": "84ae343f39947aa084426ed1138bb96bf94d1f12", "shasum": "" }, "require": { @@ -1021,20 +1021,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2018-04-06 07:35:03" + "time": "2018-07-26 09:03:18" }, { "name": "symfony/filesystem", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0f685c099aca7ba86bcc31850186dbfe84a4a8a1" + "reference": "0b252f4e25b7da17abb5a98eb60755b71d082c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f685c099aca7ba86bcc31850186dbfe84a4a8a1", - "reference": "0f685c099aca7ba86bcc31850186dbfe84a4a8a1", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0b252f4e25b7da17abb5a98eb60755b71d082c9c", + "reference": "0b252f4e25b7da17abb5a98eb60755b71d082c9c", "shasum": "" }, "require": { @@ -1071,20 +1071,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2018-06-21 09:24:14" + "time": "2018-08-07 09:12:42" }, { "name": "symfony/finder", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "995cd7c28a0778cece02e2133b4d813dc509dfc3" + "reference": "f0de0b51913eb2caab7dfed6413b87e14fca780e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/995cd7c28a0778cece02e2133b4d813dc509dfc3", - "reference": "995cd7c28a0778cece02e2133b4d813dc509dfc3", + "url": "https://api.github.com/repos/symfony/finder/zipball/f0de0b51913eb2caab7dfed6413b87e14fca780e", + "reference": "f0de0b51913eb2caab7dfed6413b87e14fca780e", "shasum": "" }, "require": { @@ -1120,20 +1120,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2018-06-19 11:07:17" + "time": "2018-07-26 11:13:39" }, { "name": "symfony/http-foundation", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f0332229bfecb3c3d3c983f2139f39dd73d2723a" + "reference": "dc02e684171d0696edb6d4266e9d93af5e3f44d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f0332229bfecb3c3d3c983f2139f39dd73d2723a", - "reference": "f0332229bfecb3c3d3c983f2139f39dd73d2723a", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/dc02e684171d0696edb6d4266e9d93af5e3f44d3", + "reference": "dc02e684171d0696edb6d4266e9d93af5e3f44d3", "shasum": "" }, "require": { @@ -1175,20 +1175,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2018-06-19 14:38:49" + "time": "2018-08-27 15:52:41" }, { "name": "symfony/http-kernel", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "5f01e7b4a82458906e81231993abe1fbb7b25fbc" + "reference": "5424d38f10dc62752e655740224681a478d9f5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5f01e7b4a82458906e81231993abe1fbb7b25fbc", - "reference": "5f01e7b4a82458906e81231993abe1fbb7b25fbc", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5424d38f10dc62752e655740224681a478d9f5bb", + "reference": "5424d38f10dc62752e655740224681a478d9f5bb", "shasum": "" }, "require": { @@ -1259,29 +1259,32 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2018-06-25 12:01:56" + "time": "2018-08-27 17:33:38" }, { "name": "symfony/polyfill-ctype", - "version": "v1.8.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae" + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/7cc359f1b7b80fc25ed7796be7d96adc9b354bae", - "reference": "7cc359f1b7b80fc25ed7796be7d96adc9b354bae", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", + "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", "shasum": "" }, "require": { "php": ">=5.3.3" }, + "suggest": { + "ext-ctype": "For best performance" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -1314,20 +1317,20 @@ "polyfill", "portable" ], - "time": "2018-04-30 19:57:29" + "time": "2018-08-06 14:22:27" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.8.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "3296adf6a6454a050679cde90f95350ad604b171" + "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171", - "reference": "3296adf6a6454a050679cde90f95350ad604b171", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d0cd638f4634c16d8df4508e847f14e9e43168b8", + "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8", "shasum": "" }, "require": { @@ -1339,7 +1342,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -1373,20 +1376,20 @@ "portable", "shim" ], - "time": "2018-04-26 10:06:28" + "time": "2018-08-06 14:22:27" }, { "name": "symfony/polyfill-php54", - "version": "v1.8.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php54.git", - "reference": "6c3a2b84c6025e4ea3f6a19feac35408c64b22e1" + "reference": "412977e090c6a8472dc39d50d1beb7d59495a965" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/6c3a2b84c6025e4ea3f6a19feac35408c64b22e1", - "reference": "6c3a2b84c6025e4ea3f6a19feac35408c64b22e1", + "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/412977e090c6a8472dc39d50d1beb7d59495a965", + "reference": "412977e090c6a8472dc39d50d1beb7d59495a965", "shasum": "" }, "require": { @@ -1395,7 +1398,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -1431,20 +1434,20 @@ "portable", "shim" ], - "time": "2018-04-26 10:06:28" + "time": "2018-08-06 14:22:27" }, { "name": "symfony/polyfill-php55", - "version": "v1.8.0", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php55.git", - "reference": "a39456128377a85f2c5707fcae458678560cba46" + "reference": "578b8528da843de0fc65ec395900fa3181f2ead7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/a39456128377a85f2c5707fcae458678560cba46", - "reference": "a39456128377a85f2c5707fcae458678560cba46", + "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/578b8528da843de0fc65ec395900fa3181f2ead7", + "reference": "578b8528da843de0fc65ec395900fa3181f2ead7", "shasum": "" }, "require": { @@ -1454,7 +1457,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -1487,20 +1490,20 @@ "portable", "shim" ], - "time": "2018-04-26 10:06:28" + "time": "2018-08-06 14:22:27" }, { "name": "symfony/proxy-manager-bridge", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/proxy-manager-bridge.git", - "reference": "d73283cfe025d73c70551c45d22c54bd43c2c53b" + "reference": "0fd7ab039e26a33c5e3d1e00642bc83412c0896a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/d73283cfe025d73c70551c45d22c54bd43c2c53b", - "reference": "d73283cfe025d73c70551c45d22c54bd43c2c53b", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/0fd7ab039e26a33c5e3d1e00642bc83412c0896a", + "reference": "0fd7ab039e26a33c5e3d1e00642bc83412c0896a", "shasum": "" }, "require": { @@ -1541,20 +1544,20 @@ ], "description": "Symfony ProxyManager Bridge", "homepage": "https://symfony.com", - "time": "2018-01-03 07:36:31" + "time": "2018-07-26 09:03:18" }, { "name": "symfony/routing", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "39064bae264907e48fe4e8ad5141f6dc6a3932fb" + "reference": "e26f791e8669603e9dc0a601e75a50f914eaa144" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/39064bae264907e48fe4e8ad5141f6dc6a3932fb", - "reference": "39064bae264907e48fe4e8ad5141f6dc6a3932fb", + "url": "https://api.github.com/repos/symfony/routing/zipball/e26f791e8669603e9dc0a601e75a50f914eaa144", + "reference": "e26f791e8669603e9dc0a601e75a50f914eaa144", "shasum": "" }, "require": { @@ -1615,20 +1618,20 @@ "uri", "url" ], - "time": "2018-06-19 09:52:17" + "time": "2018-07-26 11:13:39" }, { "name": "symfony/twig-bridge", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "f56824eed503d9bb65600a262fdb46571672c257" + "reference": "2bb814a4554a7188275be36503dc27c0dd12cd2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/f56824eed503d9bb65600a262fdb46571672c257", - "reference": "f56824eed503d9bb65600a262fdb46571672c257", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/2bb814a4554a7188275be36503dc27c0dd12cd2f", + "reference": "2bb814a4554a7188275be36503dc27c0dd12cd2f", "shasum": "" }, "require": { @@ -1700,20 +1703,20 @@ ], "description": "Symfony Twig Bridge", "homepage": "https://symfony.com", - "time": "2018-05-17 10:20:34" + "time": "2018-07-26 11:13:39" }, { "name": "symfony/yaml", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "51356b7a2ff7c9fd06b2f1681cc463bb62b5c1ff" + "reference": "fbf876678e29dc634430dcf0096e216eb0004467" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/51356b7a2ff7c9fd06b2f1681cc463bb62b5c1ff", - "reference": "51356b7a2ff7c9fd06b2f1681cc463bb62b5c1ff", + "url": "https://api.github.com/repos/symfony/yaml/zipball/fbf876678e29dc634430dcf0096e216eb0004467", + "reference": "fbf876678e29dc634430dcf0096e216eb0004467", "shasum": "" }, "require": { @@ -1750,24 +1753,25 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-05-01 22:52:40" + "time": "2018-07-26 09:03:18" }, { "name": "twig/twig", - "version": "v1.35.3", + "version": "v1.35.4", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "b48680b6eb7d16b5025b9bfc4108d86f6b8af86f" + "reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/b48680b6eb7d16b5025b9bfc4108d86f6b8af86f", - "reference": "b48680b6eb7d16b5025b9bfc4108d86f6b8af86f", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e081e98378a1e78c29cc9eba4aefa5d78a05d2a", + "reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "psr/container": "^1.0", @@ -1806,16 +1810,16 @@ }, { "name": "Twig Team", - "homepage": "http://twig.sensiolabs.org/contributors", + "homepage": "https://twig.symfony.com/contributors", "role": "Contributors" } ], "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "http://twig.sensiolabs.org", + "homepage": "https://twig.symfony.com", "keywords": [ "templating" ], - "time": "2018-03-20 04:25:58" + "time": "2018-07-13 07:12:17" }, { "name": "zendframework/zend-code", @@ -2357,16 +2361,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.6", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", - "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", "shasum": "" }, "require": { @@ -2378,12 +2382,12 @@ }, "require-dev": { "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.8.x-dev" } }, "autoload": { @@ -2416,7 +2420,7 @@ "spy", "stub" ], - "time": "2018-04-18 13:57:24" + "time": "2018-08-05 17:53:17" }, { "name": "phpunit/dbunit", @@ -3410,16 +3414,16 @@ }, { "name": "symfony/browser-kit", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "11ccc2ebefba78c1bb0a2d2d2dd4b4e09a5fba02" + "reference": "fe44362c97307e7935996cb09d320fcc22619656" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/11ccc2ebefba78c1bb0a2d2d2dd4b4e09a5fba02", - "reference": "11ccc2ebefba78c1bb0a2d2d2dd4b4e09a5fba02", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/fe44362c97307e7935996cb09d320fcc22619656", + "reference": "fe44362c97307e7935996cb09d320fcc22619656", "shasum": "" }, "require": { @@ -3463,20 +3467,20 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", - "time": "2018-03-19 21:11:56" + "time": "2018-07-26 09:03:18" }, { "name": "symfony/css-selector", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "3cdc270724e4666006118283c700a4d7f9cbe264" + "reference": "294611f3a0d265bcf049e2da62cb4f712e3ed927" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/3cdc270724e4666006118283c700a4d7f9cbe264", - "reference": "3cdc270724e4666006118283c700a4d7f9cbe264", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/294611f3a0d265bcf049e2da62cb4f712e3ed927", + "reference": "294611f3a0d265bcf049e2da62cb4f712e3ed927", "shasum": "" }, "require": { @@ -3516,20 +3520,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2018-03-10 18:19:36" + "time": "2018-07-26 09:03:18" }, { "name": "symfony/dom-crawler", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "a01b1fa5322847d1d51aa61f74c86b438c2f34e8" + "reference": "2fd6513f2dd3b08446da420070084db376c0134c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/a01b1fa5322847d1d51aa61f74c86b438c2f34e8", - "reference": "a01b1fa5322847d1d51aa61f74c86b438c2f34e8", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2fd6513f2dd3b08446da420070084db376c0134c", + "reference": "2fd6513f2dd3b08446da420070084db376c0134c", "shasum": "" }, "require": { @@ -3573,20 +3577,20 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", - "time": "2018-05-01 22:52:40" + "time": "2018-07-24 10:05:38" }, { "name": "symfony/process", - "version": "v2.8.42", + "version": "v2.8.45", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "542d88b350c42750fdc14e73860ee96dd423e95d" + "reference": "4be278e19064c3492095de50c9e375caae569ae1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/542d88b350c42750fdc14e73860ee96dd423e95d", - "reference": "542d88b350c42750fdc14e73860ee96dd423e95d", + "url": "https://api.github.com/repos/symfony/process/zipball/4be278e19064c3492095de50c9e375caae569ae1", + "reference": "4be278e19064c3492095de50c9e375caae569ae1", "shasum": "" }, "require": { @@ -3622,7 +3626,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2018-05-27 07:40:52" + "time": "2018-08-03 09:45:57" } ], "aliases": [], diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html index eee4f3efcc..b5c9790a45 100644 --- a/phpBB/docs/CHANGELOG.html +++ b/phpBB/docs/CHANGELOG.html @@ -50,6 +50,8 @@ <ol> <li><a href="#changelog">Changelog</a> <ul> + <li><a href="#v323rc2">Changes since 3.2.3-RC2</a></li> + <li><a href="#v323rc1">Changes since 3.2.3-RC1</a></li> <li><a href="#v322">Changes since 3.2.2</a></li> <li><a href="#v321">Changes since 3.2.1</a></li> <li><a href="#v320">Changes since 3.2.0</a></li> @@ -129,6 +131,39 @@ <div class="inner"> <div class="content"> + <a name="v323rc2"></a><h3>Changes since 3.2.3-RC2</h3> + <h4>Bug</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15504">PHPBB3-15504</a>] - phpBB Debug warning in 3.2.2</li> + </ul> + <h4>Improvement</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15740">PHPBB3-15740</a>] - Terms & Privavy hardcoded</li> + </ul> + + <a name="v323rc1"></a><h3>Changes since 3.2.3-RC1</h3> + <h4>Bug</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11847">PHPBB3-11847</a>] - auth_provider_oauth migration must depend on at least one migration that ensures the module tables exist as expected</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15548">PHPBB3-15548</a>] - Dead link in ACP_COOKIE_SETTINGS_EXPLAIN language entry</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15586">PHPBB3-15586</a>] - When creating a module without the modes array a missing 'module_langname' index is accessed</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15613">PHPBB3-15613</a>] - Notification dropdown said to be not RTL compliant</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15627">PHPBB3-15627</a>] - Improve wording of YES_ACCURATE_PM_BUTTON + EXPLAIN</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15678">PHPBB3-15678</a>] - PHP warning in filesystem.php</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15731">PHPBB3-15731</a>] - Fix acp_search language parameters when deleting index</li> + </ul> + <h4>Improvement</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15630">PHPBB3-15630</a>] - Change <b> to <strong> </li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15633">PHPBB3-15633</a>] - Remove extra space in GROUP_MAX_RECIPIENTS_EXPLAIN</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15657">PHPBB3-15657</a>] - Add core.mcp_queue_get_posts_for_posts_query_before and core.mcp_queue_get_posts_modify_post_row</li> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15676">PHPBB3-15676</a>] - Display privacy policy & terms of use more prominently</li> + </ul> + <h4>Task</h4> + <ul> + <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-15677">PHPBB3-15677</a>] - Updated dependencies for 3.2.3-RC2</li> + </ul> + <a name="v322"></a><h3>Changes since 3.2.2</h3> <h4>Bug</h4> <ul> diff --git a/phpBB/includes/acp/acp_attachments.php b/phpBB/includes/acp/acp_attachments.php index dc4eb66cf8..6c2df8d999 100644 --- a/phpBB/includes/acp/acp_attachments.php +++ b/phpBB/includes/acp/acp_attachments.php @@ -1270,7 +1270,7 @@ class acp_attachments $row['extension'] = strtolower(trim((string) $row['extension'])); $comment = ($row['attach_comment'] && !$row['in_message']) ? str_replace(array("\n", "\r"), array('<br />', "\n"), $row['attach_comment']) : ''; - $display_cat = $extensions[$row['extension']]['display_cat']; + $display_cat = isset($extensions[$row['extension']]['display_cat']) ? $extensions[$row['extension']]['display_cat'] : ATTACHMENT_CATEGORY_NONE; $l_downloaded_viewed = ($display_cat == ATTACHMENT_CATEGORY_NONE) ? 'DOWNLOAD_COUNTS' : 'VIEWED_COUNTS'; $template->assign_block_vars('attachments', array( diff --git a/phpBB/includes/acp/acp_bbcodes.php b/phpBB/includes/acp/acp_bbcodes.php index 2634ae1874..1f7374a07f 100644 --- a/phpBB/includes/acp/acp_bbcodes.php +++ b/phpBB/includes/acp/acp_bbcodes.php @@ -295,6 +295,22 @@ class acp_bbcodes $phpbb_log->add('admin', $user->data['user_id'], $user->ip, $log_action, false, array($data['bbcode_tag'])); + /** + * Event after a BBCode has been added or updated + * + * @event core.acp_bbcodes_modify_create_after + * @var string action Type of the action: modify|create + * @var int bbcode_id The id of the added or updated bbcode + * @var array sql_ary Array with bbcode data (read only) + * @since 3.2.4-RC1 + */ + $vars = array( + 'action', + 'bbcode_id', + 'sql_ary', + ); + extract($phpbb_dispatcher->trigger_event('core.acp_bbcodes_modify_create_after', compact($vars))); + trigger_error($user->lang[$lang] . adm_back_link($this->u_action)); } else @@ -325,10 +341,28 @@ class acp_bbcodes { if (confirm_box(true)) { + $bbcode_tag = $row['bbcode_tag']; + $db->sql_query('DELETE FROM ' . BBCODES_TABLE . " WHERE bbcode_id = $bbcode_id"); $cache->destroy('sql', BBCODES_TABLE); $phpbb_container->get('text_formatter.cache')->invalidate(); - $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_BBCODE_DELETE', false, array($row['bbcode_tag'])); + $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_BBCODE_DELETE', false, array($bbcode_tag)); + + /** + * Event after a BBCode has been deleted + * + * @event core.acp_bbcodes_delete_after + * @var string action Type of the action: delete + * @var int bbcode_id The id of the deleted bbcode + * @var string bbcode_tag The tag of the deleted bbcode + * @since 3.2.4-RC1 + */ + $vars = array( + 'action', + 'bbcode_id', + 'bbcode_tag', + ); + extract($phpbb_dispatcher->trigger_event('core.acp_bbcodes_delete_after', compact($vars))); if ($request->is_ajax()) { diff --git a/phpBB/includes/acp/acp_search.php b/phpBB/includes/acp/acp_search.php index 8cad7c927c..538a28a926 100644 --- a/phpBB/includes/acp/acp_search.php +++ b/phpBB/includes/acp/acp_search.php @@ -349,7 +349,7 @@ class acp_search $totaltime = microtime(true) - $starttime; $rows_per_second = $row_count / $totaltime; meta_refresh(1, append_sid($this->u_action . '&action=delete&skip_rows=' . $post_counter . '&hash=' . generate_link_hash('acp_search'))); - trigger_error($user->lang('SEARCH_INDEX_DELETE_REDIRECT', (int) $row_count, $post_counter, $rows_per_second)); + trigger_error($user->lang('SEARCH_INDEX_DELETE_REDIRECT', (int) $row_count, $post_counter) . $user->lang('SEARCH_INDEX_DELETE_REDIRECT_RATE', $rows_per_second)); } } diff --git a/phpBB/includes/ucp/ucp_pm_compose.php b/phpBB/includes/ucp/ucp_pm_compose.php index bf18e76568..f35812b90a 100644 --- a/phpBB/includes/ucp/ucp_pm_compose.php +++ b/phpBB/includes/ucp/ucp_pm_compose.php @@ -48,7 +48,6 @@ function compose_pm($id, $mode, $action, $user_folders = array()) $to_group_id = $request->variable('g', 0); $msg_id = $request->variable('p', 0); $draft_id = $request->variable('d', 0); - $lastclick = $request->variable('lastclick', 0); // Reply to all triggered (quote/reply) $reply_to_all = $request->variable('reply_to_all', 0); @@ -80,7 +79,7 @@ function compose_pm($id, $mode, $action, $user_folders = array()) $group_helper = $phpbb_container->get('group_helper'); // Was cancel pressed? If so then redirect to the appropriate page - if ($cancel || ($current_time - $lastclick < 2 && $submit)) + if ($cancel) { if ($msg_id) { @@ -1174,8 +1173,7 @@ function compose_pm($id, $mode, $action, $user_folders = array()) break; } - $s_hidden_fields = '<input type="hidden" name="lastclick" value="' . $current_time . '" />'; - $s_hidden_fields .= (isset($check_value)) ? '<input type="hidden" name="status_switch" value="' . $check_value . '" />' : ''; + $s_hidden_fields = (isset($check_value)) ? '<input type="hidden" name="status_switch" value="' . $check_value . '" />' : ''; $s_hidden_fields .= ($draft_id || isset($_REQUEST['draft_loaded'])) ? '<input type="hidden" name="draft_loaded" value="' . ((isset($_REQUEST['draft_loaded'])) ? $request->variable('draft_loaded', 0) : $draft_id) . '" />' : ''; $form_enctype = (@ini_get('file_uploads') == '0' || strtolower(@ini_get('file_uploads')) == 'off' || !$config['allow_pm_attach'] || !$auth->acl_get('u_pm_attach')) ? '' : ' enctype="multipart/form-data"'; diff --git a/phpBB/install/phpbbcli.php b/phpBB/install/phpbbcli.php index 611e4ec53b..7d8311ca0b 100755 --- a/phpBB/install/phpbbcli.php +++ b/phpBB/install/phpbbcli.php @@ -23,7 +23,7 @@ if (php_sapi_name() !== 'cli') define('IN_PHPBB', true); define('IN_INSTALL', true); define('PHPBB_ENVIRONMENT', 'production'); -define('PHPBB_VERSION', '3.2.3-RC1'); +define('PHPBB_VERSION', '3.2.3'); $phpbb_root_path = __DIR__ . '/../'; $phpEx = substr(strrchr(__FILE__, '.'), 1); diff --git a/phpBB/language/en/acp/search.php b/phpBB/language/en/acp/search.php index c52b71c121..443dbb7fb7 100644 --- a/phpBB/language/en/acp/search.php +++ b/phpBB/language/en/acp/search.php @@ -116,7 +116,10 @@ $lang = array_merge($lang, array( 2 => 'The current rate of indexing is approximately %1$.1f posts per second.<br />Indexing in progress…', ), 'SEARCH_INDEX_DELETE_REDIRECT' => array( - 2 => 'All posts up to post id %2$d have been removed from the search index.<br />Deleting in progress…', + 2 => 'All posts up to post id %2$d have been removed from the search index, of which %1$d posts were within this step.<br />', + ), + 'SEARCH_INDEX_DELETE_REDIRECT_RATE' => array( + 2 => 'The current rate of deleting is approximately %1$.1f posts per second.<br />Deleting in progress…', ), 'SEARCH_INDEX_CREATED' => 'Successfully indexed all posts in the board database.', 'SEARCH_INDEX_REMOVED' => 'Successfully deleted the search index for this backend.', diff --git a/phpBB/phpbb/cache/driver/apcu.php b/phpBB/phpbb/cache/driver/apcu.php index 40192e4026..c96cf0de57 100644 --- a/phpBB/phpbb/cache/driver/apcu.php +++ b/phpBB/phpbb/cache/driver/apcu.php @@ -25,7 +25,11 @@ class apcu extends \phpbb\cache\driver\memory */ function purge() { - apcu_clear_cache(); + /* + * Use an iterator to selectively delete our cache entries without disturbing + * any other cache users (e.g. other phpBB boards hosted on this server) + */ + apcu_delete(new \APCUIterator('#^' . $this->key_prefix . '#')); parent::purge(); } diff --git a/phpBB/phpbb/cache/driver/memory.php b/phpBB/phpbb/cache/driver/memory.php index 052f40c243..eba9549877 100644 --- a/phpBB/phpbb/cache/driver/memory.php +++ b/phpBB/phpbb/cache/driver/memory.php @@ -51,10 +51,11 @@ abstract class memory extends \phpbb\cache\driver\base function load() { // grab the global cache - $this->vars = $this->_read('global'); + $data = $this->_read('global'); - if ($this->vars !== false) + if ($data !== false) { + $this->vars = $data; return true; } diff --git a/phpBB/phpbb/db/driver/mssqlnative.php b/phpBB/phpbb/db/driver/mssqlnative.php index de81a6a0c8..a4dcac5966 100644 --- a/phpBB/phpbb/db/driver/mssqlnative.php +++ b/phpBB/phpbb/db/driver/mssqlnative.php @@ -268,7 +268,7 @@ class mssqlnative extends \phpbb\db\driver\mssql_base unset($row['line2'], $row['line3']); } } - return (count($row)) ? $row : false; + return ($row !== null) ? $row : false; } /** diff --git a/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php b/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php index 508a31fba9..1e2024a071 100644 --- a/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php +++ b/phpBB/phpbb/db/migration/data/v310/auth_provider_oauth.php @@ -17,7 +17,12 @@ class auth_provider_oauth extends \phpbb\db\migration\migration { public function effectively_installed() { - return $this->db_tools->sql_table_exists($this->table_prefix . 'auth_provider_oauth'); + return $this->db_tools->sql_table_exists($this->table_prefix . 'oauth_tokens'); + } + + static public function depends_on() + { + return array('\phpbb\db\migration\data\v30x\release_3_0_0'); } public function update_schema() diff --git a/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php b/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php index 98b1c2d039..88fe59ccc9 100644 --- a/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php +++ b/phpBB/phpbb/db/migration/data/v320/remove_outdated_media.php @@ -85,13 +85,11 @@ class remove_outdated_media extends \phpbb\db\migration\migration WHERE ' . $this->db->sql_in_set('group_id', $group_ids); } - $result = $this->db->sql_query($sql); - $this->db->sql_freeresult($result); + $this->db->sql_query($sql); // delete the now empty, outdated media extension groups $sql = 'DELETE FROM ' . EXTENSION_GROUPS_TABLE . ' WHERE ' . $this->db->sql_in_set('group_id', $group_ids); - $result = $this->db->sql_query($sql); - $this->db->sql_freeresult($result); + $this->db->sql_query($sql); } } diff --git a/phpBB/phpbb/db/migration/data/v32x/v323.php b/phpBB/phpbb/db/migration/data/v32x/v323.php new file mode 100644 index 0000000000..1ec28ceb37 --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v32x/v323.php @@ -0,0 +1,37 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\db\migration\data\v32x; + +class v323 extends \phpbb\db\migration\migration +{ + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.2.3', '>='); + } + + static public function depends_on() + { + return array( + '\phpbb\db\migration\data\v32x\v323rc2', + ); + + } + + public function update_data() + { + return array( + array('config.update', array('version', '3.2.3')), + ); + } +} diff --git a/phpBB/phpbb/db/migration/data/v32x/v323rc2.php b/phpBB/phpbb/db/migration/data/v32x/v323rc2.php new file mode 100644 index 0000000000..32235ee067 --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v32x/v323rc2.php @@ -0,0 +1,36 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\db\migration\data\v32x; + +class v323rc2 extends \phpbb\db\migration\migration +{ + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.2.3-RC2', '>='); + } + + static public function depends_on() + { + return array( + '\phpbb\db\migration\data\v32x\v323rc1', + ); + } + + public function update_data() + { + return array( + array('config.update', array('version', '3.2.3-RC2')), + ); + } +} diff --git a/phpBB/phpbb/notification/method/messenger_base.php b/phpBB/phpbb/notification/method/messenger_base.php index 32e79aa936..f82017b70e 100644 --- a/phpBB/phpbb/notification/method/messenger_base.php +++ b/phpBB/phpbb/notification/method/messenger_base.php @@ -87,7 +87,7 @@ abstract class messenger_base extends \phpbb\notification\method\base $banned_users = phpbb_get_banned_user_ids($user_ids); // Load all the users we need - $this->user_loader->load_users($user_ids); + $this->user_loader->load_users(array_diff($user_ids, $banned_users), array(USER_IGNORE)); // Load the messenger if (!class_exists('messenger')) @@ -107,7 +107,7 @@ abstract class messenger_base extends \phpbb\notification\method\base $user = $this->user_loader->get_user($notification->user_id); - if ($user['user_type'] == USER_IGNORE || ($user['user_type'] == USER_INACTIVE && $user['user_inactive_reason'] == INACTIVE_MANUAL) || in_array($notification->user_id, $banned_users)) + if ($user['user_type'] == USER_INACTIVE && $user['user_inactive_reason'] == INACTIVE_MANUAL) { continue; } diff --git a/phpBB/phpbb/user_loader.php b/phpBB/phpbb/user_loader.php index 294f5208d5..9297450f3e 100644 --- a/phpBB/phpbb/user_loader.php +++ b/phpBB/phpbb/user_loader.php @@ -64,8 +64,9 @@ class user_loader * Load user helper * * @param array $user_ids + * @param array $ignore_types user types to ignore */ - public function load_users(array $user_ids) + public function load_users(array $user_ids, array $ignore_types = array()) { $user_ids[] = ANONYMOUS; @@ -79,7 +80,8 @@ class user_loader { $sql = 'SELECT * FROM ' . $this->users_table . ' - WHERE ' . $this->db->sql_in_set('user_id', $user_ids); + WHERE ' . $this->db->sql_in_set('user_id', $user_ids) . ' + AND ' . $this->db->sql_in_set('user_type', $ignore_types, true, true); $result = $this->db->sql_query($sql); while ($row = $this->db->sql_fetchrow($result)) diff --git a/phpBB/posting.php b/phpBB/posting.php index 3530bb5048..d97a22209f 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -33,7 +33,6 @@ $post_id = $request->variable('p', 0); $topic_id = $request->variable('t', 0); $forum_id = $request->variable('f', 0); $draft_id = $request->variable('d', 0); -$lastclick = $request->variable('lastclick', 0); $preview = (isset($_POST['preview'])) ? true : false; $save = (isset($_POST['save'])) ? true : false; @@ -68,7 +67,6 @@ $current_time = time(); * @var int topic_id ID of the topic * @var int forum_id ID of the forum * @var int draft_id ID of the draft -* @var int lastclick Timestamp of when the form was last loaded * @var bool submit Whether or not the form has been submitted * @var bool preview Whether or not the post is being previewed * @var bool save Whether or not a draft is being saved @@ -85,13 +83,13 @@ $current_time = time(); * language keys. * @since 3.1.0-a1 * @changed 3.1.2-RC1 Removed 'delete' var as it does not exist +* @changed 3.2.4-RC1 Remove unused 'lastclick' var */ $vars = array( 'post_id', 'topic_id', 'forum_id', 'draft_id', - 'lastclick', 'submit', 'preview', 'save', @@ -354,7 +352,6 @@ switch ($mode) * @var int topic_id ID of the topic * @var int forum_id ID of the forum * @var int draft_id ID of the draft -* @var int lastclick Timestamp of when the form was last loaded * @var bool submit Whether or not the form has been submitted * @var bool preview Whether or not the post is being previewed * @var bool save Whether or not a draft is being saved @@ -370,13 +367,13 @@ switch ($mode) * @var array post_data All post data from database * @since 3.1.3-RC1 * @changed 3.1.10-RC1 Added post_data +* @changed 3.2.4-RC1 Remove unused 'lastclick' var */ $vars = array( 'post_id', 'topic_id', 'forum_id', 'draft_id', - 'lastclick', 'submit', 'preview', 'save', @@ -1762,7 +1759,6 @@ if ($config['enable_post_confirm'] && !$user->data['is_registered'] && (isset($c } $s_hidden_fields = ($mode == 'reply' || $mode == 'quote') ? '<input type="hidden" name="topic_cur_post_id" value="' . $post_data['topic_last_post_id'] . '" />' : ''; -$s_hidden_fields .= '<input type="hidden" name="lastclick" value="' . $current_time . '" />'; $s_hidden_fields .= ($draft_id || isset($_REQUEST['draft_loaded'])) ? '<input type="hidden" name="draft_loaded" value="' . $request->variable('draft_loaded', $draft_id) . '" />' : ''; if ($mode == 'edit') diff --git a/phpBB/styles/prosilver/template/overall_footer.html b/phpBB/styles/prosilver/template/overall_footer.html index 5bad7baeb1..bdff1a0c05 100644 --- a/phpBB/styles/prosilver/template/overall_footer.html +++ b/phpBB/styles/prosilver/template/overall_footer.html @@ -19,11 +19,11 @@ <!-- EVENT overall_footer_copyright_append --> <p class="footer-row"> <a class="footer-link" href="{{ U_PRIVACY }}" title="{{ lang('PRIVACY_LINK') }}" role="menuitem"> - <span class="footer-link-text">Privacy</span> + <span class="footer-link-text">{{ lang('PRIVACY_LINK') }}</span> </a> | <a class="footer-link" href="{{ U_TERMS_USE }}" title="{{ lang('TERMS_LINK') }}" role="menuitem"> - <span class="footer-link-text">Terms</span> + <span class="footer-link-text">{{ lang('TERMS_LINK') }}</span> </a> </p> <!-- IF DEBUG_OUTPUT --> diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 3c25c3b037..79852330d9 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -2249,7 +2249,6 @@ if ($s_can_vote || $s_quick_reply) $qr_hidden_fields = array( 'topic_cur_post_id' => (int) $topic_data['topic_last_post_id'], - 'lastclick' => (int) time(), 'topic_id' => (int) $topic_data['topic_id'], 'forum_id' => (int) $forum_id, ); diff --git a/tests/cache/apcu_driver_test.php b/tests/cache/apcu_driver_test.php index 9de1d82a15..57f640c313 100644 --- a/tests/cache/apcu_driver_test.php +++ b/tests/cache/apcu_driver_test.php @@ -49,10 +49,27 @@ class phpbb_cache_apcu_driver_test extends phpbb_cache_common_test_case protected function setUp() { + global $phpbb_container, $phpbb_root_path; + parent::setUp(); + $phpbb_container = new phpbb_mock_container_builder(); + $phpbb_container->setParameter('core.cache_dir', $phpbb_root_path . 'cache/' . PHPBB_ENVIRONMENT . '/'); + $this->driver = new \phpbb\cache\driver\apcu; $this->driver->purge(); } + + public function test_purge() + { + /* add a cache entry which does not match our key */ + $foreign_key = 'test_' . $this->driver->key_prefix . 'test'; + $this->assertSame(true, apcu_store($foreign_key, 0, 600)); + $this->assertSame(true, apcu_exists($foreign_key)); + + parent::test_purge(); + + $this->assertSame(true, apcu_exists($foreign_key)); + } } diff --git a/tests/template/template_test.php b/tests/template/template_test.php index 0f761abc76..727f35e9d2 100644 --- a/tests/template/template_test.php +++ b/tests/template/template_test.php @@ -364,7 +364,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case array(), array(), array(), - "Value'\n1 O'Clock\nValue\\x27\n1\\x20O\\x27Clock", + "Value'\n1 O'Clock\nValue\\u0027\n1\\u0020O\\u0027Clock", array('VARIABLE' => "Value'", '1_VARIABLE' => "1 O'Clock"), ), array( diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php index e1daa4558a..12a296a4bf 100644 --- a/tests/test_framework/phpbb_functional_test_case.php +++ b/tests/test_framework/phpbb_functional_test_case.php @@ -1176,10 +1176,6 @@ class phpbb_functional_test_case extends phpbb_test_case } } - // Bypass time restriction that said that if the lastclick time (i.e. time when the form was opened) - // is not at least 2 seconds before submission, cancel the form - $form_data['lastclick'] = 0; - // I use a request because the form submission method does not allow you to send data that is not // contained in one of the actual form fields that the browser sees (i.e. it ignores "hidden" inputs) // Instead, I send it as a request with the submit button "post" set to true. |