aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/build.xml6
-rw-r--r--phpBB/adm/style/acp_captcha.html1
-rw-r--r--phpBB/config/services.yml15
-rw-r--r--phpBB/docs/CHANGELOG.html153
-rw-r--r--phpBB/download/file.php1
-rw-r--r--phpBB/includes/compatibility_globals.php1
-rw-r--r--phpBB/includes/constants.php2
-rw-r--r--phpBB/includes/functions.php5
-rw-r--r--phpBB/install/convertors/convert_phpbb20.php2
-rw-r--r--phpBB/install/database_update.php8
-rw-r--r--phpBB/install/schemas/schema_data.sql2
-rw-r--r--phpBB/language/en/acp/board.php1
-rw-r--r--phpBB/language/en/acp/profile.php2
-rw-r--r--phpBB/language/en/search.php2
-rw-r--r--phpBB/phpbb/auth/provider/oauth/oauth.php2
-rw-r--r--phpBB/phpbb/console/command/db/migrate.php8
-rw-r--r--phpBB/phpbb/controller/helper.php11
-rw-r--r--phpBB/phpbb/db/migration/data/v310/rc4.php32
-rw-r--r--phpBB/phpbb/db/migrator.php19
-rw-r--r--phpBB/phpbb/di/container_builder.php5
-rw-r--r--phpBB/phpbb/event/extension_subscriber_loader.php39
-rw-r--r--phpBB/phpbb/extension/base.php11
-rw-r--r--phpBB/search.php14
-rw-r--r--phpBB/styles/prosilver/style.cfg4
-rw-r--r--phpBB/styles/prosilver/template/jumpbox.html2
-rw-r--r--phpBB/styles/prosilver/template/message_body.html2
-rw-r--r--phpBB/styles/prosilver/template/overall_header.html13
-rw-r--r--phpBB/styles/prosilver/template/search_results.html17
-rw-r--r--phpBB/styles/prosilver/template/viewforum_body.html3
-rw-r--r--phpBB/styles/prosilver/template/viewtopic_body.html3
-rw-r--r--phpBB/styles/prosilver/theme/bidi.css57
-rw-r--r--phpBB/styles/prosilver/theme/buttons.css14
-rw-r--r--phpBB/styles/prosilver/theme/colours.css19
-rw-r--r--phpBB/styles/prosilver/theme/common.css39
-rw-r--r--phpBB/styles/prosilver/theme/forms.css61
-rw-r--r--phpBB/styles/prosilver/theme/images/icons_button.pngbin6478 -> 8037 bytes
-rw-r--r--phpBB/styles/prosilver/theme/links.css4
-rw-r--r--phpBB/styles/prosilver/theme/responsive.css17
-rw-r--r--phpBB/styles/prosilver/theme/tweaks.css6
-rw-r--r--phpBB/styles/subsilver2/style.cfg4
-rw-r--r--phpBB/viewforum.php43
-rw-r--r--tests/controller/common_helper_route.php (renamed from tests/controller/helper_route_test.php)74
-rw-r--r--tests/controller/helper_route_adm_subdir_test.php33
-rw-r--r--tests/controller/helper_route_adm_test.php33
-rw-r--r--tests/controller/helper_route_root_test.php33
-rw-r--r--tests/controller/helper_route_unclean_path_test.php33
-rw-r--r--tests/dbal/migrator_test.php10
-rw-r--r--tests/extension/ext/vendor2/bar/migration/migration.php18
-rw-r--r--tests/extension/ext/vendor2/foo/migrations/migration.php18
-rw-r--r--tests/extension/ext/vendor3/bar/migration/migration.php18
-rw-r--r--tests/extension/extension_base_test.php12
-rw-r--r--tests/functions/get_preg_expression_test.php40
-rw-r--r--tests/test_framework/phpbb_database_test_case.php5
53 files changed, 627 insertions, 350 deletions
diff --git a/build/build.xml b/build/build.xml
index 56fe802824..8ac7c1758c 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -2,9 +2,9 @@
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
<!-- a few settings for the build -->
- <property name="newversion" value="3.1.0-RC4-dev" />
- <property name="prevversion" value="3.1.0-RC3" />
- <property name="olderversions" value="3.0.12, 3.1.0-a1, 3.1.0-a2, 3.1.0-a3, 3.1.0-b1, 3.1.0-b2, 3.1.0-b3, 3.1.0-b4, 3.1.0-RC1, 3.1.0-RC2" />
+ <property name="newversion" value="3.1.0-RC5-dev" />
+ <property name="prevversion" value="3.1.0-RC4" />
+ <property name="olderversions" value="3.0.12, 3.1.0-a1, 3.1.0-a2, 3.1.0-a3, 3.1.0-b1, 3.1.0-b2, 3.1.0-b3, 3.1.0-b4, 3.1.0-RC1, 3.1.0-RC2, 3.1.0-RC3" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />
diff --git a/phpBB/adm/style/acp_captcha.html b/phpBB/adm/style/acp_captcha.html
index df4c675209..f4866653c3 100644
--- a/phpBB/adm/style/acp_captcha.html
+++ b/phpBB/adm/style/acp_captcha.html
@@ -6,6 +6,7 @@
<p>{L_ACP_VC_SETTINGS_EXPLAIN}</p>
+<p>{L_ACP_VC_EXT_GET_MORE}</p>
<form id="acp_captcha" method="post" action="{U_ACTION}">
diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml
index 95a1210045..cca655263f 100644
--- a/phpBB/config/services.yml
+++ b/phpBB/config/services.yml
@@ -158,21 +158,6 @@ services:
arguments:
- @dbal.conn
- event.subscriber_loader:
- class: phpbb\event\extension_subscriber_loader
- arguments:
- - @dispatcher
- - @event.listener_collection
- calls:
- - [load, []]
-
- event.listener_collection:
- class: phpbb\di\service_collection
- arguments:
- - @service_container
- tags:
- - { name: service_collection, tag: event.listener }
-
ext.manager:
class: phpbb\extension\manager
arguments:
diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index d882d2e3f4..7b46129c6c 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -46,6 +46,7 @@
<ol>
<li><a href="#changelog">Changelog</a>
<ol style="list-style-type: lower-roman;">
+ <li><a href="#v310RC3">Changes since 3.1.0-RC3</a></li>
<li><a href="#v310RC2">Changes since 3.1.0-RC2</a></li>
<li><a href="#v310RC1">Changes since 3.1.0-RC1</a></li>
<li><a href="#v310b4">Changes since 3.1.0-b4</a></li>
@@ -96,7 +97,97 @@
<div class="content">
- <a name="v310RC2"></a><h3>1.i. Changes since 3.1.0-RC2</h3>
+ <a name="v310RC3"></a><h3>1.i. Changes since 3.1.0-RC3</h3>
+
+ <h4>Bug</h4>
+ <ul>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10472">PHPBB3-10472</a>] - ACP &quot;add multiple smilies&quot; page is unusable on 1024x768 resolution</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11909">PHPBB3-11909</a>] - phpbb/db/migrator::load_migrations is never called</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12258">PHPBB3-12258</a>] - Add attachment: error alert popup on &quot;empty.png&quot; does not show up</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12506">PHPBB3-12506</a>] - Long post titles bump the username down an extra row beneath the edit/quote/delete buttons</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12658">PHPBB3-12658</a>] - Add tests for config:* cli commands</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12661">PHPBB3-12661</a>] - Extensions templates not loaded from &quot;all&quot; by helper/render()</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12734">PHPBB3-12734</a>] - Custom profile manager should not suppress errors when inserting user rows</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12765">PHPBB3-12765</a>] - acp_profile.php should use db/tools</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12852">PHPBB3-12852</a>] - \phpbb\path_helper get_url_parts does not handle get variable with no value</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12856">PHPBB3-12856</a>] - plupload images are not integrated into style-path</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12862">PHPBB3-12862</a>] - Smiley and Whos Onlike pop-up boxes are making styling difficult</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12949">PHPBB3-12949</a>] - Undefined function mime_content_type()</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12966">PHPBB3-12966</a>] - Undefined sorting of posts with same post_time on postgres</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12975">PHPBB3-12975</a>] - Catchable fatal error after update to RC3</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12976">PHPBB3-12976</a>] - Pagination of UCP manage attachments page in prosilver does not support plural forms</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12983">PHPBB3-12983</a>] - UCP preferences, Display posts ordering by: input is not properly validated</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12984">PHPBB3-12984</a>] - Index page: blank line when no forum description shown</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12986">PHPBB3-12986</a>] - Wrong functions call order breaks detection of common words in search</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12990">PHPBB3-12990</a>] - The prefix for the notification's services is harcoded</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12996">PHPBB3-12996</a>] - tests/lock/flock_test.php should use microtime() instead of time()</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12998">PHPBB3-12998</a>] - Undefined $lang in mcp_warn.php::add_warning()</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13004">PHPBB3-13004</a>] - Topic tools button is displayed even if dropdown is empty</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13008">PHPBB3-13008</a>] - Importing a resource in routing.yml breaks download/file.php and ACP</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13009">PHPBB3-13009</a>] - Cleanup Tweaks CSS, Remove outdated browser support</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13018">PHPBB3-13018</a>] - Key binding on AJAX popups are not unbound upon close/cancel</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13019">PHPBB3-13019</a>] - Don't display &quot;Soft delete reason&quot; dialog when moderator cannot soft-delete</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13022">PHPBB3-13022</a>] - &quot;Return to advanced search&quot; wrong assumption </li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13031">PHPBB3-13031</a>] - Impossible to properly upload image if no proper mimetype guessers enabled</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13035">PHPBB3-13035</a>] - Empty meta tags in header</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13040">PHPBB3-13040</a>] - W3C validator warning in overral_footer.html</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13042">PHPBB3-13042</a>] - Unused var in login_box()</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13044">PHPBB3-13044</a>] - Expires header violates RFC 2616</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13046">PHPBB3-13046</a>] - In download/avatar we don't load the vendors added by the extensions</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13050">PHPBB3-13050</a>] - Allow topic/forum subscription when email and jabber are off</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13051">PHPBB3-13051</a>] - Fix broken viewonline core event</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13052">PHPBB3-13052</a>] - Remove additional parameters from check_form_key()</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13057">PHPBB3-13057</a>] - Fatal error on previous page link after closing a report</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13065">PHPBB3-13065</a>] - Unknown column 'user_pass_convert' in 'field list' [code] - =&gt; 1054 </li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13068">PHPBB3-13068</a>] - Language correction in FIELD_IS_CONTACT_EXPLAIN</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13069">PHPBB3-13069</a>] - Timezone selector does not filter locations on change</li>
+ </ul>
+ <h4>Improvement</h4>
+ <ul>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12416">PHPBB3-12416</a>] - WhoIs Pop Up Page Details</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12598">PHPBB3-12598</a>] - Improve action-bar search box styling</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12653">PHPBB3-12653</a>] - Caches the informations about the listeners to be able to not load them everytime</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12900">PHPBB3-12900</a>] - 3.1.0 avatar scaling</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12943">PHPBB3-12943</a>] - Add core.phpbb_generate_debug_output core event</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12961">PHPBB3-12961</a>] - Add link in anti-spam ACP page which links directly to captchas in titania</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12969">PHPBB3-12969</a>] - Add template event around the find username link on composing pm</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12982">PHPBB3-12982</a>] - JS in 3.1 is nasty</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12989">PHPBB3-12989</a>] - Remove unused &quot;created_by.jpg&quot; from prosilver</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12991">PHPBB3-12991</a>] - Have events after/before &quot;add warning&quot; field - user and post</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12994">PHPBB3-12994</a>] - Add core event to viewtopic.php before sending vars to template</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13003">PHPBB3-13003</a>] - Missing language keys in command &quot;extension:show&quot;</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13005">PHPBB3-13005</a>] - Add core event to display_forums() to modify category template data</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13006">PHPBB3-13006</a>] - Add variables to the 'core.modify_quickmod_actions' event</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13010">PHPBB3-13010</a>] - phpbb_get_avatar() incorrectly refers to \phpbb\avatar\driver\driver::clean_row()</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13020">PHPBB3-13020</a>] - Add var to core.viewforum_get_topic_data event to allow modifying forum template data</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13024">PHPBB3-13024</a>] - Template event viewtopic_body_postrow_post_content_footer</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13026">PHPBB3-13026</a>] - Add template vars array to core.viewonline_overwrite_location to allow modifying/adding template vars</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13034">PHPBB3-13034</a>] - Add ability to access extensions outside the phpBB root</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13036">PHPBB3-13036</a>] - Controller helper route method should be able to generate absolute URL's</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13038">PHPBB3-13038</a>] - Link user post tally to their posts</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13047">PHPBB3-13047</a>] - Add $post_list array to core.viewtopic_modify_page_title core event</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13056">PHPBB3-13056</a>] - Move the arguments of the request class to the DI</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13058">PHPBB3-13058</a>] - The &quot;jump to page&quot; input does not have a min attribute.</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13061">PHPBB3-13061</a>] - Use a compiler pass to replace the service event.subscriber_loader</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13062">PHPBB3-13062</a>] - Add viewforum.php core event to allow modifying sql query to select topic ids</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13066">PHPBB3-13066</a>] - Add common search results core event to modify search title</li>
+ </ul>
+ <h4>New Feature</h4>
+ <ul>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12951">PHPBB3-12951</a>] - Add .editorconfig</li>
+ </ul>
+ <h4>Sub-task</h4>
+ <ul>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12928">PHPBB3-12928</a>] - [Event] - core.mcp_reports_gather_query_before</li>
+ </ul>
+ <h4>Task</h4>
+ <ul>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12999">PHPBB3-12999</a>] - Remove @author tag from the doc block</li>
+ <li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13032">PHPBB3-13032</a>] - Update Symfony Components to 2.3.19</li>
+ </ul>
+
+
+ <a name="v310RC2"></a><h3>1.ii. Changes since 3.1.0-RC2</h3>
<h4>Bug</h4>
<ul>
@@ -220,7 +311,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12948">PHPBB3-12948</a>] - Remove Travis CI &quot;broken opcache on PHP 5.5.7 and 5.5.8&quot; workaround.</li>
</ul>
- <a name="v310RC1"></a><h3>1.ii. Changes since 3.1.0-RC1</h3>
+ <a name="v310RC1"></a><h3>1.iii. Changes since 3.1.0-RC1</h3>
<h4>Bug</h4>
<ul>
@@ -291,7 +382,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12829">PHPBB3-12829</a>] - Remove check for pgsql 8.3/8.2</li>
</ul>
- <a name="v310b4"></a><h3>1.iii. Changes since 3.1.0-b4</h3>
+ <a name="v310b4"></a><h3>1.iv. Changes since 3.1.0-b4</h3>
<h4>Bug</h4>
<ul>
@@ -411,7 +502,7 @@
</ul>
- <a name="v310b3"></a><h3>1.iv. Changes since 3.1.0-b3</h3>
+ <a name="v310b3"></a><h3>1.v. Changes since 3.1.0-b3</h3>
<h4>Bug</h4>
<ul>
@@ -518,7 +609,7 @@
</ul>
- <a name="v310b2"></a><h3>1.v. Changes since 3.1.0-b2</h3>
+ <a name="v310b2"></a><h3>1.vi. Changes since 3.1.0-b2</h3>
<h4>Bug</h4>
<ul>
@@ -683,7 +774,7 @@
</ul>
- <a name="v310b1"></a><h3>1.vi. Changes since 3.1.0-b1</h3>
+ <a name="v310b1"></a><h3>1.vii. Changes since 3.1.0-b1</h3>
<h4>Bug</h4>
<ul>
@@ -751,7 +842,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12302">PHPBB3-12302</a>] - Upgrade composer.phar to 1.0.0-alpha8</li>
</ul>
- <a name="v310a3"></a><h3>1.vii. Changes since 3.1.0-a3</h3>
+ <a name="v310a3"></a><h3>1.viii. Changes since 3.1.0-a3</h3>
<h4>Bug</h4>
<ul>
@@ -898,7 +989,7 @@
</ul>
- <a name="v310a2"></a><h3>1.viii. Changes since 3.1.0-a2</h3>
+ <a name="v310a2"></a><h3>1.ix. Changes since 3.1.0-a2</h3>
<h4>Bug</h4>
<ul>
@@ -1006,7 +1097,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12147">PHPBB3-12147</a>] - Remove Travis CI notification configuration</li>
</ul>
- <a name="v310a1"></a><h3>1.ix. Changes since 3.1.0-a1</h3>
+ <a name="v310a1"></a><h3>1.x. Changes since 3.1.0-a1</h3>
<h4>Bug</h4>
<ul>
@@ -1082,7 +1173,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11998">PHPBB3-11998</a>] - Add console / command line client environment </li>
</ul>
- <a name="v30x"></a><h3>1.x. Changes since 3.0.x</h3>
+ <a name="v30x"></a><h3>1.xi. Changes since 3.0.x</h3>
<h4>Bug</h4>
<ul>
@@ -1763,7 +1854,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11913">PHPBB3-11913</a>] - Apply reorganisation of download.phpbb.com to build_announcement.php</li>
</ul>
- <a name="v3011"></a><h3>1.xi. Changes since 3.0.11</h3>
+ <a name="v3011"></a><h3>1.xii. Changes since 3.0.11</h3>
<h4>Bug</h4>
<ul>
@@ -1918,7 +2009,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11753">PHPBB3-11753</a>] - Upgrade mysql_upgrader.php schema data.</li>
</ul>
- <a name="v3010"></a><h3>1.xii. Changes since 3.0.10</h3>
+ <a name="v3010"></a><h3>1.xiii. Changes since 3.0.10</h3>
<h4>Bug</h4>
<ul>
@@ -2043,7 +2134,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10909">PHPBB3-10909</a>] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2</li>
</ul>
- <a name="v309"></a><h3>1.xiii. Changes since 3.0.9</h3>
+ <a name="v309"></a><h3>1.xiv. Changes since 3.0.9</h3>
<h4>Bug</h4>
<ul>
@@ -2179,7 +2270,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10480">PHPBB3-10480</a>] - Automate changelog building</li>
</ul>
- <a name="v308"></a><h3>1.xiv. Changes since 3.0.8</h3>
+ <a name="v308"></a><h3>1.xv. Changes since 3.0.8</h3>
<h4> Bug
</h4>
@@ -2547,7 +2638,7 @@
</ul>
- <a name="v307-PL1"></a><h3>1.xv. Changes since 3.0.7-PL1</h3>
+ <a name="v307-PL1"></a><h3>1.xvi. Changes since 3.0.7-PL1</h3>
<h4> Security
</h4>
<ul>
@@ -3005,13 +3096,13 @@
</ul>
- <a name="v307"></a><h3>1.xvi. Changes since 3.0.7</h3>
+ <a name="v307"></a><h3>1.xvii. Changes since 3.0.7</h3>
<ul>
<li>[Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)</li>
</ul>
- <a name="v306"></a><h3>1.xvii. Changes since 3.0.6</h3>
+ <a name="v306"></a><h3>1.xviii. Changes since 3.0.6</h3>
<ul>
<li>[Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)</li>
@@ -3115,7 +3206,7 @@
</ul>
- <a name="v305"></a><h3>1.xviii. Changes since 3.0.5</h3>
+ <a name="v305"></a><h3>1.xix. Changes since 3.0.5</h3>
<ul>
<li>[Fix] Allow whitespaces in avatar gallery names. (Bug #44955)</li>
@@ -3337,7 +3428,7 @@
<li>[Feature] Send anonymous statistical information to phpBB on installation and update (optional).</li>
</ul>
- <a name="v304"></a><h3>1.xix. Changes since 3.0.4</h3>
+ <a name="v304"></a><h3>1.xx. Changes since 3.0.4</h3>
<ul>
<li>[Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)</li>
@@ -3426,7 +3517,7 @@
<li>[Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)</li>
</ul>
- <a name="v303"></a><h3>1.xx. Changes since 3.0.3</h3>
+ <a name="v303"></a><h3>1.xxi. Changes since 3.0.3</h3>
<ul>
<li>[Fix] Allow mixed-case template directories to be inherited (Bug #36725)</li>
@@ -3458,7 +3549,7 @@
<li>[Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)</li>
</ul>
- <a name="v302"></a><h3>1.xxi. Changes since 3.0.2</h3>
+ <a name="v302"></a><h3>1.xxii. Changes since 3.0.2</h3>
<ul>
<li>[Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)</li>
@@ -3557,7 +3648,7 @@
<li>[Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)</li>
</ul>
- <a name="v301"></a><h3>1.xxii. Changes since 3.0.1</h3>
+ <a name="v301"></a><h3>1.xxiii. Changes since 3.0.1</h3>
<ul>
<li>[Fix] Ability to set permissions on non-mysql dbms (Bug #24955)</li>
@@ -3605,7 +3696,7 @@
<li>[Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)</li>
</ul>
- <a name="v300"></a><h3>1.xxiii. Changes since 3.0.0</h3>
+ <a name="v300"></a><h3>1.xxiv. Changes since 3.0.0</h3>
<ul>
<li>[Change] Validate birthdays (Bug #15004)</li>
@@ -3676,7 +3767,7 @@
<li>[Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)</li>
</ul>
- <a name="v30rc8"></a><h3>1.xxiv. Changes since 3.0.RC8</h3>
+ <a name="v30rc8"></a><h3>1.xxv. Changes since 3.0.RC8</h3>
<ul>
<li>[Fix] Cleaned usernames contain only single spaces, so &quot;a_name&quot; and &quot;a__name&quot; are treated as the same name (Bug #15634)</li>
@@ -3685,7 +3776,7 @@
<li>[Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)</li>
</ul>
- <a name="v30rc7"></a><h3>1.xxv. Changes since 3.0.RC7</h3>
+ <a name="v30rc7"></a><h3>1.xxvi. Changes since 3.0.RC7</h3>
<ul>
<li>[Fix] Fixed MSSQL related bug in the update system</li>
@@ -3720,7 +3811,7 @@
<li>[Fix] No duplication of active topics (Bug #15474)</li>
</ul>
- <a name="v30rc6"></a><h3>1.xxvi. Changes since 3.0.RC6</h3>
+ <a name="v30rc6"></a><h3>1.xxvii. Changes since 3.0.RC6</h3>
<ul>
<li>[Fix] Submitting language changes using acp_language (Bug #14736)</li>
@@ -3730,7 +3821,7 @@
<li>[Fix] Able to request new password (Bug #14743)</li>
</ul>
- <a name="v30rc5"></a><h3>1.xxvii. Changes since 3.0.RC5</h3>
+ <a name="v30rc5"></a><h3>1.xxviii. Changes since 3.0.RC5</h3>
<ul>
<li>[Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.</li>
@@ -3793,7 +3884,7 @@
<li>[Sec] New password hashing mechanism for storing passwords (#i42)</li>
</ul>
- <a name="v30rc4"></a><h3>1.xxviii. Changes since 3.0.RC4</h3>
+ <a name="v30rc4"></a><h3>1.xxix. Changes since 3.0.RC4</h3>
<ul>
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
@@ -3844,7 +3935,7 @@
<li>[Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)</li>
</ul>
- <a name="v30rc3"></a><h3>1.xxix. Changes since 3.0.RC3</h3>
+ <a name="v30rc3"></a><h3>1.xxx. Changes since 3.0.RC3</h3>
<ul>
<li>[Fix] Fixing some subsilver2 and prosilver style issues</li>
@@ -3953,7 +4044,7 @@
</ul>
- <a name="v30rc2"></a><h3>1.xxx. Changes since 3.0.RC2</h3>
+ <a name="v30rc2"></a><h3>1.xxxi. Changes since 3.0.RC2</h3>
<ul>
<li>[Fix] Re-allow searching within the memberlist</li>
@@ -3999,7 +4090,7 @@
</ul>
- <a name="v30rc1"></a><h3>1.xxxi. Changes since 3.0.RC1</h3>
+ <a name="v30rc1"></a><h3>1.xxxii. Changes since 3.0.RC1</h3>
<ul>
<li>[Fix] (X)HTML issues within the templates (Bug #11255, #11255)</li>
diff --git a/phpBB/download/file.php b/phpBB/download/file.php
index db657e95f0..77fb455bc1 100644
--- a/phpBB/download/file.php
+++ b/phpBB/download/file.php
@@ -83,7 +83,6 @@ if (isset($_GET['avatar']))
// load extensions
$phpbb_extension_manager = $phpbb_container->get('ext.manager');
- $phpbb_subscriber_loader = $phpbb_container->get('event.subscriber_loader');
// worst-case default
$browser = strtolower($request->header('User-Agent', 'msie 6.0'));
diff --git a/phpBB/includes/compatibility_globals.php b/phpBB/includes/compatibility_globals.php
index 2a60f7fb8e..54c9287c96 100644
--- a/phpBB/includes/compatibility_globals.php
+++ b/phpBB/includes/compatibility_globals.php
@@ -43,6 +43,5 @@ $phpbb_path_helper = $phpbb_container->get('path_helper');
// load extensions
$phpbb_extension_manager = $phpbb_container->get('ext.manager');
-$phpbb_subscriber_loader = $phpbb_container->get('event.subscriber_loader');
$template = $phpbb_container->get('template');
diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php
index 0eac2e9417..b72e4ab6d4 100644
--- a/phpBB/includes/constants.php
+++ b/phpBB/includes/constants.php
@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
*/
// phpBB Version
-define('PHPBB_VERSION', '3.1.0-RC4-dev');
+define('PHPBB_VERSION', '3.1.0-RC5-dev');
// QA-related
// define('PHPBB_QA', 1);
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index fa4e8f49f1..cf4e64451f 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -3317,6 +3317,11 @@ function get_preg_expression($mode)
case 'table_prefix':
return '#^[a-zA-Z][a-zA-Z0-9_]*$#';
break;
+
+ // Matches the predecing dot
+ case 'path_remove_dot_trailing_slash':
+ return '#^(?:(\.)?)+(?:(.+)?)+(?:([\\/\\\])$)#';
+ break;
}
return '';
diff --git a/phpBB/install/convertors/convert_phpbb20.php b/phpBB/install/convertors/convert_phpbb20.php
index d09f71ae22..4ec408a670 100644
--- a/phpBB/install/convertors/convert_phpbb20.php
+++ b/phpBB/install/convertors/convert_phpbb20.php
@@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms);
$convertor_data = array(
'forum_name' => 'phpBB 2.0.x',
'version' => '1.0.3',
- 'phpbb_version' => '3.1.0-RC3',
+ 'phpbb_version' => '3.1.0-RC4',
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
'dbms' => $dbms,
'dbhost' => $dbhost,
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 5cf01fec79..8016ff349b 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -181,17 +181,9 @@ $phpbb_extension_manager = $phpbb_container->get('ext.manager');
$migrations = $phpbb_extension_manager
->get_finder()
->core_path('phpbb/db/migration/data/')
- ->extension_directory('/migration')
- ->get_classes();
-
-// @deprecated 3.1.0-RC4 (To be removed: 3.2.0)
-$migrations_deprecated = $phpbb_extension_manager
- ->get_finder()
->extension_directory('/migrations')
->get_classes();
-$migrations = array_merge($migrations, $migrations_deprecated);
-
$migrator->set_migrations($migrations);
// What is a safe limit of execution time? Half the max execution time should be safe.
diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql
index 90b1ac8f92..baabe90f2a 100644
--- a/phpBB/install/schemas/schema_data.sql
+++ b/phpBB/install/schemas/schema_data.sql
@@ -273,7 +273,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('use_system_cron', '0');
-INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.0-RC4-dev');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.0-RC5-dev');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');
diff --git a/phpBB/language/en/acp/board.php b/phpBB/language/en/acp/board.php
index d451bdd515..24cfe4556b 100644
--- a/phpBB/language/en/acp/board.php
+++ b/phpBB/language/en/acp/board.php
@@ -298,6 +298,7 @@ $lang = array_merge($lang, array(
// Visual Confirmation Settings
$lang = array_merge($lang, array(
'ACP_VC_SETTINGS_EXPLAIN' => 'Here you can select and configure plugins, which are designed to block automated form submissions by spambots. These plugins typically work by challenging the user with a <em>CAPTCHA</em>, a test which is designed to be difficult for computers to solve.',
+ 'ACP_VC_EXT_GET_MORE' => 'For additional (and possibly better) anti-spam plugins, visit the <a href="https://www.phpbb.com/go/anti-spam-ext"><strong>phpBB.com Extensions Database</strong></a>. For more information on preventing spam on your board, visit the <a href="https://www.phpbb.com/go/anti-spam"><strong>phpBB.com Knowledge Base</strong></a>.',
'AVAILABLE_CAPTCHAS' => 'Available plugins',
'CAPTCHA_UNAVAILABLE' => 'The plugin cannot be selected as its requirements are not met.',
'CAPTCHA_GD' => 'GD image',
diff --git a/phpBB/language/en/acp/profile.php b/phpBB/language/en/acp/profile.php
index 67813bcba4..d27deed602 100644
--- a/phpBB/language/en/acp/profile.php
+++ b/phpBB/language/en/acp/profile.php
@@ -99,7 +99,7 @@ $lang = array_merge($lang, array(
'FIELD_IDENT_EXPLAIN' => 'The field identification is a name to identify the profile field within the database and the templates.',
'FIELD_INT' => 'Numbers',
'FIELD_IS_CONTACT' => 'Display field as a contact field',
- 'FIELD_IS_CONTACT_EXPLAIN' => 'Contact fields are displayed with in the contact section of the user profile and are displayed differently in the mini profile next to posts and private messages.',
+ 'FIELD_IS_CONTACT_EXPLAIN' => 'Contact fields are displayed within the contact section of the user profile and are displayed differently in the mini profile next to posts and private messages.',
'FIELD_LENGTH' => 'Length of input box',
'FIELD_NOT_FOUND' => 'Profile field not found.',
'FIELD_STRING' => 'Single text field',
diff --git a/phpBB/language/en/search.php b/phpBB/language/en/search.php
index 7d5b400f82..ec5dd99eb8 100644
--- a/phpBB/language/en/search.php
+++ b/phpBB/language/en/search.php
@@ -86,7 +86,7 @@ $lang = array_merge($lang, array(
'RESULT_DAYS' => 'Limit results to previous',
'RESULT_SORT' => 'Sort results by',
'RETURN_FIRST' => 'Return first',
- 'RETURN_TO_SEARCH_ADV' => 'Return to advanced search',
+ 'GO_TO_SEARCH_ADV' => 'Go to advanced search',
'SEARCHED_FOR' => 'Search term used',
'SEARCHED_TOPIC' => 'Searched topic',
diff --git a/phpBB/phpbb/auth/provider/oauth/oauth.php b/phpBB/phpbb/auth/provider/oauth/oauth.php
index 902c6ae84c..c0ce3f1fba 100644
--- a/phpBB/phpbb/auth/provider/oauth/oauth.php
+++ b/phpBB/phpbb/auth/provider/oauth/oauth.php
@@ -105,7 +105,7 @@ class oauth extends \phpbb\auth\provider\base
protected $phpbb_root_path;
/**
- * PHP extenstion
+ * PHP file extension
*
* @var string
*/
diff --git a/phpBB/phpbb/console/command/db/migrate.php b/phpBB/phpbb/console/command/db/migrate.php
index 68638a9515..86545c237d 100644
--- a/phpBB/phpbb/console/command/db/migrate.php
+++ b/phpBB/phpbb/console/command/db/migrate.php
@@ -117,17 +117,9 @@ class migrate extends \phpbb\console\command\command
$migrations = $this->extension_manager
->get_finder()
->core_path('phpbb/db/migration/data/')
- ->extension_directory('/migration')
- ->get_classes();
-
- // @deprecated 3.1.0-RC4 (To be removed: 3.2.0)
- $migrations_deprecated = $this->extension_manager
- ->get_finder()
->extension_directory('/migrations')
->get_classes();
- $migrations = array_merge($migrations, $migrations_deprecated);
-
$this->migrator->set_migrations($migrations);
}
diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php
index e2932086db..fc19b855c0 100644
--- a/phpBB/phpbb/controller/helper.php
+++ b/phpBB/phpbb/controller/helper.php
@@ -140,8 +140,15 @@ class helper
// If enable_mod_rewrite is false we need to replace the current front-end by app.php, otherwise we need to remove it.
$base_url = str_replace('/' . $page_name, empty($this->config['enable_mod_rewrite']) ? '/app.' . $this->php_ext : '', $base_url);
- // We need to update the base url to move to the directory of the app.php file.
- $base_url = str_replace('/app.' . $this->php_ext, '/' . $this->phpbb_root_path . 'app.' . $this->php_ext, $base_url);
+ // We need to update the base url to move to the directory of the app.php file
+ if (empty($this->config['enable_mod_rewrite']))
+ {
+ $base_url = str_replace('/app.' . $this->php_ext, '/' . $this->phpbb_root_path . 'app.' . $this->php_ext, $base_url);
+ }
+ else
+ {
+ $base_url .= preg_replace(get_preg_expression('path_remove_dot_trailing_slash'), '$2', $this->phpbb_root_path);
+ }
$base_url = $this->filesystem->clean_path($base_url);
diff --git a/phpBB/phpbb/db/migration/data/v310/rc4.php b/phpBB/phpbb/db/migration/data/v310/rc4.php
new file mode 100644
index 0000000000..47de8291c1
--- /dev/null
+++ b/phpBB/phpbb/db/migration/data/v310/rc4.php
@@ -0,0 +1,32 @@
+<?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\v310;
+
+class rc4 extends \phpbb\db\migration\migration
+{
+ static public function depends_on()
+ {
+ return array(
+ '\phpbb\db\migration\data\v310\rc3',
+ '\phpbb\db\migration\data\v310\notifications_use_full_name',
+ );
+ }
+
+ public function update_data()
+ {
+ return array(
+ array('config.update', array('version', '3.1.0-RC4')),
+ );
+ }
+}
diff --git a/phpBB/phpbb/db/migrator.php b/phpBB/phpbb/db/migrator.php
index 43393a8935..44bea3c5d2 100644
--- a/phpBB/phpbb/db/migrator.php
+++ b/phpBB/phpbb/db/migrator.php
@@ -129,28 +129,11 @@ class migrator
* Sets the list of available migration class names to the given array.
*
* @param array $class_names An array of migration class names
- * @param bool $check_fulfillable If TRUE (default), we will check
- * if all of the migrations are fulfillable after loading them.
- * If FALSE, we will not check. You SHOULD check at least once
- * to prevent errors.
* @return null
- * @throws \phpbb\db\migration\exception
*/
- public function set_migrations($class_names, $check_fulfillable = true)
+ public function set_migrations($class_names)
{
$this->migrations = $class_names;
-
- if ($check_fulfillable)
- {
- foreach ($this->migrations as $name)
- {
- $unfulfillable = $this->unfulfillable($name);
- if ($unfulfillable !== false)
- {
- throw new \phpbb\db\migration\exception('MIGRATION_NOT_FULFILLABLE', $name, $unfulfillable);
- }
- }
- }
}
/**
diff --git a/phpBB/phpbb/di/container_builder.php b/phpBB/phpbb/di/container_builder.php
index 553b723cc8..638c13e86d 100644
--- a/phpBB/phpbb/di/container_builder.php
+++ b/phpBB/phpbb/di/container_builder.php
@@ -15,6 +15,7 @@ namespace phpbb\di;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
+use Symfony\Component\HttpKernel\DependencyInjection\RegisterListenersPass;
class container_builder
{
@@ -160,11 +161,13 @@ class container_builder
if ($this->use_custom_pass)
{
+ // Symfony Kernel Listeners
$this->container->addCompilerPass(new \phpbb\di\pass\collection_pass());
+ $this->container->addCompilerPass(new RegisterListenersPass('dispatcher', 'event.listener_listener', 'event.listener'));
if ($this->use_kernel_pass)
{
- $this->container->addCompilerPass(new \phpbb\di\pass\kernel_pass());
+ $this->container->addCompilerPass(new RegisterListenersPass('dispatcher'));
}
}
diff --git a/phpBB/phpbb/event/extension_subscriber_loader.php b/phpBB/phpbb/event/extension_subscriber_loader.php
deleted file mode 100644
index fc01961e9f..0000000000
--- a/phpBB/phpbb/event/extension_subscriber_loader.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?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\event;
-
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
-class extension_subscriber_loader
-{
- private $dispatcher;
- private $listener_collection;
-
- public function __construct(EventDispatcherInterface $dispatcher, \phpbb\di\service_collection $listener_collection)
- {
- $this->dispatcher = $dispatcher;
- $this->listener_collection = $listener_collection;
- }
-
- public function load()
- {
- if (!empty($this->listener_collection))
- {
- foreach ($this->listener_collection as $listener)
- {
- $this->dispatcher->addSubscriber($listener);
- }
- }
- }
-}
diff --git a/phpBB/phpbb/extension/base.php b/phpBB/phpbb/extension/base.php
index b74026e6ab..5bb530bad4 100644
--- a/phpBB/phpbb/extension/base.php
+++ b/phpBB/phpbb/extension/base.php
@@ -132,19 +132,10 @@ class base implements \phpbb\extension\extension_interface
// Only have the finder search in this extension path directory
$migrations = $this->extension_finder
- ->extension_directory('/migration')
- ->find_from_extension($this->extension_name, $this->extension_path);
-
- $migrations = $this->extension_finder->get_classes_from_files($migrations);
-
- // @deprecated 3.1.0-RC4 (To be removed: 3.2.0)
- $migrations_deprecated = $this->extension_finder
->extension_directory('/migrations')
->find_from_extension($this->extension_name, $this->extension_path);
- $migrations_deprecated = $this->extension_finder->get_classes_from_files($migrations_deprecated);
-
- $migrations = array_merge($migrations, $migrations_deprecated);
+ $migrations = $this->extension_finder->get_classes_from_files($migrations);
return $migrations;
}
diff --git a/phpBB/search.php b/phpBB/search.php
index 67f6f4dbb5..93f12f4310 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -1149,6 +1149,20 @@ if ($keywords || $author || $author_id || $search_id || $submit)
}
unset($rowset);
+ /**
+ * Modify the title and/or load data for the search results page
+ *
+ * @event core.search_results_modify_search_title
+ * @var int author_id ID of the author to search by
+ * @var string l_search_title The title of the search page
+ * @var string search_id Predefined search type name
+ * @var string show_results Search results output mode - topics or posts
+ * @var int start The starting id of the results
+ * @since 3.1.0-RC4
+ */
+ $vars = array('author_id', 'l_search_title', 'search_id', 'show_results', 'start');
+ extract($phpbb_dispatcher->trigger_event('core.search_results_modify_search_title', compact($vars)));
+
page_header(($l_search_title) ? $l_search_title : $user->lang['SEARCH']);
$template->set_filenames(array(
diff --git a/phpBB/styles/prosilver/style.cfg b/phpBB/styles/prosilver/style.cfg
index aea59021d6..1c4315f937 100644
--- a/phpBB/styles/prosilver/style.cfg
+++ b/phpBB/styles/prosilver/style.cfg
@@ -21,8 +21,8 @@
# General Information about this style
name = prosilver
copyright = © phpBB Limited, 2007
-style_version = 3.1.0-RC3
-phpbb_version = 3.1.0-RC3
+style_version = 3.1.0-RC4
+phpbb_version = 3.1.0-RC4
# Defining a different template bitfield
# template_bitfield = lNg=
diff --git a/phpBB/styles/prosilver/template/jumpbox.html b/phpBB/styles/prosilver/template/jumpbox.html
index 44b479ab3f..3096d08318 100644
--- a/phpBB/styles/prosilver/template/jumpbox.html
+++ b/phpBB/styles/prosilver/template/jumpbox.html
@@ -6,7 +6,7 @@
<!-- ELSEIF SEARCH_TOPIC -->
<p class="jumpbox-return"><a class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH_TOPIC}" accesskey="r">{L_RETURN_TO_TOPIC}</a></p>
<!-- ELSEIF S_SEARCH_ACTION -->
- <p class="jumpbox-return"><a class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}" accesskey="r">{L_RETURN_TO_SEARCH_ADV}</a></p>
+ <p class="jumpbox-return"><a class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}" accesskey="r">{L_GO_TO_SEARCH_ADV}</a></p>
<!-- ENDIF -->
<!-- IF S_DISPLAY_JUMPBOX -->
diff --git a/phpBB/styles/prosilver/template/message_body.html b/phpBB/styles/prosilver/template/message_body.html
index 8062fed9a0..71eca203bc 100644
--- a/phpBB/styles/prosilver/template/message_body.html
+++ b/phpBB/styles/prosilver/template/message_body.html
@@ -8,7 +8,7 @@
<div class="inner">
<h2 class="message-title">{MESSAGE_TITLE}</h2>
<p>{MESSAGE_TEXT}</p>
- <!-- IF SCRIPT_NAME == "search" and not S_BOARD_DISABLED and not S_NO_SEARCH and L_RETURN_TO_SEARCH_ADV --><p><a href="{U_SEARCH}" class="arrow-{S_CONTENT_FLOW_BEGIN}">{L_RETURN_TO_SEARCH_ADV}</a></p><!-- ENDIF -->
+ <!-- IF SCRIPT_NAME == "search" and not S_BOARD_DISABLED and not S_NO_SEARCH and L_RETURN_TO_SEARCH_ADV --><p><a href="{U_SEARCH}" class="arrow-{S_CONTENT_FLOW_BEGIN}">{L_GO_TO_SEARCH_ADV}</a></p><!-- ENDIF -->
</div>
</div>
diff --git a/phpBB/styles/prosilver/template/overall_header.html b/phpBB/styles/prosilver/template/overall_header.html
index 7882279485..ad08c1220b 100644
--- a/phpBB/styles/prosilver/template/overall_header.html
+++ b/phpBB/styles/prosilver/template/overall_header.html
@@ -69,17 +69,18 @@
<p class="skiplink"><a href="#start_here">{L_SKIP}</a></p>
</div>
- <!-- IF S_DISPLAY_SEARCH and not S_IN_SEARCH -->
- <div id="search-box">
+ <!-- IF S_DISPLAY_SEARCH and not S_IN_SEARCH -->
+ <div id="search-box" class="search-box search-header">
<form action="{U_SEARCH}" method="get" id="search">
<fieldset>
- <input name="keywords" id="keywords" type="search" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search" value="{SEARCH_WORDS}" placeholder="{L_SEARCH_MINI}" />
- <input class="button2" value="{L_SEARCH}" type="submit" /><br />
- <a href="{U_SEARCH}" title="{L_SEARCH_ADV_EXPLAIN}">{L_SEARCH_ADV}</a> {S_SEARCH_HIDDEN_FIELDS}
+ <input name="keywords" id="keywords" type="search" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search tiny" size="20" value="{SEARCH_WORDS}" placeholder="{L_SEARCH_MINI}" />
+ <button class="button icon-button search-icon" type="submit" title="{L_SEARCH}">{L_SEARCH}</button>
+ <a href="{U_SEARCH}" class="button icon-button search-adv-icon" title="{L_SEARCH_ADV}">{L_SEARCH_ADV}</a>
+ {S_SEARCH_HIDDEN_FIELDS}
</fieldset>
</form>
</div>
- <!-- ENDIF -->
+ <!-- ENDIF -->
</div>
</div>
diff --git a/phpBB/styles/prosilver/template/search_results.html b/phpBB/styles/prosilver/template/search_results.html
index 47aa8d85de..b31e7b7b5d 100644
--- a/phpBB/styles/prosilver/template/search_results.html
+++ b/phpBB/styles/prosilver/template/search_results.html
@@ -8,20 +8,21 @@
<!-- IF SEARCH_TOPIC -->
<p><a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH_TOPIC}">{L_RETURN_TO_TOPIC}</a></p>
<!-- ELSE -->
- <p><a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}">{L_RETURN_TO_SEARCH_ADV}</a></p>
+ <p><a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}">{L_GO_TO_SEARCH_ADV}</a></p>
<!-- ENDIF -->
<!-- IF .pagination or SEARCH_MATCHES or PAGE_NUMBER -->
- <form method="post" action="{S_SEARCH_ACTION}">
-
<div class="action-bar top">
<!-- IF SEARCH_MATCHES -->
<div class="search-box">
- <!-- IF SEARCH_IN_RESULTS -->
- <label for="add_keywords">{L_SEARCH_IN_RESULTS}{L_COLON} <input type="search" name="add_keywords" id="add_keywords" value="" class="inputbox narrow" /></label>
- <input class="button2" type="submit" name="submit" value="{L_SEARCH}" />
- <!-- ENDIF -->
+ <form method="post" action="{S_SEARCH_ACTION}">
+ <fieldset>
+ <input class="inputbox search tiny" type="search" name="add_keywords" id="add_keywords" value="" placeholder="{L_SEARCH_IN_RESULTS}" />
+ <button class="button icon-button search-icon" type="submit" title="{L_SEARCH}">{L_SEARCH}</button>
+ <a href="{U_SEARCH}" class="button icon-button search-adv-icon" title="{L_SEARCH_ADV}">{L_SEARCH_ADV}</a>
+ </fieldset>
+ </form>
</div>
<!-- ENDIF -->
@@ -34,8 +35,6 @@
<!-- ENDIF -->
</div>
</div>
-
- </form>
<!-- ENDIF -->
<!-- IF S_SHOW_TOPICS -->
diff --git a/phpBB/styles/prosilver/template/viewforum_body.html b/phpBB/styles/prosilver/template/viewforum_body.html
index e8c50f79b2..4362d50b37 100644
--- a/phpBB/styles/prosilver/template/viewforum_body.html
+++ b/phpBB/styles/prosilver/template/viewforum_body.html
@@ -50,7 +50,8 @@
<form method="get" id="forum-search" action="{S_SEARCHBOX_ACTION}">
<fieldset>
<input class="inputbox search tiny" type="search" name="keywords" id="search_keywords" size="20" placeholder="{L_SEARCH_FORUM}" />
- <input class="button2" type="submit" value="{L_SEARCH}" />
+ <button class="button icon-button search-icon" type="submit" title="{L_SEARCH}">{L_SEARCH}</button>
+ <a href="{U_SEARCH}" class="button icon-button search-adv-icon" title="{L_SEARCH_ADV}">{L_SEARCH_ADV}</a>
{S_SEARCH_LOCAL_HIDDEN_FIELDS}
</fieldset>
</form>
diff --git a/phpBB/styles/prosilver/template/viewtopic_body.html b/phpBB/styles/prosilver/template/viewtopic_body.html
index 5c8879af88..4463f6dfc0 100644
--- a/phpBB/styles/prosilver/template/viewtopic_body.html
+++ b/phpBB/styles/prosilver/template/viewtopic_body.html
@@ -42,7 +42,8 @@
<form method="get" id="topic-search" action="{S_SEARCHBOX_ACTION}">
<fieldset>
<input class="inputbox search tiny" type="search" name="keywords" id="search_keywords" size="20" placeholder="{L_SEARCH_TOPIC}" />
- <input class="button2" type="submit" value="{L_SEARCH}" />
+ <button class="button icon-button search-icon" type="submit" title="{L_SEARCH}">{L_SEARCH}</button>
+ <a href="{U_SEARCH}" class="button icon-button search-adv-icon" title="{L_SEARCH_ADV}">{L_SEARCH_ADV}</a>
{S_SEARCH_LOCAL_HIDDEN_FIELDS}
</fieldset>
</form>
diff --git a/phpBB/styles/prosilver/theme/bidi.css b/phpBB/styles/prosilver/theme/bidi.css
index 46fbbadef7..65123af4e5 100644
--- a/phpBB/styles/prosilver/theme/bidi.css
+++ b/phpBB/styles/prosilver/theme/bidi.css
@@ -25,24 +25,8 @@
padding: 10px 10px 0 13px;
}
-/* Search box
+/* Site Description
--------------------------------------------- */
-.rtl #search-box {
- float: left;
- text-align: left;
- margin-right: 0;
- margin-left: 5px;
-}
-
-.rtl #search-box li {
- text-align: left;
-}
-
-.rtl #search-box img {
- margin-right: 0;
- margin-left: 3px;
-}
-
.rtl #site-description {
float: right;
}
@@ -643,6 +627,11 @@ li.breadcrumbs span:first-child > a {
float: right;
}
+.rtl .buttons .button, .rtl .dropdown-select {
+ margin-left: 5px;
+ margin-right: 0;
+}
+
/* Icon images
---------------------------------------- */
.rtl .small-icon {
@@ -947,16 +936,40 @@ li.breadcrumbs span:first-child > a {
float: left;
}
-/* Form button styles
+/* Search box
---------------------------------------- */
/* Topic and forum Search */
.rtl .search-box {
- margin-right: 5px;
- margin-left: 0;
float: right;
}
+.rtl .search-box .inputbox {
+ border-left-width: 0;
+ border-right-width: 1px;
+ border-radius: 0 4px 4px 0;
+ float: right;
+ padding: 3px;
+}
+
+.rtl .search-box .button {
+ float: right;
+}
+
+.rtl .search-box a.button {
+ border-left-width: 1px;
+ border-right-width: 0;
+ border-radius: 4px 0 0 4px;
+ padding-left: 5px;
+ padding-right: 3px;
+}
+
+.rtl .search-header {
+ float: left;
+ margin-right: 0;
+ margin-left: 5px;
+}
+
.rtl input.search {
background-position: right 1px;
padding-right: 17px;
@@ -967,6 +980,10 @@ li.breadcrumbs span:first-child > a {
* tweaks.css
*/
+
+/* Form button styles
+---------------------------------------- */
+
/** Reference: Bug #27155 */
.rtl #wrap, .rtl .headerbar, .rtl #site-description, .rtl .navbar {
position: relative;
diff --git a/phpBB/styles/prosilver/theme/buttons.css b/phpBB/styles/prosilver/theme/buttons.css
index a08b49a81c..d600e76b44 100644
--- a/phpBB/styles/prosilver/theme/buttons.css
+++ b/phpBB/styles/prosilver/theme/buttons.css
@@ -85,7 +85,7 @@
font-size: 0;
}
-.tools-icon:before, .modtools-icon:before {
+.tools-icon:before, .modtools-icon:before, .search-icon:before, .search-adv-icon:before {
background-position: -80px 0;
height: 16px;
margin-top: 2px;
@@ -95,6 +95,12 @@
.dropdown-visible .tools-icon:before,
.nojs .dropdown-container:hover .tools-icon:before { background-position: -80px -20px; }
+.search-icon:before { background-position: -245px 0; }
+.search-icon:hover:before { background-position: -245px -20px; }
+
+.search-adv-icon:before { background-position: -265px 0; }
+.search-adv-icon:hover:before { background-position: -265px -20px; }
+
.modtools-icon:before { background-position: -225px 0; }
.dropdown-visible .modtools-icon:before,
.nojs .dropdown-container:hover .modtools-icon:before { background-position: -225px -20px; }
@@ -239,3 +245,9 @@ ul.linklist.bulletin > li.small-icon:before {
.hasjs .postbody .post-buttons {
max-width: 40%;
}
+
+/* Browser-specific tweaks */
+button::-moz-focus-inner {
+ padding: 0;
+ border: 0
+}
diff --git a/phpBB/styles/prosilver/theme/colours.css b/phpBB/styles/prosilver/theme/colours.css
index df27467cf8..505b18288b 100644
--- a/phpBB/styles/prosilver/theme/colours.css
+++ b/phpBB/styles/prosilver/theme/colours.css
@@ -29,16 +29,15 @@ hr {
/* Search box
--------------------------------------------- */
-#search-box {
- color: #FFFFFF;
-}
-
-#search-box #keywords {
- background-color: #FFF;
+.search-box .inputbox,
+.search-box .inputbox:hover,
+.search-box .inputbox:focus,
+.search-box .button:hover {
+ border-color: #C7C3BF;
}
-#search-box input {
- border-color: #0075B0;
+.search-header {
+ box-shadow: 0 0 10px #0075B0;
}
/* Round cornered boxes and backgrounds
@@ -249,11 +248,11 @@ a { color: #105289; }
a:hover { color: #D31141; }
/* Links on gradient backgrounds */
-#search-box a, .navbg a, .forumbg .header a, .forabg .header a, th a {
+.forumbg .header a, .forabg .header a, th a {
color: #FFFFFF;
}
-#search-box a:hover, .navbg a:hover, .forumbg .header a:hover, .forabg .header a:hover, th a:hover {
+.forumbg .header a:hover, .forabg .header a:hover, th a:hover {
color: #A8D8FF;
}
diff --git a/phpBB/styles/prosilver/theme/common.css b/phpBB/styles/prosilver/theme/common.css
index a3a4157704..090046f54f 100644
--- a/phpBB/styles/prosilver/theme/common.css
+++ b/phpBB/styles/prosilver/theme/common.css
@@ -212,45 +212,10 @@ ol ol ul, ol ul ul, ul ol ul, ul ul ul {
text-decoration: none;
}
-/* Search box
---------------------------------------------- */
-#search-box {
- position: relative;
- margin-top: 30px;
- margin-right: 5px;
- display: block;
- float: right;
- text-align: right;
- white-space: nowrap; /* For Opera */
-}
-
-#search-box #keywords {
- width: 95px;
-}
-
-#search-box input {
- border: 1px solid transparent;
-}
-
-/* .button1 style defined later, just a few tweaks for the search button version */
-#search-box input.button1 {
- padding: 1px 5px;
-}
-
-#search-box li {
- text-align: right;
- margin-top: 4px;
-}
-
-#search-box img {
- vertical-align: middle;
- margin-right: 3px;
-}
-
/* Site description and logo */
#site-description {
float: left;
- width: 70%;
+ width: 65%;
}
#site-description h1 {
@@ -1117,7 +1082,7 @@ ul.linklist:after,
.action-bar:after,
.notification_text:after,
.tabs-container:after,
-#tabs > ul:after,
+#tabs > ul:after,
#minitabs > ul:after,
.postprofile .avatar-container:after {
clear: both;
diff --git a/phpBB/styles/prosilver/theme/forms.css b/phpBB/styles/prosilver/theme/forms.css
index f0effa01c4..cbdeab11f9 100644
--- a/phpBB/styles/prosilver/theme/forms.css
+++ b/phpBB/styles/prosilver/theme/forms.css
@@ -289,6 +289,10 @@ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-s
display: none;
}
+input[type="search"]::-webkit-search-cancel-button {
+ cursor: pointer;
+}
+
/* Form button styles
---------------------------------------- */
input.button1, input.button2 {
@@ -352,12 +356,62 @@ input.button1:focus, input.button2:focus, input.button3:focus {
/* Topic and forum Search */
.search-box {
- margin-top: 3px;
- margin-left: 5px;
float: left;
}
-.search-box input {
+.search-box .inputbox {
+ background-image: none;
+ border-right-width: 0;
+ border-radius: 4px 0 0 4px;
+ float: left;
+ height: 24px;
+ padding: 3px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.search-box button {
+ float: left;
+}
+
+.search-box button.search-icon {
+ border-radius: 0;
+ font-size: 0;
+ height: 24px;
+ margin: 0;
+ padding: 3px 5px;
+}
+
+.search-box a.button {
+ border-left-width: 0;
+ border-radius: 0 4px 4px 0;
+ font-size: 0;
+ margin: 0;
+ padding: 2px 5px 2px 3px;
+}
+
+/* Search box (header)
+--------------------------------------------- */
+.search-header {
+ border-radius: 4px;
+ display: block;
+ float: right;
+ margin-right: 5px;
+ margin-top: 30px;
+}
+
+.search-header .inputbox { border: 0; }
+
+.search-header button {
+ border-top: 0;
+ border-bottom: 0;
+}
+
+.search-header a.button {
+ border: 0;
+ border-left: 1;
+ padding: 3px 5px 3px 4px;
}
input.search {
@@ -371,4 +425,3 @@ input.search {
.medium { width: 50%;}
.narrow { width: 25%;}
.tiny { width: 10%;}
-
diff --git a/phpBB/styles/prosilver/theme/images/icons_button.png b/phpBB/styles/prosilver/theme/images/icons_button.png
index da9ae6f1b4..50ac8994de 100644
--- a/phpBB/styles/prosilver/theme/images/icons_button.png
+++ b/phpBB/styles/prosilver/theme/images/icons_button.png
Binary files differ
diff --git a/phpBB/styles/prosilver/theme/links.css b/phpBB/styles/prosilver/theme/links.css
index 9b5c00d9b6..a2f512443c 100644
--- a/phpBB/styles/prosilver/theme/links.css
+++ b/phpBB/styles/prosilver/theme/links.css
@@ -18,11 +18,11 @@ a:hover { text-decoration: underline; }
}
/* Links on gradient backgrounds */
-#search-box a, .navbg a, .forumbg .header a, .forabg .header a, th a {
+.forumbg .header a, .forabg .header a, th a {
text-decoration: none;
}
-#search-box a:hover, .navbg a:hover, .forumbg .header a:hover, .forabg .header a:hover, th a:hover {
+.forumbg .header a:hover, .forabg .header a:hover, th a:hover {
text-decoration: underline;
}
diff --git a/phpBB/styles/prosilver/theme/responsive.css b/phpBB/styles/prosilver/theme/responsive.css
index fc39e03da7..698b9efd75 100644
--- a/phpBB/styles/prosilver/theme/responsive.css
+++ b/phpBB/styles/prosilver/theme/responsive.css
@@ -60,7 +60,7 @@ body {
text-overflow: ellipsis;
}
-#site-description p, #search-box {
+#site-description p, .search-header {
display: none;
}
@@ -351,6 +351,13 @@ fieldset.quick-login label[for="autologin"] {
}
}
+@media only screen and (max-width: 430px), only screen and (max-device-width: 430px)
+{
+ .section-viewtopic .search-box .inputbox {
+ width: 110px;
+ }
+}
+
@media only screen and (max-width: 320px), only screen and (max-device-width: 320px)
{
select, .inputbox {
@@ -511,9 +518,13 @@ fieldset.display-actions {
p.responsive-center {
float: none;
text-align: center;
- margin: 0;
+ margin-bottom: 5px;
}
+ .action-bar > div {
+ margin-bottom: 5px;
+ }
+
.action-bar > .pagination {
float: none;
clear: both;
@@ -525,7 +536,7 @@ fieldset.display-actions {
margin: 0 2px;
}
- .action-bar > div.search-box, p.jumpbox-return {
+ p.jumpbox-return {
display: none;
}
diff --git a/phpBB/styles/prosilver/theme/tweaks.css b/phpBB/styles/prosilver/theme/tweaks.css
index d52ac6dee8..d2dad9e299 100644
--- a/phpBB/styles/prosilver/theme/tweaks.css
+++ b/phpBB/styles/prosilver/theme/tweaks.css
@@ -20,8 +20,10 @@ dd label input { vertical-align: text-bottom\9; }
.postprofile .avatar img { max-width: 150px\9; }
-
/* IE 9 Tweaks
------------------------------------------------------------------------------*/
-
+/* Border-radius bleed fix in IE9 */
+.search-header, .search-header .inputbox, .search-header a.button {
+ border-radius: 0;
+}
diff --git a/phpBB/styles/subsilver2/style.cfg b/phpBB/styles/subsilver2/style.cfg
index 3ef3154742..0c0bd04456 100644
--- a/phpBB/styles/subsilver2/style.cfg
+++ b/phpBB/styles/subsilver2/style.cfg
@@ -21,8 +21,8 @@
# General Information about this style
name = subsilver2
copyright = © 2005 phpBB Limited
-style_version = 3.1.0-RC3
-phpbb_version = 3.1.0-RC3
+style_version = 3.1.0-RC4
+phpbb_version = 3.1.0-RC4
# Defining a different template bitfield
# template_bitfield = lNg=
diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php
index d186d468df..6379da6802 100644
--- a/phpBB/viewforum.php
+++ b/phpBB/viewforum.php
@@ -538,13 +538,46 @@ else
}
// Grab just the sorted topic ids
-$sql = 'SELECT t.topic_id
- FROM ' . TOPICS_TABLE . " t
- WHERE $sql_where
+$sql_ary = array(
+ 'SELECT' => 't.topic_id',
+ 'FROM' => array(
+ TOPICS_TABLE => 't',
+ ),
+ 'WHERE' => "$sql_where
AND t.topic_type IN (" . POST_NORMAL . ', ' . POST_STICKY . ")
$sql_approved
- $sql_limit_time
- ORDER BY t.topic_type " . ((!$store_reverse) ? 'DESC' : 'ASC') . ', ' . $sql_sort_order;
+ $sql_limit_time",
+ 'ORDER_BY' => 't.topic_type ' . ((!$store_reverse) ? 'DESC' : 'ASC') . ', ' . $sql_sort_order,
+);
+
+/**
+* Event to modify the SQL query before the topic ids data is retrieved
+*
+* @event core.viewforum_get_topic_ids_data
+* @var array sql_ary SQL query array to get the topic ids data
+* @var string sql_approved Topic visibility SQL string
+* @var int sql_limit Number of records to select
+* @var string sql_limit_time SQL string to limit topic_last_post_time data
+* @var array sql_sort_order SQL sorting string
+* @var int sql_start Offset point to start selection from
+* @var string sql_where SQL WHERE clause string
+* @var bool store_reverse Flag indicating if we select from the late pages
+*
+* @since 3.1.0-RC4
+*/
+$vars = array(
+ 'sql_ary',
+ 'sql_approved',
+ 'sql_limit',
+ 'sql_limit_time',
+ 'sql_sort_order',
+ 'sql_start',
+ 'sql_where',
+ 'store_reverse',
+);
+extract($phpbb_dispatcher->trigger_event('core.viewforum_get_topic_ids_data', compact($vars)));
+
+$sql = $db->sql_build_query('SELECT', $sql_ary);
$result = $db->sql_query_limit($sql, $sql_limit, $sql_start);
while ($row = $db->sql_fetchrow($result))
diff --git a/tests/controller/helper_route_test.php b/tests/controller/common_helper_route.php
index e906e79164..1751578a75 100644
--- a/tests/controller/helper_route_test.php
+++ b/tests/controller/common_helper_route.php
@@ -15,19 +15,53 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-class phpbb_controller_helper_route_test extends phpbb_test_case
+abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
+ protected $root_path;
+
public function setUp()
{
global $phpbb_dispatcher, $phpbb_root_path, $phpEx;
+ $this->extension_manager = new phpbb_mock_extension_manager(
+ dirname(__FILE__) . '/',
+ array(
+ 'vendor2/foo' => array(
+ 'ext_name' => 'vendor2/foo',
+ 'ext_active' => '1',
+ 'ext_path' => 'ext/vendor2/foo/',
+ ),
+ )
+ );
+ $this->generate_route_objects();
$phpbb_dispatcher = new phpbb_mock_event_dispatcher;
$this->user = new \phpbb\user('\phpbb\datetime');
+ $this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
+ $this->template = new phpbb\template\twig\twig($this->phpbb_path_helper, $this->config, $this->user, new \phpbb\template\context());
+ }
+
+ protected function get_phpbb_root_path()
+ {
+ return '';
+ }
+
+ protected function get_uri()
+ {
+ return '/app.php';
+ }
+
+ protected function get_script_name()
+ {
+ return 'app.php';
+ }
+
+ protected function generate_route_objects()
+ {
$request = new phpbb_mock_request();
- $request->overwrite('SCRIPT_NAME', '/app.php', \phpbb\request\request_interface::SERVER);
- $request->overwrite('SCRIPT_FILENAME', 'app.php', \phpbb\request\request_interface::SERVER);
- $request->overwrite('REQUEST_URI', '/app.php', \phpbb\request\request_interface::SERVER);
+ $request->overwrite('SCRIPT_NAME', $this->get_uri(), \phpbb\request\request_interface::SERVER);
+ $request->overwrite('SCRIPT_FILENAME', $this->get_script_name(), \phpbb\request\request_interface::SERVER);
+ $request->overwrite('REQUEST_URI', $this->get_uri(), \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_NAME', 'localhost', \phpbb\request\request_interface::SERVER);
$request->overwrite('SERVER_PORT', '80', \phpbb\request\request_interface::SERVER);
@@ -35,25 +69,13 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
$request
);
$this->filesystem = new \phpbb\filesystem();
- $phpbb_path_helper = new \phpbb\path_helper(
+ $this->phpbb_path_helper = new \phpbb\path_helper(
$this->symfony_request,
$this->filesystem,
$this->getMock('\phpbb\request\request'),
$phpbb_root_path,
$phpEx
);
- $this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
- $this->template = new phpbb\template\twig\twig($phpbb_path_helper, $this->config, $this->user, new \phpbb\template\context());
- $this->extension_manager = new phpbb_mock_extension_manager(
- dirname(__FILE__) . '/',
- array(
- 'vendor2/foo' => array(
- 'ext_name' => 'vendor2/foo',
- 'ext_active' => '1',
- 'ext_path' => 'ext/vendor2/foo/',
- ),
- )
- );
$finder = new \phpbb\finder(
new \phpbb\filesystem(),
@@ -64,6 +86,8 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
$this->provider = new \phpbb\controller\provider();
$this->provider->find_routing_files($finder);
$this->provider->find(dirname(__FILE__) . '/');
+ // Set correct current phpBB root path
+ $this->root_path = $this->get_phpbb_root_path();
}
public function helper_url_data_no_rewrite()
@@ -101,7 +125,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
*/
public function test_helper_url_no_rewrite($route, $params, $is_amp, $session_id, $expected, $description)
{
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id));
}
@@ -141,7 +165,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
public function test_helper_url_with_rewrite($route, $params, $is_amp, $session_id, $expected, $description)
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id));
}
@@ -181,7 +205,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
public function test_helper_url_absolute($route, $params, $is_amp, $session_id, $expected, $description)
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::ABSOLUTE_URL));
}
@@ -221,7 +245,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
public function test_helper_url_relative_path($route, $params, $is_amp, $session_id, $expected, $description)
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::RELATIVE_PATH));
}
@@ -261,7 +285,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
public function test_helper_url_network($route, $params, $is_amp, $session_id, $expected, $description)
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::NETWORK_PATH));
}
//TODO
@@ -301,7 +325,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
public function test_helper_url_absolute_with_rewrite($route, $params, $is_amp, $session_id, $expected, $description)
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::ABSOLUTE_URL));
}
@@ -341,7 +365,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
public function test_helper_url_relative_path_with_rewrite($route, $params, $is_amp, $session_id, $expected, $description)
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::RELATIVE_PATH));
}
@@ -381,7 +405,7 @@ class phpbb_controller_helper_route_test extends phpbb_test_case
public function test_helper_url_network_with_rewrite($route, $params, $is_amp, $session_id, $expected, $description)
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, '', 'php', dirname(__FILE__) . '/');
+ $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->provider, $this->extension_manager, $this->symfony_request, $this->filesystem, $this->root_path, 'php', dirname(__FILE__) . '/');
$this->assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::NETWORK_PATH));
}
}
diff --git a/tests/controller/helper_route_adm_subdir_test.php b/tests/controller/helper_route_adm_subdir_test.php
new file mode 100644
index 0000000000..f27ac81b04
--- /dev/null
+++ b/tests/controller/helper_route_adm_subdir_test.php
@@ -0,0 +1,33 @@
+<?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.
+*
+*/
+
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+require_once dirname(__FILE__) . '/common_helper_route.php';
+
+class phpbb_controller_helper_route_adm_subdir_test extends phpbb_controller_common_helper_route
+{
+ protected function get_phpbb_root_path()
+ {
+ return './../../';
+ }
+
+ protected function get_uri()
+ {
+ return '/adm/subdir/index.php';
+ }
+
+ protected function get_script_name()
+ {
+ return 'index.php';
+ }
+}
diff --git a/tests/controller/helper_route_adm_test.php b/tests/controller/helper_route_adm_test.php
new file mode 100644
index 0000000000..86dc36ef1f
--- /dev/null
+++ b/tests/controller/helper_route_adm_test.php
@@ -0,0 +1,33 @@
+<?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.
+*
+*/
+
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+require_once dirname(__FILE__) . '/common_helper_route.php';
+
+class phpbb_controller_helper_route_adm_test extends phpbb_controller_common_helper_route
+{
+ protected function get_phpbb_root_path()
+ {
+ return './../';
+ }
+
+ protected function get_uri()
+ {
+ return '/adm/index.php';
+ }
+
+ protected function get_script_name()
+ {
+ return 'index.php';
+ }
+}
diff --git a/tests/controller/helper_route_root_test.php b/tests/controller/helper_route_root_test.php
new file mode 100644
index 0000000000..63a2f2f8f7
--- /dev/null
+++ b/tests/controller/helper_route_root_test.php
@@ -0,0 +1,33 @@
+<?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.
+*
+*/
+
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+require_once dirname(__FILE__) . '/common_helper_route.php';
+
+class phpbb_controller_helper_route_test extends phpbb_controller_common_helper_route
+{
+ protected function get_phpbb_root_path()
+ {
+ return '';
+ }
+
+ protected function get_uri()
+ {
+ return '/app.php';
+ }
+
+ protected function get_script_name()
+ {
+ return 'app.php';
+ }
+}
diff --git a/tests/controller/helper_route_unclean_path_test.php b/tests/controller/helper_route_unclean_path_test.php
new file mode 100644
index 0000000000..9d8b62bc1c
--- /dev/null
+++ b/tests/controller/helper_route_unclean_path_test.php
@@ -0,0 +1,33 @@
+<?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.
+*
+*/
+
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+require_once dirname(__FILE__) . '/common_helper_route.php';
+
+class phpbb_controller_helper_route_unclean_path_test extends phpbb_controller_common_helper_route
+{
+ protected function get_phpbb_root_path()
+ {
+ return './../';
+ }
+
+ protected function get_uri()
+ {
+ return '/adm/../bertie/index.php';
+ }
+
+ protected function get_script_name()
+ {
+ return 'index.php';
+ }
+}
diff --git a/tests/dbal/migrator_test.php b/tests/dbal/migrator_test.php
index 05e60a510b..10a9444d63 100644
--- a/tests/dbal/migrator_test.php
+++ b/tests/dbal/migrator_test.php
@@ -118,17 +118,9 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
$this->db_tools->sql_column_remove('phpbb_config', 'extra_column');
}
- /**
- * @expectedException \phpbb\db\migration\exception
- */
- public function test_unfulfillable_exception()
- {
- $this->migrator->set_migrations(array('phpbb_dbal_migration_unfulfillable', 'phpbb_dbal_migration_dummy'));
- }
-
public function test_unfulfillable()
{
- $this->migrator->set_migrations(array('phpbb_dbal_migration_unfulfillable', 'phpbb_dbal_migration_dummy'), false);
+ $this->migrator->set_migrations(array('phpbb_dbal_migration_unfulfillable', 'phpbb_dbal_migration_dummy'));
while (!$this->migrator->finished())
{
diff --git a/tests/extension/ext/vendor2/bar/migration/migration.php b/tests/extension/ext/vendor2/bar/migration/migration.php
deleted file mode 100644
index fc27656d10..0000000000
--- a/tests/extension/ext/vendor2/bar/migration/migration.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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 vendor2\bar\migration;
-
-class migration extends \phpbb\db\migration\migration
-{
-}
diff --git a/tests/extension/ext/vendor2/foo/migrations/migration.php b/tests/extension/ext/vendor2/foo/migrations/migration.php
deleted file mode 100644
index 63085497e3..0000000000
--- a/tests/extension/ext/vendor2/foo/migrations/migration.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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 vendor2\foo\migrations;
-
-class migration extends \phpbb\db\migration\migration
-{
-}
diff --git a/tests/extension/ext/vendor3/bar/migration/migration.php b/tests/extension/ext/vendor3/bar/migration/migration.php
deleted file mode 100644
index e7280a7d5e..0000000000
--- a/tests/extension/ext/vendor3/bar/migration/migration.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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 vendor3\bar\migration;
-
-class migration extends \phpbb\db\migration\migration
-{
-}
diff --git a/tests/extension/extension_base_test.php b/tests/extension/extension_base_test.php
index 5535c91fc5..eee38186db 100644
--- a/tests/extension/extension_base_test.php
+++ b/tests/extension/extension_base_test.php
@@ -16,6 +16,9 @@ class phpbb_extension_extension_base_test extends phpbb_test_case
{
protected static $reflection_method_get_migration_file_list;
+ /** @var phpbb_mock_extension_manager */
+ protected $extension_manager;
+
public static function setUpBeforeClass()
{
parent::setUpBeforeClass();
@@ -57,17 +60,8 @@ class phpbb_extension_extension_base_test extends phpbb_test_case
{
return array(
array(
- 'vendor3/bar',
- array('\vendor3\bar\migration\migration'),
- ),
- array(
- 'vendor2/foo',
- array('\vendor2\foo\migrations\migration'),
- ),
- array(
'vendor2/bar',
array(
- '\vendor2\bar\migration\migration',
'\vendor2\bar\migrations\migration',
),
),
diff --git a/tests/functions/get_preg_expression_test.php b/tests/functions/get_preg_expression_test.php
new file mode 100644
index 0000000000..e74017d315
--- /dev/null
+++ b/tests/functions/get_preg_expression_test.php
@@ -0,0 +1,40 @@
+<?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.
+*
+*/
+
+require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
+
+class phpbb_functions_get_preg_expression_test extends phpbb_test_case
+{
+ public function data_path_remove_dot_trailing_slash()
+ {
+ return array(
+ array('./../', '$2', '/..'),
+ array('/../', '$2', '/..'),
+ array('', '$2', ''),
+ array('./', '$2', ''),
+ array('/', '$2', ''),
+ array('./../../', '$2', '/../..'),
+ array('/../../', '$2', '/../..'),
+ array('./dir/', '$2', '/dir'),
+ array('./../dir/', '$2', '/../dir'),
+ );
+ }
+
+ /**
+ * @dataProvider data_path_remove_dot_trailing_slash
+ */
+ public function test_path_remove_dot_trailing_slash($input, $replace, $expected)
+ {
+ $this->assertSame($expected, preg_replace(get_preg_expression('path_remove_dot_trailing_slash'), $replace, $input));
+ }
+}
diff --git a/tests/test_framework/phpbb_database_test_case.php b/tests/test_framework/phpbb_database_test_case.php
index 46276bcfcb..9dbb7150f1 100644
--- a/tests/test_framework/phpbb_database_test_case.php
+++ b/tests/test_framework/phpbb_database_test_case.php
@@ -69,10 +69,9 @@ abstract class phpbb_database_test_case extends PHPUnit_Extensions_Database_Test
global $phpbb_root_path, $phpEx, $table_prefix;
$finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx);
- $classes = $finder->core_path('phpbb/')
- ->core_directory('/db/migration/data')
+ $classes = $finder->core_path('phpbb/db/migration/data/')
->set_extensions($setup_extensions)
- ->extension_directory('migrations')
+ ->extension_directory('/migrations')
->get_classes();
$db = new \phpbb\db\driver\sqlite();