1
0
mirror of https://github.com/moodle/moodle.git synced 2025-04-24 18:04:43 +02:00

MDL-68233 renderers/block: remove illegal uses of $PAGE and $OUTPUT

This commit is contained in:
Tim Hunt 2020-03-24 13:32:22 +00:00
parent d939d6e769
commit 1dcd0d3499
27 changed files with 129 additions and 175 deletions
admin/tool/analytics/classes/output
backup/util/ui
badges
blocks
course
grade
grading/form/guide
report/user
lib
mod
book/tool/print/classes/output
choice
lesson
wiki
workshop
question/type
ddimageortext
ddmarker
ddwtos
report
eventlist/classes
insights/classes/output
rss
tag/classes
user

@ -27,8 +27,7 @@ namespace tool_analytics\output;
defined('MOODLE_INTERNAL') || die();
use plugin_renderer_base;
use templatable;
use renderable;
/**
* Renderer class.
@ -74,14 +73,12 @@ class renderer extends plugin_renderer_base {
* @return string HTML
*/
public function render_evaluate_results($results, $logs = array()) {
global $OUTPUT;
$output = '';
foreach ($results as $timesplittingid => $result) {
if (!CLI_SCRIPT) {
$output .= $OUTPUT->box_start('generalbox mb-3');
$output .= $this->output->box_start('generalbox mb-3');
}
// Check that the array key is a string, not all results depend on time splitting methods (e.g. general errors).
@ -90,47 +87,47 @@ class renderer extends plugin_renderer_base {
$langstrdata = (object)array('name' => $timesplitting->get_name(), 'id' => $timesplittingid);
if (CLI_SCRIPT) {
$output .= $OUTPUT->heading(get_string('scheduledanalysisresultscli', 'tool_analytics', $langstrdata), 3);
$output .= $this->output->heading(get_string('scheduledanalysisresultscli', 'tool_analytics', $langstrdata), 3);
} else {
$output .= $OUTPUT->heading(get_string('scheduledanalysisresults', 'tool_analytics', $langstrdata), 3);
$output .= $this->output->heading(get_string('scheduledanalysisresults', 'tool_analytics', $langstrdata), 3);
}
}
if ($result->status == 0) {
$output .= $OUTPUT->notification(get_string('goodmodel', 'tool_analytics'),
$output .= $this->output->notification(get_string('goodmodel', 'tool_analytics'),
\core\output\notification::NOTIFY_SUCCESS);
} else if ($result->status === \core_analytics\model::NO_DATASET) {
$output .= $OUTPUT->notification(get_string('nodatatoevaluate', 'tool_analytics'),
$output .= $this->output->notification(get_string('nodatatoevaluate', 'tool_analytics'),
\core\output\notification::NOTIFY_WARNING);
}
if (isset($result->score)) {
// Score.
$output .= $OUTPUT->heading(get_string('accuracy', 'tool_analytics') . ': ' .
$output .= $this->output->heading(get_string('accuracy', 'tool_analytics') . ': ' .
round(floatval($result->score), 4) * 100 . '%', 4);
}
if (!empty($result->info)) {
foreach ($result->info as $message) {
$output .= $OUTPUT->notification($message, \core\output\notification::NOTIFY_WARNING);
$output .= $this->output->notification($message, \core\output\notification::NOTIFY_WARNING);
}
}
if (!CLI_SCRIPT) {
$output .= $OUTPUT->box_end();
$output .= $this->output->box_end();
}
}
// Info logged during evaluation.
if (!empty($logs) && debugging()) {
$output .= $OUTPUT->heading(get_string('extrainfo', 'tool_analytics'), 3);
$output .= $this->output->heading(get_string('extrainfo', 'tool_analytics'), 3);
foreach ($logs as $log) {
$output .= $OUTPUT->notification($log, \core\output\notification::NOTIFY_WARNING);
$output .= $this->output->notification($log, \core\output\notification::NOTIFY_WARNING);
}
}
if (!CLI_SCRIPT) {
$output .= $OUTPUT->single_button(new \moodle_url('/admin/tool/analytics/index.php'), get_string('continue'), 'get');
$output .= $this->output->single_button(new \moodle_url('/admin/tool/analytics/index.php'), get_string('continue'), 'get');
}
return $output;
@ -147,62 +144,60 @@ class renderer extends plugin_renderer_base {
* @return string HTML
*/
public function render_get_predictions_results($trainresults = false, $trainlogs = array(), $predictresults = false, $predictlogs = array()) {
global $OUTPUT;
$output = '';
if ($trainresults || (!empty($trainlogs) && debugging())) {
$output .= $OUTPUT->heading(get_string('trainingresults', 'tool_analytics'), 3);
$output .= $this->output->heading(get_string('trainingresults', 'tool_analytics'), 3);
}
if ($trainresults) {
if ($trainresults->status == 0) {
$output .= $OUTPUT->notification(get_string('trainingprocessfinished', 'tool_analytics'),
$output .= $this->output->notification(get_string('trainingprocessfinished', 'tool_analytics'),
\core\output\notification::NOTIFY_SUCCESS);
} else if ($trainresults->status === \core_analytics\model::NO_DATASET ||
$trainresults->status === \core_analytics\model::NOT_ENOUGH_DATA) {
$output .= $OUTPUT->notification(get_string('nodatatotrain', 'tool_analytics'),
$output .= $this->output->notification(get_string('nodatatotrain', 'tool_analytics'),
\core\output\notification::NOTIFY_WARNING);
} else {
$output .= $OUTPUT->notification(get_string('generalerror', 'tool_analytics', $trainresults->status),
$output .= $this->output->notification(get_string('generalerror', 'tool_analytics', $trainresults->status),
\core\output\notification::NOTIFY_ERROR);
}
}
if (!empty($trainlogs) && debugging()) {
$output .= $OUTPUT->heading(get_string('extrainfo', 'tool_analytics'), 4);
$output .= $this->output->heading(get_string('extrainfo', 'tool_analytics'), 4);
foreach ($trainlogs as $log) {
$output .= $OUTPUT->notification($log, \core\output\notification::NOTIFY_WARNING);
$output .= $this->output->notification($log, \core\output\notification::NOTIFY_WARNING);
}
}
if ($predictresults || (!empty($predictlogs) && debugging())) {
$output .= $OUTPUT->heading(get_string('predictionresults', 'tool_analytics'), 3, 'main mt-3');
$output .= $this->output->heading(get_string('predictionresults', 'tool_analytics'), 3, 'main mt-3');
}
if ($predictresults) {
if ($predictresults->status == 0) {
$output .= $OUTPUT->notification(get_string('predictionprocessfinished', 'tool_analytics'),
$output .= $this->output->notification(get_string('predictionprocessfinished', 'tool_analytics'),
\core\output\notification::NOTIFY_SUCCESS);
} else if ($predictresults->status === \core_analytics\model::NO_DATASET ||
$predictresults->status === \core_analytics\model::NOT_ENOUGH_DATA) {
$output .= $OUTPUT->notification(get_string('nodatatopredict', 'tool_analytics'),
$output .= $this->output->notification(get_string('nodatatopredict', 'tool_analytics'),
\core\output\notification::NOTIFY_WARNING);
} else {
$output .= $OUTPUT->notification(get_string('generalerror', 'tool_analytics', $predictresults->status),
$output .= $this->output->notification(get_string('generalerror', 'tool_analytics', $predictresults->status),
\core\output\notification::NOTIFY_ERROR);
}
}
if (!empty($predictlogs) && debugging()) {
$output .= $OUTPUT->heading(get_string('extrainfo', 'tool_analytics'), 4);
$output .= $this->output->heading(get_string('extrainfo', 'tool_analytics'), 4);
foreach ($predictlogs as $log) {
$output .= $OUTPUT->notification($log, \core\output\notification::NOTIFY_WARNING);
$output .= $this->output->notification($log, \core\output\notification::NOTIFY_WARNING);
}
}
if (!CLI_SCRIPT) {
$output .= $OUTPUT->single_button(new \moodle_url('/admin/tool/analytics/index.php'), get_string('continue'), 'get');
$output .= $this->output->single_button(new \moodle_url('/admin/tool/analytics/index.php'), get_string('continue'), 'get');
}
return $output;
@ -236,17 +231,17 @@ class renderer extends plugin_renderer_base {
* @return string HTML
*/
public function render_analytics_disabled() {
global $OUTPUT, $PAGE, $FULLME;
global $FULLME;
$PAGE->set_url($FULLME);
$PAGE->set_title(get_string('pluginname', 'tool_analytics'));
$PAGE->set_heading(get_string('pluginname', 'tool_analytics'));
$this->page->set_url($FULLME);
$this->page->set_title(get_string('pluginname', 'tool_analytics'));
$this->page->set_heading(get_string('pluginname', 'tool_analytics'));
$output = $OUTPUT->header();
$output .= $OUTPUT->notification(get_string('analyticsdisabled', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output = $this->output->header();
$output .= $this->output->notification(get_string('analyticsdisabled', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output .= \html_writer::tag('a', get_string('continue'), ['class' => 'btn btn-primary',
'href' => (new \moodle_url('/'))->out()]);
$output .= $OUTPUT->footer();
$output .= $this->output->footer();
return $output;
}

@ -277,7 +277,7 @@ class core_backup_renderer extends plugin_renderer_base {
*/
public function course_selector(moodle_url $nextstageurl, $wholecourse = true, restore_category_search $categories = null,
restore_course_search $courses = null, $currentcourse = null) {
global $CFG, $PAGE;
global $CFG;
require_once($CFG->dirroot.'/course/lib.php');
// These variables are used to check if the form using this function was submitted.

@ -599,7 +599,7 @@ class core_badges_renderer extends plugin_renderer_base {
* @return string
*/
protected function render_badge_user_collection(\core_badges\output\badge_user_collection $badges) {
global $CFG, $USER, $SITE, $OUTPUT;
global $CFG, $USER, $SITE;
$backpack = $badges->backpack;
$mybackpack = new moodle_url('/badges/mybackpack.php');
@ -645,7 +645,7 @@ class core_badges_renderer extends plugin_renderer_base {
$externalhtml .= $this->output->heading_with_help(get_string('externalbadges', 'badges'), 'externalbadges', 'badges');
if (!is_null($backpack)) {
if ($backpack->backpackid != $CFG->badges_site_backpack) {
$externalhtml .= $OUTPUT->notification(get_string('backpackneedsupdate', 'badges'), 'warning');
$externalhtml .= $this->output->notification(get_string('backpackneedsupdate', 'badges'), 'warning');
}
if ($backpack->totalcollections == 0) {

@ -67,7 +67,7 @@ class block_badges extends block_base {
}
public function get_content() {
global $USER, $PAGE, $CFG;
global $USER, $CFG;
if ($this->content !== null) {
return $this->content;
@ -105,4 +105,4 @@ class block_badges extends block_base {
return $this->content;
}
}
}

@ -46,7 +46,7 @@ class block_comments extends block_base {
}
function get_content() {
global $CFG, $PAGE;
global $CFG;
if ($this->content !== NULL) {
return $this->content;
}
@ -64,10 +64,10 @@ class block_comments extends block_base {
if (empty($this->instance)) {
return $this->content;
}
list($context, $course, $cm) = get_context_info_array($PAGE->context->id);
list($context, $course, $cm) = get_context_info_array($this->page->context->id);
$args = new stdClass;
$args->context = $PAGE->context;
$args->context = $this->page->context;
$args->course = $course;
$args->area = 'page_comments';
$args->itemid = 0;

@ -41,7 +41,6 @@ class block_private_files extends block_base {
}
function get_content() {
global $CFG, $USER, $PAGE, $OUTPUT;
if ($this->content !== NULL) {
return $this->content;
@ -62,7 +61,7 @@ class block_private_files extends block_base {
$this->content->text = $renderer->private_files_tree();
if (has_capability('moodle/user:manageownfiles', $this->context)) {
$this->content->footer = html_writer::link(
new moodle_url('/user/files.php', array('returnurl' => $PAGE->url->out())),
new moodle_url('/user/files.php', array('returnurl' => $this->page->url->out())),
get_string('privatefilesmanage') . '...');
}

@ -59,7 +59,6 @@
* @return block_rss_client\output\footer|null The renderable footer or null if none should be displayed.
*/
protected function get_footer($feedrecords) {
global $PAGE;
$footer = null;
if ($this->config->block_rss_client_show_channel_link) {
@ -80,7 +79,8 @@
if ($footer === null) {
$footer = new block_rss_client\output\footer();
}
$manageurl = new moodle_url('/blocks/rss_client/managefeeds.php', ['courseid' => $PAGE->course->id]);
$manageurl = new moodle_url('/blocks/rss_client/managefeeds.php',
['courseid' => $this->page->course->id]);
$footer->set_failed($manageurl);
}
}

@ -90,8 +90,7 @@ class block_settings extends block_base {
}
function get_required_javascript() {
global $PAGE;
$adminnode = $PAGE->settingsnav->find('siteadministration', navigation_node::TYPE_SITE_ADMIN);
$adminnode = $this->page->settingsnav->find('siteadministration', navigation_node::TYPE_SITE_ADMIN);
parent::get_required_javascript();
$arguments = array(
'instanceid' => $this->instance->id,

@ -374,9 +374,7 @@ class core_course_management_renderer extends plugin_renderer_base {
}
public function render_action_menu($menu) {
global $OUTPUT;
return $OUTPUT->render($menu);
return $this->output->render($menu);
}
/**

@ -184,8 +184,6 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
* @return string HTML to output.
*/
protected function section_header($section, $course, $onsectionpage, $sectionreturn=null) {
global $PAGE;
$o = '';
$currenttext = '';
$sectionstyle = '';
@ -270,9 +268,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
* @return array of edit control items
*/
protected function section_edit_control_items($course, $section, $onsectionpage = false) {
global $PAGE;
if (!$PAGE->user_is_editing()) {
if (!$this->page->user_is_editing()) {
return array();
}
@ -743,8 +739,6 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
* @param int $displaysection The section number in the course which is being displayed
*/
public function print_single_section_page($course, $sections, $mods, $modnames, $modnamesused, $displaysection) {
global $PAGE;
$modinfo = get_fast_modinfo($course);
$course = course_get_format($course)->get_course();
@ -759,7 +753,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
// Copy activity clipboard..
echo $this->course_activity_clipboard($course, $displaysection);
$thissection = $modinfo->get_section_info(0);
if ($thissection->summary or !empty($modinfo->sections[0]) or $PAGE->user_is_editing()) {
if ($thissection->summary or !empty($modinfo->sections[0]) or $this->page->user_is_editing()) {
echo $this->start_section_list();
echo $this->section_header($thissection, $course, true, $displaysection);
echo $this->courserenderer->course_section_cm_list($course, $thissection, $displaysection);
@ -828,8 +822,6 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
* @param array $modnamesused (argument not used)
*/
public function print_multiple_section_page($course, $sections, $mods, $modnames, $modnamesused) {
global $PAGE;
$modinfo = get_fast_modinfo($course);
$course = course_get_format($course)->get_course();
@ -849,7 +841,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
foreach ($modinfo->get_section_info_all() as $section => $thissection) {
if ($section == 0) {
// 0-section is displayed a little different then the others
if ($thissection->summary or !empty($modinfo->sections[0]) or $PAGE->user_is_editing()) {
if ($thissection->summary or !empty($modinfo->sections[0]) or $this->page->user_is_editing()) {
echo $this->section_header($thissection, $course, false, 0);
echo $this->courserenderer->course_section_cm_list($course, $thissection, 0);
echo $this->courserenderer->course_section_add_cm_control($course, 0, 0);
@ -871,7 +863,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
continue;
}
if (!$PAGE->user_is_editing() && $course->coursedisplay == COURSE_DISPLAY_MULTIPAGE) {
if (!$this->page->user_is_editing() && $course->coursedisplay == COURSE_DISPLAY_MULTIPAGE) {
// Display section summary only.
echo $this->section_summary($thissection, $course, null);
} else {
@ -884,7 +876,7 @@ abstract class format_section_renderer_base extends plugin_renderer_base {
}
}
if ($PAGE->user_is_editing() and has_capability('moodle/course:update', $context)) {
if ($this->page->user_is_editing() and has_capability('moodle/course:update', $context)) {
// Print stealth sections if present.
foreach ($modinfo->get_section_info_all() as $section => $thissection) {
if ($section <= $numsections or empty($modinfo->sections[$section])) {

@ -104,9 +104,7 @@ class format_topics_renderer extends format_section_renderer_base {
* @return array of edit control items
*/
protected function section_edit_control_items($course, $section, $onsectionpage = false) {
global $PAGE;
if (!$PAGE->user_is_editing()) {
if (!$this->page->user_is_editing()) {
return array();
}

@ -60,7 +60,6 @@ class gradingform_guide_renderer extends plugin_renderer_base {
*/
public function criterion_template($mode, $options, $elementname = '{NAME}', $criterion = null, $value = null,
$validationerrors = null, $comments = null) {
global $PAGE;
if ($criterion === null || !is_array($criterion) || !array_key_exists('id', $criterion)) {
$criterion = array('id' => '{CRITERION-id}',
@ -254,9 +253,9 @@ class gradingform_guide_renderer extends plugin_renderer_base {
}
// Include string for JS for the comment chooser title.
$PAGE->requires->string_for_js('insertcomment', 'gradingform_guide');
$this->page->requires->string_for_js('insertcomment', 'gradingform_guide');
// Include comment_chooser module.
$PAGE->requires->js_call_amd('gradingform_guide/comment_chooser', 'initialise',
$this->page->requires->js_call_amd('gradingform_guide/comment_chooser', 'initialise',
array($criterion['id'], $chooserbuttonid, $remarkid, $commentoptions));
}

@ -51,8 +51,8 @@ class gradereport_user_renderer extends plugin_renderer_base {
* @return string
*/
public function view_user_selector($userid, $userview) {
global $PAGE, $USER;
$url = $PAGE->url;
global $USER;
$url = $this->page->url;
if ($userid != $USER->id) {
$url->param('userid', $userid);
}

@ -391,12 +391,11 @@ class renderer_base {
* @return bool
*/
public function should_display_main_logo($headinglevel = 1) {
global $PAGE;
// Only render the logo if we're on the front page or login page and the we have a logo.
$logo = $this->get_logo_url();
if ($headinglevel == 1 && !empty($logo)) {
if ($PAGE->pagelayout == 'frontpage' || $PAGE->pagelayout == 'login') {
if ($this->page->pagelayout == 'frontpage' || $this->page->pagelayout == 'login') {
return true;
}
}
@ -632,7 +631,7 @@ class core_renderer extends renderer_base {
* @return string HTML fragment.
*/
public function standard_head_html() {
global $CFG, $SESSION, $SITE, $PAGE;
global $CFG, $SESSION, $SITE;
// Before we output any content, we need to ensure that certain
// page components are set up.
@ -728,7 +727,7 @@ class core_renderer extends renderer_base {
$output .= "\n".$CFG->additionalhtmlhead;
}
if ($PAGE->pagelayout == 'frontpage') {
if ($this->page->pagelayout == 'frontpage') {
$summary = s(strip_tags(format_text($SITE->summary, FORMAT_HTML)));
if (!empty($summary)) {
$output .= "<meta name=\"description\" content=\"$summary\" />\n";
@ -867,7 +866,8 @@ class core_renderer extends renderer_base {
html_writer::link($purgeurl, get_string('purgecaches', 'admin')) . '</div>';
}
if (!empty($CFG->debugvalidators)) {
// NOTE: this is not a nice hack, $PAGE->url is not always accurate and $FULLME neither, it is not a bug if it fails. --skodak
// NOTE: this is not a nice hack, $this->page->url is not always accurate and $FULLME neither,
// it is not a bug if it fails. --skodak
$output .= '<div class="validators"><ul class="list-unstyled ml-1">
<li><a href="http://validator.w3.org/check?verbose=1&amp;ss=1&amp;uri=' . urlencode(qualified_me()) . '">Validate HTML</a></li>
<li><a href="http://www.contentquality.com/mynewtester/cynthia.exe?rptmode=-1&amp;url1=' . urlencode(qualified_me()) . '">Section 508 Check</a></li>
@ -1252,13 +1252,7 @@ class core_renderer extends renderer_base {
* Start output by sending the HTTP headers, and printing the HTML <head>
* and the start of the <body>.
*
* To control what is printed, you should set properties on $PAGE. If you
* are familiar with the old {@link print_header()} function from Moodle 1.9
* you will find that there are properties on $PAGE that correspond to most
* of the old parameters to could be passed to print_header.
*
* Not that, in due course, the remaining $navigation, $menu parameters here
* will be replaced by more properties of $PAGE, but that is still to do.
* To control what is printed, you should set properties on $PAGE.
*
* @return string HTML that you must output this, preferably immediately.
*/
@ -1383,7 +1377,7 @@ class core_renderer extends renderer_base {
* @return string HTML fragment
*/
public function footer() {
global $CFG, $DB, $PAGE;
global $CFG, $DB;
// Give plugins an opportunity to touch the page before JS is finalized.
$pluginswithfunction = get_plugins_with_function('before_footer', 'lib.php');
@ -1416,10 +1410,10 @@ class core_renderer extends renderer_base {
}
$footer = str_replace($this->unique_performance_info_token, $performanceinfo, $footer);
// Only show notifications when we have a $PAGE context id.
if (!empty($PAGE->context->id)) {
// Only show notifications when the current page has a context id.
if (!empty($this->page->context->id)) {
$this->page->requires->js_call_amd('core/notification', 'init', array(
$PAGE->context->id,
$this->page->context->id,
\core\notification::fetch_as_array($this)
));
}
@ -1648,8 +1642,6 @@ class core_renderer extends renderer_base {
* @return string the HTML to display
*/
public function print_textarea($name, $id, $value, $rows, $cols) {
global $OUTPUT;
editors_head_setup();
$editor = editors_get_preferred_editor(FORMAT_HTML);
$editor->set_text($value);
@ -1663,7 +1655,7 @@ class core_renderer extends renderer_base {
'cols' => $cols
];
return $OUTPUT->render_from_template('core_form/editor_textarea', $context);
return $this->render_from_template('core_form/editor_textarea', $context);
}
/**
@ -2614,7 +2606,7 @@ class core_renderer extends renderer_base {
* client_id=>uniqid(),
* acepted_types=>'*',
* return_types=>FILE_INTERNAL,
* context=>$PAGE->context
* context=>current page context
* @return string HTML fragment
*/
public function file_picker($options) {
@ -2629,7 +2621,6 @@ class core_renderer extends renderer_base {
* @return string
*/
public function render_file_picker(file_picker $fp) {
global $CFG, $OUTPUT, $USER;
$options = $fp->options;
$client_id = $options->client_id;
$strsaved = get_string('filesaved', 'repository');
@ -2637,7 +2628,7 @@ class core_renderer extends renderer_base {
$strloading = get_string('loading', 'repository');
$strdndenabled = get_string('dndenabled_inbox', 'moodle');
$strdroptoupload = get_string('droptoupload', 'moodle');
$icon_progress = $OUTPUT->pix_icon('i/loading_small', $strloading).'';
$icon_progress = $this->pix_icon('i/loading_small', $strloading).'';
$currentfile = $options->currentfile;
if (empty($currentfile)) {
@ -4259,13 +4250,13 @@ EOD;
* @return string HTML to display the main header.
*/
public function full_header() {
global $PAGE;
if ($PAGE->include_region_main_settings_in_header_actions() && !$PAGE->blocks->is_block_present('settings')) {
if ($this->page->include_region_main_settings_in_header_actions() &&
!$this->page->blocks->is_block_present('settings')) {
// Only include the region main settings if the page has requested it and it doesn't already have
// the settings block on it. The region main settings are included in the settings block and
// duplicating the content causes behat failures.
$PAGE->add_header_action(html_writer::div(
$this->page->add_header_action(html_writer::div(
$this->region_main_settings_menu(),
'd-print-none',
['id' => 'region-main-settings-menu']
@ -4275,11 +4266,11 @@ EOD;
$header = new stdClass();
$header->settingsmenu = $this->context_header_settings_menu();
$header->contextheader = $this->context_header();
$header->hasnavbar = empty($PAGE->layout_options['nonavbar']);
$header->hasnavbar = empty($this->page->layout_options['nonavbar']);
$header->navbar = $this->navbar();
$header->pageheadingbutton = $this->page_heading_button();
$header->courseheader = $this->course_header();
$header->headeractions = $PAGE->get_header_actions();
$header->headeractions = $this->page->get_header_actions();
return $this->render_from_template('core/full_header', $header);
}
@ -4727,7 +4718,6 @@ EOD;
* @return string HTML fragment
*/
public function render_progress_bar(progress_bar $bar) {
global $PAGE;
$data = $bar->export_for_template($this);
return $this->render_from_template('core/progress_bar', $data);
}

@ -183,8 +183,6 @@ class renderer extends plugin_renderer_base {
* @return array The array containing the content of the book chapter and visibility information
*/
public function render_print_book_chapter($chapter, $chapters, $book, $cm) {
global $OUTPUT;
$context = context_module::instance($cm->id);
$title = book_get_chapter_title($chapter->id, $chapters, $book, $context);
@ -194,9 +192,9 @@ class renderer extends plugin_renderer_base {
$bookchapter .= html_writer::start_div('book_chapter p-t-1', ['id' => 'ch' . $chapter->id]);
if (!$book->customtitles) {
if (!$chapter->subchapter) {
$bookchapter .= $OUTPUT->heading($title, 2, 'text-center p-b-2');
$bookchapter .= $this->output->heading($title, 2, 'text-center p-b-2');
} else {
$bookchapter .= $OUTPUT->heading($title, 3, 'text-center p-b-2');
$bookchapter .= $this->output->heading($title, 3, 'text-center p-b-2');
}
}

@ -129,16 +129,14 @@ class mod_choice_renderer extends plugin_renderer_base {
/**
* Returns HTML to display choices result
* @param object $choices
* @param bool $forcepublish
* @return string
*/
public function display_publish_name_vertical($choices) {
global $PAGE, $OUTPUT;
$html ='';
$html .= html_writer::tag('h3',format_string(get_string("responses", "choice")));
$attributes = array('method'=>'POST');
$attributes['action'] = new moodle_url($PAGE->url);
$attributes['action'] = new moodle_url($this->page->url);
$attributes['id'] = 'attemptsform';
if ($choices->viewresponsecapability) {
@ -205,7 +203,7 @@ class mod_choice_renderer extends plugin_renderer_base {
'labelclasses' => 'accesshide',
]);
$celltext .= html_writer::div($OUTPUT->render($mastercheckbox));
$celltext .= html_writer::div($this->output->render($mastercheckbox));
}
$numberofuser = 0;
if (!empty($options->user) && count($options->user) > 0) {
@ -267,7 +265,7 @@ class mod_choice_renderer extends plugin_renderer_base {
'label' => $userfullname . ' ' . $options->text,
'labelclasses' => 'accesshide',
]);
$checkbox = $OUTPUT->render($slavecheckbox);
$checkbox = $this->output->render($slavecheckbox);
}
$userimage = $this->output->user_picture($user, array('courseid' => $choices->courseid, 'link' => false));
$profileurl = new moodle_url('/user/view.php', array('id' => $user->id, 'course' => $choices->courseid));
@ -299,9 +297,9 @@ class mod_choice_renderer extends plugin_renderer_base {
'label' => get_string('selectall'),
'classes' => 'btn-secondary mr-1'
], true);
$actiondata .= $OUTPUT->render($selectallcheckbox);
$actiondata .= $this->output->render($selectallcheckbox);
$actionurl = new moodle_url($PAGE->url, array('sesskey'=>sesskey(), 'action'=>'delete_confirmation()'));
$actionurl = new moodle_url($this->page->url, array('sesskey'=>sesskey(), 'action'=>'delete_confirmation()'));
$actionoptions = array('delete' => get_string('delete'));
foreach ($choices->options as $optionid => $option) {
if ($optionid > 0) {
@ -338,7 +336,6 @@ class mod_choice_renderer extends plugin_renderer_base {
* @return string
*/
public function display_publish_anonymous_horizontal($choices) {
global $CHOICE_COLUMN_HEIGHT;
debugging(__FUNCTION__.'() is deprecated. Please use mod_choice_renderer::display_publish_anonymous() instead.',
DEBUG_DEVELOPER);
return $this->display_publish_anonymous($choices, CHOICE_DISPLAY_VERTICAL);
@ -351,7 +348,6 @@ class mod_choice_renderer extends plugin_renderer_base {
* @return string
*/
public function display_publish_anonymous_vertical($choices) {
global $CHOICE_COLUMN_WIDTH;
debugging(__FUNCTION__.'() is deprecated. Please use mod_choice_renderer::display_publish_anonymous() instead.',
DEBUG_DEVELOPER);
return $this->display_publish_anonymous($choices, CHOICE_DISPLAY_HORIZONTAL);
@ -367,7 +363,6 @@ class mod_choice_renderer extends plugin_renderer_base {
* @return string the rendered chart.
*/
public function display_publish_anonymous($choices, $displaylayout) {
global $OUTPUT;
$count = 0;
$data = [];
$numberofuser = 0;
@ -396,7 +391,7 @@ class mod_choice_renderer extends plugin_renderer_base {
$chart->set_labels($data['labels']);
$yaxis = $chart->get_yaxis(0, true);
$yaxis->set_stepsize(max(1, round(max($data['series']) / 10)));
return $OUTPUT->render($chart);
return $this->output->render($chart);
}
}

@ -37,7 +37,7 @@ class mod_lesson_renderer extends plugin_renderer_base {
* @return string
*/
public function header($lesson, $cm, $currenttab = '', $extraeditbuttons = false, $lessonpageid = null, $extrapagetitle = null) {
global $CFG, $OUTPUT;
global $CFG;
$activityname = format_string($lesson->name, true, $lesson->course);
if (empty($extrapagetitle)) {
@ -59,7 +59,7 @@ class mod_lesson_renderer extends plugin_renderer_base {
$output .= $this->output->heading_with_help($activityname, 'overview', 'lesson');
// Info box.
if ($lesson->intro) {
$output .= $OUTPUT->box(format_module_intro('lesson', $lesson, $cm->id), 'generalbox', 'intro');
$output .= $this->output->box(format_module_intro('lesson', $lesson, $cm->id), 'generalbox', 'intro');
}
if (!empty($currenttab)) {
ob_start();
@ -71,7 +71,7 @@ class mod_lesson_renderer extends plugin_renderer_base {
$output .= $this->output->heading($activityname);
// Info box.
if ($lesson->intro) {
$output .= $OUTPUT->box(format_module_intro('lesson', $lesson, $cm->id), 'generalbox', 'intro');
$output .= $this->output->box(format_module_intro('lesson', $lesson, $cm->id), 'generalbox', 'intro');
}
}

@ -235,8 +235,8 @@ class mod_wiki_renderer extends plugin_renderer_base {
return $output;
}
public function wiki_info() {
global $PAGE;
return $this->output->box(format_module_intro('wiki', $this->page->activityrecord, $PAGE->cm->id), 'generalbox', 'intro');
return $this->output->box(format_module_intro('wiki',
$this->page->activityrecord, $this->page->cm->id), 'generalbox', 'intro');
}
public function tabs($page, $tabitems, $options) {

@ -988,19 +988,18 @@ class mod_workshop_renderer extends plugin_renderer_base {
* @return string
*/
protected function helper_sortable_heading($text, $sortid=null, $sortby=null, $sorthow=null) {
global $PAGE;
$out = html_writer::tag('span', $text, array('class'=>'text'));
if (!is_null($sortid)) {
if ($sortby !== $sortid or $sorthow !== 'ASC') {
$url = new moodle_url($PAGE->url);
$url = new moodle_url($this->page->url);
$url->params(array('sortby' => $sortid, 'sorthow' => 'ASC'));
$out .= $this->output->action_icon($url, new pix_icon('t/sort_asc', get_string('sortasc', 'workshop')),
null, array('class' => 'iconsort sort asc'));
}
if ($sortby !== $sortid or $sorthow !== 'DESC') {
$url = new moodle_url($PAGE->url);
$url = new moodle_url($this->page->url);
$url->params(array('sortby' => $sortid, 'sorthow' => 'DESC'));
$out .= $this->output->action_icon($url, new pix_icon('t/sort_desc', get_string('sortdesc', 'workshop')),
null, array('class' => 'iconsort sort desc'));

@ -52,7 +52,6 @@ class qtype_ddtoimage_renderer_base extends qtype_with_combined_feedback_rendere
public function formulation_and_controls(question_attempt $qa,
question_display_options $options) {
global $PAGE;
$question = $qa->get_question();
$response = $qa->get_last_qt_data();
@ -113,8 +112,8 @@ class qtype_ddtoimage_renderer_base extends qtype_with_combined_feedback_rendere
$output .= html_writer::tag('div',
$droparea . $draghomes. $dragitems . $hiddens, array('class' => 'ddarea'));
$PAGE->requires->string_for_js('blank', 'qtype_ddimageortext');
$PAGE->requires->js_call_amd('qtype_ddimageortext/question', 'init',
$this->page->requires->string_for_js('blank', 'qtype_ddimageortext');
$this->page->requires->js_call_amd('qtype_ddimageortext/question', 'init',
[$qa->get_outer_question_div_unique_id(), $options->readonly, $question->places]);
if ($qa->get_state() == question_state::$invalid) {

@ -39,7 +39,6 @@ require_once($CFG->dirroot . '/question/type/ddimageortext/rendererbase.php');
class qtype_ddmarker_renderer extends qtype_ddtoimage_renderer_base {
public function formulation_and_controls(question_attempt $qa,
question_display_options $options) {
global $PAGE, $OUTPUT;
$question = $qa->get_question();
$response = $qa->get_last_qt_data();
@ -69,7 +68,7 @@ class qtype_ddmarker_renderer extends qtype_ddtoimage_renderer_base {
$classes[] = 'dragno'.$drag->noofdrags;
}
$targeticonhtml =
$OUTPUT->image_icon('crosshairs', '', $componentname, array('class' => 'target'));
$this->output->image_icon('crosshairs', '', $componentname, array('class' => 'target'));
$markertextattrs = array('class' => 'markertext');
$markertext = html_writer::tag('span', $drag->text, $markertextattrs);
@ -96,7 +95,7 @@ class qtype_ddmarker_renderer extends qtype_ddtoimage_renderer_base {
$visibledropzones = array();
}
$PAGE->requires->js_call_amd('qtype_ddmarker/question', 'init',
$this->page->requires->js_call_amd('qtype_ddmarker/question', 'init',
[$qa->get_outer_question_div_unique_id(), $bgimage, $options->readonly, $visibledropzones]);
if ($qa->get_state() == question_state::$invalid) {

@ -38,11 +38,10 @@ class qtype_ddwtos_renderer extends qtype_elements_embedded_in_question_text_ren
public function formulation_and_controls(question_attempt $qa,
question_display_options $options) {
global $PAGE;
$result = parent::formulation_and_controls($qa, $options);
$PAGE->requires->js_call_amd('qtype_ddwtos/ddwtos', 'init',
$this->page->requires->js_call_amd('qtype_ddwtos/ddwtos', 'init',
[$qa->get_outer_question_div_unique_id(), $options->readonly]);
return $result;
}

@ -41,7 +41,6 @@ class report_eventlist_renderer extends plugin_renderer_base {
* @return string HTML to be displayed.
*/
public function render_event_list($form, $tabledata) {
global $PAGE;
$title = get_string('pluginname', 'report_eventlist');
@ -55,9 +54,9 @@ class report_eventlist_renderer extends plugin_renderer_base {
$html .= ob_get_contents();
ob_end_clean();
$PAGE->requires->yui_module('moodle-report_eventlist-eventfilter', 'Y.M.report_eventlist.EventFilter.init',
$this->page->requires->yui_module('moodle-report_eventlist-eventfilter', 'Y.M.report_eventlist.EventFilter.init',
array(array('tabledata' => $tabledata)));
$PAGE->requires->strings_for_js(array(
$this->page->requires->strings_for_js(array(
'eventname',
'component',
'action',
@ -83,7 +82,6 @@ class report_eventlist_renderer extends plugin_renderer_base {
* @return string HTML to be displayed.
*/
public function render_event_detail($observerlist, $eventinformation) {
global $PAGE;
$titlehtml = $this->output->header();
$titlehtml .= $this->output->heading($eventinformation['title']);

@ -69,15 +69,14 @@ class renderer extends plugin_renderer_base {
* @return string HTML
*/
public function render_model_disabled($insightinfo) {
global $OUTPUT, $PAGE;
// We don't want to disclose the name of the model if it has not been enabled.
$PAGE->set_title($insightinfo->contextname);
$PAGE->set_heading($insightinfo->contextname);
$this->page->set_title($insightinfo->contextname);
$this->page->set_heading($insightinfo->contextname);
$output = $OUTPUT->header();
$output .= $OUTPUT->notification(get_string('disabledmodel', 'report_insights'), \core\output\notification::NOTIFY_INFO);
$output .= $OUTPUT->footer();
$output = $this->output->header();
$output .= $this->output->notification(get_string('disabledmodel', 'report_insights'), \core\output\notification::NOTIFY_INFO);
$output .= $this->output->footer();
return $output;
}
@ -89,15 +88,14 @@ class renderer extends plugin_renderer_base {
* @return string HTML
*/
public function render_no_insights(\context $context) {
global $OUTPUT, $PAGE;
// We don't want to disclose the name of the model if it has not been enabled.
$PAGE->set_title($context->get_context_name());
$PAGE->set_heading($context->get_context_name());
$this->page->set_title($context->get_context_name());
$this->page->set_heading($context->get_context_name());
$output = $OUTPUT->header();
$output .= $OUTPUT->notification(get_string('noinsights', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output .= $OUTPUT->footer();
$output = $this->output->header();
$output .= $this->output->notification(get_string('noinsights', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output .= $this->output->footer();
return $output;
}
@ -109,15 +107,14 @@ class renderer extends plugin_renderer_base {
* @return string HTML
*/
public function render_no_insights_model(\context $context) {
global $OUTPUT, $PAGE;
// We don't want to disclose the name of the model if it has not been enabled.
$PAGE->set_title($context->get_context_name());
$PAGE->set_heading($context->get_context_name());
$this->page->set_title($context->get_context_name());
$this->page->set_heading($context->get_context_name());
$output = $OUTPUT->header();
$output .= $OUTPUT->notification(get_string('noinsightsmodel', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output .= $OUTPUT->footer();
$output = $this->output->header();
$output .= $this->output->notification(get_string('noinsightsmodel', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output .= $this->output->footer();
return $output;
}
@ -128,17 +125,17 @@ class renderer extends plugin_renderer_base {
* @return string HTML
*/
public function render_analytics_disabled() {
global $OUTPUT, $PAGE, $FULLME;
global $FULLME;
$PAGE->set_url($FULLME);
$PAGE->set_title(get_string('pluginname', 'report_insights'));
$PAGE->set_heading(get_string('pluginname', 'report_insights'));
$this->page->set_url($FULLME);
$this->page->set_title(get_string('pluginname', 'report_insights'));
$this->page->set_heading(get_string('pluginname', 'report_insights'));
$output = $OUTPUT->header();
$output .= $OUTPUT->notification(get_string('analyticsdisabled', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output = $this->output->header();
$output .= $this->output->notification(get_string('analyticsdisabled', 'analytics'), \core\output\notification::NOTIFY_INFO);
$output .= \html_writer::tag('a', get_string('continue'), ['class' => 'btn btn-primary',
'href' => (new \moodle_url('/'))->out()]);
$output .= $OUTPUT->footer();
$output .= $this->output->footer();
return $output;
}

@ -35,13 +35,13 @@ class core_rss_renderer extends plugin_renderer_base {
* @return string html
*/
public function user_reset_rss_token_confirmation() {
global $OUTPUT, $CFG;
global $CFG;
$managetokenurl = $CFG->wwwroot."/user/managetoken.php?sesskey=" . sesskey();
$optionsyes = array('action' => 'resetrsstoken', 'confirm' => 1, 'sesskey' => sesskey());
$optionsno = array('section' => 'webservicetokens', 'sesskey' => sesskey());
$formcontinue = new single_button(new moodle_url($managetokenurl, $optionsyes), get_string('reset'));
$formcancel = new single_button(new moodle_url($managetokenurl, $optionsno), get_string('cancel'), 'get');
$html = $OUTPUT->confirm(get_string('resettokenconfirmsimple', 'webservice'), $formcontinue, $formcancel);
$html = $this->output->confirm(get_string('resettokenconfirmsimple', 'webservice'), $formcontinue, $formcancel);
return $html;
}
@ -51,14 +51,14 @@ class core_rss_renderer extends plugin_renderer_base {
* @return string html code
*/
public function user_rss_token_box($token) {
global $OUTPUT, $CFG;
global $CFG;
// Display strings.
$stroperation = get_string('operation', 'webservice');
$strtoken = get_string('key', 'webservice');
$return = $OUTPUT->heading(get_string('rss', 'rss'), 3, 'main', true);
$return .= $OUTPUT->box_start('generalbox webservicestokenui');
$return = $this->output->heading(get_string('rss', 'rss'), 3, 'main', true);
$return .= $this->output->box_start('generalbox webservicestokenui');
$return .= get_string('rsskeyshelp');
@ -79,7 +79,7 @@ class core_rss_renderer extends plugin_renderer_base {
$return .= get_string('notoken', 'webservice');
}
$return .= $OUTPUT->box_end();
$return .= $this->output->box_end();
return $return;
}
}

@ -75,7 +75,7 @@ class core_tag_renderer extends plugin_renderer_base {
* @return string
*/
public function tag_index_page($tag, $entities, $tagareaid, $exclusivemode, $fromctx, $ctx, $rec, $page) {
global $CFG, $OUTPUT;
global $CFG;
$this->page->requires->js_call_amd('core/tag', 'initTagindexPage');
$tagname = $tag->get_display_name();
@ -98,7 +98,8 @@ class core_tag_renderer extends plugin_renderer_base {
$relatedtags = $tag->get_related_tags();
$taglist = new \core_tag\output\taglist($relatedtags, get_string('relatedtags', 'tag'),
'tag-relatedtags', $relatedtagslimit);
$rv .= $OUTPUT->render_from_template('core_tag/taglist', $taglist->export_for_template($OUTPUT));
$rv .= $this->output->render_from_template('core_tag/taglist',
$taglist->export_for_template($this->output));
// Display quick menu of the item types (if more than one item type found).
$entitylinks = array();

@ -43,7 +43,6 @@ class core_user_renderer extends plugin_renderer_base {
* @return string html output
*/
public function user_search($url, $firstinitial, $lastinitial, $usercount, $totalcount, $heading = null) {
global $OUTPUT;
if ($firstinitial !== 'all') {
set_user_preference('ifirst', $firstinitial);
@ -60,13 +59,13 @@ class core_user_renderer extends plugin_renderer_base {
$content .= html_writer::start_tag('div');
// Search utility heading.
$content .= $OUTPUT->heading($heading.get_string('labelsep', 'langconfig').$usercount.'/'.$totalcount, 3);
$content .= $this->output->heading($heading.get_string('labelsep', 'langconfig').$usercount.'/'.$totalcount, 3);
// Initials bar.
$prefixfirst = 'sifirst';
$prefixlast = 'silast';
$content .= $OUTPUT->initials_bar($firstinitial, 'firstinitial', get_string('firstname'), $prefixfirst, $url);
$content .= $OUTPUT->initials_bar($lastinitial, 'lastinitial', get_string('lastname'), $prefixlast, $url);
$content .= $this->output->initials_bar($firstinitial, 'firstinitial', get_string('firstname'), $prefixfirst, $url);
$content .= $this->output->initials_bar($lastinitial, 'lastinitial', get_string('lastname'), $prefixlast, $url);
$content .= html_writer::end_tag('div');
$content .= html_writer::tag('div', '&nbsp;');