function entity_entitycache_installed_modules in Entity API 7
Create cache tables for entities of modules that support Entity cache module.
Parameters
$modules: (optional) An array of module names that have been installed. If not specified, try to add cache tables for all modules.
3 calls to entity_entitycache_installed_modules()
- entity_enable in ./
entity.install - Implements hook_enable().
- entity_modules_installed in ./
entity.module - Implements hook_modules_installed().
- entity_update_7003 in ./
entity.install - Create cache tables for entities that support Entity cache module.
File
- ./
entity.install, line 60 - Install file for the entity API.
Code
function entity_entitycache_installed_modules($modules = NULL) {
if (!module_exists('entitycache')) {
return;
}
// If no modules are specified or if entitycache is being installed,
// try to add entitycache tables for supporting entities of all modules.
if (!isset($modules) || in_array('entitycache', $modules)) {
$modules = module_list();
}
// Get all installed modules that support entity cache.
$entitycache_module_info = _entity_entitycache_get_module_info($modules);
// For uninstallation of modules, we need to keep a list of tables we created
// per module providing the entity type.
$tables_created = variable_get('entity_cache_tables_created');
foreach ($entitycache_module_info as $module => $module_entitycache_entities) {
foreach ($module_entitycache_entities as $entity_type => $entity_info) {
// Do not break modules that create the cache tables for themselves.
if (!db_table_exists('cache_entity_' . $entity_type)) {
$schema = drupal_get_schema_unprocessed('system', 'cache');
$schema['description'] = 'Cache table used to store' . $entity_type . ' entity records.';
db_create_table('cache_entity_' . $entity_type, $schema);
$tables_created[$module][] = 'cache_entity_' . $entity_type;
}
}
}
variable_set('entity_cache_tables_created', $tables_created);
}