--- 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
+ }
+ }
+}
+