diff --git a/phpBB/adm/style/acp_forums.html b/phpBB/adm/style/acp_forums.html index cb9cae6c0d..9a3706c2f0 100644 --- a/phpBB/adm/style/acp_forums.html +++ b/phpBB/adm/style/acp_forums.html @@ -454,12 +454,12 @@ {ICON_MOVE_UP_DISABLED} - {ICON_MOVE_DOWN} + {ICON_MOVE_DOWN} - {ICON_MOVE_UP} - {ICON_MOVE_DOWN} + {ICON_MOVE_UP} + {ICON_MOVE_DOWN} - {ICON_MOVE_UP} + {ICON_MOVE_UP} {ICON_MOVE_DOWN_DISABLED} {ICON_MOVE_UP_DISABLED} diff --git a/phpBB/adm/style/ajax.js b/phpBB/adm/style/ajax.js index 12541cb057..a3a77df89b 100644 --- a/phpBB/adm/style/ajax.js +++ b/phpBB/adm/style/ajax.js @@ -10,76 +10,98 @@ var img_templates = { }; /** - * The following callbacks are for reording forums in acp_forums. forum_down - * is triggered when a forum is moved down, and forum_up is triggered when - * a forum is moved up. It moves the row up or down, and deactivates / + * The following callbacks are for reording items. row_down + * is triggered when an item is moved down, and row_up is triggered when + * an item is moved up. It moves the row up or down, and deactivates / * activates any up / down icons that require it (the ones at the top or bottom). */ -phpbb.add_ajax_callback('forum_down', function() { +phpbb.add_ajax_callback('row_down', function() { var el = $(this), - tr = el.parents('tr'); + tr = el.parents('tr'), + tr_swap = tr.next(); + /* + * If the element was the first one, we have to: + * - Add the up-link to the row we moved + * - Remove the up-link on the next row + */ if (tr.is(':first-child')) { var up_img = img_templates.up.clone().attr('href', tr.attr('data-up')); - el.parents('span').siblings('.up').html(up_img); - - tr.next().find('.up').html(img_templates.up_disabled); + tr.find('.up').html(up_img); phpbb.ajaxify({ - selector: el.parents('span').siblings('.up').children('a'), - callback: 'forum_up', + selector: tr.find('.up').children('a'), + callback: 'row_up', overlay: false }); + + tr_swap.find('.up').html(img_templates.up_disabled); } - tr.insertAfter(tr.next()); + tr.insertAfter(tr_swap); + /* + * As well as: + * - Remove the down-link on the moved row, if it is now the last row + * - Add the down-link to the next row, if it was the last row + */ if (tr.is(':last-child')) { - el.replaceWith(img_templates.down_disabled); + tr.find('.down').html(img_templates.down_disabled); - var down_img = img_templates.down.clone().attr('href', tr.attr('data-down')); - tr.prev().find('.down').html(down_img); + var down_img = img_templates.down.clone().attr('href', tr_swap.attr('data-down')); + tr_swap.find('.down').html(down_img); phpbb.ajaxify({ - selector: tr.prev().find('.down').children('a'), - callback: 'forum_down', + selector: tr_swap.find('.down').children('a'), + callback: 'row_down', overlay: false }); } }); -phpbb.add_ajax_callback('forum_up', function() { +phpbb.add_ajax_callback('row_up', function() { var el = $(this), - tr = el.parents('tr'); + tr = el.parents('tr'), + tr_swap = tr.prev(); + /* + * If the element was the last one, we have to: + * - Add the down-link to the row we moved + * - Remove the down-link on the next row + */ if (tr.is(':last-child')) { var down_img = img_templates.down.clone().attr('href', tr.attr('data-down')); - el.parents('span').siblings('.down').html(down_img); - - tr.prev().find('.down').html(img_templates.down_disabled); + tr.find('.down').html(down_img); phpbb.ajaxify({ - selector: el.parents('span').siblings('.down').children('a'), - callback: 'forum_down', + selector: tr.find('.down').children('a'), + callback: 'row_down', overlay: false }); + + tr_swap.find('.down').html(img_templates.down_disabled); } - tr.insertBefore(tr.prev()); + tr.insertBefore(tr_swap); + /* + * As well as: + * - Remove the up-link on the moved row, if it is now the first row + * - Add the up-link to the previous row, if it was the first row + */ if (tr.is(':first-child')) { - el.replaceWith(img_templates.up_disabled); + tr.find('.up').html(img_templates.up_disabled); - var up_img = img_templates.up.clone().attr('href', tr.attr('data-up')); - tr.next().find('.up').html(up_img); + var up_img = img_templates.up.clone().attr('href', tr_swap.attr('data-up')); + tr_swap.find('.up').html(up_img); phpbb.ajaxify({ - selector: tr.next().find('.up').children('a'), - callback: 'forum_up', + selector: tr_swap.find('.up').children('a'), + callback: 'row_up', overlay: false }); } diff --git a/phpBB/common.php b/phpBB/common.php index 002d435b6e..c4237dfcf5 100644 --- a/phpBB/common.php +++ b/phpBB/common.php @@ -94,7 +94,7 @@ $phpbb_container = phpbb_create_dumped_container_unless_debug( new phpbb_di_extension_core($phpbb_root_path), ), array( - new phpbb_di_pass_collection_pass('cron.task_collection', 'cron.task'), + new phpbb_di_pass_collection_pass(), ), $phpbb_root_path, $phpEx diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml index eccdbc7631..991d7381e2 100644 --- a/phpBB/config/services.yml +++ b/phpBB/config/services.yml @@ -48,6 +48,8 @@ services: class: phpbb_di_service_collection arguments: - @service_container + tags: + - { name: service_collection, tag: cron.task } cron.manager: class: phpbb_cron_manager diff --git a/phpBB/download/file.php b/phpBB/download/file.php index 95b20a88d2..79f53245b9 100644 --- a/phpBB/download/file.php +++ b/phpBB/download/file.php @@ -65,7 +65,7 @@ if (isset($_GET['avatar'])) new phpbb_di_extension_core($phpbb_root_path), ), array( - new phpbb_di_pass_collection_pass('cron.task_collection', 'cron.task'), + new phpbb_di_pass_collection_pass(), ), $phpbb_root_path, $phpEx diff --git a/phpBB/includes/cache/driver/file.php b/phpBB/includes/cache/driver/file.php index b20c0064ea..32bdb1918a 100644 --- a/phpBB/includes/cache/driver/file.php +++ b/phpBB/includes/cache/driver/file.php @@ -214,7 +214,7 @@ class phpbb_cache_driver_file extends phpbb_cache_driver_base while (($entry = readdir($dir)) !== false) { - if (strpos($entry, 'container') !== 0 && + if (strpos($entry, 'container_') !== 0 && strpos($entry, 'sql_') !== 0 && strpos($entry, 'data_') !== 0 && strpos($entry, 'ctpl_') !== 0 && diff --git a/phpBB/includes/cache/driver/memory.php b/phpBB/includes/cache/driver/memory.php index 98ac02b161..1ea9a3e9e7 100644 --- a/phpBB/includes/cache/driver/memory.php +++ b/phpBB/includes/cache/driver/memory.php @@ -162,7 +162,7 @@ abstract class phpbb_cache_driver_memory extends phpbb_cache_driver_base while (($entry = readdir($dir)) !== false) { - if (strpos($entry, 'container') !== 0 && + if (strpos($entry, 'container_') !== 0 && strpos($entry, 'sql_') !== 0 && strpos($entry, 'data_') !== 0 && strpos($entry, 'ctpl_') !== 0 && diff --git a/phpBB/includes/di/pass/collection_pass.php b/phpBB/includes/di/pass/collection_pass.php index 70a44d1d51..63a5c7dfc4 100644 --- a/phpBB/includes/di/pass/collection_pass.php +++ b/phpBB/includes/di/pass/collection_pass.php @@ -18,17 +18,13 @@ if (!defined('IN_PHPBB')) use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +/** +* Appends an add method call to the definition of each collection service for +* the services tagged with the appropriate name defined in the collection's +* service_collection tag. +*/ class phpbb_di_pass_collection_pass implements CompilerPassInterface { - private $collection_service; - private $service_tag; - - public function __construct($collection_service, $service_tag) - { - $this->collection_service = $collection_service; - $this->service_tag = $service_tag; - } - /** * Modify the container before it is passed to the rest of the code * @@ -37,11 +33,14 @@ class phpbb_di_pass_collection_pass implements CompilerPassInterface */ public function process(ContainerBuilder $container) { - $definition = $container->getDefinition($this->collection_service); - - foreach ($container->findTaggedServiceIds($this->service_tag) as $id => $data) + foreach ($container->findTaggedServiceIds('service_collection') as $id => $data) { - $definition->addMethodCall('add', array($id)); + $definition = $container->getDefinition($id); + + foreach ($container->findTaggedServiceIds($data[0]['tag']) as $service_id => $service_data) + { + $definition->addMethodCall('add', array($service_id)); + } } } } diff --git a/phpBB/includes/functions_container.php b/phpBB/includes/functions_container.php index 1de1d9f7ea..8014574443 100644 --- a/phpBB/includes/functions_container.php +++ b/phpBB/includes/functions_container.php @@ -84,8 +84,13 @@ function phpbb_create_compiled_container(array $extensions, array $passes, $phpb $tmp_container = phpbb_create_container($extensions, $phpbb_root_path, $php_ext); $tmp_container->compile(); + // XXX stop writing to global $cache when + // http://tracker.phpbb.com/browse/PHPBB3-11203 is fixed + $GLOBALS['cache'] = $tmp_container->get('cache'); + $installed_exts = $tmp_container->get('ext.manager')->all_enabled(); + // Now pass the enabled extension paths into the ext compiler extension - $extensions[] = new phpbb_di_extension_ext($tmp_container->get('ext.manager')->all_enabled()); + $extensions[] = new phpbb_di_extension_ext($installed_exts); // Create the final container to be compiled and cached $container = phpbb_create_container($extensions, $phpbb_root_path, $php_ext); @@ -126,15 +131,12 @@ function phpbb_create_dumped_container(array $extensions, array $passes, $phpbb_ function phpbb_create_dumped_container_unless_debug(array $extensions, array $passes, $phpbb_root_path, $php_ext) { - if (defined('DEBUG')) { - return phpbb_create_compiled_container($extensions, $passes, $phpbb_root_path, $php_ext); - } - - return phpbb_create_dumped_container($extensions, $passes, $phpbb_root_path, $php_ext); + $container_factory = defined('DEBUG') ? 'phpbb_create_compiled_container' : 'phpbb_create_dumped_container'; + return $container_factory($extensions, $passes, $phpbb_root_path, $php_ext); } function phpbb_container_filename($phpbb_root_path, $php_ext) { $filename = str_replace(array('/', '.'), array('slash', 'dot'), $phpbb_root_path); - return $phpbb_root_path . 'cache/' . $filename . '_container.' . $php_ext; + return $phpbb_root_path . 'cache/container_' . $filename . '.' . $php_ext; } diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index 540b66d030..9384850fe6 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -112,7 +112,7 @@ $phpbb_container = phpbb_create_dumped_container_unless_debug( new phpbb_di_extension_core($phpbb_root_path), ), array( - new phpbb_di_pass_collection_pass('cron.task_collection', 'cron.task'), + new phpbb_di_pass_collection_pass(), ), $phpbb_root_path, $phpEx diff --git a/phpBB/styles/prosilver/template/jumpbox.html b/phpBB/styles/prosilver/template/jumpbox.html index 0060e83b15..ff234464dc 100644 --- a/phpBB/styles/prosilver/template/jumpbox.html +++ b/phpBB/styles/prosilver/template/jumpbox.html @@ -1,12 +1,12 @@ -

{L_RETURN_TO} {FORUM_NAME}

+

{L_RETURN_TO} {FORUM_NAME}

-

{L_RETURN_TO} {L_INDEX}

+

{L_RETURN_TO} {L_INDEX}

-

{L_RETURN_TO}{L_COLON} {SEARCH_TOPIC}

+

{L_RETURN_TO}{L_COLON} {SEARCH_TOPIC}

-

{L_RETURN_TO_SEARCH_ADV}

+

{L_RETURN_TO_SEARCH_ADV}

diff --git a/phpBB/styles/prosilver/template/mcp_forum.html b/phpBB/styles/prosilver/template/mcp_forum.html index cd4ae69fe7..e559f178f2 100644 --- a/phpBB/styles/prosilver/template/mcp_forum.html +++ b/phpBB/styles/prosilver/template/mcp_forum.html @@ -80,8 +80,8 @@
- {L_NEXT} - {L_PREVIOUS} + {L_NEXT} + {L_PREVIOUS} diff --git a/phpBB/styles/prosilver/template/mcp_logs.html b/phpBB/styles/prosilver/template/mcp_logs.html index 15974802bc..9e4a6f272e 100644 --- a/phpBB/styles/prosilver/template/mcp_logs.html +++ b/phpBB/styles/prosilver/template/mcp_logs.html @@ -54,8 +54,8 @@
- {L_NEXT} - {L_PREVIOUS} + {L_NEXT} + {L_PREVIOUS} diff --git a/phpBB/styles/prosilver/template/mcp_notes_user.html b/phpBB/styles/prosilver/template/mcp_notes_user.html index c7c568657c..3bbbd10f12 100644 --- a/phpBB/styles/prosilver/template/mcp_notes_user.html +++ b/phpBB/styles/prosilver/template/mcp_notes_user.html @@ -95,8 +95,8 @@
- {L_NEXT} - {L_PREVIOUS} + {L_NEXT} + {L_PREVIOUS} diff --git a/phpBB/styles/prosilver/template/mcp_queue.html b/phpBB/styles/prosilver/template/mcp_queue.html index dc8869713d..847151a01e 100644 --- a/phpBB/styles/prosilver/template/mcp_queue.html +++ b/phpBB/styles/prosilver/template/mcp_queue.html @@ -65,8 +65,8 @@
- {L_NEXT} - {L_PREVIOUS} + {L_NEXT} + {L_PREVIOUS} diff --git a/phpBB/styles/prosilver/template/mcp_reports.html b/phpBB/styles/prosilver/template/mcp_reports.html index f9a0ec4bd6..ea9a4edd6f 100644 --- a/phpBB/styles/prosilver/template/mcp_reports.html +++ b/phpBB/styles/prosilver/template/mcp_reports.html @@ -68,8 +68,8 @@
- {L_NEXT} - {L_PREVIOUS} + {L_NEXT} + {L_PREVIOUS} diff --git a/phpBB/styles/prosilver/template/mcp_whois.html b/phpBB/styles/prosilver/template/mcp_whois.html index 88d3269a71..41a825458d 100644 --- a/phpBB/styles/prosilver/template/mcp_whois.html +++ b/phpBB/styles/prosilver/template/mcp_whois.html @@ -4,11 +4,11 @@ diff --git a/phpBB/styles/prosilver/template/memberlist_body.html b/phpBB/styles/prosilver/template/memberlist_body.html index 273182ec3f..4ba0c5cb2a 100644 --- a/phpBB/styles/prosilver/template/memberlist_body.html +++ b/phpBB/styles/prosilver/template/memberlist_body.html @@ -143,8 +143,8 @@
- {L_PREVIOUS} - {L_NEXT} + {L_PREVIOUS} + {L_NEXT}
diff --git a/phpBB/styles/prosilver/template/message_body.html b/phpBB/styles/prosilver/template/message_body.html index fb6dfce35f..a844246055 100644 --- a/phpBB/styles/prosilver/template/message_body.html +++ b/phpBB/styles/prosilver/template/message_body.html @@ -8,7 +8,7 @@

{MESSAGE_TITLE}

{MESSAGE_TEXT}

-

{L_RETURN_TO_SEARCH_ADV}

+

{L_RETURN_TO_SEARCH_ADV}

diff --git a/phpBB/styles/prosilver/template/posting_editor.html b/phpBB/styles/prosilver/template/posting_editor.html index c206cc3181..be45993cef 100644 --- a/phpBB/styles/prosilver/template/posting_editor.html +++ b/phpBB/styles/prosilver/template/posting_editor.html @@ -165,7 +165,7 @@
-
{attach_row.FILENAME}
+
{attach_row.FILENAME}
  diff --git a/phpBB/styles/prosilver/template/search_results.html b/phpBB/styles/prosilver/template/search_results.html index 136ca991b1..62b7c61eb3 100644 --- a/phpBB/styles/prosilver/template/search_results.html +++ b/phpBB/styles/prosilver/template/search_results.html @@ -6,9 +6,9 @@

{L_PHRASE_SEARCH_DISABLED}

-

{L_RETURN_TO}{L_COLON} {SEARCH_TOPIC}

+

{L_RETURN_TO}{L_COLON} {SEARCH_TOPIC}

-

{L_RETURN_TO_SEARCH_ADV}

+

{L_RETURN_TO_SEARCH_ADV}

@@ -131,7 +131,7 @@ @@ -150,8 +150,8 @@
- {L_PREVIOUS} - {L_NEXT} + {L_PREVIOUS} + {L_NEXT} diff --git a/phpBB/styles/prosilver/template/ucp_attachments.html b/phpBB/styles/prosilver/template/ucp_attachments.html index 8c93547388..478b14ab86 100644 --- a/phpBB/styles/prosilver/template/ucp_attachments.html +++ b/phpBB/styles/prosilver/template/ucp_attachments.html @@ -47,8 +47,8 @@
- {L_NEXT} - {L_PREVIOUS} + {L_NEXT} + {L_PREVIOUS} diff --git a/phpBB/styles/prosilver/template/ucp_pm_message_header.html b/phpBB/styles/prosilver/template/ucp_pm_message_header.html index 29e6a5a46b..c47f93f739 100644 --- a/phpBB/styles/prosilver/template/ucp_pm_message_header.html +++ b/phpBB/styles/prosilver/template/ucp_pm_message_header.html @@ -18,7 +18,7 @@