Skip to content

Instantly share code, notes, and snippets.

@rang501
Created March 31, 2015 13:08
Show Gist options
  • Save rang501/223d8b6f7de0e2fa07ba to your computer and use it in GitHub Desktop.
Save rang501/223d8b6f7de0e2fa07ba to your computer and use it in GitHub Desktop.
remove menus, languages from drupal programmatically
if (conf_path() != 'sites/default') {
$menus = array(
'menu-main-menu-bg',
'menu-main-menu-cs',
'menu-main-menu-de',
'menu-main-menu-fi',
'menu-main-menu-hr',
'menu-main-menu-hu',
'menu-main-menu-pl',
'menu-main-menu-ro',
'menu-main-menu-ru',
'menu-main-menu-sl',
'menu-footer-menu-bg',
'menu-footer-menu-cs',
'menu-footer-menu-de',
'menu-footer-menu-fi',
'menu-footer-menu-hr',
'menu-footer-menu-hu',
'menu-footer-menu-pl',
'menu-footer-menu-ro',
'menu-footer-menu-ru',
'menu-footer-menu-sl',
);
foreach ($menus as $menu_name) {
$menu = menu_load($menu_name);
if ($menu) {
menu_delete($menu);
}
}
$languages = language_list();
$lang = array('bg','hr','cs','de','hu','pl','ro','ru','sl',);
foreach($lang as $code) {
if (isset($languages[$code])) {
// Remove translations first.
db_delete('locales_target')
->condition('language', $code)
->execute();
cache_clear_all('locale:' . $code, 'cache');
// With no translations, this removes existing JavaScript translations file.
_locale_rebuild_js($code);
// Remove the language.
db_delete('languages')
->condition('language', $code)
->execute();
db_update('node')
->fields(array('language' => ''))
->condition('language', $code)
->execute();
if ($languages[$code]->enabled) {
variable_set('language_count', variable_get('language_count', 1) - 1);
}
module_invoke_all('multilingual_settings_changed');
$variables = array('%locale' => $languages[$code]->name);
drupal_set_message(t('The language %locale has been removed.', $variables));
watchdog('locale', 'The language %locale has been removed.', $variables);
}
}
// Changing the language settings impacts the interface:
cache_clear_all('*', 'cache_page', TRUE);
// Set node language to site default.
db_query("UPDATE {node} SET language=:lang", array(':lang' => language_default('language')));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment