function om_maximenu_update_blocks_db in OM Maximenu 6
Same name and namespace in other branches
- 8 inc/om_maximenu.utils.inc \om_maximenu_update_blocks_db()
- 7 inc/om_maximenu.utils.inc \om_maximenu_update_blocks_db()
Block db updater
2 calls to om_maximenu_update_blocks_db()
- om_maximenu_admin_submit in inc/
om_maximenu.admin.inc - 1 Submit for all settings
- om_maximenu_import_submit in inc/
om_maximenu.import.inc - Import from existing menus
File
- inc/
om_maximenu.utils.inc, line 474 - OM Maximenu Admin Utilities
Code
function om_maximenu_update_blocks_db($menu_id = 0, $maximenu_content = array()) {
if ($menu_id != 0) {
if ($maximenu_content['output'] == 'block') {
$theme_default = variable_get('theme_default', 'garland');
$existing = db_fetch_object(db_query("SELECT * FROM {blocks} WHERE module = '%s' AND delta = '%s' AND theme = '%s'", 'om_maximenu', 'om-maximenu-' . $menu_id, $theme_default));
if (!empty($existing->delta)) {
// if the menu is existing
$status = !empty($maximenu_content['block_options']['region']) ? 1 : 0;
db_query("\n UPDATE {blocks} SET status = %d, weight = %d, region = '%s', visibility = %d, pages = '%s' WHERE module = '%s' AND delta = '%s' AND theme = '%s'", $status, $maximenu_content['block_options']['weight'], $maximenu_content['block_options']['region'], $maximenu_content['menu_visibility']['visibility'], trim($maximenu_content['menu_visibility']['pages']), 'om_maximenu', 'om-maximenu-' . $menu_id, $theme_default);
}
else {
// because we are handling the visibility, etc., we have to handle everything to synch with blocks settings
$status = !empty($maximenu_content['block_options']['region']) ? 1 : 0;
db_query("\n INSERT INTO {blocks} (module, delta, theme, status, weight, region, visibility, pages, cache)\n VALUES ('om_maximenu', '%s', '%s', %d, %d, '%s', %d, '%s', -1)", 'om-maximenu-' . $menu_id, $theme_default, $status, $maximenu_content['block_options']['weight'], $maximenu_content['block_options']['region'], $maximenu_content['menu_visibility']['visibility'], trim($maximenu_content['menu_visibility']['pages']));
}
}
elseif ($maximenu_content['output'] == 'float') {
// menu as float must be deleted from block table
db_query("DELETE FROM {blocks} WHERE module = '%s' AND delta = '%s'", 'om_maximenu', 'om-maximenu-' . $menu_id);
}
elseif ($maximenu_content['output'] == 'main_menu') {
// menu as main_menu must be deleted from blocks table
db_query("DELETE FROM {blocks} WHERE module = '%s' AND delta = '%s'", 'om_maximenu', 'om-maximenu-' . $menu_id);
}
}
}