activate() public method

Actives the plugin for the current site.
public activate ( ) : boolean
return boolean
Esempio n. 1
0
/**
 * 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;
}
Esempio n. 2
0
/**
 * 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);
}