Habari\Plugins::deactivate_plugin PHP Метод

deactivate_plugin() публичный статический Метод

Deactivates a plugin file
public static deactivate_plugin ( string $file, boolean $force = false ) : boolean
$file string the Filename of the plugin to deactivate
$force boolean If true, deactivate this plugin regardless of what filters may say about it.
Результат boolean If true, the plugin was deactivated
    public static function deactivate_plugin($file, $force = false)
    {
        $ok = true;
        $name = '';
        $ok = Plugins::filter('deactivate_plugin', $ok, $file);
        // Allow plugins to reject deactivation
        if ($ok || $force == true) {
            // normalize directory separator
            $file = str_replace('\\', '/', $file);
            // strip base path from stored path
            $short_file = MultiByte::substr($file, MultiByte::strlen(HABARI_PATH));
            $activated = Options::get('active_plugins');
            $index = array_search($short_file, $activated);
            if (is_array($activated) && false !== $index) {
                if ($force != true) {
                    // Get plugin name for logging
                    $name = self::$plugins[Plugins::id_from_file($file)]->info->name;
                    if (method_exists(self::$plugins[Plugins::id_from_file($file)], 'action_plugin_deactivation')) {
                        self::$plugins[Plugins::id_from_file($file)]->action_plugin_deactivation($file);
                        // For the plugin to uninstall itself
                    }
                }
                unset($activated[$index]);
                Options::set('active_plugins', $activated);
                if ($force != true) {
                    Plugins::act('plugin_deactivated', $file);
                    // For other plugins to react to a plugin uninstallation
                    EventLog::log(_t('Deactivated Plugin: %s', array($name)), 'notice', 'plugin', 'habari');
                }
            }
        }
        if ($force == true) {
            // always return true for forced deactivations
            return true;
        } else {
            return $ok;
        }
    }