Línea 841... |
Línea 841... |
841 |
if (!$registered && site_is_public()) {
|
841 |
if (!$registered && site_is_public()) {
|
842 |
if (has_capability('moodle/site:config', context_system::instance())) {
|
842 |
if (has_capability('moodle/site:config', context_system::instance())) {
|
843 |
$registerbutton = $this->single_button(new moodle_url('/admin/registration/index.php'),
|
843 |
$registerbutton = $this->single_button(new moodle_url('/admin/registration/index.php'),
|
844 |
get_string('register', 'admin'));
|
844 |
get_string('register', 'admin'));
|
845 |
$str = 'registrationwarning';
|
845 |
$str = 'registrationwarning';
|
- |
|
846 |
$type = 'error alert alert-danger';
|
846 |
} else {
|
847 |
} else {
|
847 |
$registerbutton = '';
|
848 |
$registerbutton = '';
|
848 |
$str = 'registrationwarningcontactadmin';
|
849 |
$str = 'registrationwarningcontactadmin';
|
- |
|
850 |
$type = 'info';
|
849 |
}
|
851 |
}
|
Línea 850... |
Línea 852... |
850 |
|
852 |
|
851 |
return $this->warning( get_string($str, 'admin')
|
- |
|
852 |
. ' ' . $this->help_icon('registration', 'admin') . $registerbutton ,
|
- |
|
853 |
'error alert alert-danger');
|
853 |
return $this->warning( get_string($str, 'admin') . ' ' . $registerbutton , $type);
|
Línea 854... |
Línea 854... |
854 |
}
|
854 |
}
|
855 |
|
855 |
|
Línea 872... |
Línea 872... |
872 |
* @return string HTML to output.
|
872 |
* @return string HTML to output.
|
873 |
*/
|
873 |
*/
|
874 |
protected function mobile_configuration_warning($mobileconfigured) {
|
874 |
protected function mobile_configuration_warning($mobileconfigured) {
|
875 |
$output = '';
|
875 |
$output = '';
|
876 |
if (!$mobileconfigured) {
|
876 |
if (!$mobileconfigured) {
|
877 |
$settingslink = new moodle_url('/admin/settings.php', ['section' => 'mobilesettings']);
|
877 |
$settingslink = new moodle_url('/admin/search.php', ['query' => 'enablemobilewebservice']);
|
878 |
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'));
|
878 |
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'), 'get');
|
879 |
$output .= $this->warning(get_string('mobilenotconfiguredwarning', 'admin') . ' ' . $configurebutton);
|
879 |
$output .= $this->warning(get_string('mobilenotconfiguredwarning', 'admin') . ' ' . $configurebutton);
|
880 |
}
|
880 |
}
|
Línea 881... |
Línea 881... |
881 |
|
881 |
|
882 |
return $output;
|
882 |
return $output;
|
Línea 1002... |
Línea 1002... |
1002 |
* @return string HTML to output.
|
1002 |
* @return string HTML to output.
|
1003 |
*/
|
1003 |
*/
|
1004 |
function upgrade_reload($url) {
|
1004 |
function upgrade_reload($url) {
|
1005 |
return html_writer::empty_tag('br') .
|
1005 |
return html_writer::empty_tag('br') .
|
1006 |
html_writer::tag('div',
|
1006 |
html_writer::tag('div',
|
1007 |
html_writer::link($url, $this->pix_icon('i/reload', '', '', array('class' => 'icon icon-pre')) .
|
1007 |
html_writer::link($url, $this->pix_icon('i/reload', '', '', ['class' => 'icon']) .
|
1008 |
get_string('reload'), array('title' => get_string('reload'))),
|
1008 |
get_string('reload'), array('title' => get_string('reload'))),
|
1009 |
array('class' => 'continuebutton')) . html_writer::empty_tag('br');
|
1009 |
array('class' => 'continuebutton')) . html_writer::empty_tag('br');
|
1010 |
}
|
1010 |
}
|
Línea 1011... |
Línea 1011... |
1011 |
|
1011 |
|
Línea 1022... |
Línea 1022... |
1022 |
* @param array $options rendering options
|
1022 |
* @param array $options rendering options
|
1023 |
* @return string HTML code
|
1023 |
* @return string HTML code
|
1024 |
*/
|
1024 |
*/
|
1025 |
public function plugins_check_table(core_plugin_manager $pluginman, $version, array $options = array()) {
|
1025 |
public function plugins_check_table(core_plugin_manager $pluginman, $version, array $options = array()) {
|
1026 |
global $CFG;
|
1026 |
global $CFG;
|
1027 |
$plugininfo = $pluginman->get_plugins();
|
1027 |
$plugininfo = $pluginman->get_plugins(true);
|
Línea 1028... |
Línea 1028... |
1028 |
|
1028 |
|
1029 |
if (empty($plugininfo)) {
|
1029 |
if (empty($plugininfo)) {
|
1030 |
return '';
|
1030 |
return '';
|
Línea 1057... |
Línea 1057... |
1057 |
$installabortable = $pluginman->list_cancellable_installations();
|
1057 |
$installabortable = $pluginman->list_cancellable_installations();
|
1058 |
// List of all components we can cancel upgrade of.
|
1058 |
// List of all components we can cancel upgrade of.
|
1059 |
$upgradeabortable = $pluginman->list_restorable_archives();
|
1059 |
$upgradeabortable = $pluginman->list_restorable_archives();
|
Línea 1060... |
Línea 1060... |
1060 |
|
1060 |
|
- |
|
1061 |
foreach ($plugininfo as $type => $plugins) {
|
- |
|
1062 |
// Skip deleted plugin types.
|
- |
|
1063 |
if (\core_component::is_deleted_plugin_type($type)) {
|
- |
|
1064 |
continue;
|
- |
|
1065 |
}
|
- |
|
1066 |
|
- |
|
1067 |
// Skip deprecated plugintypes having no installed plugins, in which case there is nothing to report.
|
- |
|
1068 |
if (\core_component::is_deprecated_plugin_type($type)) {
|
- |
|
1069 |
$reportableplugins = array_filter($plugins, function($plugininfo) {
|
- |
|
1070 |
return $plugininfo->versiondb != null;
|
- |
|
1071 |
});
|
- |
|
1072 |
if (empty($reportableplugins)) {
|
- |
|
1073 |
continue;
|
- |
|
1074 |
}
|
Línea 1061... |
Línea 1075... |
1061 |
foreach ($plugininfo as $type => $plugins) {
|
1075 |
}
|
1062 |
|
1076 |
|
1063 |
$header = new html_table_cell($pluginman->plugintype_name_plural($type));
|
1077 |
$header = new html_table_cell($pluginman->plugintype_name_plural($type));
|
1064 |
$header->header = true;
|
1078 |
$header->header = true;
|
Línea 1105... |
Línea 1119... |
1105 |
html_writer::span($plugin->displayname, 'pluginname').
|
1119 |
html_writer::span($plugin->displayname, 'pluginname').
|
1106 |
html_writer::div($plugin->get_dir(), 'plugindir text-muted small')
|
1120 |
html_writer::div($plugin->get_dir(), 'plugindir text-muted small')
|
1107 |
);
|
1121 |
);
|
Línea 1108... |
Línea 1122... |
1108 |
|
1122 |
|
1109 |
$versiondb = new html_table_cell($plugin->versiondb);
|
1123 |
$versiondb = new html_table_cell($plugin->versiondb);
|
Línea 1110... |
Línea 1124... |
1110 |
$versiondisk = new html_table_cell($plugin->versiondisk);
|
1124 |
$versiondisk = $plugin->is_deprecated() ? new html_table_cell() : new html_table_cell($plugin->versiondisk);
|
1111 |
|
1125 |
|
1112 |
if ($isstandard = $plugin->is_standard()) {
|
1126 |
if ($isstandard = $plugin->is_standard()) {
|
1113 |
$row->attributes['class'] .= ' standard';
|
1127 |
$row->attributes['class'] .= ' standard';
|
Línea 1124... |
Línea 1138... |
1124 |
$otherpluginsdependencies = $pluginman->are_dependencies_satisfied($plugin->get_other_required_plugins());
|
1138 |
$otherpluginsdependencies = $pluginman->are_dependencies_satisfied($plugin->get_other_required_plugins());
|
1125 |
$dependenciesok = $coredependency && $otherpluginsdependencies && $incompatibledependency;
|
1139 |
$dependenciesok = $coredependency && $otherpluginsdependencies && $incompatibledependency;
|
Línea 1126... |
Línea 1140... |
1126 |
|
1140 |
|
1127 |
$statuscode = $plugin->get_status();
|
1141 |
$statuscode = $plugin->get_status();
|
- |
|
1142 |
$row->attributes['class'] .= ' status-' . $statuscode;
|
- |
|
1143 |
if ($plugin->is_deprecated()) {
|
- |
|
1144 |
$row->attributes['class'] .= ' deprecatedtype';
|
1128 |
$row->attributes['class'] .= ' status-' . $statuscode;
|
1145 |
}
|
1129 |
$statusclass = 'statustext badge ';
|
1146 |
$statusclass = 'statustext badge ';
|
1130 |
switch ($statuscode) {
|
1147 |
switch ($statuscode) {
|
1131 |
case core_plugin_manager::PLUGIN_STATUS_NEW:
|
1148 |
case core_plugin_manager::PLUGIN_STATUS_NEW:
|
1132 |
$statusclass .= $dependenciesok ? 'bg-success text-white' : 'bg-warning text-dark';
|
1149 |
$statusclass .= $dependenciesok ? 'bg-success text-white' : 'bg-warning text-dark';
|
Línea 1144... |
Línea 1161... |
1144 |
$statusclass .= $dependenciesok ? 'bg-light text-dark' : 'bg-warning text-dark';
|
1161 |
$statusclass .= $dependenciesok ? 'bg-light text-dark' : 'bg-warning text-dark';
|
1145 |
break;
|
1162 |
break;
|
1146 |
}
|
1163 |
}
|
1147 |
$status = html_writer::span(get_string('status_' . $statuscode, 'core_plugin'), $statusclass);
|
1164 |
$status = html_writer::span(get_string('status_' . $statuscode, 'core_plugin'), $statusclass);
|
Línea -... |
Línea 1165... |
- |
|
1165 |
|
- |
|
1166 |
$deprecatedstatus = '';
|
- |
|
1167 |
if ($plugin->is_deprecated()) {
|
- |
|
1168 |
// During upgrade, omit the status for deprecated plugin types, unless it's 'missing from disk'.
|
- |
|
1169 |
// Deprecated plugins cannot be installed, upgraded, downgraded, and won't be automatically deleted.
|
- |
|
1170 |
$status = in_array($statuscode,
|
- |
|
1171 |
[core_plugin_manager::PLUGIN_STATUS_MISSING, core_plugin_manager::PLUGIN_STATUS_DELETE]) ? $status : '';
|
- |
|
1172 |
$deprecatedstatus = html_writer::span(
|
- |
|
1173 |
get_string('deprecated_type', 'core_plugin'),
|
- |
|
1174 |
'statustext badge bg-danger text-white'
|
- |
|
1175 |
);
|
- |
|
1176 |
}
|
1148 |
|
1177 |
|
1149 |
if (!empty($installabortable[$plugin->component])) {
|
1178 |
if (!empty($installabortable[$plugin->component])) {
|
1150 |
$status .= $this->output->single_button(
|
1179 |
$status .= $this->output->single_button(
|
1151 |
new moodle_url($this->page->url, array('abortinstall' => $plugin->component, 'confirmplugincheck' => 0)),
|
1180 |
new moodle_url($this->page->url, array('abortinstall' => $plugin->component, 'confirmplugincheck' => 0)),
|
1152 |
get_string('cancelinstallone', 'core_plugin'),
|
1181 |
get_string('cancelinstallone', 'core_plugin'),
|
Línea 1169... |
Línea 1198... |
1169 |
foreach ($availableupdates as $availableupdate) {
|
1198 |
foreach ($availableupdates as $availableupdate) {
|
1170 |
$status .= $this->plugin_available_update_info($pluginman, $availableupdate);
|
1199 |
$status .= $this->plugin_available_update_info($pluginman, $availableupdate);
|
1171 |
}
|
1200 |
}
|
1172 |
}
|
1201 |
}
|
Línea 1173... |
Línea 1202... |
1173 |
|
1202 |
|
1174 |
$status = new html_table_cell($sourcelabel.' '.$status);
|
1203 |
$status = new html_table_cell($sourcelabel.' '.$status.' '.$deprecatedstatus);
|
1175 |
if ($plugin->pluginsupported != null) {
|
1204 |
if ($plugin->pluginsupported != null) {
|
1176 |
$requires = new html_table_cell($this->required_column($plugin, $pluginman, $version, $CFG->branch));
|
1205 |
$requires = new html_table_cell($this->required_column($plugin, $pluginman, $version, $CFG->branch));
|
1177 |
} else {
|
1206 |
} else {
|
1178 |
$requires = new html_table_cell($this->required_column($plugin, $pluginman, $version));
|
1207 |
$requires = new html_table_cell($this->required_column($plugin, $pluginman, $version));
|
Línea 1179... |
Línea 1208... |
1179 |
}
|
1208 |
}
|
1180 |
|
1209 |
|
- |
|
1210 |
$statusisboring = in_array($statuscode, array(
|
Línea 1181... |
Línea 1211... |
1181 |
$statusisboring = in_array($statuscode, array(
|
1211 |
core_plugin_manager::PLUGIN_STATUS_NODB, core_plugin_manager::PLUGIN_STATUS_UPTODATE))
|
1182 |
core_plugin_manager::PLUGIN_STATUS_NODB, core_plugin_manager::PLUGIN_STATUS_UPTODATE));
|
1212 |
&& !$plugin->is_deprecated();
|
1183 |
|
1213 |
|
1184 |
if ($options['xdep']) {
|
1214 |
if ($options['xdep']) {
|
Línea 1239... |
Línea 1269... |
1239 |
if ($installableupdates) {
|
1269 |
if ($installableupdates) {
|
1240 |
$out .= $this->output->single_button(
|
1270 |
$out .= $this->output->single_button(
|
1241 |
new moodle_url($this->page->url, array('installupdatex' => 1)),
|
1271 |
new moodle_url($this->page->url, array('installupdatex' => 1)),
|
1242 |
get_string('updateavailableinstallall', 'core_admin', count($installableupdates)),
|
1272 |
get_string('updateavailableinstallall', 'core_admin', count($installableupdates)),
|
1243 |
'post',
|
1273 |
'post',
|
1244 |
array('class' => 'singlebutton updateavailableinstallall mr-1')
|
1274 |
array('class' => 'singlebutton updateavailableinstallall me-1')
|
1245 |
);
|
1275 |
);
|
1246 |
}
|
1276 |
}
|
Línea 1247... |
Línea 1277... |
1247 |
|
1277 |
|
1248 |
if ($installabortable) {
|
1278 |
if ($installabortable) {
|
1249 |
$out .= $this->output->single_button(
|
1279 |
$out .= $this->output->single_button(
|
1250 |
new moodle_url($this->page->url, array('abortinstallx' => 1, 'confirmplugincheck' => 0)),
|
1280 |
new moodle_url($this->page->url, array('abortinstallx' => 1, 'confirmplugincheck' => 0)),
|
1251 |
get_string('cancelinstallall', 'core_plugin', count($installabortable)),
|
1281 |
get_string('cancelinstallall', 'core_plugin', count($installabortable)),
|
1252 |
'post',
|
1282 |
'post',
|
1253 |
array('class' => 'singlebutton cancelinstallall mr-1')
|
1283 |
array('class' => 'singlebutton cancelinstallall me-1')
|
1254 |
);
|
1284 |
);
|
Línea 1255... |
Línea 1285... |
1255 |
}
|
1285 |
}
|
1256 |
|
1286 |
|
1257 |
if ($upgradeabortable) {
|
1287 |
if ($upgradeabortable) {
|
1258 |
$out .= $this->output->single_button(
|
1288 |
$out .= $this->output->single_button(
|
1259 |
new moodle_url($this->page->url, array('abortupgradex' => 1)),
|
1289 |
new moodle_url($this->page->url, array('abortupgradex' => 1)),
|
1260 |
get_string('cancelupgradeall', 'core_plugin', count($upgradeabortable)),
|
1290 |
get_string('cancelupgradeall', 'core_plugin', count($upgradeabortable)),
|
1261 |
'post',
|
1291 |
'post',
|
1262 |
array('class' => 'singlebutton cancelupgradeall mr-1')
|
1292 |
array('class' => 'singlebutton cancelupgradeall me-1')
|
Línea 1263... |
Línea 1293... |
1263 |
);
|
1293 |
);
|
1264 |
}
|
1294 |
}
|
1265 |
|
1295 |
|
Línea 1266... |
Línea 1296... |
1266 |
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 0)),
|
1296 |
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 0)),
|
1267 |
get_string('plugincheckattention', 'core_plugin')).' '.html_writer::span($sumattention, 'badge bg-light text-dark'),
|
1297 |
get_string('plugincheckattention', 'core_plugin')).' '.html_writer::span($sumattention, 'badge bg-light text-dark'),
|
1268 |
'btn btn-link mr-1');
|
1298 |
'btn btn-link me-1');
|
Línea 1269... |
Línea 1299... |
1269 |
|
1299 |
|
1270 |
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 1)),
|
1300 |
$out .= html_writer::div(html_writer::link(new moodle_url($this->page->url, array('showallplugins' => 1)),
|
Línea 1271... |
Línea 1301... |
1271 |
get_string('plugincheckall', 'core_plugin')).' '.html_writer::span($sumtotal, 'badge bg-light text-dark'),
|
1301 |
get_string('plugincheckall', 'core_plugin')).' '.html_writer::span($sumtotal, 'badge bg-light text-dark'),
|
Línea 1286... |
Línea 1316... |
1286 |
*
|
1316 |
*
|
1287 |
* @param null|moodle_url $continue URL for the continue button, should it be displayed
|
1317 |
* @param null|moodle_url $continue URL for the continue button, should it be displayed
|
1288 |
* @param null|moodle_url $cancel URL for the cancel link, defaults to the current page
|
1318 |
* @param null|moodle_url $cancel URL for the cancel link, defaults to the current page
|
1289 |
* @return string HTML
|
1319 |
* @return string HTML
|
1290 |
*/
|
1320 |
*/
|
1291 |
public function plugins_management_confirm_buttons(moodle_url $continue=null, moodle_url $cancel=null) {
|
1321 |
public function plugins_management_confirm_buttons(?moodle_url $continue=null, ?moodle_url $cancel=null) {
|
Línea 1292... |
Línea 1322... |
1292 |
|
1322 |
|
Línea 1293... |
Línea 1323... |
1293 |
$out = html_writer::start_div('plugins-management-confirm-buttons');
|
1323 |
$out = html_writer::start_div('plugins-management-confirm-buttons');
|
1294 |
|
1324 |
|
Línea 1374... |
Línea 1404... |
1374 |
if ($installable) {
|
1404 |
if ($installable) {
|
1375 |
$out .= $this->output->single_button(
|
1405 |
$out .= $this->output->single_button(
|
1376 |
new moodle_url($this->page->url, array('installdepx' => 1)),
|
1406 |
new moodle_url($this->page->url, array('installdepx' => 1)),
|
1377 |
get_string('dependencyinstallmissing', 'core_plugin', count($installable)),
|
1407 |
get_string('dependencyinstallmissing', 'core_plugin', count($installable)),
|
1378 |
'post',
|
1408 |
'post',
|
1379 |
array('class' => 'singlebutton dependencyinstallmissing d-inline-block mr-1')
|
1409 |
array('class' => 'singlebutton dependencyinstallmissing d-inline-block me-1')
|
1380 |
);
|
1410 |
);
|
1381 |
}
|
1411 |
}
|
Línea 1382... |
Línea 1412... |
1382 |
|
1412 |
|
1383 |
$out .= html_writer::div(html_writer::link(new moodle_url('/admin/tool/installaddon/'),
|
1413 |
$out .= html_writer::div(html_writer::link(new moodle_url('/admin/tool/installaddon/'),
|
1384 |
get_string('dependencyuploadmissing', 'core_plugin'), array('class' => 'btn btn-link')),
|
1414 |
get_string('dependencyuploadmissing', 'core_plugin'), array('class' => 'btn btn-link')),
|
Línea 1385... |
Línea 1415... |
1385 |
'dependencyuploadmissing d-inline-block mr-1');
|
1415 |
'dependencyuploadmissing d-inline-block me-1');
|
Línea 1386... |
Línea 1416... |
1386 |
|
1416 |
|
1387 |
$out .= $this->output->container_end(); // End of .plugins-check-dependencies-actions container.
|
1417 |
$out .= $this->output->container_end(); // End of .plugins-check-dependencies-actions container.
|
Línea 1446... |
Línea 1476... |
1446 |
$info .= $this->output->container_start('actions');
|
1476 |
$info .= $this->output->container_start('actions');
|
Línea 1447... |
Línea 1477... |
1447 |
|
1477 |
|
1448 |
$info .= html_writer::div(
|
1478 |
$info .= html_writer::div(
|
1449 |
html_writer::link('https://moodle.org/plugins/view.php?plugin='.$plugin->component,
|
1479 |
html_writer::link('https://moodle.org/plugins/view.php?plugin='.$plugin->component,
|
1450 |
get_string('misdepinfoplugin', 'core_plugin')),
|
1480 |
get_string('misdepinfoplugin', 'core_plugin')),
|
1451 |
'misdepinfoplugin d-inline-block mr-3 mb-1'
|
1481 |
'misdepinfoplugin d-inline-block me-3 mb-1'
|
Línea 1452... |
Línea 1482... |
1452 |
);
|
1482 |
);
|
1453 |
|
1483 |
|
1454 |
$info .= html_writer::div(
|
1484 |
$info .= html_writer::div(
|
1455 |
html_writer::link('https://moodle.org/plugins/pluginversion.php?id='.$plugin->version->id,
|
1485 |
html_writer::link('https://moodle.org/plugins/pluginversion.php?id='.$plugin->version->id,
|
1456 |
get_string('misdepinfoversion', 'core_plugin')),
|
1486 |
get_string('misdepinfoversion', 'core_plugin')),
|
Línea 1457... |
Línea 1487... |
1457 |
'misdepinfoversion d-inline-block mr-3 mb-1'
|
1487 |
'misdepinfoversion d-inline-block me-3 mb-1'
|
1458 |
);
|
1488 |
);
|
Línea 1459... |
Línea 1489... |
1459 |
|
1489 |
|
1460 |
$info .= html_writer::div(html_writer::link($plugin->version->downloadurl, get_string('download')),
|
1490 |
$info .= html_writer::div(html_writer::link($plugin->version->downloadurl, get_string('download')),
|
1461 |
'misdepdownload d-inline-block mr-3 mb-1');
|
1491 |
'misdepdownload d-inline-block me-3 mb-1');
|
1462 |
|
1492 |
|
1463 |
if ($pluginman->is_remote_plugin_installable($plugin->component, $plugin->version->version, $reason)) {
|
1493 |
if ($pluginman->is_remote_plugin_installable($plugin->component, $plugin->version->version, $reason)) {
|
1464 |
$info .= $this->output->single_button(
|
1494 |
$info .= $this->output->single_button(
|
1465 |
new moodle_url($this->page->url, array('installdep' => $plugin->component)),
|
1495 |
new moodle_url($this->page->url, array('installdep' => $plugin->component)),
|
1466 |
get_string('dependencyinstall', 'core_plugin'),
|
1496 |
get_string('dependencyinstall', 'core_plugin'),
|
1467 |
'post',
|
1497 |
'post',
|
1468 |
array('class' => 'singlebutton dependencyinstall mr-3 mb-1')
|
1498 |
array('class' => 'singlebutton dependencyinstall me-3 mb-1')
|
1469 |
);
|
1499 |
);
|
1470 |
} else {
|
1500 |
} else {
|
1471 |
$reasonhelp = $this->info_remote_plugin_not_installable($reason);
|
1501 |
$reasonhelp = $this->info_remote_plugin_not_installable($reason);
|
Línea 1472... |
Línea 1502... |
1472 |
if ($reasonhelp) {
|
1502 |
if ($reasonhelp) {
|
Línea 1653... |
Línea 1683... |
1653 |
* @param array $options filtering options
|
1683 |
* @param array $options filtering options
|
1654 |
* @return string as usually
|
1684 |
* @return string as usually
|
1655 |
*/
|
1685 |
*/
|
1656 |
public function plugins_overview_panel(core_plugin_manager $pluginman, array $options = array()) {
|
1686 |
public function plugins_overview_panel(core_plugin_manager $pluginman, array $options = array()) {
|
Línea 1657... |
Línea 1687... |
1657 |
|
1687 |
|
- |
|
1688 |
$plugininfo = $pluginman->get_plugins(true);
|
Línea 1658... |
Línea 1689... |
1658 |
$plugininfo = $pluginman->get_plugins();
|
1689 |
$this->page->requires->js_call_amd('core_admin/plugins_overview', 'init');
|
Línea 1659... |
Línea 1690... |
1659 |
|
1690 |
|
- |
|
1691 |
$numtotal = $numextension = $numupdatable = $numinstallable = $nummissing = $numnew = 0;
|
- |
|
1692 |
|
- |
|
1693 |
foreach ($plugininfo as $type => $plugins) {
|
- |
|
1694 |
if (\core_component::is_deleted_plugin_type($type)) {
|
- |
|
1695 |
continue;
|
- |
|
1696 |
}
|
- |
|
1697 |
|
- |
|
1698 |
// Skip deprecated plugintypes having no installed plugins, in which case there is nothing to report.
|
- |
|
1699 |
if (\core_component::is_deprecated_plugin_type($type)) {
|
- |
|
1700 |
$reportableplugins = array_filter($plugins, function($plugininfo) {
|
- |
|
1701 |
return $plugininfo->versiondb != null;
|
- |
|
1702 |
});
|
- |
|
1703 |
if (empty($reportableplugins)) {
|
- |
|
1704 |
continue;
|
1660 |
$numtotal = $numextension = $numupdatable = $numinstallable = 0;
|
1705 |
}
|
1661 |
|
1706 |
}
|
1662 |
foreach ($plugininfo as $type => $plugins) {
|
1707 |
|
1663 |
foreach ($plugins as $name => $plugin) {
|
1708 |
foreach ($plugins as $name => $plugin) {
|
1664 |
if ($res = $plugin->available_updates()) {
|
1709 |
if ($res = $plugin->available_updates()) {
|
Línea 1669... |
Línea 1714... |
1669 |
break;
|
1714 |
break;
|
1670 |
}
|
1715 |
}
|
1671 |
}
|
1716 |
}
|
1672 |
}
|
1717 |
}
|
1673 |
if ($plugin->get_status() === core_plugin_manager::PLUGIN_STATUS_MISSING) {
|
1718 |
if ($plugin->get_status() === core_plugin_manager::PLUGIN_STATUS_MISSING) {
|
- |
|
1719 |
$nummissing++;
|
1674 |
continue;
|
1720 |
continue;
|
1675 |
}
|
1721 |
}
|
- |
|
1722 |
if ($plugin->get_status() === core_plugin_manager::PLUGIN_STATUS_NEW) {
|
- |
|
1723 |
$numnew++;
|
- |
|
1724 |
}
|
1676 |
$numtotal++;
|
1725 |
$numtotal++;
|
1677 |
if (!$plugin->is_standard()) {
|
1726 |
if (!$plugin->is_standard()) {
|
1678 |
$numextension++;
|
1727 |
$numextension++;
|
1679 |
}
|
1728 |
}
|
1680 |
}
|
1729 |
}
|
1681 |
}
|
1730 |
}
|
Línea 1682... |
Línea 1731... |
1682 |
|
1731 |
|
1683 |
$infoall = html_writer::link(
|
1732 |
$infoall = html_writer::link(
|
1684 |
new moodle_url($this->page->url, array('contribonly' => 0, 'updatesonly' => 0)),
|
1733 |
$this->page->url,
|
1685 |
get_string('overviewall', 'core_plugin'),
|
1734 |
get_string('overviewall', 'core_plugin'),
|
1686 |
array('title' => get_string('filterall', 'core_plugin'))
|
1735 |
['title' => get_string('filterall', 'core_plugin'), 'data-filterby' => 'all', 'class' => 'active']
|
Línea 1687... |
Línea 1736... |
1687 |
).' '.html_writer::span($numtotal, 'badge number number-all');
|
1736 |
).' '.html_writer::span($numtotal, 'badge text-dark number number-all');
|
1688 |
|
1737 |
|
1689 |
$infoext = html_writer::link(
|
1738 |
$infoext = html_writer::link(
|
1690 |
new moodle_url($this->page->url, array('contribonly' => 1, 'updatesonly' => 0)),
|
1739 |
new moodle_url($this->page->url, [], 'additional'),
|
1691 |
get_string('overviewext', 'core_plugin'),
|
1740 |
get_string('overviewext', 'core_plugin'),
|
Línea 1692... |
Línea 1741... |
1692 |
array('title' => get_string('filtercontribonly', 'core_plugin'))
|
1741 |
['title' => get_string('filtercontribonly', 'core_plugin'), 'data-filterby' => 'additional']
|
1693 |
).' '.html_writer::span($numextension, 'badge number number-additional');
|
1742 |
).' '.html_writer::span($numextension, 'badge text-dark number number-additional');
|
1694 |
|
1743 |
|
1695 |
if ($numupdatable) {
|
1744 |
if ($numupdatable) {
|
1696 |
$infoupdatable = html_writer::link(
|
1745 |
$infoupdatable = html_writer::link(
|
1697 |
new moodle_url($this->page->url, array('contribonly' => 0, 'updatesonly' => 1)),
|
1746 |
new moodle_url($this->page->url, [], 'updatable'),
|
1698 |
get_string('overviewupdatable', 'core_plugin'),
|
1747 |
get_string('overviewupdatable', 'core_plugin'),
|
1699 |
array('title' => get_string('filterupdatesonly', 'core_plugin'))
|
1748 |
['title' => get_string('filterupdatesonly', 'core_plugin'), 'data-filterby' => 'updatable']
|
1700 |
).' '.html_writer::span($numupdatable, 'badge bg-info text-white number number-updatable');
|
1749 |
).' '.html_writer::span($numupdatable, 'badge bg-info text-white number number-updatable');
|
1701 |
} else {
|
1750 |
} else {
|
Línea -... |
Línea 1751... |
- |
|
1751 |
// No updates, or the notifications disabled.
|
- |
|
1752 |
$infoupdatable = '';
|
- |
|
1753 |
}
|
- |
|
1754 |
|
- |
|
1755 |
if ($numnew) {
|
1702 |
// No updates, or the notifications disabled.
|
1756 |
$infonew = html_writer::link(
|
- |
|
1757 |
new moodle_url($this->page->url, [], 'newplugin'),
|
- |
|
1758 |
get_string('status_new', 'plugin'),
|
- |
|
1759 |
['title' => get_string('filternewpluginsonly', 'core_plugin'), 'data-filterby' => 'newplugin']
|
Línea 1703... |
Línea 1760... |
1703 |
$infoupdatable = '';
|
1760 |
).' '.html_writer::span($numnew, 'badge bg-success text-white number number-newplugin');
|
- |
|
1761 |
} else {
|
1704 |
}
|
1762 |
$infonew = '';
|
1705 |
|
1763 |
}
|
1706 |
$out = html_writer::start_div('', array('id' => 'plugins-overview-panel'));
|
1764 |
|
- |
|
1765 |
if ($nummissing) {
|
- |
|
1766 |
$infomissing = html_writer::link(
|
- |
|
1767 |
new moodle_url($this->page->url, [], 'missing'),
|
1707 |
|
1768 |
get_string('status_missing', 'plugin'),
|
Línea -... |
Línea 1769... |
- |
|
1769 |
['title' => get_string('filtermissingonly', 'core_plugin'), 'data-filterby' => 'missing']
|
- |
|
1770 |
).' '.html_writer::span($nummissing, 'badge bg-danger text-white number number-missing');
|
1708 |
if (!empty($options['updatesonly'])) {
|
1771 |
} else {
|
1709 |
$out .= $this->output->heading(get_string('overviewupdatable', 'core_plugin'), 3);
|
1772 |
$infomissing = '';
|
1710 |
} else if (!empty($options['contribonly'])) {
|
1773 |
}
|
1711 |
$out .= $this->output->heading(get_string('overviewext', 'core_plugin'), 3);
|
1774 |
|
1712 |
}
|
1775 |
$out = html_writer::start_div('', ['id' => 'plugins-overview-panel']);
|
1713 |
|
1776 |
|
1714 |
if ($numinstallable) {
|
1777 |
if ($numinstallable) {
|
1715 |
$out .= $this->output->single_button(
|
1778 |
$out .= $this->output->single_button(
|
Línea 1716... |
Línea 1779... |
1716 |
new moodle_url($this->page->url, array('installupdatex' => 1)),
|
1779 |
new moodle_url($this->page->url, array('installupdatex' => 1)),
|
1717 |
get_string('updateavailableinstallall', 'core_admin', $numinstallable),
|
1780 |
get_string('updateavailableinstallall', 'core_admin', $numinstallable),
|
1718 |
'post',
|
1781 |
'post',
|
- |
|
1782 |
array('class' => 'singlebutton updateavailableinstallall')
|
- |
|
1783 |
);
|
Línea 1719... |
Línea 1784... |
1719 |
array('class' => 'singlebutton updateavailableinstallall')
|
1784 |
}
|
Línea 1720... |
Línea 1785... |
1720 |
);
|
1785 |
|
1721 |
}
|
1786 |
$out .= html_writer::div($infoall, 'info info-all').
|
Línea 1738... |
Línea 1803... |
1738 |
* @param array $options filtering options
|
1803 |
* @param array $options filtering options
|
1739 |
* @return string HTML code
|
1804 |
* @return string HTML code
|
1740 |
*/
|
1805 |
*/
|
1741 |
public function plugins_control_panel(core_plugin_manager $pluginman, array $options = array()) {
|
1806 |
public function plugins_control_panel(core_plugin_manager $pluginman, array $options = array()) {
|
Línea 1742... |
Línea 1807... |
1742 |
|
1807 |
|
1743 |
$plugininfo = $pluginman->get_plugins();
|
- |
|
1744 |
|
- |
|
1745 |
// Filter the list of plugins according the options.
|
- |
|
1746 |
if (!empty($options['updatesonly'])) {
|
- |
|
1747 |
$updateable = array();
|
- |
|
1748 |
foreach ($plugininfo as $plugintype => $pluginnames) {
|
- |
|
1749 |
foreach ($pluginnames as $pluginname => $pluginfo) {
|
- |
|
1750 |
$pluginavailableupdates = $pluginfo->available_updates();
|
- |
|
1751 |
if (!empty($pluginavailableupdates)) {
|
- |
|
1752 |
foreach ($pluginavailableupdates as $pluginavailableupdate) {
|
- |
|
1753 |
$updateable[$plugintype][$pluginname] = $pluginfo;
|
- |
|
1754 |
}
|
- |
|
1755 |
}
|
- |
|
1756 |
}
|
- |
|
1757 |
}
|
- |
|
1758 |
$plugininfo = $updateable;
|
- |
|
1759 |
}
|
- |
|
1760 |
|
- |
|
1761 |
if (!empty($options['contribonly'])) {
|
- |
|
1762 |
$contribs = array();
|
- |
|
1763 |
foreach ($plugininfo as $plugintype => $pluginnames) {
|
- |
|
1764 |
foreach ($pluginnames as $pluginname => $pluginfo) {
|
- |
|
1765 |
if (!$pluginfo->is_standard()) {
|
- |
|
1766 |
$contribs[$plugintype][$pluginname] = $pluginfo;
|
- |
|
1767 |
}
|
- |
|
1768 |
}
|
- |
|
1769 |
}
|
- |
|
1770 |
$plugininfo = $contribs;
|
- |
|
1771 |
}
|
- |
|
1772 |
|
- |
|
1773 |
if (empty($plugininfo)) {
|
- |
|
1774 |
return '';
|
- |
|
Línea 1775... |
Línea 1808... |
1775 |
}
|
1808 |
$plugininfo = $pluginman->get_plugins(true);
|
1776 |
|
1809 |
|
1777 |
$table = new html_table();
|
1810 |
$table = new html_table();
|
1778 |
$table->id = 'plugins-control-panel';
|
1811 |
$table->id = 'plugins-control-panel';
|
Línea 1787... |
Línea 1820... |
1787 |
$table->colclasses = array(
|
1820 |
$table->colclasses = array(
|
1788 |
'pluginname', 'version', 'availability', 'settings', 'uninstall', 'notes'
|
1821 |
'pluginname', 'version', 'availability', 'settings', 'uninstall', 'notes'
|
1789 |
);
|
1822 |
);
|
Línea 1790... |
Línea 1823... |
1790 |
|
1823 |
|
- |
|
1824 |
foreach ($plugininfo as $type => $plugins) {
|
- |
|
1825 |
if (\core_component::is_deleted_plugin_type($type)) {
|
- |
|
1826 |
continue;
|
- |
|
1827 |
}
|
- |
|
1828 |
|
- |
|
1829 |
// Skip deprecated plugintypes having no installed plugins, in which case there is nothing to report.
|
- |
|
1830 |
if (\core_component::is_deprecated_plugin_type($type)) {
|
- |
|
1831 |
$reportableplugins = array_filter($plugins, function($plugininfo) {
|
- |
|
1832 |
return $plugininfo->versiondb != null;
|
- |
|
1833 |
});
|
- |
|
1834 |
if (empty($reportableplugins)) {
|
- |
|
1835 |
continue;
|
- |
|
1836 |
}
|
- |
|
1837 |
}
|
1791 |
foreach ($plugininfo as $type => $plugins) {
|
1838 |
|
1792 |
$heading = $pluginman->plugintype_name_plural($type);
|
1839 |
$heading = $pluginman->plugintype_name_plural($type);
|
1793 |
$pluginclass = core_plugin_manager::resolve_plugininfo_class($type);
|
1840 |
$pluginclass = core_plugin_manager::resolve_plugininfo_class($type);
|
1794 |
if ($manageurl = $pluginclass::get_manage_url()) {
|
1841 |
if ($manageurl = $pluginclass::get_manage_url()) {
|
1795 |
$heading .= $this->output->action_icon($manageurl, new pix_icon('i/settings',
|
1842 |
$heading .= $this->output->action_icon($manageurl, new pix_icon('i/settings',
|
Línea 1829... |
Línea 1876... |
1829 |
} else {
|
1876 |
} else {
|
1830 |
$icon = $this->output->spacer();
|
1877 |
$icon = $this->output->spacer();
|
1831 |
}
|
1878 |
}
|
1832 |
$status = $plugin->get_status();
|
1879 |
$status = $plugin->get_status();
|
1833 |
$row->attributes['class'] .= ' status-'.$status;
|
1880 |
$row->attributes['class'] .= ' status-'.$status;
|
- |
|
1881 |
if ($plugin->is_deprecated()) {
|
- |
|
1882 |
$row->attributes['class'] .= ' deprecatedtype';
|
- |
|
1883 |
}
|
1834 |
$pluginname = html_writer::tag('div', $icon.$plugin->displayname, array('class' => 'displayname')).
|
1884 |
$pluginname = html_writer::tag('div', $icon.$plugin->displayname, array('class' => 'displayname')).
|
1835 |
html_writer::tag('div', $plugin->component, array('class' => 'componentname'));
|
1885 |
html_writer::tag('div', $plugin->component, array('class' => 'componentname'));
|
1836 |
$pluginname = new html_table_cell($pluginname);
|
1886 |
$pluginname = new html_table_cell($pluginname);
|
Línea 1837... |
Línea 1887... |
1837 |
|
1887 |
|
Línea 1869... |
Línea 1919... |
1869 |
|
1919 |
|
1870 |
if ($plugin->is_standard()) {
|
1920 |
if ($plugin->is_standard()) {
|
1871 |
$row->attributes['class'] .= ' standard';
|
1921 |
$row->attributes['class'] .= ' standard';
|
1872 |
$source = '';
|
1922 |
$source = '';
|
1873 |
} else {
|
1923 |
} else {
|
1874 |
$row->attributes['class'] .= ' extension';
|
1924 |
$row->attributes['class'] .= ' additional';
|
1875 |
$source = html_writer::div(get_string('sourceext', 'core_plugin'), 'source badge bg-info text-white');
|
1925 |
$source = html_writer::div(get_string('sourceext', 'core_plugin'), 'source badge me-1 text-bg-info');
|
Línea 1876... |
Línea 1926... |
1876 |
}
|
1926 |
}
|
- |
|
1927 |
|
1877 |
|
1928 |
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
|
1878 |
if ($status === core_plugin_manager::PLUGIN_STATUS_MISSING) {
|
1929 |
$row->attributes['class'] .= ' missing';
|
- |
|
1930 |
$msg = html_writer::div(get_string('status_missing', 'core_plugin'), 'statusmsg badge text-bg-danger');
|
1879 |
$msg = html_writer::div(get_string('status_missing', 'core_plugin'), 'statusmsg badge bg-danger text-white');
|
1931 |
} else if ($status === core_plugin_manager::PLUGIN_STATUS_NEW) {
|
1880 |
} else if ($status === core_plugin_manager::PLUGIN_STATUS_NEW) {
|
1932 |
$row->attributes['class'] .= ' newplugin';
|
1881 |
$msg = html_writer::div(get_string('status_new', 'core_plugin'), 'statusmsg badge bg-success text-white');
|
1933 |
$msg = html_writer::div(get_string('status_new', 'core_plugin'), 'statusmsg badge text-bg-success');
|
1882 |
} else {
|
1934 |
} else {
|
Línea -... |
Línea 1935... |
- |
|
1935 |
$msg = '';
|
- |
|
1936 |
}
|
- |
|
1937 |
|
- |
|
1938 |
$deprecatedmsg = '';
|
- |
|
1939 |
if ($plugin->is_deprecated()) {
|
- |
|
1940 |
// Omit the status for deprecated plugin types, unless it's 'missing from disk'.
|
- |
|
1941 |
$msg = $status == core_plugin_manager::PLUGIN_STATUS_MISSING ? $msg : '';
|
- |
|
1942 |
$deprecatedmsg = html_writer::div(
|
- |
|
1943 |
get_string('deprecated_type', 'core_plugin'),
|
- |
|
1944 |
'statusmsg badge bg-danger text-white'
|
1883 |
$msg = '';
|
1945 |
);
|
1884 |
}
|
1946 |
}
|
1885 |
|
1947 |
|
1886 |
$requriedby = $pluginman->other_plugins_that_require($plugin->component);
|
1948 |
$requriedby = $pluginman->other_plugins_that_require($plugin->component);
|
1887 |
if ($requriedby) {
|
1949 |
if ($requriedby) {
|
1888 |
$requiredby = html_writer::tag('div', get_string('requiredby', 'core_plugin', implode(', ', $requriedby)),
|
1950 |
$requiredby = html_writer::tag('div', get_string('requiredby', 'core_plugin', implode(', ', $requriedby)),
|
1889 |
array('class' => 'requiredby'));
|
1951 |
array('class' => 'requiredby'));
|
Línea 1890... |
Línea 1952... |
1890 |
} else {
|
1952 |
} else {
|
1891 |
$requiredby = '';
|
1953 |
$requiredby = '';
|
- |
|
1954 |
}
|
1892 |
}
|
1955 |
|
1893 |
|
1956 |
$updateinfo = '';
|
1894 |
$updateinfo = '';
|
1957 |
if (is_array($plugin->available_updates())) {
|
1895 |
if (is_array($plugin->available_updates())) {
|
1958 |
$row->attributes['class'] .= ' updatable';
|
Línea 1896... |
Línea 1959... |
1896 |
foreach ($plugin->available_updates() as $availableupdate) {
|
1959 |
foreach ($plugin->available_updates() as $availableupdate) {
|
Línea 1897... |
Línea 1960... |
1897 |
$updateinfo .= $this->plugin_available_update_info($pluginman, $availableupdate);
|
1960 |
$updateinfo .= $this->plugin_available_update_info($pluginman, $availableupdate);
|
1898 |
}
|
1961 |
}
|
1899 |
}
|
1962 |
}
|
1900 |
|
1963 |
|
Línea 1998... |
Línea 2061... |
1998 |
get_string('report'),
|
2061 |
get_string('report'),
|
1999 |
get_string('plugin'),
|
2062 |
get_string('plugin'),
|
2000 |
get_string('status'),
|
2063 |
get_string('status'),
|
2001 |
);
|
2064 |
);
|
2002 |
$servertable->colclasses = array('centeralign name', 'centeralign info', 'leftalign report', 'leftalign plugin', 'centeralign status');
|
2065 |
$servertable->colclasses = array('centeralign name', 'centeralign info', 'leftalign report', 'leftalign plugin', 'centeralign status');
|
2003 |
$servertable->attributes['class'] = 'admintable environmenttable generaltable table-sm';
|
2066 |
$servertable->attributes['class'] = 'table table-striped admintable environmenttable generaltable table-sm';
|
2004 |
$servertable->id = 'serverstatus';
|
2067 |
$servertable->id = 'serverstatus';
|
Línea 2005... |
Línea 2068... |
2005 |
|
2068 |
|
Línea 2006... |
Línea 2069... |
2006 |
$serverdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
|
2069 |
$serverdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
|
Línea 2011... |
Línea 2074... |
2011 |
get_string('report'),
|
2074 |
get_string('report'),
|
2012 |
get_string('plugin'),
|
2075 |
get_string('plugin'),
|
2013 |
get_string('status'),
|
2076 |
get_string('status'),
|
2014 |
);
|
2077 |
);
|
2015 |
$othertable->colclasses = array('aligncenter info', 'alignleft report', 'alignleft plugin', 'aligncenter status');
|
2078 |
$othertable->colclasses = array('aligncenter info', 'alignleft report', 'alignleft plugin', 'aligncenter status');
|
2016 |
$othertable->attributes['class'] = 'admintable environmenttable generaltable table-sm';
|
2079 |
$othertable->attributes['class'] = 'table table-striped admintable environmenttable generaltable table-sm';
|
2017 |
$othertable->id = 'otherserverstatus';
|
2080 |
$othertable->id = 'otherserverstatus';
|
Línea 2018... |
Línea 2081... |
2018 |
|
2081 |
|
Línea 2019... |
Línea 2082... |
2019 |
$otherdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
|
2082 |
$otherdata = array('ok'=>array(), 'warn'=>array(), 'error'=>array());
|
Línea 2112... |
Línea 2175... |
2112 |
if (empty($CFG->docroot) or $environment_result->plugin) {
|
2175 |
if (empty($CFG->docroot) or $environment_result->plugin) {
|
2113 |
$report = get_string($stringtouse, 'admin', $rec);
|
2176 |
$report = get_string($stringtouse, 'admin', $rec);
|
2114 |
} else {
|
2177 |
} else {
|
2115 |
$report = $this->doc_link(join('/', $linkparts), get_string($stringtouse, 'admin', $rec), true);
|
2178 |
$report = $this->doc_link(join('/', $linkparts), get_string($stringtouse, 'admin', $rec), true);
|
2116 |
}
|
2179 |
}
|
2117 |
// Enclose report text in div so feedback text will be displayed underneath it.
|
- |
|
2118 |
$report = html_writer::div($report);
|
- |
|
Línea 2119... |
Línea 2180... |
2119 |
|
2180 |
|
2120 |
// Format error or warning line
|
2181 |
// Format error or warning line
|
2121 |
if ($errorline) {
|
2182 |
if ($errorline) {
|
2122 |
$messagetype = 'error';
|
2183 |
$messagetype = 'error';
|
- |
|
2184 |
$statusclass = 'bg-danger text-white';
|
2123 |
$statusclass = 'bg-danger text-white';
|
2185 |
$feedbackclass = 'alert-danger';
|
2124 |
} else if ($warningline) {
|
2186 |
} else if ($warningline) {
|
2125 |
$messagetype = 'warn';
|
2187 |
$messagetype = 'warn';
|
- |
|
2188 |
$statusclass = 'bg-warning text-dark';
|
2126 |
$statusclass = 'bg-warning text-dark';
|
2189 |
$feedbackclass = 'alert-warning';
|
2127 |
} else {
|
2190 |
} else {
|
2128 |
$messagetype = 'ok';
|
2191 |
$messagetype = 'ok';
|
- |
|
2192 |
$statusclass = 'bg-success text-white';
|
2129 |
$statusclass = 'bg-success text-white';
|
2193 |
$feedbackclass = 'alert-success';
|
2130 |
}
|
2194 |
}
|
2131 |
$status = html_writer::span($status, 'badge ' . $statusclass);
|
2195 |
$status = html_writer::span($status, 'badge ' . $statusclass);
|
2132 |
// Here we'll store all the feedback found
|
2196 |
// Here we'll store all the feedback found
|
2133 |
$feedbacktext = '';
|
2197 |
$feedbacktext = '';
|
2134 |
// Append the feedback if there is some
|
2198 |
// Append the feedback if there is some
|
- |
|
2199 |
$feedbacktext .= $environment_result->strToReport($environment_result->getFeedbackStr(),
|
2135 |
$feedbacktext .= $environment_result->strToReport($environment_result->getFeedbackStr(), $messagetype);
|
2200 |
"alert {$feedbackclass} px-2 py-1 m-1");
|
2136 |
//Append the bypass if there is some
|
2201 |
//Append the bypass if there is some
|
- |
|
2202 |
$feedbacktext .= $environment_result->strToReport($environment_result->getBypassStr(),
|
2137 |
$feedbacktext .= $environment_result->strToReport($environment_result->getBypassStr(), 'warn');
|
2203 |
'alert alert-warning px-2 py-1 m-1');
|
2138 |
//Append the restrict if there is some
|
2204 |
//Append the restrict if there is some
|
- |
|
2205 |
$feedbacktext .= $environment_result->strToReport($environment_result->getRestrictStr(),
|
Línea 2139... |
Línea 2206... |
2139 |
$feedbacktext .= $environment_result->strToReport($environment_result->getRestrictStr(), 'error');
|
2206 |
'alert alert-danger px-2 py-1 m-1');
|
Línea 2140... |
Línea 2207... |
2140 |
|
2207 |
|
2141 |
$report .= $feedbacktext;
|
2208 |
$report .= $feedbacktext;
|
Línea 2178... |
Línea 2245... |
2178 |
*/
|
2245 |
*/
|
2179 |
public function upgradekey_form_page($url) {
|
2246 |
public function upgradekey_form_page($url) {
|
Línea 2180... |
Línea 2247... |
2180 |
|
2247 |
|
2181 |
$output = '';
|
2248 |
$output = '';
|
2182 |
$output .= $this->header();
|
- |
|
2183 |
$output .= $this->container_start('upgradekeyreq');
|
2249 |
$output .= $this->header();
|
- |
|
2250 |
$output .= $this->heading(get_string('upgradekeyreq', 'core_admin'));
|
2184 |
$output .= $this->heading(get_string('upgradekeyreq', 'core_admin'));
|
2251 |
$output .= $this->container_start('upgradekeyreq w-25');
|
2185 |
$output .= html_writer::start_tag('form', array('method' => 'POST', 'action' => $url));
|
2252 |
$output .= html_writer::start_tag('form', array('method' => 'POST', 'action' => $url));
|
- |
|
2253 |
$output .= html_writer::empty_tag('input', [
|
2186 |
$output .= html_writer::empty_tag('input', [
|
2254 |
'id' => 'upgradekey',
|
2187 |
'name' => 'upgradekey',
|
2255 |
'name' => 'upgradekey',
|
2188 |
'type' => 'password',
|
2256 |
'type' => 'password',
|
2189 |
'class' => 'form-control w-auto',
|
2257 |
'class' => 'form-control w-auto',
|
2190 |
]);
|
2258 |
]);
|
Línea 2204... |
Línea 2272... |
2204 |
* Display message about the benefits of registering on Moodle.org
|
2272 |
* Display message about the benefits of registering on Moodle.org
|
2205 |
*
|
2273 |
*
|
2206 |
* @return string
|
2274 |
* @return string
|
2207 |
*/
|
2275 |
*/
|
2208 |
public function moodleorg_registration_message() {
|
2276 |
public function moodleorg_registration_message() {
|
2209 |
|
- |
|
2210 |
$out = format_text(get_string('registerwithmoodleorginfo', 'core_hub'), FORMAT_MARKDOWN);
|
2277 |
$a = new stdClass();
|
2211 |
|
- |
|
2212 |
$out .= html_writer::link(
|
2278 |
$a->moreinformation = '#id_sitestats'; // More information anchor.
|
2213 |
MOODLE_PRODUCTURL.'/solutions/moodle-app/',
|
2279 |
$a->moodleapp = MOODLE_PRODUCTURL . '/solutions/moodle-app/';
|
2214 |
$this->output->pix_icon('i/info', '').' '.get_string('registerwithmoodleorginfoapp', 'core_hub'),
|
2280 |
$out = format_text(get_string('registerwithmoodleorginfo', 'core_hub', $a), FORMAT_MARKDOWN);
|
2215 |
['class' => 'btn btn-link', 'role' => 'opener', 'target' => '_href']
|
- |
|
2216 |
);
|
- |
|
Línea 2217... |
Línea 2281... |
2217 |
|
2281 |
|
2218 |
$out .= html_writer::link(
|
2282 |
$out .= html_writer::link(
|
2219 |
HUB_MOODLEORGHUBURL,
|
2283 |
HUB_MOODLEORGHUBURL,
|
2220 |
$this->output->pix_icon('i/stats', '').' '.get_string('registerwithmoodleorginfostats', 'core_hub'),
|
2284 |
$this->output->pix_icon('i/stats', '').' '.get_string('registerwithmoodleorginfostats', 'core_hub'),
|