/** * Formats the information that needs to go in the 'Requires' column. * @param \core\plugininfo\base $plugin the plugin we are rendering the row for. * @param core_plugin_manager $pluginman provides data on all the plugins. * @param string $version * @return string HTML code */ protected function required_column(\core\plugininfo\base $plugin, core_plugin_manager $pluginman, $version) { $requires = array(); if (!empty($plugin->versionrequires)) { if ($plugin->versionrequires <= $version) { $class = 'requires-ok'; } else { $class = 'requires-failed'; } $requires[] = html_writer::tag('li', get_string('moodleversion', 'core_plugin', $plugin->versionrequires), array('class' => $class)); } foreach ($plugin->get_other_required_plugins() as $component => $requiredversion) { $otherplugin = $pluginman->get_plugin_info($component); $actions = array(); if (is_null($otherplugin)) { // The required plugin is not installed. $class = 'requires-failed requires-missing'; $installurl = new moodle_url('https://moodle.org/plugins/view.php', array('plugin' => $component)); $uploadurl = new moodle_url('/admin/tool/installaddon/'); $actions[] = html_writer::link($installurl, get_string('dependencyinstall', 'core_plugin')); $actions[] = html_writer::link($uploadurl, get_string('dependencyupload', 'core_plugin')); } else { if ($requiredversion != ANY_VERSION and $otherplugin->versiondisk < $requiredversion) { // The required plugin is installed but needs to be updated. $class = 'requires-failed requires-outdated'; if (!$otherplugin->is_standard()) { $updateurl = new moodle_url($this->page->url, array('sesskey' => sesskey(), 'fetchupdates' => 1)); $actions[] = html_writer::link($updateurl, get_string('checkforupdates', 'core_plugin')); } } else { // Already installed plugin with sufficient version. $class = 'requires-ok'; } } if ($requiredversion != ANY_VERSION) { $str = 'otherpluginversion'; } else { $str = 'otherplugin'; } $requires[] = html_writer::tag('li', html_writer::div(get_string($str, 'core_plugin', array('component' => $component, 'version' => $requiredversion)), 'component') . html_writer::div(implode(' | ', $actions), 'actions'), array('class' => $class)); } if (!$requires) { return ''; } return html_writer::tag('ul', implode("\n", $requires)); }
/** * Formats the information that needs to go in the 'Requires' column. * @param \core\plugininfo\base $plugin the plugin we are rendering the row for. * @param core_plugin_manager $pluginman provides data on all the plugins. * @param string $version * @return string HTML code */ protected function required_column(\core\plugininfo\base $plugin, core_plugin_manager $pluginman, $version) { $requires = array(); if (!empty($plugin->versionrequires)) { if ($plugin->versionrequires <= $version) { $class = 'requires-ok'; } else { $class = 'requires-failed'; } $requires[] = html_writer::tag('li', get_string('moodleversion', 'core_plugin', $plugin->versionrequires), array('class' => $class)); } foreach ($plugin->get_other_required_plugins() as $component => $requiredversion) { $ok = true; $otherplugin = $pluginman->get_plugin_info($component); if (is_null($otherplugin)) { $ok = false; } else { if ($requiredversion != ANY_VERSION and $otherplugin->versiondisk < $requiredversion) { $ok = false; } } if ($ok) { $class = 'requires-ok'; } else { $class = 'requires-failed'; } if ($requiredversion != ANY_VERSION) { $str = 'otherpluginversion'; } else { $str = 'otherplugin'; } $componenturl = new moodle_url('https://moodle.org/plugins/view.php?plugin=' . $component); $componenturl = html_writer::tag('a', $component, array('href' => $componenturl->out())); $requires[] = html_writer::tag('li', get_string($str, 'core_plugin', array('component' => $componenturl, 'version' => $requiredversion)), array('class' => $class)); } if (!$requires) { return ''; } return html_writer::tag('ul', implode("\n", $requires)); }