From 99b25143b23cc72b9f1650b11406a07d96b034e9 Mon Sep 17 00:00:00 2001 From: David Rothstein Date: Sun, 29 Jul 2012 23:15:33 -0400 Subject: Issue #1613554 by drumm, BTMash: Fixed Update menu link queries from 6's strings (followup to avoid use of API functions during updates). --- modules/system/system.install | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'modules/system/system.install') diff --git a/modules/system/system.install b/modules/system/system.install index 800ea12e1..6d8142004 100644 --- a/modules/system/system.install +++ b/modules/system/system.install @@ -3019,15 +3019,19 @@ function system_update_7073() { * Convert menu_links query strings to arrays. */ function system_update_7074() { - $mlids = db_select('menu_links', 'ml') - ->fields('ml', array('mlid')) - ->condition('options', '%query%', 'LIKE') - ->execute()->fetchCol(); - foreach ($mlids as $mlid) { - $menu_link = menu_link_load($mlid); - if (is_string($menu_link['options']['query'])) { + $query = db_select('menu_links', 'ml', array('fetch' => PDO::FETCH_ASSOC)) + ->fields('ml', array('mlid', 'options')) + ->condition('options', '%query%', 'LIKE'); + foreach ($query->execute() as $menu_link) { + $menu_link['options'] = unserialize($menu_link['options']); + if (isset($menu_link['options']['query']) && is_string($menu_link['options']['query'])) { $menu_link['options']['query'] = drupal_get_query_array($menu_link['options']['query']); - menu_link_save($menu_link); + db_update('menu_links') + ->fields(array( + 'options' => serialize($menu_link['options']), + )) + ->condition('mlid', $menu_link['mlid'], '=') + ->execute(); } } } -- cgit v1.2.3