Exemple #1
0
 /**
  * Displays the input control for when the student should upload a single file.
  * @param question_attempt $qa the question attempt to display.
  * @param int $numallowed the maximum number of attachments allowed. -1 = unlimited.
  * @param question_display_options $options controls what should and should
  *      not be displayed. Used to get the context.
  */
 public function files_input(question_attempt $qa, $numallowed, question_display_options $options)
 {
     global $CFG;
     require_once $CFG->dirroot . '/lib/form/filemanager.php';
     $pickeroptions = new stdClass();
     $pickeroptions->mainfile = null;
     $pickeroptions->maxfiles = $numallowed;
     $pickeroptions->itemid = $qa->prepare_response_files_draft_itemid('attachments', $options->context->id);
     $pickeroptions->context = $options->context;
     $pickeroptions->itemid = $qa->prepare_response_files_draft_itemid('attachments', $options->context->id);
     return form_filemanager_render($pickeroptions) . html_writer::empty_tag('input', array('type' => 'hidden', 'name' => $qa->get_qt_field_name('attachments'), 'value' => $pickeroptions->itemid));
 }
Exemple #2
0
 /**
  * Returns HTML for filemanager form element.
  *
  * @return string
  */
 function toHtml()
 {
     global $CFG, $USER, $COURSE, $PAGE, $OUTPUT;
     require_once "{$CFG->dirroot}/repository/lib.php";
     // security - never ever allow guest/not logged in user to upload anything or use this element!
     if (isguestuser() or !isloggedin()) {
         print_error('noguest');
     }
     if ($this->_flagFrozen) {
         return $this->getFrozenHtml();
     }
     $id = $this->_attributes['id'];
     $elname = $this->_attributes['name'];
     $subdirs = $this->_options['subdirs'];
     $maxbytes = $this->_options['maxbytes'];
     $draftitemid = $this->getValue();
     $accepted_types = $this->_options['accepted_types'];
     if (empty($draftitemid)) {
         // no existing area info provided - let's use fresh new draft area
         require_once "{$CFG->libdir}/filelib.php";
         $this->setValue(file_get_unused_draft_itemid());
         $draftitemid = $this->getValue();
     }
     $client_id = uniqid();
     // filemanager options
     $options = new stdClass();
     $options->mainfile = $this->_options['mainfile'];
     $options->maxbytes = $this->_options['maxbytes'];
     $options->maxfiles = $this->getMaxfiles();
     $options->client_id = $client_id;
     $options->itemid = $draftitemid;
     $options->subdirs = $this->_options['subdirs'];
     $options->target = $id;
     $options->accepted_types = $accepted_types;
     $options->return_types = FILE_INTERNAL;
     $options->context = $PAGE->context;
     $html = $this->_getTabs();
     $html .= form_filemanager_render($options);
     $html .= '<input value="' . $draftitemid . '" name="' . $elname . '" type="hidden" />';
     // label element needs 'for' attribute work
     $html .= '<input value="" id="id_' . $elname . '" type="hidden" />';
     return $html;
 }