From aebe03f88cb3c2aee6e0b859be82d5235efdacea Mon Sep 17 00:00:00 2001 From: Shitiz Garg Date: Sun, 22 Jun 2014 18:55:35 +0530 Subject: [ticket/12759] Cache the lang options earlier Previously it would re-run on every post PHPBB3-12759 --- phpBB/phpbb/profilefields/manager.php | 47 +++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 19 deletions(-) (limited to 'phpBB/phpbb/profilefields') diff --git a/phpBB/phpbb/profilefields/manager.php b/phpBB/phpbb/profilefields/manager.php index a32baaac56..f14aa2a2b4 100644 --- a/phpBB/phpbb/profilefields/manager.php +++ b/phpBB/phpbb/profilefields/manager.php @@ -367,6 +367,34 @@ class manager return $user_fields; } + /** + * Cache user's profile fields' language options + * @param array $profile_row Array with users profile field data + * @return void + */ + public function cache_profile_fields_lang_options($profile_row) + { + if (!empty($profile_row)) + { + $field_ids = array(); + foreach ($profile_row as $ident_ary) + { + if (empty($field_ids[$ident_ary['data']['lang_id']])) + { + $field_ids[$ident_ary['data']['lang_id']] = array(); + + } + + $field_ids[$ident_ary['data']['lang_id']][] = $ident_ary['data']['field_id']; + } + + foreach ($field_ids as $lang => $fields) + { + $this->lang_helper->get_option_lang($fields, $lang, false); + } + } + } + /** * Assign the user's profile fields data to the template * @@ -393,25 +421,6 @@ class manager $vars = array('profile_row', 'tpl_fields', 'use_contact_fields'); extract($this->dispatcher->trigger_event('core.generate_profile_fields_template_data_before', compact($vars))); - if (!empty($profile_row)) - { - $field_ids = array(); - foreach ($profile_row as $ident_ary) - { - if (empty($field_ids[$ident_ary['data']['lang_id']])) - { - $field_ids[$ident_ary['data']['lang_id']] = array(); - - } - $field_ids[$ident_ary['data']['lang_id']][] = $ident_ary['data']['field_id']; - } - - foreach ($field_ids as $lang => $fields) - { - $this->lang_helper->get_option_lang($fields, $lang, false); - } - } - foreach ($profile_row as $ident => $ident_ary) { $profile_field = $this->type_collection[$ident_ary['data']['field_type']]; -- cgit v1.2.1