function om_maximenu_update_blocks_db in OM Maximenu 8
Same name and namespace in other branches
- 6 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 469 - 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_select('block', 'n')
->fields('n')
->condition('module', 'om_maximenu', '=')
->condition('delta', 'om-maximenu-' . $menu_id, '=')
->condition('theme', $theme_default, '=')
->execute()
->fetchObject();
if (!empty($existing->delta)) {
// if the menu is existing
$status = !empty($maximenu_content['block_options']['region']) ? 1 : 0;
db_update('block')
->fields(array(
'status' => $status,
'weight' => $maximenu_content['block_options']['weight'],
'region' => $maximenu_content['block_options']['region'],
'visibility' => (int) $maximenu_content['menu_visibility']['visibility'],
'pages' => trim($maximenu_content['menu_visibility']['pages']),
))
->condition('module', 'om_maximenu')
->condition('delta', 'om-maximenu-' . $menu_id)
->condition('theme', $theme_default)
->execute();
}
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_insert('block')
->fields(array(
'module' => 'om_maximenu',
'delta' => 'om-maximenu-' . $menu_id,
'theme' => $theme_default,
'status' => $status,
'weight' => $maximenu_content['block_options']['weight'],
'region' => $maximenu_content['block_options']['region'],
'visibility' => (int) $maximenu_content['menu_visibility']['visibility'],
'pages' => trim($maximenu_content['menu_visibility']['pages']),
'cache' => -1,
))
->execute();
}
}
elseif ($maximenu_content['output'] == 'float') {
// menu as float must be deleted from block table
db_delete('block')
->condition('module', 'om_maximenu')
->condition('delta', 'om-maximenu-' . $menu_id)
->execute();
}
elseif ($maximenu_content['output'] == 'main_menu') {
// menu as main_menu must be deleted from blocks table
db_delete('block')
->condition('module', 'om_maximenu')
->condition('delta', 'om-maximenu-' . $menu_id)
->execute();
}
}
}