original_string: protected function render_navigation_node(navigation_node $item) {
          $content = $item->get_content();
          $title = $item->get_title();
          if ($item->icon instanceof renderable && !$item->hideicon) {
              $icon = $this->render($item->icon);
              $content = $icon.$content; // use CSS for spacing of icons
          }
          if ($item->helpbutton !== null) {
              $content = trim($item->helpbutton).html_writer::tag('span', $content, array('class'=>'clearhelpbutton', 'tabindex'=>'0'));
          }
          if ($content === '') {
              return '';
          }
          if ($item->action instanceof action_link) {
              $link = $item->action;
              if ($item->hidden) {
                  $link->add_class('dimmed');
              }
              if (!empty($content)) {
                  // Providing there is content we will use that for the link content.
                  $link->text = $content;
              }
              $content = $this->render($link);
          } else if ($item->action instanceof moodle_url) {
              $attributes = array();
              if ($title !== '') {
                  $attributes['title'] = $title;
              }
              if ($item->hidden) {
                  $attributes['class'] = 'dimmed_text';
              }
              $content = html_writer::link($item->action, $content, $attributes);
  
          } else if (is_string($item->action) || empty($item->action)) {
              $attributes = array('tabindex'=>'0'); //add tab support to span but still maintain character stream sequence.
              if ($title !== '') {
                  $attributes['title'] = $title;
              }
              if ($item->hidden) {
                  $attributes['class'] = 'dimmed_text';
              }
              $content = html_writer::tag('span', $content, $attributes);
          }
          return $content;
      }
code: protected function render_navigation_node(navigation_node $item) {
          $content = $item->get_content();
          $title = $item->get_title();
          if ($item->icon instanceof renderable && !$item->hideicon) {
              $icon = $this->render($item->icon);
              $content = $icon.$content; // use CSS for spacing of icons
          }
          if ($item->helpbutton !== null) {
              $content = trim($item->helpbutton).html_writer::tag('span', $content, array('class'=>'clearhelpbutton', 'tabindex'=>'0'));
          }
          if ($content === '') {
              return '';
          }
          if ($item->action instanceof action_link) {
              $link = $item->action;
              if ($item->hidden) {
                  $link->add_class('dimmed');
              }
              if (!empty($content)) {
                  // Providing there is content we will use that for the link content.
                  $link->text = $content;
              }
              $content = $this->render($link);
          } else if ($item->action instanceof moodle_url) {
              $attributes = array();
              if ($title !== '') {
                  $attributes['title'] = $title;
              }
              if ($item->hidden) {
                  $attributes['class'] = 'dimmed_text';
              }
              $content = html_writer::link($item->action, $content, $attributes);
  
          } else if (is_string($item->action) || empty($item->action)) {
              $attributes = array('tabindex'=>'0'); //add tab support to span but still maintain character stream sequence.
              if ($title !== '') {
                  $attributes['title'] = $title;
              }
              if ($item->hidden) {
                  $attributes['class'] = 'dimmed_text';
              }
              $content = html_writer::tag('span', $content, $attributes);
          }
          return $content;
      }
code_tokens: protected function render_navigation_node ( navigation_node $ item ) { $ content = $ item -> get_content ( ) ; $ title = $ item -> get_title ( ) ; if ( $ item -> icon instanceof renderable && ! $ item -> hideicon ) { $ icon = $ this -> render ( $ item -> icon ) ; $ content = $ icon . $ content ; // use CSS for spacing of icons } if ( $ item -> helpbutton !== null ) { $ content = trim ( $ item -> helpbutton ) . html_writer :: tag ( 'span' , $ content , array ( 'class' => 'clearhelpbutton' , 'tabindex' => '0' ) ) ; } if ( $ content === '' ) { return '' ; } if ( $ item -> action instanceof action_link ) { $ link = $ item -> action ; if ( $ item -> hidden ) { $ link -> add_class ( 'dimmed' ) ; } if ( ! empty ( $ content ) ) { // Providing there is content we will use that for the link content. $ link -> text = $ content ; } $ content = $ this -> render ( $ link ) ; } else if ( $ item -> action instanceof moodle_url ) { $ attributes = array ( ) ; if ( $ title !== '' ) { $ attributes [ 'title' ] = $ title ; } if ( $ item -> hidden ) { $ attributes [ 'class' ] = 'dimmed_text' ; } $ content = html_writer :: link ( $ item -> action , $ content , $ attributes ) ; } else if ( is_string ( $ item -> action ) || empty ( $ item -> action ) ) { $ attributes = array ( 'tabindex' => '0' ) ; //add tab support to span but still maintain character stream sequence. if ( $ title !== '' ) { $ attributes [ 'title' ] = $ title ; } if ( $ item -> hidden ) { $ attributes [ 'class' ] = 'dimmed_text' ; } $ content = html_writer :: tag ( 'span' , $ content , $ attributes ) ; } return $ content ; }
docstring: Renders a navigation node object.
  
  @param navigation_node $item The navigation node to render.
  @return string HTML fragment
docstring_tokens: Renders a navigation node object .