Ejemplo n.º 1
0
 /**
  * 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));
 }