function definition() { $mform =& $this->_form; $mform->addElement('hidden', 'id'); $mform->setType('id', PARAM_INT); $mform->addElement('hidden', 'a'); $mform->setType('a', PARAM_INT); if ($this->_customdata !== NULL) { // Print edit form for a single link type $mform->addElement('hidden', 'linkid', $this->_customdata->link->id); $mform->setType('linkid', PARAM_INT); $mform->addElement('hidden', 'action', 'edit'); $mform->setType('action', PARAM_ALPHA); $mform->addElement('header', $this->_customdata->type, $this->_customdata->get_name()); $this->_customdata->edit_form_add($mform); $this->add_action_buttons(); } else { // Print add form for all link types foreach (pagemenu_get_link_classes() as $link) { if ($link->is_enabled()) { $mform->addElement('header', $link->type, ''); // No title $link->edit_form_add($mform); } } $this->add_action_buttons(false, get_string('addlinks', 'pagemenu')); } }
if (!($linktype = get_field('pagemenu_links', 'type', 'id', $linkid))) { error('Invalid link ID'); } $link = mod_pagemenu_link::factory($linktype, $linkid); $formdata = array_merge($formdata, (array) $link->config); } } // Create the editing form which has dual purpose - add new // links of any type or edit a single link of any type $mform = new mod_pagemenu_edit_form(NULL, $link); if ($mform->is_cancelled()) { redirect("{$CFG->wwwroot}/mod/pagemenu/edit.php?id={$cm->id}"); } else { if ($data = $mform->get_data()) { // Save form data foreach (pagemenu_get_link_classes() as $link) { $link->save($data); } pagemenu_set_message(get_string('menuupdated', 'pagemenu'), 'notifysuccess'); redirect("{$CFG->wwwroot}/mod/pagemenu/edit.php?id={$cm->id}"); } else { if (!empty($linkaction)) { // These are special link actions that can be invoked by // a link class. EG: hide show page menu items if (!confirm_sesskey()) { error(get_string('confirmsesskeybad', 'error')); } if (!in_array($linkaction, pagemenu_get_links())) { error('Invalide link type'); } $link = mod_pagemenu_link::factory($linkaction);