Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/grade/edit/outcome/index.php
Go to the documentation of this file.
00001 <?php
00002 
00003 // This file is part of Moodle - http://moodle.org/
00004 //
00005 // Moodle is free software: you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation, either version 3 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // Moodle is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
00017 
00026 require_once(dirname(__FILE__).'/../../../config.php');
00027 require_once($CFG->dirroot.'/grade/lib.php');
00028 require_once($CFG->libdir.'/gradelib.php');
00029 
00030 $courseid = optional_param('id', 0, PARAM_INT);
00031 $action   = optional_param('action', '', PARAM_ALPHA);
00032 
00033 $PAGE->set_url('/grade/edit/outcome/index.php', array('id' => $courseid));
00034 $PAGE->set_pagelayout('admin');
00035 
00037 if ($courseid) {
00038     $course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST);
00039     require_login($course);
00040     $context = get_context_instance(CONTEXT_COURSE, $course->id);
00041     require_capability('moodle/grade:manageoutcomes', $context);
00042 
00043     if (empty($CFG->enableoutcomes)) {
00044         redirect('../../index.php?id='.$courseid);
00045     }
00046     // This page doesn't exist on the navigation so map it to another
00047     navigation_node::override_active_url(new moodle_url('/grade/edit/outcome/course.php', array('id'=>$courseid)));
00048 } else {
00049     if (empty($CFG->enableoutcomes)) {
00050         redirect('../../../');
00051     }
00052     require_once $CFG->libdir.'/adminlib.php';
00053     admin_externalpage_setup('outcomes');
00054 }
00055 
00057 $gpr = new grade_plugin_return(array('type'=>'edit', 'plugin'=>'outcome', 'courseid'=>$courseid));
00058 
00059 $strshortname        = get_string('outcomeshortname', 'grades');
00060 $strfullname         = get_string('outcomefullname', 'grades');
00061 $strscale            = get_string('scale');
00062 $strstandardoutcome  = get_string('outcomesstandard', 'grades');
00063 $strcustomoutcomes   = get_string('outcomescustom', 'grades');
00064 $strcreatenewoutcome = get_string('outcomecreate', 'grades');
00065 $stritems            = get_string('items', 'grades');
00066 $strcourses          = get_string('courses');
00067 $stredit             = get_string('edit');
00068 
00069 switch ($action) {
00070     case 'delete':
00071         if (!confirm_sesskey()) {
00072             break;
00073         }
00074         $outcomeid = required_param('outcomeid', PARAM_INT);
00075         if (!$outcome = grade_outcome::fetch(array('id'=>$outcomeid))) {
00076             break;
00077         }
00078 
00079         if (empty($outcome->courseid)) {
00080             require_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM));
00081         } else if ($outcome->courseid != $courseid) {
00082             print_error('invalidcourseid');
00083         }
00084 
00085         if (!$outcome->can_delete()) {
00086             break;
00087         }
00088 
00089         $deleteconfirmed = optional_param('deleteconfirmed', 0, PARAM_BOOL);
00090 
00091         if(!$deleteconfirmed){
00092             $PAGE->set_title(get_string('outcomedelete', 'grades'));
00093             echo $OUTPUT->header();
00094             $confirmurl = new moodle_url('index.php', array(
00095                     'id' => $courseid, 'outcomeid' => $outcome->id,
00096                     'action'=> 'delete',
00097                     'sesskey' =>  sesskey(),
00098                     'deleteconfirmed'=> 1));
00099 
00100             echo $OUTPUT->confirm(get_string('outcomeconfirmdelete', 'grades', $outcome->fullname), $confirmurl, "index.php?id={$courseid}");
00101             echo $OUTPUT->footer();
00102             die;
00103         }else{
00104             $outcome->delete();
00105         }
00106         break;
00107 }
00108 
00109 $systemcontext = get_context_instance(CONTEXT_SYSTEM);
00110 $caneditsystemscales = has_capability('moodle/course:managescales', $systemcontext);
00111 
00112 if ($courseid) {
00113 
00114     $caneditcoursescales = has_capability('moodle/course:managescales', $context);
00115 
00116 } else {
00117     echo $OUTPUT->header();
00118     $caneditcoursescales = $caneditsystemscales;
00119 }
00120 
00121 
00122 $outcomes_tables = array();
00123 $heading = get_string('outcomes', 'grades');
00124 
00125 if ($courseid and $outcomes = grade_outcome::fetch_all_local($courseid)) {
00126     $return = $OUTPUT->heading($strcustomoutcomes, 3, 'main');
00127     $data = array();
00128     foreach($outcomes as $outcome) {
00129         $line = array();
00130         $line[] = $outcome->get_name();
00131         $line[] = $outcome->get_shortname();
00132 
00133         $scale = $outcome->load_scale();
00134         if (empty($scale->id)) {   // hopefully never happens
00135             $line[] = $scale->get_name();
00136         } else {
00137             if (empty($scale->courseid)) {
00138                 $caneditthisscale = $caneditsystemscales;
00139             } else if ($scale->courseid == $courseid) {
00140                 $caneditthisscale = $caneditcoursescales;
00141             } else {
00142                 $context = get_context_instance(CONTEXT_COURSE, $scale->courseid);
00143                 $caneditthisscale = has_capability('moodle/course:managescales', $context);
00144             }
00145             if ($caneditthisscale) {
00146                 $line[] = grade_print_scale_link($courseid, $scale, $gpr);
00147             } else {
00148                 $line[] = $scale->get_name();
00149             }
00150         }
00151 
00152         $line[] = $outcome->get_item_uses_count();
00153 
00154         $buttons = grade_button('edit', $courseid, $outcome);
00155 
00156         if ($outcome->can_delete()) {
00157             $buttons .= grade_button('delete', $courseid, $outcome);
00158         }
00159         $line[] = $buttons;
00160 
00161         $data[] = $line;
00162     }
00163     $table = new html_table();
00164     $table->head  = array($strfullname, $strshortname, $strscale, $stritems, $stredit);
00165     $table->size  = array('30%', '20%', '20%', '20%', '10%' );
00166     $table->align = array('left', 'left', 'left', 'center', 'center');
00167     $table->width = '90%';
00168     $table->data  = $data;
00169     $return .= html_writer::table($table);
00170     $outcomes_tables[] = $return;
00171 }
00172 
00173 
00174 if ($outcomes = grade_outcome::fetch_all_global()) {
00175     $return = $OUTPUT->heading($strstandardoutcome, 3, 'main');
00176     $data = array();
00177     foreach($outcomes as $outcome) {
00178         $line = array();
00179         $line[] = $outcome->get_name();
00180         $line[] = $outcome->get_shortname();
00181 
00182         $scale = $outcome->load_scale();
00183         if (empty($scale->id)) {   // hopefully never happens
00184             $line[] = $scale->get_name();
00185         } else {
00186             if (empty($scale->courseid)) {
00187                 $caneditthisscale = $caneditsystemscales;
00188             } else if ($scale->courseid == $courseid) {
00189                 $caneditthisscale = $caneditcoursescales;
00190             } else {
00191                 $context = get_context_instance(CONTEXT_COURSE, $scale->courseid);
00192                 $caneditthisscale = has_capability('moodle/course:managescales', $context);
00193             }
00194             if ($caneditthisscale) {
00195                 $line[] = grade_print_scale_link($courseid, $scale, $gpr);
00196             } else {
00197                 $line[] = $scale->get_name();
00198             }
00199         }
00200 
00201         $line[] = $outcome->get_course_uses_count();
00202         $line[] = $outcome->get_item_uses_count();
00203 
00204         $buttons = "";
00205         if (has_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM))) {
00206             $buttons .= grade_button('edit', $courseid, $outcome);
00207         }
00208         if (has_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM)) and $outcome->can_delete()) {
00209             $buttons .= grade_button('delete', $courseid, $outcome);
00210         }
00211         $line[] = $buttons;
00212 
00213         $data[] = $line;
00214     }
00215     $table = new html_table();
00216     $table->head  = array($strfullname, $strshortname, $strscale, $strcourses, $stritems, $stredit);
00217     $table->size  = array('30%', '20%', '20%', '10%', '10%', '10%');
00218     $table->align = array('left', 'left', 'left', 'center', 'center', 'center');
00219     $table->width = '90%';
00220     $table->data  = $data;
00221     $return .= html_writer::table($table);
00222     $outcomes_tables[] = $return;
00223 }
00224 
00225 if ($courseid) {
00227     print_grade_page_head($courseid, 'outcome', 'edit', $heading);
00228 }
00229 
00230 foreach($outcomes_tables as $table) {
00231     echo $table;
00232 }
00233 
00234 echo $OUTPUT->container_start('buttons');
00235 echo $OUTPUT->single_button(new moodle_url('edit.php', array('courseid'=>$courseid)), $strcreatenewoutcome);
00236 if ( !empty($outcomes_tables) ) {
00237     echo $OUTPUT->single_button(new moodle_url('export.php', array('id'=>$courseid, 'sesskey'=>sesskey())),  get_string('exportalloutcomes', 'grades'));
00238 }
00239 echo $OUTPUT->container_end();
00240 
00241 echo $OUTPUT->footer();
00242 
00250 function grade_print_scale_link($courseid, $scale, $gpr) {
00251     global $CFG, $OUTPUT;
00252     $url = new moodle_url('/grade/edit/scale/edit.php', array('courseid' => $courseid, 'id' => $scale->id));
00253     $url = $gpr->add_url_params($url);
00254     return html_writer::link($url, $scale->get_name());
00255 }
 All Data Structures Namespaces Files Functions Variables Enumerations