Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/admin/repositoryinstance.php
Go to the documentation of this file.
00001 <?php
00002 
00003 require_once(dirname(dirname(__FILE__)) . '/config.php');
00004 require_once($CFG->dirroot . '/repository/lib.php');
00005 require_once($CFG->libdir . '/adminlib.php');
00006 
00007 // id of repository
00008 $edit    = optional_param('edit', 0, PARAM_INT);
00009 $new     = optional_param('new', '', PARAM_FORMAT);
00010 $hide    = optional_param('hide', 0, PARAM_INT);
00011 $delete  = optional_param('delete', 0, PARAM_INT);
00012 $sure    = optional_param('sure', '', PARAM_ALPHA);
00013 $type    = optional_param('type', '', PARAM_PLUGIN);
00014 
00015 $context = get_context_instance(CONTEXT_SYSTEM);
00016 
00017 $pagename = 'repositorycontroller';
00018 
00019 if ($edit){
00020     $pagename = 'repositoryinstanceedit';
00021 } else if ($delete) {
00022     $pagename = 'repositorydelete';
00023 } else if ($new) {
00024     $pagename = 'repositoryinstancenew';
00025 }
00026 
00027 admin_externalpage_setup($pagename);
00028 require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
00029 
00030 $sesskeyurl = "$CFG->wwwroot/$CFG->admin/repositoryinstance.php?sesskey=" . sesskey();
00031 $baseurl    = "$CFG->wwwroot/$CFG->admin/repository.php?session=". sesskey() .'&action=edit&repos=';
00032 if ($new) {
00033     $baseurl .= $new;
00034 }
00035 else {
00036     $baseurl .= $type;
00037 }
00038 
00039 $return = true;
00040 
00041 if (!empty($edit) || !empty($new)) {
00042     if (!empty($edit)) {
00043         $instance = repository::get_instance($edit);
00044         $instancetype = repository::get_type_by_id($instance->options['typeid']);
00045         $classname = 'repository_' . $instancetype->get_typename();
00046         $configs  = $instance->get_instance_option_names();
00047         $plugin = $instancetype->get_typename();
00048         $typeid = $instance->options['typeid'];
00049     } else {
00050         $plugin = $new;
00051         $typeid = $new;
00052         $instance = null;
00053     }
00054 
00055     // display the edit form for this instance
00056     $mform = new repository_instance_form('', array('plugin' => $plugin, 'typeid' => $typeid, 'instance' => $instance, 'contextid' => $context->id));
00057     // end setup, begin output
00058 
00059     if ($mform->is_cancelled()){
00060         redirect($baseurl);
00061         exit;
00062     } else if ($fromform = $mform->get_data()){
00063         if (!confirm_sesskey()) {
00064             print_error('confirmsesskeybad', '', $baseurl);
00065         }
00066         if ($edit) {
00067             $settings = array();
00068             $settings['name'] = $fromform->name;
00069             if (!$instance->readonly) {
00070                 foreach($configs as $config) {
00071                     if (isset($fromform->$config)) {
00072                         $settings[$config] = $fromform->$config;
00073                     } else {
00074                         $settings[$config] = null;
00075                     }
00076                 }
00077             }
00078             $success = $instance->set_option($settings);
00079         } else {
00080             $success = repository::static_function($plugin, 'create', $plugin, 0, get_system_context(), $fromform);
00081             $data = data_submitted();
00082         }
00083         if ($success) {
00084             redirect($baseurl);
00085         } else {
00086             print_error('instancenotsaved', 'repository', $baseurl);
00087         }
00088         exit;
00089     } else {
00090         echo $OUTPUT->header();
00091         echo $OUTPUT->heading(get_string('configplugin', 'repository_'.$plugin));
00092         echo $OUTPUT->box_start();
00093         $mform->display();
00094         echo $OUTPUT->box_end();
00095         $return = false;
00096     }
00097 } else if (!empty($hide)) {
00098     if (!confirm_sesskey()) {
00099         print_error('confirmsesskeybad', '', $baseurl);
00100     }
00101     $instance = repository::get_type_by_typename($hide);
00102     $instance->hide();
00103     $return = true;
00104 } else if (!empty($delete)) {
00105     $instance = repository::get_instance($delete);
00106     //if you try to delete an instance set as readonly, display an error message
00107     if ($instance->readonly) {
00108             throw new repository_exception('readonlyinstance', 'repository');
00109      }
00110     if ($sure) {
00111         if (!confirm_sesskey()) {
00112             print_error('confirmsesskeybad', '', $baseurl);
00113         }
00114         if ($instance->delete()) {
00115             $deletedstr = get_string('instancedeleted', 'repository');
00116             redirect($baseurl, $deletedstr, 3);
00117         } else {
00118             print_error('instancenotdeleted', 'repository', $baseurl);
00119         }
00120         exit;
00121     }
00122 
00123     echo $OUTPUT->header();
00124     echo $OUTPUT->confirm(get_string('confirmdelete', 'repository', $instance->name), "$sesskeyurl&type=$type'&delete=$delete'&sure=yes", "$CFG->wwwroot/$CFG->admin/repositoryinstance.php?session=". sesskey());
00125     $return = false;
00126 }
00127 
00128 if (!empty($return)) {
00129 
00130     redirect($baseurl);
00131 }
00132 echo $OUTPUT->footer();
 All Data Structures Namespaces Files Functions Variables Enumerations