--- empty 2008-04-01 03:22:48.000000000 -0400 +++ menu_trim.install 2008-03-31 15:26:27.000000000 -0400 @@ -0,0 +1,121 @@ +menu_trim creation issue. Please contact you system administrator to help you resolve this issue.')); + } + else { + // Update trimmable items + $vars = db_query("SELECT * FROM {variable} WHERE name LIKE 'menu_trim_item_%%'"); + if (!db_error() && $vars) { + // Iterate trimmable items + while ($var = db_fetch_object($vars)) { + $var_data = $var->value; + // Trimmable verification + if ($var_data) { + $var_name = str_replace('menu_trim_item_', '', $var->name); + // Menu ID validation + if (isset($var_name) && is_numeric($var_name)) { + // based on : _menu_trim_menu_set + $db_result_1 = db_result(db_query("SELECT mid FROM {menu_trim} WHERE mid=%d", $var_name)); + if (!db_error()) { + // Entry verification + if ($db_result_1) { + // Try to update a menu + $db_result_2 = db_query("UPDATE {menu_trim} SET trim=%d WHERE mid=%d", $var_data, $var_name); + } + else {// Entry verification + // Try to insert a menu + $db_result_2 = db_query("INSERT INTO {menu_trim} (mid, trim) VALUES (%d, %d)", $var_name, $var_data); + } // Entry verification + if (!db_error() && $db_result_2) { + variable_del($var->name); + } + } + } // Menu ID validation + } // Trimmable verification + } // Iterate trimmable items + // Remaining variable verification + $vars = db_result(db_query("SELECT COUNT(*) FROM {variable} WHERE name LIKE 'menu_trim_item_%%'")); + if (db_error() || $vars) { + form_set_error('', t('There\'s possibly variables in Drupal\'s database table variable starting with menu_trim_item_ that wasn\'t updated. If a similar variables are in the table menu_trim, you may safely delete the corresponding ones from variable.')); + } + } + + // Update setting items + $vars = db_query("SELECT * FROM {variable} WHERE name LIKE 'menu_trim_menu_%%'"); + if (db_error() || $vars) { + // Iterate setting items + while ($var = db_fetch_object($vars)) { + $var_data = $var->value; + // Trimmable verification + if ($var_data) { + $var_name = str_replace('menu_trim_menu_', '', $var->name); + // Menu ID validation + if (isset($var_name) && is_numeric($var_name)) { + // based on : menu_trim_admin_settings_submit and _menu_trim_settings_set + $menu[$var_name] = array('mthd' => $var_data, 'bl_tt' => 1, 'min_lvl' => '', 'min_lmt' => 0); + } + } // Trimmable verification + } // Iterate setting items + // Menu content verification + if ($menu) { + variable_set('menu_trim', $menu); + if (!db_error()) { + // Delete old setting items + $vars = db_result(db_query("SELECT COUNT(*) FROM {variable} WHERE name LIKE 'menu_trim_menu_%%'")); + // Iterate setting items + while ($var = db_fetch_object($vars)) { + variable_del($var->name); + } + // Remaining variable verification + $vars = db_query("SELECT COUNT(*) FROM {variable} WHERE name LIKE 'menu_trim_menu_%%'"); + if (db_error() || $vars) { + form_set_error('', t('There\'s possibly variables in Drupal\'s database table variable starting with menu_trim_menu_ that wasn\'t updated. If the variables data are included in the same table menu_trim variable, you may safely delete the corresponding ones starting with menu_trim_menu_.')); + } + } + } // Menu content verification + } + } +} +