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; }
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(); }
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(); }
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 .= ' '; $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') . ' '; $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> </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; }