function _ctools_export_get_defaults_from_cache
Attempt to load default objects from cache.
We can be instructed to cache default objects by the schema. If so we cache them as an index which is a list of all default objects, and then each default object is cached individually.
Return value
Either an array of cached objects, or NULL indicating a cache rebuild is necessary.
1 call to _ctools_export_get_defaults_from_cache()
- _ctools_export_get_defaults in includes/
export.inc - Get export object defaults.
File
-
includes/
export.inc, line 738
Code
function _ctools_export_get_defaults_from_cache($table, $export) {
$data = cache_get('ctools_export_index:' . $table, $export['default cache bin']);
if (!$data || !is_array($data->data)) {
return;
}
// This is the perfectly valid case where there are no default objects,
// and we have cached this state.
if (empty($data->data)) {
return array();
}
$keys = array();
foreach ($data->data as $name) {
$keys[] = 'ctools_export:' . $table . ':' . $name;
}
$data = cache_get_multiple($keys, $export['default cache bin']);
// If any of our indexed keys missed, then we have a fail and we need to
// rebuild.
if (!empty($keys)) {
return;
}
// Now, translate the returned cache objects to actual objects.
$cache = array();
foreach ($data as $cached_object) {
$cache[$cached_object->data->{$export['key']}] = $cached_object->data;
}
return $cache;
}