diff options
| -rw-r--r-- | build/build.xml | 1 | ||||
| -rw-r--r-- | phpBB/config/console.yml | 1 | ||||
| -rw-r--r-- | phpBB/docs/events.md | 16 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_main.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_styles.php | 1 | ||||
| -rw-r--r-- | phpBB/language/en/common.php | 1 | ||||
| -rw-r--r-- | phpBB/phpbb/console/command/cache/purge.php | 7 | ||||
| -rw-r--r-- | phpBB/phpbb/mimetype/guesser_interface.php | 1 | ||||
| -rw-r--r-- | phpBB/posting.php | 64 | ||||
| -rw-r--r-- | phpBB/search.php | 26 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/search_results.html | 3 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/viewforum_body.html | 1 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/theme/images/icon_topic_poll.gif | bin | 0 -> 120 bytes | |||
| -rw-r--r-- | phpBB/styles/prosilver/theme/imageset.css | 5 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/search_results.html | 2 | ||||
| -rw-r--r-- | phpBB/viewforum.php | 1 | ||||
| -rw-r--r-- | phpunit.xml.all | 36 | ||||
| -rw-r--r-- | phpunit.xml.dist | 4 | ||||
| -rw-r--r-- | phpunit.xml.functional | 43 | ||||
| -rw-r--r-- | tests/RUNNING_TESTS.md | 14 |
20 files changed, 128 insertions, 101 deletions
diff --git a/build/build.xml b/build/build.xml index 79b6096c97..9a04d4efdb 100644 --- a/build/build.xml +++ b/build/build.xml @@ -67,7 +67,6 @@ <exec dir="." command="phpBB/vendor/bin/phpunit --log-junit build/logs/phpunit.xml - --configuration phpunit.xml.all --group slow --coverage-clover build/logs/clover-slow.xml --coverage-html build/coverage-slow" diff --git a/phpBB/config/console.yml b/phpBB/config/console.yml index 1340d9c0d7..d32befa15e 100644 --- a/phpBB/config/console.yml +++ b/phpBB/config/console.yml @@ -7,6 +7,7 @@ services: - @auth - @log - @user + - @config tags: - { name: console.command } diff --git a/phpBB/docs/events.md b/phpBB/docs/events.md index 66b558a665..4a6a1895dd 100644 --- a/phpBB/docs/events.md +++ b/phpBB/docs/events.md @@ -601,6 +601,22 @@ search_results_postprofile_before * Since: 3.1.0-b3 * Purpose: Add content directly before the post author in search results (posts view mode) +search_results_topic_after +=== +* Locations: + + styles/prosilver/template/search_results.html + + styles/subsilver2/template/search_results.html +* Since: 3.1.0-b4 +* Purpose: Add data after search result topics + +search_results_topic_before +=== +* Locations: + + styles/prosilver/template/search_results.html + + styles/subsilver2/template/search_results.html +* Since: 3.1.0-b4 +* Purpose: Add data before search result topics + simple_footer_after === * Locations: diff --git a/phpBB/includes/acp/acp_main.php b/phpBB/includes/acp/acp_main.php index 9c1613e24a..74ea095496 100644 --- a/phpBB/includes/acp/acp_main.php +++ b/phpBB/includes/acp/acp_main.php @@ -349,7 +349,7 @@ class acp_main break; case 'purge_cache': - global $cache; + $config->increment('assets_version', 1); $cache->purge(); // Clear permissions diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php index 3f9d21f56c..7b277da9f9 100644 --- a/phpBB/includes/acp/acp_styles.php +++ b/phpBB/includes/acp/acp_styles.php @@ -146,6 +146,7 @@ class acp_styles { global $db, $cache, $auth; + $this->config->increment('assets_version', 1); $this->cache->purge(); // Clear permissions diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index 7faa46daf3..7026e60911 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -751,6 +751,7 @@ $lang = array_merge($lang, array( 1 => '%d private message in total', 2 => '%d private messages in total', ), + 'TOPIC_POLL' => 'This topic has a poll.', 'TOTAL_POSTS' => 'Total posts', 'TOTAL_POSTS_COUNT' => array( 2 => 'Total posts <strong>%d</strong>', diff --git a/phpBB/phpbb/console/command/cache/purge.php b/phpBB/phpbb/console/command/cache/purge.php index 017bdc5144..013183cb35 100644 --- a/phpBB/phpbb/console/command/cache/purge.php +++ b/phpBB/phpbb/console/command/cache/purge.php @@ -28,13 +28,17 @@ class purge extends \phpbb\console\command\command /** @var \phpbb\user */ protected $user; - function __construct(\phpbb\cache\driver\driver_interface $cache, \phpbb\db\driver\driver_interface $db, \phpbb\auth\auth $auth, \phpbb\log\log $log, \phpbb\user $user) + /** @var \phpbb\config\config */ + protected $config; + + public function __construct(\phpbb\cache\driver\driver_interface $cache, \phpbb\db\driver\driver_interface $db, \phpbb\auth\auth $auth, \phpbb\log\log $log, \phpbb\user $user, \phpbb\config\config $config) { $this->cache = $cache; $this->db = $db; $this->auth = $auth; $this->log = $log; $this->user = $user; + $this->config = $config; $this->user->add_lang(array('acp/common')); parent::__construct(); } @@ -49,6 +53,7 @@ class purge extends \phpbb\console\command\command protected function execute(InputInterface $input, OutputInterface $output) { + $this->config->increment('assets_version', 1); $this->cache->purge(); // Clear permissions diff --git a/phpBB/phpbb/mimetype/guesser_interface.php b/phpBB/phpbb/mimetype/guesser_interface.php index 103689765e..3cbcfeabe3 100644 --- a/phpBB/phpbb/mimetype/guesser_interface.php +++ b/phpBB/phpbb/mimetype/guesser_interface.php @@ -26,6 +26,7 @@ interface guesser_interface * Guess mimetype of supplied file * * @param string $file Path to file + * @param string $file_name The real file name * * @return string Guess for mimetype of file */ diff --git a/phpBB/posting.php b/phpBB/posting.php index 054f6edb50..d48157dcd6 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -1491,8 +1491,8 @@ $form_enctype = (@ini_get('file_uploads') == '0' || strtolower(@ini_get('file_up add_form_key('posting'); -// Start assigning vars for main posting page ... -$template->assign_vars(array( +// Build array of variables for main posting page +$page_data = array( 'L_POST_A' => $page_title, 'L_ICON' => ($mode == 'reply' || $mode == 'quote' || ($mode == 'edit' && $post_id != $post_data['topic_first_post_id'])) ? $user->lang['POST_ICON'] : $user->lang['TOPIC_ICON'], 'L_MESSAGE_BODY_EXPLAIN' => $user->lang('MESSAGE_BODY_EXPLAIN', (int) $config['max_post_chars']), @@ -1560,24 +1560,46 @@ $template->assign_vars(array( 'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_ATTACH_DATA' => json_encode($message_parser->attachment_data), 'S_IN_POSTING' => true, -)); +); /** * This event allows you to modify template variables for the posting screen * * @event core.posting_modify_template_vars -* @var array post_data Array with post data -* @var array moderators Array with forum moderators -* @var string mode What action to take if the form is submitted -* post|reply|quote|edit|delete|bump|smilies|popup -* @var string page_title Title of the mode page +* @var array post_data Array with post data +* @var array moderators Array with forum moderators +* @var string mode What action to take if the form is submitted +* post|reply|quote|edit|delete|bump|smilies|popup +* @var string page_title Title of the mode page * @var bool s_topic_icons Whether or not to show the topic icons -* @var string form_enctype If attachments are allowed for this form the value of -* this is "multipart/form-data" else it is the empty string -* @var string s_action The URL to submit the POST data to -* @var string s_hidden_fields The concatenated input tags of the form's hidden fields +* @var string form_enctype If attachments are allowed for this form +* "multipart/form-data" or empty string +* @var string s_action The URL to submit the POST data to +* @var string s_hidden_fields Concatenated hidden input tags of posting form +* @var int post_id ID of the post +* @var int topic_id ID of the topic +* @var int forum_id ID of the forum +* @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 +* @var bool load Whether or not a draft is being loaded +* @var bool delete Whether or not the post is being deleted +* @var bool cancel Whether or not to cancel the form (returns to +* viewtopic or viewforum depending on if the user +* is posting a new topic or editing a post) +* @var array error Any error strings; a non-empty array aborts +* form submission. +* NOTE: Should be actual language strings, NOT +* language keys. +* @var bool refresh Whether or not to retain previously submitted data +* @var array page_data Posting page data that should be passed to the +* posting page via $template->assign_vars() +* @var object message_parser The message parser object * @since 3.1.0-a1 -* @change 3.1.0-b3 Added vars post_data, moderators, mode, page_title, s_topic_icons, form_enctype, s_action, s_hidden_fields +* @change 3.1.0-b3 Added vars post_data, moderators, mode, page_title, +* s_topic_icons, form_enctype, s_action, s_hidden_fields, +* post_id, topic_id, forum_id, submit, preview, save, load, +* delete, cancel, refresh, error, page_data, message_parser */ $vars = array( 'post_data', @@ -1588,9 +1610,25 @@ $vars = array( 'form_enctype', 's_action', 's_hidden_fields', + 'post_id', + 'topic_id', + 'forum_id', + 'submit', + 'preview', + 'save', + 'load', + 'delete', + 'cancel', + 'refresh', + 'error', + 'page_data', + 'message_parser', ); extract($phpbb_dispatcher->trigger_event('core.posting_modify_template_vars', compact($vars))); +// Start assigning vars for main posting page ... +$template->assign_vars($page_data); + // Build custom bbcodes array display_custom_bbcodes(); diff --git a/phpBB/search.php b/phpBB/search.php index a34c0a4e5a..3a1e911195 100644 --- a/phpBB/search.php +++ b/phpBB/search.php @@ -613,6 +613,7 @@ if ($keywords || $author || $author_id || $search_id || $submit) 'REPORTED_IMG' => $user->img('icon_topic_reported', 'TOPIC_REPORTED'), 'UNAPPROVED_IMG' => $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'), 'DELETED_IMG' => $user->img('icon_topic_deleted', 'TOPIC_DELETED'), + 'POLL_IMG' => $user->img('icon_topic_poll', 'TOPIC_POLL'), 'LAST_POST_IMG' => $user->img('icon_topic_latest', 'VIEW_LATEST_POST'), 'U_SEARCH_WORDS' => $u_search, @@ -911,6 +912,30 @@ if ($keywords || $author || $author_id || $search_id || $submit) $hilit = implode('|', $hilit_array); } + /** + * Modify the rowset data + * + * @event core.search_modify_rowset + * @var array attachments Array with posts attachments data + * @var string hilit String to highlight + * @var array rowset Array with the search results data + * @var array topic_tracking_info Array with the topics tracking data + * @var string u_hilit Highlight string to be injected into URL + * @var string view Search results view mode + * @var array zebra Array with zebra data for the current user + * @since 3.1.0-b4 + */ + $vars = array( + 'attachments', + 'hilit', + 'rowset', + 'topic_tracking_info', + 'u_hilit', + 'view', + 'zebra', + ); + extract($phpbb_dispatcher->trigger_event('core.search_modify_rowset', compact($vars))); + foreach ($rowset as $row) { $forum_id = $row['forum_id']; @@ -973,6 +998,7 @@ if ($keywords || $author || $author_id || $search_id || $submit) 'S_TOPIC_UNAPPROVED' => $topic_unapproved, 'S_POSTS_UNAPPROVED' => $posts_unapproved, 'S_TOPIC_DELETED' => $topic_deleted, + 'S_HAS_POLL' => ($row['poll_start']) ? true : false, 'U_LAST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&p=' . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'], 'U_LAST_POST_AUTHOR' => get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']), diff --git a/phpBB/styles/prosilver/template/search_results.html b/phpBB/styles/prosilver/template/search_results.html index fe0b0362ce..0043da4507 100644 --- a/phpBB/styles/prosilver/template/search_results.html +++ b/phpBB/styles/prosilver/template/search_results.html @@ -58,6 +58,7 @@ <ul class="topiclist topics"> <!-- BEGIN searchresults --> + <!-- EVENT search_results_topic_before --> <li class="row<!-- IF searchresults.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->"> <dl class="icon {searchresults.TOPIC_IMG_STYLE}"> <dt <!-- IF searchresults.TOPIC_ICON_IMG -->style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{searchresults.TOPIC_FOLDER_IMG_ALT}"> @@ -84,6 +85,7 @@ </ul> </div> <!-- ENDIF --> + <!-- IF searchresults.S_HAS_POLL -->{POLL_IMG} <!-- ENDIF --> {L_POST_BY_AUTHOR} {searchresults.TOPIC_AUTHOR_FULL} » {searchresults.FIRST_POST_TIME} » {L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a> <!-- EVENT topiclist_row_append --> @@ -97,6 +99,7 @@ </dd> </dl> </li> + <!-- EVENT search_results_topic_after --> <!-- END searchresults --> </ul> diff --git a/phpBB/styles/prosilver/template/viewforum_body.html b/phpBB/styles/prosilver/template/viewforum_body.html index 6646f40f01..7a0ebaafcf 100644 --- a/phpBB/styles/prosilver/template/viewforum_body.html +++ b/phpBB/styles/prosilver/template/viewforum_body.html @@ -163,6 +163,7 @@ </div> <!-- ENDIF --> <div class="responsive-hide"> + <!-- IF topicrow.S_HAS_POLL -->{POLL_IMG} <!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{topicrow.ATTACH_ICON_IMG} <!-- ENDIF --> {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} » {topicrow.FIRST_POST_TIME} <!-- IF topicrow.S_POST_GLOBAL and FORUM_ID != topicrow.FORUM_ID --> » {L_IN} <a href="{topicrow.U_VIEW_FORUM}">{topicrow.FORUM_NAME}</a><!-- ENDIF --> diff --git a/phpBB/styles/prosilver/theme/images/icon_topic_poll.gif b/phpBB/styles/prosilver/theme/images/icon_topic_poll.gif Binary files differnew file mode 100644 index 0000000000..1c80ec87c1 --- /dev/null +++ b/phpBB/styles/prosilver/theme/images/icon_topic_poll.gif diff --git a/phpBB/styles/prosilver/theme/imageset.css b/phpBB/styles/prosilver/theme/imageset.css index 6bc345889e..8e3348a99d 100644 --- a/phpBB/styles/prosilver/theme/imageset.css +++ b/phpBB/styles/prosilver/theme/imageset.css @@ -350,6 +350,11 @@ span.imageset { padding-left: 16px; padding-top: 14px; } +.imageset.icon_topic_poll { + background-image: url("./images/icon_topic_poll.gif"); + padding-left: 11px; + padding-top: 10px; +} .imageset.icon_user_warn { background-image: url("./images/icon_user_warn.gif"); padding-left: 20px; diff --git a/phpBB/styles/subsilver2/template/search_results.html b/phpBB/styles/subsilver2/template/search_results.html index ff34055b29..319e37d710 100644 --- a/phpBB/styles/subsilver2/template/search_results.html +++ b/phpBB/styles/subsilver2/template/search_results.html @@ -26,6 +26,7 @@ <th nowrap="nowrap"> {L_LAST_POST} </th> </tr> <!-- BEGIN searchresults --> + <!-- EVENT search_results_topic_before --> <tr valign="middle"> <td class="row1" width="25" align="center">{searchresults.TOPIC_FOLDER_IMG}</td> <td class="row1" width="25" align="center"> @@ -71,6 +72,7 @@ </p> </td> </tr> + <!-- EVENT search_results_topic_after --> <!-- BEGINELSE --> <tr valign="middle"> <td colspan="7" class="row3" align="center">{L_NO_SEARCH_RESULTS}</td> diff --git a/phpBB/viewforum.php b/phpBB/viewforum.php index 8da8a0cdcc..f1b0b4df5b 100644 --- a/phpBB/viewforum.php +++ b/phpBB/viewforum.php @@ -336,6 +336,7 @@ $template->assign_vars(array( 'REPORTED_IMG' => $user->img('icon_topic_reported', 'TOPIC_REPORTED'), 'UNAPPROVED_IMG' => $user->img('icon_topic_unapproved', 'TOPIC_UNAPPROVED'), 'DELETED_IMG' => $user->img('icon_topic_deleted', 'TOPIC_DELETED'), + 'POLL_IMG' => $user->img('icon_topic_poll', 'TOPIC_POLL'), 'GOTO_PAGE_IMG' => $user->img('icon_post_target', 'GOTO_PAGE'), 'L_NO_TOPICS' => ($forum_data['forum_status'] == ITEM_LOCKED) ? $user->lang['POST_FORUM_LOCKED'] : $user->lang['NO_TOPICS'], diff --git a/phpunit.xml.all b/phpunit.xml.all deleted file mode 100644 index 73d0536b9d..0000000000 --- a/phpunit.xml.all +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit backupGlobals="true" - backupStaticAttributes="true" - colors="true" - convertErrorsToExceptions="true" - convertNoticesToExceptions="true" - convertWarningsToExceptions="true" - processIsolation="false" - stopOnFailure="false" - syntaxCheck="false" - bootstrap="tests/bootstrap.php" -> - <testsuites> - <testsuite name="phpBB Test Suite"> - <directory suffix="_test.php">./tests</directory> - <exclude>./tests/lint_test.php</exclude> - </testsuite> - <testsuite name="phpBB Lint Test"> - <file>./tests/lint_test.php</file> - </testsuite> - </testsuites> - - <filter> - <blacklist> - <directory>./tests</directory> - </blacklist> - <whitelist> - <directory suffix=".php">./phpBB/includes/</directory> - <directory suffix=".php">./phpBB/phpbb/</directory> - <exclude> - <directory suffix=".php">./phpBB/includes/captcha/</directory> - </exclude> - </whitelist> - </filter> -</phpunit> diff --git a/phpunit.xml.dist b/phpunit.xml.dist index dd039fb567..3475742288 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -17,6 +17,9 @@ <exclude>./tests/functional</exclude> <exclude>./tests/lint_test.php</exclude> </testsuite> + <testsuite name="phpBB Functional Tests"> + <directory suffix="_test.php">./tests/functional</directory> + </testsuite> <testsuite name="phpBB Lint Test"> <file>./tests/lint_test.php</file> </testsuite> @@ -24,7 +27,6 @@ <groups> <exclude> - <group>functional</group> <group>slow</group> </exclude> </groups> diff --git a/phpunit.xml.functional b/phpunit.xml.functional deleted file mode 100644 index ead8f4af68..0000000000 --- a/phpunit.xml.functional +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit backupGlobals="true" - backupStaticAttributes="true" - colors="true" - convertErrorsToExceptions="true" - convertNoticesToExceptions="true" - convertWarningsToExceptions="true" - processIsolation="false" - stopOnFailure="false" - syntaxCheck="false" - bootstrap="tests/bootstrap.php" -> - <testsuites> - <testsuite name="phpBB Test Suite"> - <directory suffix="_test.php">./tests</directory> - <exclude>./tests/functional</exclude> - <exclude>./tests/lint_test.php</exclude> - </testsuite> - <testsuite name="phpBB Lint Test"> - <file>./tests/lint_test.php</file> - </testsuite> - </testsuites> - - <groups> - <include> - <group>functional</group> - </include> - </groups> - - <filter> - <blacklist> - <directory>./tests</directory> - </blacklist> - <whitelist> - <directory suffix=".php">./phpBB/includes/</directory> - <directory suffix=".php">./phpBB/phpbb/</directory> - <exclude> - <directory suffix=".php">./phpBB/includes/captcha/</directory> - </exclude> - </whitelist> - </filter> -</phpunit> diff --git a/tests/RUNNING_TESTS.md b/tests/RUNNING_TESTS.md index 0778046141..d638c86859 100644 --- a/tests/RUNNING_TESTS.md +++ b/tests/RUNNING_TESTS.md @@ -128,12 +128,16 @@ Slow tests -------------- Certain tests, such as the UTF-8 normalizer or the DNS tests tend to be slow. -Thus these tests are in the `slow` group, which is excluded by default. You can -enable slow tests by copying the phpunit.xml.all file to phpunit.xml. If you +Thus these tests are in the `slow` group, which is excluded by default. If you only want the slow tests, run: $ phpBB/vendor/bin/phpunit --group slow +If you want all tests, run: + + $ phpBB/vendor/bin/phpunit --group __nogroup__,functional,slow + + Functional tests ----------------- @@ -154,10 +158,10 @@ on which to run tests. $phpbb_functional_url = 'http://localhost/phpBB3/'; -To then run the tests, you run PHPUnit, but use the phpunit.xml.functional -config file instead of the default one. Specify this through the "-c" option: +Functional tests are automatically run, if '$phpbb_functional_url' is configured. +If you only want the functional tests, run: - $ phpBB/vendor/bin/phpunit -c phpunit.xml.functional + $ phpBB/vendor/bin/phpunit --group functional This will change your board's config.php file, but it makes a backup at config_dev.php, so you can restore it after the test run is complete. |
