/**
  * Handles the page link item hide/show
  *
  * @return void
  **/
 public function handle_action()
 {
     $showhide = required_param('showhide', PARAM_ALPHA);
     $pageid = required_param('pageid', PARAM_INT);
     $linkid = required_param('linkid', PARAM_INT);
     if ($showhide == 'hide') {
         $this->save_data($linkid, 'exclude', $pageid, true);
         pagemenu_set_message(get_string('pagelinkhidden', 'pagemenu'), 'notifysuccess');
     } else {
         if ($showhide == 'show') {
             delete_records('pagemenu_link_data', 'linkid', $linkid, 'name', 'exclude', 'value', $pageid);
             pagemenu_set_message(get_string('pagelinkvisible', 'pagemenu'), 'notifysuccess');
         } else {
             error('Invalide showhid param');
         }
     }
 }
/**
 * Helper function to handle edit actions
 *
 * @param object $pagemenu Page menu instance
 * @param string $action Action that is being performed
 * @return boolean If return true, then a redirect will occure (in edit.php at least)
 **/
function pagemenu_handle_edit_action($pagemenu, $action = NULL)
{
    global $CFG;
    if (!confirm_sesskey()) {
        error(get_string('confirmsesskeybad', 'error'));
    }
    $linkid = required_param('linkid', PARAM_INT);
    if ($action === NULL) {
        $action = required_param('action', PARAM_ALPHA);
    }
    switch ($action) {
        case 'edit':
        case 'move':
            return false;
            break;
        case 'movehere':
            $after = required_param('after', PARAM_INT);
            pagemenu_move_link($pagemenu, $linkid, $after);
            pagemenu_set_message(get_string('linkmoved', 'pagemenu'), 'notifysuccess');
            break;
        case 'delete':
            pagemenu_delete_link($linkid);
            pagemenu_set_message(get_string('linkdeleted', 'pagemenu'), 'notifysuccess');
            break;
        default:
            error('Inavlid action: ' . $action);
            break;
    }
    return true;
}
Пример #3
0
        $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);
            $link->handle_action();
            redirect("{$CFG->wwwroot}/mod/pagemenu/edit.php?id={$cm->id}");
        }