/** * Import plugin settings * * @param string $info * @param string $settings_mode Options to load plugin settings. One of overwrite, if_not_exists, or ignore * @return type bool */ function transfer_plugins_import($info, $settings_mode = 'if_not_exists') { $info = unserialize($info); if (!$info) { return false; } $version = elgg_extract('transfer_plugins_format', $info); if ($version != TRANSFER_PLUGINS_FORMAT) { return false; } // @todo check elgg, plugin, and transfer_plugin version compatibility. if (!isset($info['plugins'])) { return false; } $r = true; foreach ($info['plugins'] as $plugin_info) { $plugin_id = $plugin_info['id']; $plugin = new ElggPlugin($plugin_id); // not installed if (!$plugin->isValid()) { continue; } $r &= $plugin->setPriority($plugin_info['priority']); if ($plugin_info['active'] && !$plugin->isActive()) { $r &= $plugin->activate(); } if ($settings_mode != 'ignore' && $plugin_info['settings']) { foreach ($plugin_info['settings'] as $name => $value) { switch ($settings_mode) { case 'overwrite': $plugin->setSetting($name, $value); break; case 'if_not_exists': // @todo not sure if this works because isset isn't overloaded in ElggPlugin if (!isset($plugin->{$name})) { $plugin->setSetting($name, $value); } break; } } } } return $r; }
/** * Enable a plugin for a site (default current site) * * Important: You should regenerate simplecache and the viewpath cache after executing this function * otherwise you may experience view display artifacts. Do this with the following code: * * elgg_regenerate_simplecache(); * elgg_reset_system_cache(); * * @deprecated 1.8 Use ElggPlugin->activate() * * @param string $plugin The plugin name. * @param int $site_guid The site id, if not specified then this is detected. * * @return array * @throws InvalidClassException */ function enable_plugin($plugin, $site_guid = null) { elgg_deprecated_notice('enable_plugin() was deprecated by ElggPlugin->activate()', 1.8); $plugin = sanitise_string($plugin); $site_guid = (int) $site_guid; if (!$site_guid) { $site = get_config('site'); $site_guid = $site->guid; } try { $plugin = new ElggPlugin($plugin); } catch (Exception $e) { return false; } if (!$plugin->canActivate($site_guid)) { return false; } return $plugin->activate($site_guid); }