original_string: public function get_end_code() {
          global $CFG;
          $output = '';
  
          // Set the log level for the JS logging.
          $logconfig = new stdClass();
          $logconfig->level = 'warn';
          if ($CFG->debugdeveloper) {
              $logconfig->level = 'trace';
          }
          $this->js_call_amd('core/log', 'setConfig', array($logconfig));
          // Add any global JS that needs to run on all pages.
          $this->js_call_amd('core/page_global', 'init');
  
          // Call amd init functions.
          $output .= $this->get_amd_footercode();
  
          // Add other requested modules.
          $output .= $this->get_extra_modules_code();
  
          $this->js_init_code('M.util.js_complete("init");', true);
  
          // All the other linked scripts - there should be as few as possible.
          if ($this->jsincludes['footer']) {
              foreach ($this->jsincludes['footer'] as $url) {
                  $output .= html_writer::script('', $url);
              }
          }
  
          // Add all needed strings.
          // First add core strings required for some dialogues.
          $this->strings_for_js(array(
              'confirm',
              'yes',
              'no',
              'areyousure',
              'closebuttontitle',
              'unknownerror',
          ), 'moodle');
          if (!empty($this->stringsforjs)) {
              $strings = array();
              foreach ($this->stringsforjs as $component=>$v) {
                  foreach($v as $indentifier => $langstring) {
                      $strings[$component][$indentifier] = $langstring->out();
                  }
              }
              $output .= html_writer::script(js_writer::set_variable('M.str', $strings));
          }
  
          // Add variables.
          if ($this->jsinitvariables['footer']) {
              $js = '';
              foreach ($this->jsinitvariables['footer'] as $data) {
                  list($var, $value) = $data;
                  $js .= js_writer::set_variable($var, $value, true);
              }
              $output .= html_writer::script($js);
          }
  
          $inyuijs = $this->get_javascript_code(false);
          $ondomreadyjs = $this->get_javascript_code(true);
          $jsinit = $this->get_javascript_init_code();
          $handlersjs = $this->get_event_handler_code();
  
          // There is a global Y, make sure it is available in your scope.
          $js = "(function() {{$inyuijs}{$ondomreadyjs}{$jsinit}{$handlersjs}})();";
  
          $output .= html_writer::script($js);
  
          return $output;
      }
code: public function get_end_code() {
          global $CFG;
          $output = '';
  
          // Set the log level for the JS logging.
          $logconfig = new stdClass();
          $logconfig->level = 'warn';
          if ($CFG->debugdeveloper) {
              $logconfig->level = 'trace';
          }
          $this->js_call_amd('core/log', 'setConfig', array($logconfig));
          // Add any global JS that needs to run on all pages.
          $this->js_call_amd('core/page_global', 'init');
  
          // Call amd init functions.
          $output .= $this->get_amd_footercode();
  
          // Add other requested modules.
          $output .= $this->get_extra_modules_code();
  
          $this->js_init_code('M.util.js_complete("init");', true);
  
          // All the other linked scripts - there should be as few as possible.
          if ($this->jsincludes['footer']) {
              foreach ($this->jsincludes['footer'] as $url) {
                  $output .= html_writer::script('', $url);
              }
          }
  
          // Add all needed strings.
          // First add core strings required for some dialogues.
          $this->strings_for_js(array(
              'confirm',
              'yes',
              'no',
              'areyousure',
              'closebuttontitle',
              'unknownerror',
          ), 'moodle');
          if (!empty($this->stringsforjs)) {
              $strings = array();
              foreach ($this->stringsforjs as $component=>$v) {
                  foreach($v as $indentifier => $langstring) {
                      $strings[$component][$indentifier] = $langstring->out();
                  }
              }
              $output .= html_writer::script(js_writer::set_variable('M.str', $strings));
          }
  
          // Add variables.
          if ($this->jsinitvariables['footer']) {
              $js = '';
              foreach ($this->jsinitvariables['footer'] as $data) {
                  list($var, $value) = $data;
                  $js .= js_writer::set_variable($var, $value, true);
              }
              $output .= html_writer::script($js);
          }
  
          $inyuijs = $this->get_javascript_code(false);
          $ondomreadyjs = $this->get_javascript_code(true);
          $jsinit = $this->get_javascript_init_code();
          $handlersjs = $this->get_event_handler_code();
  
          // There is a global Y, make sure it is available in your scope.
          $js = "(function() {{$inyuijs}{$ondomreadyjs}{$jsinit}{$handlersjs}})();";
  
          $output .= html_writer::script($js);
  
          return $output;
      }
code_tokens: public function get_end_code ( ) { global $ CFG ; $ output = '' ; // Set the log level for the JS logging. $ logconfig = new stdClass ( ) ; $ logconfig -> level = 'warn' ; if ( $ CFG -> debugdeveloper ) { $ logconfig -> level = 'trace' ; } $ this -> js_call_amd ( 'core/log' , 'setConfig' , array ( $ logconfig ) ) ; // Add any global JS that needs to run on all pages. $ this -> js_call_amd ( 'core/page_global' , 'init' ) ; // Call amd init functions. $ output .= $ this -> get_amd_footercode ( ) ; // Add other requested modules. $ output .= $ this -> get_extra_modules_code ( ) ; $ this -> js_init_code ( 'M.util.js_complete("init");' , true ) ; // All the other linked scripts - there should be as few as possible. if ( $ this -> jsincludes [ 'footer' ] ) { foreach ( $ this -> jsincludes [ 'footer' ] as $ url ) { $ output .= html_writer :: script ( '' , $ url ) ; } } // Add all needed strings. // First add core strings required for some dialogues. $ this -> strings_for_js ( array ( 'confirm' , 'yes' , 'no' , 'areyousure' , 'closebuttontitle' , 'unknownerror' , ) , 'moodle' ) ; if ( ! empty ( $ this -> stringsforjs ) ) { $ strings = array ( ) ; foreach ( $ this -> stringsforjs as $ component => $ v ) { foreach ( $ v as $ indentifier => $ langstring ) { $ strings [ $ component ] [ $ indentifier ] = $ langstring -> out ( ) ; } } $ output .= html_writer :: script ( js_writer :: set_variable ( 'M.str' , $ strings ) ) ; } // Add variables. if ( $ this -> jsinitvariables [ 'footer' ] ) { $ js = '' ; foreach ( $ this -> jsinitvariables [ 'footer' ] as $ data ) { list ( $ var , $ value ) = $ data ; $ js .= js_writer :: set_variable ( $ var , $ value , true ) ; } $ output .= html_writer :: script ( $ js ) ; } $ inyuijs = $ this -> get_javascript_code ( false ) ; $ ondomreadyjs = $ this -> get_javascript_code ( true ) ; $ jsinit = $ this -> get_javascript_init_code ( ) ; $ handlersjs = $ this -> get_event_handler_code ( ) ; // There is a global Y, make sure it is available in your scope. $ js = "(function() {{$inyuijs}{$ondomreadyjs}{$jsinit}{$handlersjs}})();" ; $ output .= html_writer :: script ( $ js ) ; return $ output ; }
docstring: Generate any HTML that needs to go at the end of the page.
  
  Normally, this method is called automatically by the code that prints the
  page footer. You should not normally need to call it in your own code.
  
  @return string the HTML code to to at the end of the page.
docstring_tokens: Generate any HTML that needs to go at the end of the page .