original_string: protected function render_workshop_user_plan(workshop_user_plan $plan) {
          $o  = '';    // Output HTML code.
          $numberofphases = count($plan->phases);
          $o .= html_writer::start_tag('div', array(
              'class' => 'userplan',
              'aria-labelledby' => 'mod_workshop-userplanheading',
              'aria-describedby' => 'mod_workshop-userplanaccessibilitytitle',
          ));
          $o .= html_writer::span(get_string('userplanaccessibilitytitle', 'workshop', $numberofphases),
              'accesshide', array('id' => 'mod_workshop-userplanaccessibilitytitle'));
          $o .= html_writer::link('#mod_workshop-userplancurrenttasks', get_string('userplanaccessibilityskip', 'workshop'),
              array('class' => 'accesshide'));
          foreach ($plan->phases as $phasecode => $phase) {
              $o .= html_writer::start_tag('dl', array('class' => 'phase'));
              $actions = '';
  
              if ($phase->active) {
                  // Mark the section as the current one.
                  $icon = $this->output->pix_icon('i/marked', '', 'moodle', ['role' => 'presentation']);
                  $actions .= get_string('userplancurrentphase', 'workshop').' '.$icon;
  
              } else {
                  // Display a control widget to switch to the given phase or mark the phase as the current one.
                  foreach ($phase->actions as $action) {
                      if ($action->type === 'switchphase') {
                          if ($phasecode == workshop::PHASE_ASSESSMENT && $plan->workshop->phase == workshop::PHASE_SUBMISSION
                                  && $plan->workshop->phaseswitchassessment) {
                              $icon = new pix_icon('i/scheduled', get_string('switchphaseauto', 'mod_workshop'));
                          } else {
                              $icon = new pix_icon('i/marker', get_string('switchphase'.$phasecode, 'mod_workshop'));
                          }
                          $actions .= $this->output->action_icon($action->url, $icon, null, null, true);
                      }
                  }
              }
  
              if (!empty($actions)) {
                  $actions = $this->output->container($actions, 'actions');
              }
              $classes = 'phase' . $phasecode;
              if ($phase->active) {
                  $title = html_writer::span($phase->title, 'phasetitle', ['id' => 'mod_workshop-userplancurrenttasks']);
                  $classes .= ' active';
              } else {
                  $title = html_writer::span($phase->title, 'phasetitle');
                  $classes .= ' nonactive';
              }
              $o .= html_writer::start_tag('dt', array('class' => $classes));
              $o .= $this->output->container($title . $actions);
              $o .= html_writer::start_tag('dd', array('class' => $classes. ' phasetasks'));
              $o .= $this->helper_user_plan_tasks($phase->tasks);
              $o .= html_writer::end_tag('dd');
              $o .= html_writer::end_tag('dl');
          }
          $o .= html_writer::end_tag('div');
          return $o;
      }
code: protected function render_workshop_user_plan(workshop_user_plan $plan) {
          $o  = '';    // Output HTML code.
          $numberofphases = count($plan->phases);
          $o .= html_writer::start_tag('div', array(
              'class' => 'userplan',
              'aria-labelledby' => 'mod_workshop-userplanheading',
              'aria-describedby' => 'mod_workshop-userplanaccessibilitytitle',
          ));
          $o .= html_writer::span(get_string('userplanaccessibilitytitle', 'workshop', $numberofphases),
              'accesshide', array('id' => 'mod_workshop-userplanaccessibilitytitle'));
          $o .= html_writer::link('#mod_workshop-userplancurrenttasks', get_string('userplanaccessibilityskip', 'workshop'),
              array('class' => 'accesshide'));
          foreach ($plan->phases as $phasecode => $phase) {
              $o .= html_writer::start_tag('dl', array('class' => 'phase'));
              $actions = '';
  
              if ($phase->active) {
                  // Mark the section as the current one.
                  $icon = $this->output->pix_icon('i/marked', '', 'moodle', ['role' => 'presentation']);
                  $actions .= get_string('userplancurrentphase', 'workshop').' '.$icon;
  
              } else {
                  // Display a control widget to switch to the given phase or mark the phase as the current one.
                  foreach ($phase->actions as $action) {
                      if ($action->type === 'switchphase') {
                          if ($phasecode == workshop::PHASE_ASSESSMENT && $plan->workshop->phase == workshop::PHASE_SUBMISSION
                                  && $plan->workshop->phaseswitchassessment) {
                              $icon = new pix_icon('i/scheduled', get_string('switchphaseauto', 'mod_workshop'));
                          } else {
                              $icon = new pix_icon('i/marker', get_string('switchphase'.$phasecode, 'mod_workshop'));
                          }
                          $actions .= $this->output->action_icon($action->url, $icon, null, null, true);
                      }
                  }
              }
  
              if (!empty($actions)) {
                  $actions = $this->output->container($actions, 'actions');
              }
              $classes = 'phase' . $phasecode;
              if ($phase->active) {
                  $title = html_writer::span($phase->title, 'phasetitle', ['id' => 'mod_workshop-userplancurrenttasks']);
                  $classes .= ' active';
              } else {
                  $title = html_writer::span($phase->title, 'phasetitle');
                  $classes .= ' nonactive';
              }
              $o .= html_writer::start_tag('dt', array('class' => $classes));
              $o .= $this->output->container($title . $actions);
              $o .= html_writer::start_tag('dd', array('class' => $classes. ' phasetasks'));
              $o .= $this->helper_user_plan_tasks($phase->tasks);
              $o .= html_writer::end_tag('dd');
              $o .= html_writer::end_tag('dl');
          }
          $o .= html_writer::end_tag('div');
          return $o;
      }
code_tokens: protected function render_workshop_user_plan ( workshop_user_plan $ plan ) { $ o = '' ; // Output HTML code. $ numberofphases = count ( $ plan -> phases ) ; $ o .= html_writer :: start_tag ( 'div' , array ( 'class' => 'userplan' , 'aria-labelledby' => 'mod_workshop-userplanheading' , 'aria-describedby' => 'mod_workshop-userplanaccessibilitytitle' , ) ) ; $ o .= html_writer :: span ( get_string ( 'userplanaccessibilitytitle' , 'workshop' , $ numberofphases ) , 'accesshide' , array ( 'id' => 'mod_workshop-userplanaccessibilitytitle' ) ) ; $ o .= html_writer :: link ( '#mod_workshop-userplancurrenttasks' , get_string ( 'userplanaccessibilityskip' , 'workshop' ) , array ( 'class' => 'accesshide' ) ) ; foreach ( $ plan -> phases as $ phasecode => $ phase ) { $ o .= html_writer :: start_tag ( 'dl' , array ( 'class' => 'phase' ) ) ; $ actions = '' ; if ( $ phase -> active ) { // Mark the section as the current one. $ icon = $ this -> output -> pix_icon ( 'i/marked' , '' , 'moodle' , [ 'role' => 'presentation' ] ) ; $ actions .= get_string ( 'userplancurrentphase' , 'workshop' ) . ' ' . $ icon ; } else { // Display a control widget to switch to the given phase or mark the phase as the current one. foreach ( $ phase -> actions as $ action ) { if ( $ action -> type === 'switchphase' ) { if ( $ phasecode == workshop :: PHASE_ASSESSMENT && $ plan -> workshop -> phase == workshop :: PHASE_SUBMISSION && $ plan -> workshop -> phaseswitchassessment ) { $ icon = new pix_icon ( 'i/scheduled' , get_string ( 'switchphaseauto' , 'mod_workshop' ) ) ; } else { $ icon = new pix_icon ( 'i/marker' , get_string ( 'switchphase' . $ phasecode , 'mod_workshop' ) ) ; } $ actions .= $ this -> output -> action_icon ( $ action -> url , $ icon , null , null , true ) ; } } } if ( ! empty ( $ actions ) ) { $ actions = $ this -> output -> container ( $ actions , 'actions' ) ; } $ classes = 'phase' . $ phasecode ; if ( $ phase -> active ) { $ title = html_writer :: span ( $ phase -> title , 'phasetitle' , [ 'id' => 'mod_workshop-userplancurrenttasks' ] ) ; $ classes .= ' active' ; } else { $ title = html_writer :: span ( $ phase -> title , 'phasetitle' ) ; $ classes .= ' nonactive' ; } $ o .= html_writer :: start_tag ( 'dt' , array ( 'class' => $ classes ) ) ; $ o .= $ this -> output -> container ( $ title . $ actions ) ; $ o .= html_writer :: start_tag ( 'dd' , array ( 'class' => $ classes . ' phasetasks' ) ) ; $ o .= $ this -> helper_user_plan_tasks ( $ phase -> tasks ) ; $ o .= html_writer :: end_tag ( 'dd' ) ; $ o .= html_writer :: end_tag ( 'dl' ) ; } $ o .= html_writer :: end_tag ( 'div' ) ; return $ o ; }
docstring: Renders the user plannner tool
  
  @param workshop_user_plan $plan prepared for the user
  @return string html code to be displayed
docstring_tokens: Renders the user plannner tool