PodsAdmin::admin_components_toggle PHP Method

admin_components_toggle() public method

Toggle a component on or off
public admin_components_toggle ( PodsUI $ui ) : boolean
$ui PodsUI
return boolean
    public function admin_components_toggle(PodsUI $ui)
    {
        $component = $_GET['id'];
        if (!empty(PodsInit::$components->components[$component]['PluginDependency'])) {
            $dependency = explode('|', PodsInit::$components->components[$component]['PluginDependency']);
            if (!pods_is_plugin_active($dependency[1])) {
                $website = 'http://wordpress.org/extend/plugins/' . dirname($dependency[1]) . '/';
                if (isset($dependency[2])) {
                    $website = $dependency[2];
                }
                if (!empty($website)) {
                    $website = ' ' . sprintf(__('You can find it at %s', 'pods'), '<a href="' . $website . '" target="_blank">' . $website . '</a>');
                }
                $message = sprintf(__('The %s component requires that you have the <strong>%s</strong> plugin installed and activated.', 'pods'), PodsInit::$components->components[$component]['Name'], $dependency[0]) . $website;
                $ui->error($message);
                $ui->manage();
                return;
            }
        }
        if (!empty(PodsInit::$components->components[$component]['ThemeDependency'])) {
            $dependency = explode('|', PodsInit::$components->components[$component]['ThemeDependency']);
            if (strtolower($dependency[1]) != strtolower(get_template()) && strtolower($dependency[1]) != strtolower(get_stylesheet())) {
                $website = '';
                if (isset($dependency[2])) {
                    $website = ' ' . sprintf(__('You can find it at %s', 'pods'), '<a href="' . $dependency[2] . '" target="_blank">' . $dependency[2] . '</a>');
                }
                $message = sprintf(__('The %s component requires that you have the <strong>%s</strong> theme installed and activated.', 'pods'), PodsInit::$components->components[$component]['Name'], $dependency[0]) . $website;
                $ui->error($message);
                $ui->manage();
                return;
            }
        }
        if (!empty(PodsInit::$components->components[$component]['MustUse'])) {
            $message = sprintf(__('The %s component can not be disabled from here. You must deactivate the plugin or theme that added it.', 'pods'), PodsInit::$components->components[$component]['Name']);
            $ui->error($message);
            $ui->manage();
            return;
        }
        if ('1' == pods_v('toggled')) {
            $toggle = PodsInit::$components->toggle($component);
            if (true === $toggle) {
                $ui->message(PodsInit::$components->components[$component]['Name'] . ' ' . __('Component enabled', 'pods'));
            } elseif (false === $toggle) {
                $ui->message(PodsInit::$components->components[$component]['Name'] . ' ' . __('Component disabled', 'pods'));
            }
            $components = PodsInit::$components->components;
            foreach ($components as $component => &$component_data) {
                $toggle = 0;
                if (isset(PodsInit::$components->settings['components'][$component_data['ID']])) {
                    if (0 != PodsInit::$components->settings['components'][$component_data['ID']]) {
                        $toggle = 1;
                    }
                }
                if (true === $component_data['DeveloperMode']) {
                    if (!pods_developer()) {
                        unset($components[$component]);
                        continue;
                    }
                }
                $component_data = array('id' => $component_data['ID'], 'name' => $component_data['Name'], 'description' => make_clickable($component_data['Description']), 'version' => $component_data['Version'], 'author' => $component_data['Author'], 'toggle' => $toggle);
            }
            $ui->data = $components;
            pods_transient_clear('pods_components');
            $url = pods_query_arg(array('toggled' => null));
            pods_redirect($url);
        } elseif (1 == pods_var('toggle')) {
            $ui->message(PodsInit::$components->components[$component]['Name'] . ' ' . __('Component enabled', 'pods'));
        } else {
            $ui->message(PodsInit::$components->components[$component]['Name'] . ' ' . __('Component disabled', 'pods'));
        }
        $ui->manage();
    }