/**
  * Renders full workshop submission
  *
  * @param workshop_submission $submission
  * @return string HTML
  */
 protected function render_workshop_submission(workshop_submission $submission)
 {
     global $CFG;
     $o = '';
     // output HTML code
     $anonymous = $submission->is_anonymous();
     $classes = 'submission-full';
     if ($anonymous) {
         $classes .= ' anonymous';
     }
     $o .= $this->output->container_start($classes);
     $o .= $this->output->container_start('header');
     $title = format_string($submission->title);
     if ($this->page->url != $submission->url) {
         $title = html_writer::link($submission->url, $title);
     }
     $o .= $this->output->heading($title, 3);
     if (!$anonymous) {
         $author = new stdclass();
         $author->id = $submission->authorid;
         $author->firstname = $submission->authorfirstname;
         $author->lastname = $submission->authorlastname;
         $author->picture = $submission->authorpicture;
         $author->imagealt = $submission->authorimagealt;
         $author->email = $submission->authoremail;
         $userpic = $this->output->user_picture($author, array('courseid' => $this->page->course->id, 'size' => 64));
         $userurl = new moodle_url('/user/view.php', array('id' => $author->id, 'course' => $this->page->course->id));
         $a = new stdclass();
         $a->name = fullname($author);
         $a->url = $userurl->out();
         $byfullname = get_string('byfullname', 'workshop', $a);
         $oo = $this->output->container($userpic, 'picture');
         $oo .= $this->output->container($byfullname, 'fullname');
         $o .= $this->output->container($oo, 'author');
     }
     $created = get_string('userdatecreated', 'workshop', userdate($submission->timecreated));
     $o .= $this->output->container($created, 'userdate created');
     if ($submission->timemodified > $submission->timecreated) {
         $modified = get_string('userdatemodified', 'workshop', userdate($submission->timemodified));
         $o .= $this->output->container($modified, 'userdate modified');
     }
     $o .= $this->output->container_end();
     // end of header
     $content = file_rewrite_pluginfile_urls($submission->content, 'pluginfile.php', $this->page->context->id, 'mod_workshop', 'submission_content', $submission->id);
     $content = format_text($content, $submission->contentformat, array('overflowdiv' => true));
     if (!empty($content)) {
         if (!empty($CFG->enableplagiarism)) {
             require_once $CFG->libdir . '/plagiarismlib.php';
             $content .= plagiarism_get_links(array('userid' => $submission->authorid, 'content' => $submission->content, 'cmid' => $this->page->cm->id, 'course' => $this->page->course));
         }
     }
     $o .= $this->output->container($content, 'content');
     $o .= $this->helper_submission_attachments($submission->id, 'html');
     $o .= $this->output->container_end();
     // end of submission-full
     return $o;
 }
Exemplo n.º 2
0
    /**
     * Render the content of the submission.
     *
     * @param workshop_submission $workshopsubmission
     * @return string
     */
    protected function export_content(workshop_submission $workshopsubmission) {

        $output = '';

        if (!$workshopsubmission->is_anonymous()) {
            $author = username_load_fields_from_object((object)[], $workshopsubmission, 'author');
            $output .= html_writer::div(get_string('byfullnamewithoutlink', 'mod_workshop', fullname($author)));
        }

        $content = $this->format_exported_text($workshopsubmission->content, $workshopsubmission->contentformat);
        $content = portfolio_rewrite_pluginfile_urls($content, $this->workshop->context->id, 'mod_workshop',
            'submission_content', $workshopsubmission->id, $this->exporter->get('format'));
        $output .= html_writer::div($content);

        $output .= $this->export_files_list('submission_attachment');

        $strategy = $this->workshop->grading_strategy_instance();

        $canviewauthornames = has_capability('mod/workshop:viewauthornames', $this->workshop->context, $this->get('user'));
        $canviewreviewernames = has_capability('mod/workshop:viewreviewernames', $this->workshop->context, $this->get('user'));

        foreach ($this->assessments as $assessment) {
            $mform = $strategy->get_assessment_form(null, 'assessment', $assessment, false);
            $options = [
                'showreviewer' => $canviewreviewernames,
                'showauthor' => $canviewauthornames,
                'showform' => true,
                'showweight' => true,
            ];
            if ($assessment->reviewerid == $this->get('user')->id) {
                $options['showreviewer'] = true;
            }

            $workshopassessment = $this->workshop->prepare_assessment($assessment, $mform, $options);

            if ($assessment->reviewerid == $this->get('user')->id) {
                $workshopassessment->title = get_string('assessmentbyyourself', 'mod_workshop');
            } else {
                $workshopassessment->title = get_string('assessment', 'mod_workshop');
            }

            $output .= html_writer::empty_tag('hr');
            $output .= $this->export_assessment($workshopassessment);
        }

        if (trim($this->workshop->instructauthors)) {
            $output .= html_writer::tag('h3', get_string('instructauthors', 'mod_workshop'));
            $content = $this->format_exported_text($this->workshop->instructauthors, $this->workshop->instructauthorsformat);
            $content = portfolio_rewrite_pluginfile_urls($content, $this->workshop->context->id, 'mod_workshop',
                'instructauthors', 0, $this->exporter->get('format'));
            $output .= $content;
        }

        return html_writer::div($output);
    }