function RulesEntityController::import
Overridden to work with Rules' custom export format.
Parameters
string $export: A serialized string in JSON format as produced by the RulesPlugin::export() method, or the PHP export as usual PHP array.
string $error_msg: The error message.
File
-
includes/
rules.core.inc, line 113
Class
- RulesEntityController
- Make sure loaded rule configs are instantiated right.
Code
public function import($export, &$error_msg = '') {
$export = is_array($export) ? $export : drupal_json_decode($export);
if (!is_array($export)) {
$error_msg = t('Unable to parse the pasted export.');
return FALSE;
}
// The key is the configuration name and the value the actual export.
$name = key($export);
$export = current($export);
if (!isset($export['PLUGIN'])) {
$error_msg = t('Export misses plugin information.');
return FALSE;
}
// Create an empty configuration, re-set basic keys and import.
$config = rules_plugin_factory($export['PLUGIN']);
$config->name = $name;
foreach (array(
'label',
'active',
'weight',
'tags',
'access_exposed',
'owner',
) as $key) {
if (isset($export[strtoupper($key)])) {
$config->{$key} = $export[strtoupper($key)];
}
}
if (!empty($export['REQUIRES'])) {
foreach ($export['REQUIRES'] as $module) {
if (!module_exists($module)) {
$error_msg = t('Missing the required module %module.', array(
'%module' => $module,
));
return FALSE;
}
}
$config->dependencies = $export['REQUIRES'];
}
$config->import($export);
return $config;
}