Exemplo n.º 1
0
 /**
  * Add autocomplete to a form text field
  *
  * @param MoodleQuickForm $mform Moodle form
  * @param array|moodle_url $options Array of autocomplete options, if $hiddenfieldname is
  *                       passed, array indexes are considered record IDs
  * @param string $textfieldname The text field's name
  * @param string $hiddenfieldname The hidden field's name.  If passed,
  *                                the option index will be set to this hidden
  *                                value when its option value is selected in
  *                                the text field
  * @param string $width The pixel width of the text field (Due to YUI, must
  *                      use width instead of size)
  * @return void
  * @link http://developer.yahoo.com/yui/examples/autocomplete/ac_basic_array.html What you get with no $hiddenfieldname
  * @link http://developer.yahoo.com/yui/examples/autocomplete/ac_itemselect.html What you get with $hiddenfieldname
  */
 public function mform_autocomplete($mform, $options, $textfieldname, $hiddenfieldname = '', $width = '300')
 {
     global $PAGE;
     $url = NULL;
     $data = NULL;
     // Generate data source
     if ($options instanceof moodle_url) {
         $url = $options->out(false);
     } else {
         $data = array();
         foreach ($options as $optionid => $option) {
             if (empty($hiddenfieldname)) {
                 $data[] = $option;
             } else {
                 $data[] = (object) array('text' => $option, 'id' => $optionid);
             }
         }
     }
     $fields = array('text');
     if (!empty($hiddenfieldname)) {
         $fields[] = 'id';
     }
     $module = array('name' => 'local_mr_framework', 'fullpath' => '/local/mr/framework/assets/javascript.js', 'requires' => array('yui2-yahoo', 'yui2-dom', 'yui2-event', 'yui2-datasource', 'yui2-json', 'yui2-connection', 'yui2-get', 'yui2-animation', 'yui2-autocomplete'));
     $arguments = array((object) array('fieldname' => $textfieldname, 'hiddenfieldname' => $hiddenfieldname, 'width' => $width, 'url' => $url, 'data' => $data, 'fields' => $fields));
     $PAGE->requires->js_init_call('M.local_mr.init_mr_html_autocomplete', $arguments, true, $module);
     // $PAGE->requires->css('/lib/yui/2.8.1/build/autocomplete/assets/autocomplete-core.css');
     // $PAGE->requires->css('/lib/yui/2.8.1/build/autocomplete/assets/skins/sam/autocomplete.css');
     // Update form - need to force some attributes and add the javascript
     $mform->updateElementAttr($textfieldname, array('autocomplete' => 'off', 'style' => "width: {$width}px;"));
     // Add ID to hidden field so javascript can find it
     if (!empty($hiddenfieldname)) {
         $mform->updateElementAttr($hiddenfieldname, array('id' => "id_{$hiddenfieldname}"));
     }
 }
 /**
  * Get the settings form for Mahara submission plugin
  *
  * @global stdClass $CFG
  * @global stdClass $DB
  * @param MoodleQuickForm $mform The form to add elements to
  * @return void
  */
 public function get_settings(MoodleQuickForm $mform)
 {
     global $CFG;
     require_once $CFG->dirroot . '/mod/assign/submission/mahara/lib.php';
     if ($hosts = assignsubmission_mahara_sitelist()) {
         $hostid = $this->get_config('mnethostid');
         if ($hostid === false) {
             // No setting for this instance, so use the sitewide default
             $hostid = get_config('assignsubmission_mahara', 'host');
         }
         $locked = $this->get_config('lock');
         if ($locked === false) {
             // No setting for this instance, so use the sitewide default
             $locked = get_config('assignsubmission_mahara', 'lock');
         }
         // Menu to select which MNet host
         $mform->addElement('select', 'assignsubmission_mahara_mnethostid', get_string('site', 'assignsubmission_mahara'), $hosts);
         $mform->setDefault('assignsubmission_mahara_mnethostid', $hostid);
         $mform->disabledIf('assignsubmission_mahara_mnethostid', 'assignsubmission_mahara_enabled', 'notchecked');
         // Menu to select whether to lock Mahara pages or not
         $locksettings = array(ASSIGNSUBMISSION_MAHARA_SETTING_DONTLOCK => new lang_string('no'), ASSIGNSUBMISSION_MAHARA_SETTING_KEEPLOCKED => new lang_string('yeskeeplocked', 'assignsubmission_mahara'), ASSIGNSUBMISSION_MAHARA_SETTING_UNLOCK => new lang_string('yesunlock', 'assignsubmission_mahara'));
         $mform->addElement('select', 'assignsubmission_mahara_lockpages', get_string('lockpages', 'assignsubmission_mahara'), $locksettings);
         $mform->setDefault('assignsubmission_mahara_lockpages', $locked);
         $mform->addHelpButton('assignsubmission_mahara_lockpages', 'lockpages', 'assignsubmission_mahara');
         $mform->disabledIf('assignsubmission_mahara_lockpages', 'assignsubmission_mahara_enabled', 'notchecked');
     } else {
         // No hosts found.
         $mform->addElement('static', 'assignsubmission_mahara_mnethostid', get_string('site', 'assignsubmission_mahara'), get_string('nomaharahostsfound', 'assignsubmission_mahara'));
         $mform->updateElementAttr('assignsubmission_mahara_enabled', array('disabled' => true));
     }
     $mform->addHelpButton('assignsubmission_mahara_mnethostid', 'site', 'assignsubmission_mahara');
 }