public static function instance()
 {
     if (!self::$instance) {
         self::$instance = new PluginManager(PluginFactory::instance(), EventManager::instance(), new SiteCache());
     }
     return self::$instance;
 }
 public static function instance()
 {
     if (!self::$instance) {
         self::$instance = new PluginManager(PluginFactory::instance(), EventManager::instance(), new SiteCache(), new ForgeUpgradeConfig(new System_Command()));
     }
     return self::$instance;
 }
Beispiel #3
0
function activatePlugin($name) {
    $plugin_factory = PluginFactory::instance();
    $plugin = $plugin_factory->getPluginByName($name);
    if (! $plugin) {
        echo "Install plugin\n";
        $plugin_manager = new PluginManager();
        $plugin = $plugin_manager->installPlugin($name);
    }
    if (! $plugin_factory->isPluginAvailable($plugin)) {
        echo "Activate plugin\n";
        $plugin_factory->availablePlugin($plugin);
    }
}
 function _getPluginFactory()
 {
     return PluginFactory::instance();
 }
Beispiel #5
0
 protected function activatePlugin($name)
 {
     $plugin_factory = PluginFactory::instance();
     $plugin = $plugin_factory->createPlugin($name);
     $plugin_factory->availablePlugin($plugin);
 }
 public function restrict()
 {
     $request = HTTPRequest::instance();
     $plugin_factory = PluginFactory::instance();
     $plugin_resource_restrictor = $this->getPluginResourceRestrictor();
     $plugin = $plugin_factory->getPluginById($request->get('plugin_id'));
     if ($plugin->getScope() !== Plugin::SCOPE_PROJECT) {
         $GLOBALS['Response']->addFeedback(Feedback::ERROR, 'This project cannot be restricted.');
         $GLOBALS['Response']->redirect('/plugins/pluginsadministration/');
         die;
     }
     $presenter = new PluginsAdministration_ManageAllowedProjectsPresenter($plugin, $plugin_resource_restrictor->searchAllowedProjectsOnPlugin($plugin), $plugin_resource_restrictor->isPluginRestricted($plugin));
     $renderer = TemplateRendererFactory::build()->getRenderer(ForgeConfig::get('codendi_dir') . '/src/templates/resource_restrictor');
     $renderer->renderToPage(PluginsAdministration_ManageAllowedProjectsPresenter::TEMPLATE, $presenter);
 }
 public function __construct()
 {
     $this->plugin_factory = PluginFactory::instance();
 }
Beispiel #8
0
 function hudson()
 {
     $p = PluginFactory::instance()->getPluginByName('hudson');
     $this->themePath = $p->getThemePath();
 }
    function properties()
    {
        $pm = ProjectManager::instance();
        $link_to_plugins = dirname($_SERVER['REQUEST_URI']) . '/';
        $request =& HTTPRequest::instance();
        if ($request->exist('plugin_id')) {
            $plugin_manager =& PluginManager::instance();
            $plugin_factory =& PluginFactory::instance();
            $plugin =& $plugin_factory->getPluginById($request->get('plugin_id'));
            if (!$plugin) {
                $GLOBALS['HTML']->redirect('/plugins/pluginsadministration/');
            } else {
                $plug_info =& $plugin->getPluginInfo();
                $descriptor =& $plug_info->getPluginDescriptor();
                $available = $plugin_manager->isPluginAvailable($plugin);
                $name = $descriptor->getFullName();
                if (strlen(trim($name)) === 0) {
                    $name = get_class($plugin);
                }
                $col_hooks =& $plugin->getHooks();
                $hooks =& $col_hooks->iterator();
                $the_hooks = array();
                while ($hooks->valid()) {
                    $hook =& $hooks->current();
                    $the_hooks[] = $hook;
                    $hooks->next();
                }
                natcasesort($the_hooks);
                $link_to_hooks = array();
                foreach ($the_hooks as $hook) {
                    $link_to_hooks[] = '<a href="' . $link_to_plugins . '?selected_hook=' . $hook . '" title="' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'display_priorities', array($hook)) . '">' . $hook . '</a>';
                }
                $link_to_hooks = implode(', ', $link_to_hooks);
                //PropertyDescriptor
                $descs = $plug_info->getPropertyDescriptors();
                $keys = $descs->getKeys();
                $iter = $keys->iterator();
                $props = '';
                while ($iter->valid()) {
                    $key = $iter->current();
                    $desc = $descs->get($key);
                    $prop_name = $desc->getName();
                    $props .= '<tr><td class="pluginsadministration_label">' . $prop_name . '</td><td>';
                    if (is_bool($desc->getValue())) {
                        $props .= '<input type="hidden"   name="properties[' . $prop_name . ']" value="0" />';
                        $props .= '<input type="checkbox" name="properties[' . $prop_name . ']" value="1" ' . ($desc->getValue() ? 'checked="checked"' : '') . '/>';
                    } else {
                        $props .= sprintf('<input type="text" size="%d" name="properties[%s]" value="%s" />', strlen($desc->getValue()), $prop_name, $desc->getValue());
                    }
                    $props .= '</td></tr>';
                    $iter->next();
                }
                $output = '<h3>' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_plugin', array($name)) . '</h3>';
                $output .= '<form action="' . $_SERVER['REQUEST_URI'] . '" method="POST"><div><input type="hidden" name="plugin_id" value="' . $request->get('plugin_id') . '" /></div>';
                $output .= '<table border="0" cellpadding="0" cellspacing="2" class="pluginsadministration_plugin_properties">';
                $output .= '<tbody>';
                $output .= '<tr>';
                $output .= '<td class="pluginsadministration_label">' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_name:') . ' </td>';
                $output .= '<td>' . $descriptor->getFullName() . '</td>';
                $output .= '</tr>';
                $output .= '<tr>';
                $output .= '<td class="pluginsadministration_label">' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_version:') . ' </td>';
                $output .= '<td>' . $descriptor->getVersion() . '</td>';
                $output .= '</tr>';
                $output .= '<tr>';
                $output .= '<td class="pluginsadministration_label">' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_description:') . ' </td>';
                $output .= '<td>' . $descriptor->getDescription() . '</td>';
                $output .= '</tr>';
                $output .= '<tr>';
                $output .= '<td class="pluginsadministration_label">' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_scope:') . ' </td>';
                $output .= '<td>' . $GLOBALS['Language']->getText('plugin_pluginsadministration', 'scope_' . $plugin->getScope()) . '</td>';
                $output .= '</tr>';
                $output .= '<tr>';
                $output .= '<td class="pluginsadministration_label">' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_hooks:') . ' </td>';
                $output .= '<td>' . $link_to_hooks . '</td>';
                $output .= '</tr>';
                if ($plugin->getScope() == Plugin::SCOPE_PROJECT) {
                    $output .= '<tr>';
                    $output .= '<td class="pluginsadministration_label">' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_projects:') . ' </td>';
                    $output .= '<td>';
                    $_isProjectPluginRestricted = $plugin_manager->isProjectPluginRestricted($plugin);
                    if ($_isProjectPluginRestricted) {
                        $projectIds = $plugin_manager->getAllowedProjects($plugin);
                        if (count($projectIds) > 0) {
                            $projects = '';
                            foreach ($projectIds as $project_id) {
                                if ($p = $pm->getProject($project_id)) {
                                    $projects .= ' ' . $project_id . ' (' . $p->getUnixName() . '),';
                                }
                            }
                            $output .= substr($projects, 0, -1);
                        } else {
                            $output .= $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_no_prj_for_plugin');
                        }
                    } else {
                        $output .= $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_av_for_prj');
                    }
                    $output .= '<br>';
                    $output .= $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_addproject') . ' <span><input name="gen_prop[allowed_project]" id="gen_prop_allowed_project" type="text" value="" /></span>';
                    $output .= '&nbsp;';
                    $output .= $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_delproject') . ' <input name="gen_prop[disallowed_project]" type="text" value="" />';
                    $output .= <<<EOS
                    <style type="text/css">
                    #gen_prop_allowed_project_choices {
                        background:white;
                    }
                    #gen_prop_allowed_project_choices ul {
                        margin:0;
                        padding:0;
                        list-style:none;
                    }
                    #gen_prop_allowed_project_choices ul li.selected {
                        background:#eef;
                    }
                    </style>
                    <script type="text/javascript">
                    Event.observe(window, 'load', function () {
                            var ori = \$('gen_prop_allowed_project');
                            if (ori) {
                                var update = Builder.node('div', {id:'gen_prop_allowed_project_choices', style:'background:white'});
                                Element.hide(update);
                                ori.parentNode.appendChild(update);
                                new Ajax.Autocompleter('gen_prop_allowed_project', update, '?view=ajax_projects', {
                                        tokens: ','
                                });
                            }
                    });
                    </script>
EOS;
                    $yesChecked = 'checked="checked" ';
                    $noChecked = '';
                    if ($_isProjectPluginRestricted) {
                        $yesChecked = '';
                        $noChecked = 'checked="checked" ';
                    }
                    $output .= '<br>';
                    $output .= $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_is_av_for_prj') . '&nbsp;';
                    $output .= $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_yes') . ' <input type="radio" name="gen_prop[prj_restricted]" value="0" ' . $yesChecked . ' />';
                    $output .= $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'properties_no') . ' <input type="radio" name="gen_prop[prj_restricted]" value="1" ' . $noChecked . ' />';
                    $output .= '</td>';
                    $output .= '</tr>';
                }
                if ($props !== '') {
                    $output .= '<tr><td colspan="2"><hr /></td></tr>';
                    $output .= $props;
                }
                if ($props !== '' || $plugin->getScope() == Plugin::SCOPE_PROJECT) {
                    $output .= '<tr><td>&nbsp;</td><td><input type="hidden" name="action" value="change_plugin_properties" /><input type="submit" value="Change Properties" /></td></tr>';
                }
                $output .= '</tbody>';
                $output .= '</table>';
                $output .= '</form>';
                $readme_file = $plugin->getReadme();
                $readme_content = $plugin_manager->fetchFormattedReadme($readme_file);
                if ($readme_content) {
                    $output .= '<h3>Readme</h3>';
                    $output .= $readme_content;
                }
                $output .= '<div><a href="' . $link_to_plugins . '">' . $GLOBALS['Language']->getText('plugin_pluginsadministration_properties', 'return') . '</a></div>';
                echo $output;
            }
        }
    }
 public static function clearInstance()
 {
     self::$instance = null;
 }