From 459b46df7b17b893292119756d81eae3f18b4142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gauvain=20Boich=C3=A9?= Date: Tue, 31 Mar 2020 15:58:31 +0200 Subject: [PATCH] =?UTF-8?q?Tentative=20de=20r=C3=A9gler=20le=20bordel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .htaccess | 7 + adm/images/phpbb_logo.svg | 6 + adm/index.php | 1 - adm/style/acp_attachments.html | 24 +- adm/style/acp_avatar_options_upload.html | 2 +- adm/style/acp_ban.html | 2 +- adm/style/acp_contact.html | 4 +- adm/style/acp_database.html | 8 +- adm/style/acp_ext_actions.html | 7 + adm/style/acp_ext_list.html | 21 +- adm/style/acp_forums.html | 13 +- adm/style/acp_groups.html | 4 +- adm/style/acp_help_phpbb.html | 10 +- adm/style/acp_icons.html | 2 +- adm/style/acp_language.html | 2 +- adm/style/acp_main.html | 193 +- adm/style/acp_modules.html | 2 +- adm/style/acp_permission_roles.html | 4 +- adm/style/acp_posting_buttons.html | 25 +- adm/style/acp_ranks.html | 2 +- adm/style/acp_search.html | 2 +- adm/style/acp_styles.html | 6 +- adm/style/acp_users_overview.html | 2 +- adm/style/acp_users_prefs.html | 2 +- adm/style/acp_users_signature.html | 4 +- adm/style/admin.css | 26 +- adm/style/admin.js | 58 + adm/style/ajax.js | 34 +- adm/style/captcha_recaptcha.html | 3 +- adm/style/installer_footer.html | 12 +- adm/style/overall_footer.html | 6 +- adm/style/overall_header.html | 2 +- adm/style/permission_forum_copy.html | 2 +- adm/style/permission_mask.html | 6 +- adm/style/permissions.js | 4 + adm/style/progress_bar.html | 4 +- adm/style/simple_footer.html | 6 +- adm/style/simple_header.html | 2 +- assets/cookieconsent/cookieconsent.min.css | 12 +- assets/cookieconsent/cookieconsent.min.js | 2 +- assets/javascript/core.js | 153 +- assets/javascript/editor.js | 13 +- assets/javascript/jquery-3.4.1.min.js | 2 + assets/javascript/plupload.js | 59 +- common.php | 4 +- composer.json | 65 +- composer.lock | 2710 +++++++++++------ config/default/container/parameters.yml | 2 + config/default/container/services.yml | 7 + config/default/container/services_auth.yml | 22 +- config/default/container/services_console.yml | 8 - config/default/container/services_cron.yml | 13 + .../default/container/services_password.yml | 20 + config/default/container/services_routing.yml | 2 - .../container/services_text_formatter.yml | 5 + config/default/container/services_twig.yml | 18 + config/default/container/services_ucp.yml | 17 + config/default/routing/cron.yml | 3 + config/default/routing/routing.yml | 8 + config/default/routing/ucp.yml | 7 + cron.php | 67 +- download/file.php | 5 - ext/phpbb/viglink/acp/viglink_helper.php | 3 +- ext/phpbb/viglink/composer.json | 6 +- ext/phpbb/viglink/composer.lock | 2364 +++++++++++++- .../viglink/styles/all/theme/viglink.css | 2 +- feed.php | 6 +- includes/acp/acp_attachments.php | 22 +- includes/acp/acp_bbcodes.php | 198 +- includes/acp/acp_board.php | 62 +- includes/acp/acp_database.php | 14 +- includes/acp/acp_extensions.php | 202 +- includes/acp/acp_forums.php | 52 +- includes/acp/acp_help_phpbb.php | 11 +- includes/acp/acp_main.php | 2 +- includes/acp/acp_permissions.php | 4 +- includes/acp/acp_prune.php | 1 + includes/acp/acp_reasons.php | 2 - includes/acp/acp_styles.php | 33 +- includes/acp/acp_update.php | 16 +- includes/acp/acp_users.php | 13 +- includes/acp/auth.php | 21 +- includes/bbcode.php | 2 +- includes/compatibility_globals.php | 8 + includes/constants.php | 6 +- includes/diff/engine.php | 6 +- includes/functions_acp.php | 5 +- includes/functions_admin.php | 75 +- includes/functions_compatibility.php | 190 +- includes/functions_compress.php | 4 +- includes/functions_content.php | 23 +- includes/functions_convert.php | 18 +- includes/functions_display.php | 56 +- includes/functions_download.php | 30 +- includes/functions_messenger.php | 44 +- includes/functions_module.php | 12 +- includes/functions_posting.php | 106 +- includes/functions_privmsgs.php | 59 +- includes/functions_transfer.php | 4 +- includes/functions_user.php | 34 +- includes/mcp/mcp_ban.php | 2 +- includes/mcp/mcp_logs.php | 2 +- includes/mcp/mcp_main.php | 16 + includes/mcp/mcp_notes.php | 2 +- includes/mcp/mcp_topic.php | 36 +- includes/mcp/mcp_warn.php | 2 +- includes/message_parser.php | 32 +- includes/questionnaire/questionnaire.php | 8 +- includes/startup.php | 6 +- includes/ucp/ucp_attachments.php | 30 +- includes/ucp/ucp_groups.php | 33 +- includes/ucp/ucp_pm.php | 7 + includes/ucp/ucp_pm_compose.php | 22 +- includes/ucp/ucp_pm_viewfolder.php | 7 + includes/ucp/ucp_profile.php | 10 +- includes/ucp/ucp_register.php | 63 +- includes/ucp/ucp_resend.php | 2 +- includes/utf/utf_tools.php | 43 +- index.php | 8 - install/convertors/convert_phpbb20.php | 3 +- install/convertors/functions_phpbb20.php | 26 - install/schemas/schema.json | 80 +- install/schemas/schema_data.sql | 21 +- language/en/acp/attachments.php | 2 - language/en/acp/board.php | 12 +- language/en/acp/common.php | 12 +- language/en/acp/forums.php | 3 + language/en/acp/permissions.php | 2 +- language/en/acp/permissions_phpbb.php | 5 +- language/en/acp/posting.php | 8 +- language/en/acp/profile.php | 2 +- language/en/acp/styles.php | 85 +- language/en/captcha_recaptcha.php | 10 +- language/en/cli.php | 3 - language/en/common.php | 21 +- language/en/email/admin_activate.txt | 2 +- language/en/email/user_forgot_password.txt | 13 + language/en/install.php | 13 +- language/en/migrator.php | 2 +- language/en/posting.php | 2 +- language/en/ucp.php | 22 +- mcp.php | 7 +- memberlist.php | 102 +- phpbb/auth/provider/apache.php | 75 +- phpbb/auth/provider/base.php | 2 +- phpbb/auth/provider/db.php | 61 +- phpbb/auth/provider/ldap.php | 53 +- phpbb/auth/provider/oauth/oauth.php | 1066 ++++--- phpbb/auth/provider/oauth/service/base.php | 66 +- phpbb/auth/provider/oauth/service/bitly.php | 107 +- .../auth/provider/oauth/service/facebook.php | 99 +- phpbb/auth/provider/oauth/service/google.php | 107 +- .../oauth/service/service_interface.php | 112 +- phpbb/auth/provider/oauth/service/twitter.php | 113 +- phpbb/auth/provider/oauth/token_storage.php | 346 ++- phpbb/auth/provider/provider_interface.php | 11 +- phpbb/avatar/driver/remote.php | 20 + phpbb/avatar/driver/upload.php | 1 + phpbb/cache/driver/memcached.php | 22 +- phpbb/cache/driver/memory.php | 2 +- phpbb/captcha/non_gd.php | 6 +- phpbb/captcha/plugins/qa.php | 2 +- phpbb/class_loader.php | 2 +- phpbb/config/config.php | 19 + phpbb/config_php_file.php | 6 + phpbb/console/command/cron/run.php | 6 +- phpbb/console/command/extension/enable.php | 6 +- phpbb/console/command/update/check.php | 3 +- phpbb/console/command/user/add.php | 2 +- phpbb/content_visibility.php | 22 +- phpbb/controller/helper.php | 2 +- phpbb/cron/controller/cron.php | 40 + phpbb/cron/event/cron_runner_listener.php | 103 + phpbb/cron/manager.php | 21 +- phpbb/cron/task/core/update_hashes.php | 2 +- phpbb/cron/task/wrapper.php | 47 +- phpbb/db/driver/driver.php | 28 +- phpbb/db/driver/driver_interface.php | 14 + phpbb/db/driver/factory.php | 16 + phpbb/db/driver/mssql_odbc.php | 11 +- phpbb/db/driver/mssqlnative.php | 11 +- phpbb/db/driver/mysqli.php | 16 +- phpbb/db/driver/oracle.php | 11 +- phpbb/db/driver/postgres.php | 11 +- phpbb/db/driver/sqlite3.php | 11 +- phpbb/db/extractor/mysql_extractor.php | 106 +- .../migration/data/v30x/release_3_0_4_rc1.php | 2 +- .../db/migration/data/v310/softdelete_p1.php | 2 +- phpbb/db/migration/data/v32x/timezone_p3.php | 29 + .../data/v32x/user_emoji_permission.php | 44 + phpbb/db/migration/data/v32x/v328.php | 36 + phpbb/db/migration/data/v32x/v328rc1.php | 37 + phpbb/db/migration/data/v32x/v329.php | 37 + phpbb/db/migration/data/v32x/v329rc1.php | 36 + .../add_display_unapproved_posts_config.php | 34 + phpbb/db/migration/data/v330/dev.php | 36 + .../data/v330/forums_legend_limit.php | 49 + .../db/migration/data/v330/jquery_update.php | 37 + .../data/v330/remove_attachment_flash.php | 89 + .../migration/data/v330/remove_email_hash.php | 62 + .../data/v330/remove_max_pass_chars.php | 43 + .../db/migration/data/v330/reset_password.php | 48 + phpbb/db/migration/data/v330/v330.php | 37 + phpbb/db/migration/data/v330/v330b1.php | 41 + phpbb/db/migration/data/v330/v330b2.php | 39 + phpbb/db/migration/data/v330/v330rc1.php | 36 + phpbb/db/migration/tool/module.php | 2 +- phpbb/db/migrator.php | 2 +- phpbb/db/tools/mssql.php | 2 +- phpbb/db/tools/postgres.php | 2 +- phpbb/db/tools/tools.php | 89 +- phpbb/di/container_builder.php | 9 +- .../di/extension/container_configuration.php | 11 + phpbb/di/extension/core.php | 8 + phpbb/di/extension/tables.php | 59 + phpbb/di/service_collection.php | 50 +- phpbb/event/md_exporter.php | 13 +- phpbb/extension/extension_interface.php | 3 +- phpbb/extension/manager.php | 152 +- phpbb/feed/controller/feed.php | 7 +- phpbb/feed/topics_active.php | 2 +- phpbb/files/filespec.php | 2 +- phpbb/filesystem.php | 2 +- phpbb/filesystem/filesystem.php | 30 +- phpbb/filesystem/filesystem_interface.php | 2 +- phpbb/finder.php | 4 +- phpbb/group/helper.php | 260 +- phpbb/help/controller/bbcode.php | 5 + phpbb/help/controller/faq.php | 5 + phpbb/install/controller/helper.php | 2 +- phpbb/install/helper/container_factory.php | 2 +- phpbb/install/helper/database.php | 18 - .../helper/iohandler/iohandler_interface.php | 2 +- phpbb/install/installer_configuration.php | 9 +- .../task/add_config_settings.php | 1 - .../install_database/task/create_schema.php | 9 +- .../install_database/task/set_up_database.php | 9 +- .../task/create_config_file.php | 3 +- .../task/check_server_environment.php | 4 +- phpbb/install/module_base.php | 2 +- phpbb/language/language_file_loader.php | 1 + phpbb/lock/db.php | 7 + phpbb/lock/flock.php | 5 +- phpbb/message/form.php | 2 +- phpbb/mimetype/guesser.php | 2 +- phpbb/notification/type/approve_post.php | 7 +- phpbb/notification/type/approve_topic.php | 7 +- phpbb/notification/type/base.php | 4 +- phpbb/notification/type/post.php | 2 +- phpbb/notification/type/topic.php | 2 +- phpbb/notification/type/type_interface.php | 2 +- phpbb/passwords/driver/argon2i.php | 78 + phpbb/passwords/driver/argon2id.php | 33 + phpbb/passwords/driver/base_native.php | 75 + phpbb/passwords/manager.php | 2 +- phpbb/permissions.php | 1 + phpbb/plupload/plupload.php | 75 +- phpbb/report/report_handler.php | 2 +- phpbb/request/request.php | 8 +- phpbb/request/request_interface.php | 4 +- phpbb/request/type_cast_helper.php | 3 +- phpbb/search/fulltext_mysql.php | 39 +- phpbb/search/fulltext_native.php | 12 +- phpbb/search/fulltext_postgres.php | 2 +- phpbb/search/fulltext_sphinx.php | 13 +- phpbb/session.php | 219 +- phpbb/template/asset.php | 7 - phpbb/template/context.php | 4 +- phpbb/template/template.php | 2 +- phpbb/template/twig/extension.php | 30 +- phpbb/template/twig/extension/avatar.php | 80 + phpbb/template/twig/extension/config.php | 64 + phpbb/template/twig/extension/username.php | 84 + phpbb/template/twig/lexer.php | 16 +- phpbb/template/twig/loader.php | 8 +- phpbb/template/twig/node/definenode.php | 2 +- phpbb/template/twig/node/includeasset.php | 20 +- phpbb/template/twig/node/includephp.php | 6 +- .../twig/tokenparser/defineparser.php | 4 +- phpbb/template/twig/tokenparser/event.php | 17 +- .../template/twig/tokenparser/includecss.php | 4 +- phpbb/template/twig/tokenparser/includejs.php | 4 +- .../twig/tokenparser/includeparser.php | 2 +- .../template/twig/tokenparser/includephp.php | 17 +- phpbb/template/twig/tokenparser/php.php | 17 +- phpbb/textformatter/acp_utils_interface.php | 54 + phpbb/textformatter/s9e/acp_utils.php | 67 + phpbb/textformatter/s9e/bbcode_merger.php | 32 +- phpbb/textformatter/s9e/factory.php | 4 +- phpbb/textformatter/s9e/link_helper.php | 2 +- phpbb/textformatter/s9e/parser.php | 22 +- phpbb/textformatter/s9e/quote_helper.php | 22 +- phpbb/ucp/controller/reset_password.php | 443 +++ phpbb/user.php | 56 +- phpbb/user_loader.php | 6 +- posting.php | 77 +- report.php | 2 +- search.php | 21 +- styles/prosilver/style.cfg | 4 +- styles/prosilver/template/attachment.html | 17 +- styles/prosilver/template/bbcode.html | 4 + .../prosilver/template/captcha_recaptcha.html | 31 +- styles/prosilver/template/forum_fn.js | 2 +- styles/prosilver/template/forumlist_body.html | 2 +- styles/prosilver/template/mcp_forum.html | 2 + styles/prosilver/template/mcp_move.html | 2 + styles/prosilver/template/mcp_topic.html | 4 +- .../prosilver/template/memberlist_body.html | 17 +- .../prosilver/template/memberlist_search.html | 2 +- styles/prosilver/template/navbar_header.html | 10 +- styles/prosilver/template/overall_footer.html | 4 +- styles/prosilver/template/overall_header.html | 4 +- styles/prosilver/template/plupload.html | 10 +- .../template/posting_attach_body.html | 6 +- .../prosilver/template/posting_buttons.html | 25 +- styles/prosilver/template/posting_layout.html | 21 - .../prosilver/template/posting_poll_body.html | 4 +- styles/prosilver/template/posting_review.html | 4 +- .../template/posting_topic_review.html | 4 +- styles/prosilver/template/search_results.html | 8 +- styles/prosilver/template/simple_footer.html | 2 +- styles/prosilver/template/ucp_agreement.html | 5 +- .../prosilver/template/ucp_attachments.html | 2 +- .../template/ucp_avatar_options_upload.html | 2 +- .../prosilver/template/ucp_groups_manage.html | 2 +- styles/prosilver/template/ucp_pm_history.html | 3 +- .../template/ucp_pm_viewmessage_print.html | 9 +- .../template/ucp_profile_profile_info.html | 2 +- styles/prosilver/template/ucp_register.html | 11 + .../template/ucp_reset_password.html | 49 + styles/prosilver/template/viewforum_body.html | 10 +- styles/prosilver/template/viewtopic_body.html | 11 +- .../prosilver/template/viewtopic_print.html | 9 +- styles/prosilver/theme/colours.css | 7 +- styles/prosilver/theme/common.css | 1 + styles/prosilver/theme/forms.css | 2 +- styles/prosilver/theme/icons.css | 2 +- styles/prosilver/theme/images/site_logo.svg | 6 + styles/prosilver/theme/plupload.css | 4 + styles/prosilver/theme/print.css | 2 +- styles/prosilver/theme/stylesheet.css | 21 + ucp.php | 11 +- viewforum.php | 13 +- viewonline.php | 5 + viewtopic.php | 51 +- 345 files changed, 10758 insertions(+), 4066 deletions(-) create mode 100644 adm/images/phpbb_logo.svg create mode 100644 adm/style/acp_ext_actions.html create mode 100644 assets/javascript/jquery-3.4.1.min.js create mode 100644 config/default/container/services_ucp.yml create mode 100644 config/default/routing/cron.yml create mode 100644 config/default/routing/ucp.yml create mode 100644 language/en/email/user_forgot_password.txt create mode 100644 phpbb/cron/controller/cron.php create mode 100644 phpbb/cron/event/cron_runner_listener.php create mode 100644 phpbb/db/migration/data/v32x/timezone_p3.php create mode 100644 phpbb/db/migration/data/v32x/user_emoji_permission.php create mode 100644 phpbb/db/migration/data/v32x/v328.php create mode 100644 phpbb/db/migration/data/v32x/v328rc1.php create mode 100644 phpbb/db/migration/data/v32x/v329.php create mode 100644 phpbb/db/migration/data/v32x/v329rc1.php create mode 100644 phpbb/db/migration/data/v330/add_display_unapproved_posts_config.php create mode 100644 phpbb/db/migration/data/v330/dev.php create mode 100644 phpbb/db/migration/data/v330/forums_legend_limit.php create mode 100644 phpbb/db/migration/data/v330/jquery_update.php create mode 100644 phpbb/db/migration/data/v330/remove_attachment_flash.php create mode 100644 phpbb/db/migration/data/v330/remove_email_hash.php create mode 100644 phpbb/db/migration/data/v330/remove_max_pass_chars.php create mode 100644 phpbb/db/migration/data/v330/reset_password.php create mode 100644 phpbb/db/migration/data/v330/v330.php create mode 100644 phpbb/db/migration/data/v330/v330b1.php create mode 100644 phpbb/db/migration/data/v330/v330b2.php create mode 100644 phpbb/db/migration/data/v330/v330rc1.php create mode 100644 phpbb/di/extension/tables.php create mode 100644 phpbb/passwords/driver/argon2i.php create mode 100644 phpbb/passwords/driver/argon2id.php create mode 100644 phpbb/passwords/driver/base_native.php create mode 100644 phpbb/template/twig/extension/avatar.php create mode 100644 phpbb/template/twig/extension/config.php create mode 100644 phpbb/template/twig/extension/username.php create mode 100644 phpbb/textformatter/acp_utils_interface.php create mode 100644 phpbb/textformatter/s9e/acp_utils.php create mode 100644 phpbb/ucp/controller/reset_password.php create mode 100644 styles/prosilver/template/ucp_reset_password.html create mode 100644 styles/prosilver/theme/images/site_logo.svg create mode 100644 styles/prosilver/theme/stylesheet.css diff --git a/.htaccess b/.htaccess index 53bce76..0be28ab 100644 --- a/.htaccess +++ b/.htaccess @@ -36,6 +36,13 @@ RewriteRule ^(.*)$ app.php [QSA,L] #Options +FollowSymLinks +# Apache content negotation tries to interpret non-existent paths as files if +# MultiViews is enabled. This will however cause issues with paths containg +# dots, e.g. for the cron tasks + + Options -MultiViews + + # With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from # module mod_authz_host to a new module called mod_access_compat (which may be # disabled) and a new "Require" syntax has been introduced to mod_authz_host. diff --git a/adm/images/phpbb_logo.svg b/adm/images/phpbb_logo.svg new file mode 100644 index 0000000..2a24106 --- /dev/null +++ b/adm/images/phpbb_logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/adm/index.php b/adm/index.php index d27f56f..c648fdf 100644 --- a/adm/index.php +++ b/adm/index.php @@ -49,7 +49,6 @@ if (!$auth->acl_get('a_')) define('IN_ADMIN', true); // Some oft used variables -$safe_mode = (@ini_get('safe_mode') == '1' || strtolower(@ini_get('safe_mode')) === 'on') ? true : false; $file_uploads = (@ini_get('file_uploads') == '1' || strtolower(@ini_get('file_uploads')) === 'on') ? true : false; $module_id = $request->variable('i', ''); $mode = $request->variable('mode', ''); diff --git a/adm/style/acp_attachments.html b/adm/style/acp_attachments.html index 868e256..7a66f17 100644 --- a/adm/style/acp_attachments.html +++ b/adm/style/acp_attachments.html @@ -110,7 +110,7 @@ -

-

@@ -52,7 +54,11 @@

- + {% for providers in providers %} + {% for values in providers.values %} + + {% endfor %} + {% endfor %}

diff --git a/adm/style/acp_icons.html b/adm/style/acp_icons.html index 5493cbd..45fe7f8 100644 --- a/adm/style/acp_icons.html +++ b/adm/style/acp_icons.html @@ -4,7 +4,7 @@ - - + « {L_BACK} diff --git a/adm/style/acp_posting_buttons.html b/adm/style/acp_posting_buttons.html index c3c42f8..614d6fa 100644 --- a/adm/style/acp_posting_buttons.html +++ b/adm/style/acp_posting_buttons.html @@ -1,31 +1,10 @@ - @@ -65,7 +44,7 @@ - + diff --git a/adm/style/acp_ranks.html b/adm/style/acp_ranks.html index e67c9ac..d373657 100644 --- a/adm/style/acp_ranks.html +++ b/adm/style/acp_ranks.html @@ -6,7 +6,7 @@ « {L_BACK} - -
+
diff --git a/adm/style/installer_footer.html b/adm/style/installer_footer.html index fefa8f6..81a85d1 100644 --- a/adm/style/installer_footer.html +++ b/adm/style/installer_footer.html @@ -6,12 +6,14 @@ - - - - + + + {$SCRIPTS} diff --git a/adm/style/overall_footer.html b/adm/style/overall_footer.html index 8745286..7a5b620 100644 --- a/adm/style/overall_footer.html +++ b/adm/style/overall_footer.html @@ -33,9 +33,9 @@ - - - + + + diff --git a/adm/style/overall_header.html b/adm/style/overall_header.html index 8279ac3..fa361d6 100644 --- a/adm/style/overall_header.html +++ b/adm/style/overall_header.html @@ -10,7 +10,7 @@ - - +
diff --git a/adm/style/permissions.js b/adm/style/permissions.js index 9178ada..af8e21a 100644 --- a/adm/style/permissions.js +++ b/adm/style/permissions.js @@ -279,6 +279,10 @@ function reset_role(id) { } t.options[0].selected = true; + + var parent = t.parentNode; + parent.querySelector('span.dropdown-trigger').innerText = no_role_assigned; + parent.querySelector('input[data-name^=role]').value = '0'; } /** diff --git a/adm/style/progress_bar.html b/adm/style/progress_bar.html index 1822675..1e58257 100644 --- a/adm/style/progress_bar.html +++ b/adm/style/progress_bar.html @@ -1,6 +1,6 @@ - - - + + + {$SCRIPTS} diff --git a/adm/style/simple_header.html b/adm/style/simple_header.html index 439645a..a8a32bf 100644 --- a/adm/style/simple_header.html +++ b/adm/style/simple_header.html @@ -9,7 +9,7 @@ - -
- - + + {% INCLUDEJS RECAPTCHA_SERVER ~ '.js?onload=phpbbRecaptchaOnLoad&hl=' ~ lang('RECAPTCHA_LANG') %} +
{L_RECAPTCHA_NOT_AVAILABLE} - - -
- - - diff --git a/styles/prosilver/template/forum_fn.js b/styles/prosilver/template/forum_fn.js index 3f28f8a..2e39365 100644 --- a/styles/prosilver/template/forum_fn.js +++ b/styles/prosilver/template/forum_fn.js @@ -460,7 +460,7 @@ function parseDocument($container) { $linksLast = $linksNotSkip.filter(filterLast), // The items that will be hidden last persistent = $this.attr('id') === 'nav-main', // Does this list already have a menu (such as quick-links)? html = '', - slack = 3; // Vertical slack space (in pixels). Determines how sensitive the script is in determining whether a line-break has occured. + slack = 3; // Vertical slack space (in pixels). Determines how sensitive the script is in determining whether a line-break has occurred. // Add a hidden drop-down menu to each links list (except those that already have one) if (!persistent) { diff --git a/styles/prosilver/template/forumlist_body.html b/styles/prosilver/template/forumlist_body.html index 8250a1f..4932860 100644 --- a/styles/prosilver/template/forumlist_body.html +++ b/styles/prosilver/template/forumlist_body.html @@ -101,7 +101,7 @@ {L_VIEW_LATEST_POST} -
{forumrow.LAST_POST_TIME} +
{% if forumrow.U_UNAPPROVED_TOPICS %} {{ lang('TOPIC_UNAPPROVED_FORUM', forumrow.TOPICS) }} diff --git a/styles/prosilver/template/mcp_forum.html b/styles/prosilver/template/mcp_forum.html index f6c518e..82df5d5 100644 --- a/styles/prosilver/template/mcp_forum.html +++ b/styles/prosilver/template/mcp_forum.html @@ -86,7 +86,9 @@
+ {% EVENT topiclist_row_topic_by_author_before %} {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} » {topicrow.FIRST_POST_TIME} + {% EVENT topiclist_row_topic_by_author_after %}
diff --git a/styles/prosilver/template/mcp_move.html b/styles/prosilver/template/mcp_move.html index 45a9ae8..63197ef 100644 --- a/styles/prosilver/template/mcp_move.html +++ b/styles/prosilver/template/mcp_move.html @@ -43,12 +43,14 @@

{ADDITIONAL_MSG}

+ {% EVENT mcp_move_destination_forum_before %}
+ {% EVENT mcp_move_destination_forum_after %}
 
{MESSAGE_TEXT}
diff --git a/styles/prosilver/template/mcp_topic.html b/styles/prosilver/template/mcp_topic.html index b56ed18..889cab8 100644 --- a/styles/prosilver/template/mcp_topic.html +++ b/styles/prosilver/template/mcp_topic.html @@ -118,9 +118,9 @@

- + {postrow.MINI_POST} - {L_POSTED} {postrow.POST_DATE} {L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} [ {L_POST_DETAILS} ] + {L_POSTED} {postrow.POST_DATE} {L_POST_BY_AUTHOR} {% EVENT mcp_topic_post_author_full_prepend %}{postrow.POST_AUTHOR_FULL}{% EVENT mcp_topic_post_author_full_append %} [ {L_POST_DETAILS} ]

diff --git a/styles/prosilver/template/memberlist_body.html b/styles/prosilver/template/memberlist_body.html index 5f03ad9..b8ff092 100644 --- a/styles/prosilver/template/memberlist_body.html +++ b/styles/prosilver/template/memberlist_body.html @@ -28,8 +28,13 @@

{AVATAR_IMG} {% EVENT memberlist_body_group_rank_before %} - {RANK_IMG} - {GROUP_RANK} + {% if RANK_IMG %}{{ RANK_IMG }}{% endif %} + {% if GROUP_RANK %} + {% if not RANK_IMG %} + {{ lang('GROUP_RANK') ~ lang('COLON') }} + {% endif %} + {{ GROUP_RANK }} + {% endif %} {% EVENT memberlist_body_group_rank_after %}

@@ -120,7 +125,13 @@ {memberrow.RANK_IMG}{memberrow.RANK_TITLE} {memberrow.USERNAME_FULL} ({L_INACTIVE})
{L_SELECT} ] {memberrow.POSTS}{memberrow.POSTS} -
{memberrow.custom_fields.PROFILE_FIELD_VALUE}
  + + {%- for field in memberrow.custom_fields -%} +
{% if field.S_PROFILE_CONTACT %}{% endif %}{{ field.PROFILE_FIELD_VALUE }}{% if field.S_PROFILE_CONTACT %}{% endif %}
+ {%- else -%} +   + {%- endfor -%} + {memberrow.JOINED} {memberrow.LAST_ACTIVE}  {% EVENT memberlist_body_memberrow_after %} diff --git a/styles/prosilver/template/memberlist_search.html b/styles/prosilver/template/memberlist_search.html index b1c7a81..34915eb 100644 --- a/styles/prosilver/template/memberlist_search.html +++ b/styles/prosilver/template/memberlist_search.html @@ -12,7 +12,7 @@
diff --git a/styles/prosilver/template/simple_footer.html b/styles/prosilver/template/simple_footer.html index 1ef44d1..fde162a 100644 --- a/styles/prosilver/template/simple_footer.html +++ b/styles/prosilver/template/simple_footer.html @@ -25,7 +25,7 @@ - + diff --git a/styles/prosilver/template/ucp_agreement.html b/styles/prosilver/template/ucp_agreement.html index ace6525..7959925 100644 --- a/styles/prosilver/template/ucp_agreement.html +++ b/styles/prosilver/template/ucp_agreement.html @@ -43,7 +43,8 @@
- {L_COPPA_NO}  {L_COPPA_YES} + +   @@ -62,8 +63,6 @@

{SITENAME} - {AGREEMENT_TITLE}

{AGREEMENT_TEXT}

-
-

{L_BACK}

diff --git a/styles/prosilver/template/ucp_attachments.html b/styles/prosilver/template/ucp_attachments.html index 696f621..cfdbf9c 100644 --- a/styles/prosilver/template/ucp_attachments.html +++ b/styles/prosilver/template/ucp_attachments.html @@ -44,7 +44,7 @@
{attachrow.DOWNLOAD_COUNT}
{attachrow.POST_TIME}
-
+
diff --git a/styles/prosilver/template/ucp_avatar_options_upload.html b/styles/prosilver/template/ucp_avatar_options_upload.html index 63a734e..666950e 100644 --- a/styles/prosilver/template/ucp_avatar_options_upload.html +++ b/styles/prosilver/template/ucp_avatar_options_upload.html @@ -1,6 +1,6 @@
-
+
diff --git a/styles/prosilver/template/ucp_groups_manage.html b/styles/prosilver/template/ucp_groups_manage.html index f2b4f00..adc8c61 100644 --- a/styles/prosilver/template/ucp_groups_manage.html +++ b/styles/prosilver/template/ucp_groups_manage.html @@ -58,7 +58,7 @@     [ {L_COLOUR_SWATCH} ] - +
diff --git a/styles/prosilver/template/ucp_pm_history.html b/styles/prosilver/template/ucp_pm_history.html index 6362a0b..b53eb0c 100644 --- a/styles/prosilver/template/ucp_pm_history.html +++ b/styles/prosilver/template/ucp_pm_history.html @@ -36,7 +36,7 @@

{history_row.MINI_POST} {L_SENT_AT}{L_COLON} {history_row.SENT_DATE}
- {L_MESSAGE_BY_AUTHOR} {history_row.MESSAGE_AUTHOR_FULL} + {L_MESSAGE_BY_AUTHOR} {history_row.MESSAGE_AUTHOR_FULL}

{history_row.MESSAGE}{L_MESSAGE_REMOVED_FROM_OUTBOX}
@@ -54,4 +54,3 @@ {L_BACK_TO_TOP}

- diff --git a/styles/prosilver/template/ucp_pm_viewmessage_print.html b/styles/prosilver/template/ucp_pm_viewmessage_print.html index 7a88492..41ff5b8 100644 --- a/styles/prosilver/template/ucp_pm_viewmessage_print.html +++ b/styles/prosilver/template/ucp_pm_viewmessage_print.html @@ -42,7 +42,14 @@ diff --git a/styles/prosilver/template/ucp_profile_profile_info.html b/styles/prosilver/template/ucp_profile_profile_info.html index 69eda8c..ac0cd15 100644 --- a/styles/prosilver/template/ucp_profile_profile_info.html +++ b/styles/prosilver/template/ucp_profile_profile_info.html @@ -13,7 +13,7 @@
-

{L_BIRTHDAY_EXPLAIN}
+

{L_BIRTHDAY_EXPLAIN}
diff --git a/styles/prosilver/template/ucp_register.html b/styles/prosilver/template/ucp_register.html index bf39990..f44382f 100644 --- a/styles/prosilver/template/ucp_register.html +++ b/styles/prosilver/template/ucp_register.html @@ -12,6 +12,17 @@ } +{% if PROVIDER_TEMPLATE_FILE %} +
+
+ +

{{ SITENAME }} - {{ lang('OAUTH_REGISTRATION') }}

+ + {% include PROVIDER_TEMPLATE_FILE %} +
+
+{% endif %} +
diff --git a/styles/prosilver/template/ucp_reset_password.html b/styles/prosilver/template/ucp_reset_password.html new file mode 100644 index 0000000..0a05f69 --- /dev/null +++ b/styles/prosilver/template/ucp_reset_password.html @@ -0,0 +1,49 @@ + + + + +
+
+ +
+

{{ lang('RESET_PASSWORD') }}

+ +
+ {% if S_IS_PASSWORD_RESET %} + {% if PASSWORD_RESET_ERRORS %}

{{ PASSWORD_RESET_ERRORS | join('
') }}

{% endif %} +
+
+
+
+
+
+
+
+ {% else %} + {% if USERNAME_REQUIRED %} +

{{ lang('EMAIL_NOT_UNIQUE') }}

+ {% endif %} +
+

{{ lang('EMAIL_REMIND') }}
+
+
+ {% if USERNAME_REQUIRED %} +
+
+
+
+ {% endif %} + {% endif %} +
+
 
+
{{ S_HIDDEN_FIELDS }} 
+
+ {{ S_FORM_TOKEN }} +
+
+ +
+
+ + + diff --git a/styles/prosilver/template/viewforum_body.html b/styles/prosilver/template/viewforum_body.html index d7099f3..40beb78 100644 --- a/styles/prosilver/template/viewforum_body.html +++ b/styles/prosilver/template/viewforum_body.html @@ -157,7 +157,7 @@
  • - style="background-image: url({T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}); background-repeat: no-repeat;" title="{topicrow.TOPIC_FOLDER_IMG_ALT}"> + style="background-image: url('{T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}'); background-repeat: no-repeat;" title="{topicrow.TOPIC_FOLDER_IMG_ALT}">
    @@ -187,7 +187,7 @@ @@ -198,7 +198,9 @@
    - {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} » {topicrow.FIRST_POST_TIME} + {% EVENT topiclist_row_topic_by_author_before %} + {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} » + {% EVENT topiclist_row_topic_by_author_after %} » {L_IN} {topicrow.FORUM_NAME}
    @@ -230,7 +232,7 @@ {VIEW_LATEST_POST} -
    {topicrow.LAST_POST_TIME} +
  • diff --git a/styles/prosilver/template/viewtopic_body.html b/styles/prosilver/template/viewtopic_body.html index 8d7e26f..6af33f2 100644 --- a/styles/prosilver/template/viewtopic_body.html +++ b/styles/prosilver/template/viewtopic_body.html @@ -224,7 +224,7 @@
    style="display: none;"> -

    class="first">{postrow.POST_ICON_IMG_ALT} {postrow.POST_SUBJECT}

    +

    class="first">{postrow.POST_ICON_IMG_ALT} {postrow.POST_SUBJECT}

    @@ -289,11 +289,12 @@ {postrow.MINI_POST} - {L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} » {postrow.POST_DATE} + {L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} »

    +

    @@ -304,6 +305,12 @@ {S_FORM_TOKEN}

    + +

    + + {L_POST_UNAPPROVED_EXPLAIN} +

    +

    diff --git a/styles/prosilver/template/viewtopic_print.html b/styles/prosilver/template/viewtopic_print.html index b504949..658062f 100644 --- a/styles/prosilver/template/viewtopic_print.html +++ b/styles/prosilver/template/viewtopic_print.html @@ -38,7 +38,14 @@

    diff --git a/styles/prosilver/theme/colours.css b/styles/prosilver/theme/colours.css index ffaa710..04a8958 100644 --- a/styles/prosilver/theme/colours.css +++ b/styles/prosilver/theme/colours.css @@ -149,7 +149,7 @@ table.zebra-list tr:nth-child(even) td, ul.zebra-list li:nth-child(even) { } .site_logo { - background-image: url("./images/site_logo.gif"); + background-image: url("./images/site_logo.svg"); } /* Horizontal lists @@ -672,6 +672,11 @@ Colours and backgrounds for buttons.css box-shadow: 0 0 10px #0075B0; } +.search-results li:hover, +.search-results li.active { + background-color: #CFE1F6; +} + /* Icon images ---------------------------------------- */ diff --git a/styles/prosilver/theme/common.css b/styles/prosilver/theme/common.css index a0dc5e0..eb04c66 100644 --- a/styles/prosilver/theme/common.css +++ b/styles/prosilver/theme/common.css @@ -176,6 +176,7 @@ a:hover { text-decoration: underline; } } .site_logo { + background-repeat: no-repeat; display: inline-block; width: 149px; height: 52px; diff --git a/styles/prosilver/theme/forms.css b/styles/prosilver/theme/forms.css index 5646a7d..99c898f 100644 --- a/styles/prosilver/theme/forms.css +++ b/styles/prosilver/theme/forms.css @@ -355,7 +355,7 @@ input.button3 { font-variant: small-caps; } -input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"] { +input[type="button"], input[type="submit"], input[type="reset"], input[type="checkbox"], input[type="radio"], .search-results li { cursor: pointer; } diff --git a/styles/prosilver/theme/icons.css b/styles/prosilver/theme/icons.css index 6643f12..3ac5984 100644 --- a/styles/prosilver/theme/icons.css +++ b/styles/prosilver/theme/icons.css @@ -5,7 +5,7 @@ /* Global module setup --------------------------------*/ -/* Renamed version of .fa class for agnostic useage of icon fonts. +/* Renamed version of .fa class for agnostic usage of icon fonts. * Just change the name of the font after the 14/1 to the name of * the font you wish to use. */ diff --git a/styles/prosilver/theme/images/site_logo.svg b/styles/prosilver/theme/images/site_logo.svg new file mode 100644 index 0000000..4ce8903 --- /dev/null +++ b/styles/prosilver/theme/images/site_logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/styles/prosilver/theme/plupload.css b/styles/prosilver/theme/plupload.css index f466803..b1f3ae2 100644 --- a/styles/prosilver/theme/plupload.css +++ b/styles/prosilver/theme/plupload.css @@ -3,6 +3,10 @@ margin-bottom: 1em; } +.attach-row-tpl { + display: none; +} + .file-list td { vertical-align: middle; } diff --git a/styles/prosilver/theme/print.css b/styles/prosilver/theme/print.css index 9445279..ee916dc 100644 --- a/styles/prosilver/theme/print.css +++ b/styles/prosilver/theme/print.css @@ -90,7 +90,7 @@ hr { font-size: 75%; } -/* Dont want to print url for names or titles in content area */ +/* Don't want to print url for names or titles in content area */ .postbody .author a:link, .postbody .author a:visited, html>body .postbody .author a:link:after, html>body .postbody .author a:visited:after, diff --git a/styles/prosilver/theme/stylesheet.css b/styles/prosilver/theme/stylesheet.css new file mode 100644 index 0000000..c402d56 --- /dev/null +++ b/styles/prosilver/theme/stylesheet.css @@ -0,0 +1,21 @@ +/* phpBB3 Style Sheet + -------------------------------------------------------------- + Style name: prosilver (the default phpBB 3.3.x style) + Based on style: + Original author: Tom Beddard ( http://www.subblue.com/ ) + Modified by: phpBB Limited ( https://www.phpbb.com/ ) + -------------------------------------------------------------- +*/ + +@import url("normalize.css?v=3.3"); +@import url("base.css?v=3.3"); +@import url("utilities.css?v=3.3"); +@import url("common.css?v=3.3"); +@import url("links.css?v=3.3"); +@import url("content.css?v=3.3"); +@import url("buttons.css?v=3.3"); +@import url("cp.css?v=3.3"); +@import url("forms.css?v=3.3"); +@import url("icons.css?v=3.3"); +@import url("colours.css?v=3.3"); +@import url("responsive.css?v=3.3"); diff --git a/ucp.php b/ucp.php index 96a3efe..0992e3e 100644 --- a/ucp.php +++ b/ucp.php @@ -63,8 +63,10 @@ switch ($mode) break; case 'sendpassword': - $module->load('ucp', 'remind'); - $module->display($user->lang['UCP_REMIND']); + /** @var \phpbb\controller\helper $controller_helper */ + $controller_helper = $phpbb_container->get('controller.helper'); + + redirect($controller_helper->route('phpbb_ucp_forgot_password_controller')); break; case 'register': @@ -393,6 +395,11 @@ if (!$config['allow_topic_notify'] && !$config['allow_forum_notify']) $vars = array('module', 'id', 'mode'); extract($phpbb_dispatcher->trigger_event('core.ucp_display_module_before', compact($vars))); +$template->assign_block_vars('navlinks', array( + 'BREADCRUMB_NAME' => $user->lang('UCP'), + 'U_BREADCRUMB' => append_sid("{$phpbb_root_path}ucp.$phpEx"), +)); + // Select the active module $module->set_active($id, $mode); diff --git a/viewforum.php b/viewforum.php index 5525a0d..eb6b37a 100644 --- a/viewforum.php +++ b/viewforum.php @@ -198,9 +198,6 @@ if (!($forum_data['forum_type'] == FORUM_POST || (($forum_data['forum_flags'] & // We also make this circumstance available to the template in case we want to display a notice. ;) if (!$auth->acl_gets('f_read', 'f_list_topics', $forum_id)) { - // Add form token for login box - add_form_key('login', '_LOGIN'); - $template->assign_vars(array( 'S_NO_READ_ACCESS' => true, )); @@ -225,7 +222,7 @@ if ($mark_read == 'topics') $data = array( 'NO_UNREAD_POSTS' => $user->lang['NO_UNREAD_POSTS'], 'UNREAD_POSTS' => $user->lang['UNREAD_POSTS'], - 'U_MARK_TOPICS' => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}viewforum.$phpEx", 'hash=' . generate_link_hash('global') . "&f=$forum_id&mark=topics&mark_time=" . time()) : '', + 'U_MARK_TOPICS' => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}viewforum.$phpEx", 'hash=' . generate_link_hash('global') . "&f=$forum_id&mark=topics&mark_time=" . time(), false) : '', 'MESSAGE_TITLE' => $user->lang['INFORMATION'], 'MESSAGE_TEXT' => $user->lang['TOPICS_MARKED'] ); @@ -902,6 +899,11 @@ if (count($topic_list)) // Replies $replies = $phpbb_content_visibility->get_count('topic_posts', $row, $topic_forum_id) - 1; + // Correction for case of unapproved topic visible to poster + if ($replies < 0) + { + $replies = 0; + } if ($row['topic_status'] == ITEM_MOVED) { @@ -936,9 +938,12 @@ if (count($topic_list)) 'TOPIC_AUTHOR_COLOUR' => get_username_string('colour', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']), 'TOPIC_AUTHOR_FULL' => get_username_string('full', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']), 'FIRST_POST_TIME' => $user->format_date($row['topic_time']), + 'FIRST_POST_TIME_RFC3339' => gmdate(DATE_RFC3339, $row['topic_time']), 'LAST_POST_SUBJECT' => censor_text($row['topic_last_post_subject']), 'LAST_POST_TIME' => $user->format_date($row['topic_last_post_time']), + 'LAST_POST_TIME_RFC3339' => gmdate(DATE_RFC3339, $row['topic_last_post_time']), 'LAST_VIEW_TIME' => $user->format_date($row['topic_last_view_time']), + 'LAST_VIEW_TIME_RFC3339' => gmdate(DATE_RFC3339, $row['topic_last_view_time']), 'LAST_POST_AUTHOR' => get_username_string('username', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']), 'LAST_POST_AUTHOR_COLOUR' => get_username_string('colour', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']), 'LAST_POST_AUTHOR_FULL' => get_username_string('full', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']), diff --git a/viewonline.php b/viewonline.php index d5ddb0b..1b28750 100644 --- a/viewonline.php +++ b/viewonline.php @@ -487,6 +487,11 @@ $start = $pagination->validate_start($start, $config['topics_per_page'], $counte $base_url = append_sid("{$phpbb_root_path}viewonline.$phpEx", "sg=$show_guests&sk=$sort_key&sd=$sort_dir"); $pagination->generate_template_pagination($base_url, 'pagination', 'start', $counter, $config['topics_per_page'], $start); +$template->assign_block_vars('navlinks', array( + 'BREADCRUMB_NAME' => $user->lang('WHO_IS_ONLINE'), + 'U_BREADCRUMB' => append_sid("{$phpbb_root_path}viewonline.$phpEx"), +)); + // Send data to template $template->assign_vars(array( 'TOTAL_REGISTERED_USERS_ONLINE' => $user->lang('REG_USERS_ONLINE', (int) $logged_visible_online, $user->lang('HIDDEN_USERS_ONLINE', (int) $logged_hidden_online)), diff --git a/viewtopic.php b/viewtopic.php index eb2d52c..df241a5 100644 --- a/viewtopic.php +++ b/viewtopic.php @@ -453,6 +453,38 @@ $join_user_sql = array('a' => true, 't' => false, 's' => false); $s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = ''; +/** +* Event to add new sorting options +* +* @event core.viewtopic_gen_sort_selects_before +* @var array limit_days Limit results by time +* @var array sort_by_text Language strings for sorting options +* @var array sort_by_sql SQL conditions for sorting options +* @var array join_user_sql SQL joins required for sorting options +* @var int sort_days User selected sort days +* @var string sort_key User selected sort key +* @var string sort_dir User selected sort direction +* @var string s_limit_days Initial value of limit days selectbox +* @var string s_sort_key Initial value of sort key selectbox +* @var string s_sort_dir Initial value of sort direction selectbox +* @var string u_sort_param Initial value of sorting form action +* @since 3.2.8-RC1 +*/ +$vars = array( + 'limit_days', + 'sort_by_text', + 'sort_by_sql', + 'join_user_sql', + 'sort_days', + 'sort_key', + 'sort_dir', + 's_limit_days', + 's_sort_key', + 's_sort_dir', + 'u_sort_param', +); +extract($phpbb_dispatcher->trigger_event('core.viewtopic_gen_sort_selects_before', compact($vars))); + gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param, $default_sort_days, $default_sort_key, $default_sort_dir); // Obtain correct post count and ordering SQL if user has @@ -2012,6 +2044,7 @@ for ($i = 0, $end = count($post_list); $i < $end; ++$i) 'CONTACT_USER' => $user_cache[$poster_id]['contact_user'], 'POST_DATE' => $user->format_date($row['post_time'], false, ($view == 'print') ? true : false), + 'POST_DATE_RFC3339' => gmdate(DATE_RFC3339, $row['post_time']), 'POST_SUBJECT' => $row['post_subject'], 'MESSAGE' => $message, 'SIGNATURE' => ($row['enable_sig']) ? $user_cache[$poster_id]['sig'] : '', @@ -2059,6 +2092,7 @@ for ($i = 0, $end = count($post_list); $i < $end; ++$i) 'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false, 'S_MULTIPLE_ATTACHMENTS' => !empty($attachments[$row['post_id']]) && count($attachments[$row['post_id']]) > 1, 'S_POST_UNAPPROVED' => ($row['post_visibility'] == ITEM_UNAPPROVED || $row['post_visibility'] == ITEM_REAPPROVE) ? true : false, + 'S_CAN_APPROVE' => $auth->acl_get('m_approve', $forum_id), 'S_POST_DELETED' => ($row['post_visibility'] == ITEM_DELETED) ? true : false, 'L_POST_DELETED_MESSAGE' => $l_deleted_message, 'S_POST_REPORTED' => ($row['post_reported'] && $auth->acl_get('m_report', $forum_id)) ? true : false, @@ -2327,12 +2361,25 @@ if ($s_can_vote || $s_quick_reply) ($s_notify) ? $qr_hidden_fields['notify'] = 1 : true; ($topic_data['topic_status'] == ITEM_LOCKED) ? $qr_hidden_fields['lock_topic'] = 1 : true; - $template->assign_vars(array( + $tpl_ary = [ 'S_QUICK_REPLY' => true, 'U_QR_ACTION' => append_sid("{$phpbb_root_path}posting.$phpEx", "mode=reply&f=$forum_id&t=$topic_id"), 'QR_HIDDEN_FIELDS' => build_hidden_fields($qr_hidden_fields), 'SUBJECT' => 'Re: ' . censor_text($topic_data['topic_title']), - )); + ]; + + /** + * Event after the quick-reply has been setup + * + * @event core.viewtopic_modify_quick_reply_template_vars + * @var array tpl_ary Array with template data + * @var array topic_data Array with topic data + * @since 3.2.9-RC1 + */ + $vars = ['tpl_ary', 'topic_data']; + extract($phpbb_dispatcher->trigger_event('core.viewtopic_modify_quick_reply_template_vars', compact($vars))); + + $template->assign_vars($tpl_ary); } } // now I have the urge to wash my hands :(