Esempio n. 1
0
 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'));
     }
 }
Esempio n. 2
0
        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);