i18ncontent.install in Internationalization 6
Installation file for i18ncontent module.
File
i18ncontent/i18ncontent.installView source
<?php
/**
* @file
* Installation file for i18ncontent module.
*/
function i18ncontent_install() {
// Create strings in the extended localization system.
// There seems to be some issue with module loading on install/update.
}
/**
* Implementation of hook_enable().
*/
function i18ncontent_enable() {
// Make sure i18nstrings module is loaded, which may not be when enabling both modules at the same time
drupal_load('module', 'i18nstrings');
i18ncontent_locale_refresh();
}
/**
* Implementation of hook_disable().
*
* This function depends on i18nstrings, so it must be run on _disable() better than uninstall().
*/
function i18ncontent_disable() {
// Remove and restore help texts.
$langcode = language_default('language');
foreach (node_get_types() as $type) {
if (!$type->help && ($help = i18nstrings_ts("nodetype:type:{$type->type}:help", $langcode))) {
$type->help = $help;
node_type_save($type);
}
}
// @ TODO Some more clean up for strings
}
/**
* The old module with the same name had a different approach, so the update will be full install.
*/
function i18ncontent_update_6001() {
$ret = array();
// Update location for existing strings for this textgroup that was wrong
$ret[] = update_sql("UPDATE {locales_source} SET location = CONCAT('type:', location) WHERE textgroup = 'nodetype' AND location NOT LIKE 'type:%'");
// Delete all indexing data, it will be recreated
$ret[] = update_sql("DELETE FROM {i18n_strings} WHERE lid IN (SELECT lid FROM {locales_source} WHERE textgroup = 'nodetype')");
return $ret;
}
/**
* Locale refresh, this will run successfully only after the i18nstrings update has run
*/
function i18ncontent_update_6002() {
$ret = array();
$version = (int) drupal_get_installed_schema_version('i18nstrings');
if ($version > 6002) {
drupal_load('module', 'i18ncontent');
drupal_load('module', 'i18nstrings');
i18ncontent_locale_refresh();
}
else {
drupal_set_message('The i18ncontent update 6002 needs to run after i18nstrings update 6003. Re-run update.php.', 'warning');
$ret['#abort'] = TRUE;
}
return $ret;
}
Functions
Name | Description |
---|---|
i18ncontent_disable | Implementation of hook_disable(). |
i18ncontent_enable | Implementation of hook_enable(). |
i18ncontent_install | @file Installation file for i18ncontent module. |
i18ncontent_update_6001 | The old module with the same name had a different approach, so the update will be full install. |
i18ncontent_update_6002 | Locale refresh, this will run successfully only after the i18nstrings update has run |