Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/feedback/edit.php
Go to the documentation of this file.
00001 <?php
00002 // This file is part of Moodle - http://moodle.org/
00003 //
00004 // Moodle is free software: you can redistribute it and/or modify
00005 // it under the terms of the GNU General Public License as published by
00006 // the Free Software Foundation, either version 3 of the License, or
00007 // (at your option) any later version.
00008 //
00009 // Moodle is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
00016 
00025 require_once("../../config.php");
00026 require_once("lib.php");
00027 require_once('edit_form.php');
00028 
00029 feedback_init_feedback_session();
00030 
00031 $id = required_param('id', PARAM_INT);
00032 
00033 if (($formdata = data_submitted()) AND !confirm_sesskey()) {
00034     print_error('invalidsesskey');
00035 }
00036 
00037 $do_show = optional_param('do_show', 'edit', PARAM_ALPHA);
00038 $moveupitem = optional_param('moveupitem', false, PARAM_INT);
00039 $movedownitem = optional_param('movedownitem', false, PARAM_INT);
00040 $moveitem = optional_param('moveitem', false, PARAM_INT);
00041 $movehere = optional_param('movehere', false, PARAM_INT);
00042 $switchitemrequired = optional_param('switchitemrequired', false, PARAM_INT);
00043 
00044 $current_tab = $do_show;
00045 
00046 $url = new moodle_url('/mod/feedback/edit.php', array('id'=>$id, 'do_show'=>$do_show));
00047 
00048 if (! $cm = get_coursemodule_from_id('feedback', $id)) {
00049     print_error('invalidcoursemodule');
00050 }
00051 
00052 if (! $course = $DB->get_record("course", array("id"=>$cm->course))) {
00053     print_error('coursemisconf');
00054 }
00055 
00056 if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) {
00057     print_error('invalidcoursemodule');
00058 }
00059 
00060 if (!$context = get_context_instance(CONTEXT_MODULE, $cm->id)) {
00061         print_error('badcontext');
00062 }
00063 
00064 require_login($course->id, true, $cm);
00065 
00066 require_capability('mod/feedback:edititems', $context);
00067 
00068 //move up/down items
00069 if ($moveupitem) {
00070     $item = $DB->get_record('feedback_item', array('id'=>$moveupitem));
00071     feedback_moveup_item($item);
00072 }
00073 if ($movedownitem) {
00074     $item = $DB->get_record('feedback_item', array('id'=>$movedownitem));
00075     feedback_movedown_item($item);
00076 }
00077 
00078 //moving of items
00079 if ($movehere && isset($SESSION->feedback->moving->movingitem)) {
00080     $item = $DB->get_record('feedback_item', array('id'=>$SESSION->feedback->moving->movingitem));
00081     feedback_move_item($item, intval($movehere));
00082     $moveitem = false;
00083 }
00084 if ($moveitem) {
00085     $item = $DB->get_record('feedback_item', array('id'=>$moveitem));
00086     $SESSION->feedback->moving->shouldmoving = 1;
00087     $SESSION->feedback->moving->movingitem = $moveitem;
00088 } else {
00089     unset($SESSION->feedback->moving);
00090 }
00091 
00092 if ($switchitemrequired) {
00093     $item = $DB->get_record('feedback_item', array('id'=>$switchitemrequired));
00094     @feedback_switch_item_required($item);
00095     redirect($url->out(false));
00096     exit;
00097 }
00098 
00099 //the create_template-form
00100 $create_template_form = new feedback_edit_create_template_form();
00101 $create_template_form->set_feedbackdata(array('context'=>$context, 'course'=>$course));
00102 $create_template_form->set_form_elements();
00103 $create_template_form->set_data(array('id'=>$id, 'do_show'=>'templates'));
00104 $create_template_formdata = $create_template_form->get_data();
00105 if (isset($create_template_formdata->savetemplate) && $create_template_formdata->savetemplate == 1) {
00106     //check the capabilities to create templates
00107     if (!has_capability('mod/feedback:createprivatetemplate', $context) AND
00108             !has_capability('mod/feedback:createpublictemplate', $context)) {
00109         print_error('cannotsavetempl', 'feedback');
00110     }
00111     if (trim($create_template_formdata->templatename) == '') {
00112         $savereturn = 'notsaved_name';
00113     } else {
00114         //if the feedback is located on the frontpage then templates can be public
00115         if (has_capability('mod/feedback:createpublictemplate', get_system_context())) {
00116             $create_template_formdata->ispublic = isset($create_template_formdata->ispublic) ? 1 : 0;
00117         } else {
00118             $create_template_formdata->ispublic = 0;
00119         }
00120         if (!feedback_save_as_template($feedback,
00121                                       $create_template_formdata->templatename,
00122                                       $create_template_formdata->ispublic)) {
00123             $savereturn = 'failed';
00124         } else {
00125             $savereturn = 'saved';
00126         }
00127     }
00128 }
00129 
00130 //get the feedbackitems
00131 $lastposition = 0;
00132 $feedbackitems = $DB->get_records('feedback_item', array('feedback'=>$feedback->id), 'position');
00133 if (is_array($feedbackitems)) {
00134     $feedbackitems = array_values($feedbackitems);
00135     if (count($feedbackitems) > 0) {
00136         $lastitem = $feedbackitems[count($feedbackitems)-1];
00137         $lastposition = $lastitem->position;
00138     } else {
00139         $lastposition = 0;
00140     }
00141 }
00142 $lastposition++;
00143 
00144 
00145 //the add_item-form
00146 $add_item_form = new feedback_edit_add_question_form('edit_item.php');
00147 $add_item_form->set_data(array('cmid'=>$id, 'position'=>$lastposition));
00148 
00149 //the use_template-form
00150 $use_template_form = new feedback_edit_use_template_form('use_templ.php');
00151 $use_template_form->set_feedbackdata(array('course' => $course));
00152 $use_template_form->set_form_elements();
00153 $use_template_form->set_data(array('id'=>$id));
00154 
00156 $strfeedbacks = get_string("modulenameplural", "feedback");
00157 $strfeedback  = get_string("modulename", "feedback");
00158 
00159 $PAGE->set_url('/mod/feedback/edit.php', array('id'=>$cm->id, 'do_show'=>$do_show));
00160 $PAGE->set_heading(format_string($course->fullname));
00161 $PAGE->set_title(format_string($feedback->name));
00162 echo $OUTPUT->header();
00163 
00165 require('tabs.php');
00166 
00171 
00172 $savereturn=isset($savereturn)?$savereturn:'';
00173 
00174 //print the messages
00175 if ($savereturn == 'notsaved_name') {
00176     echo '<p align="center"><b><font color="red">'.
00177           get_string('name_required', 'feedback').
00178           '</font></b></p>';
00179 }
00180 
00181 if ($savereturn == 'saved') {
00182     echo '<p align="center"><b><font color="green">'.
00183           get_string('template_saved', 'feedback').
00184           '</font></b></p>';
00185 }
00186 
00187 if ($savereturn == 'failed') {
00188     echo '<p align="center"><b><font color="red">'.
00189           get_string('saving_failed', 'feedback').
00190           '</font></b></p>';
00191 }
00192 
00196 if ($do_show == 'templates') {
00197     echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide');
00198     $use_template_form->display();
00199 
00200     if (has_capability('mod/feedback:createprivatetemplate', $context) OR
00201                 has_capability('mod/feedback:createpublictemplate', $context)) {
00202         $deleteurl = new moodle_url('/mod/feedback/delete_template.php', array('id' => $id));
00203         $create_template_form->display();
00204         echo '<p><a href="'.$deleteurl->out().'">'.
00205              get_string('delete_templates', 'feedback').
00206              '</a></p>';
00207     } else {
00208         echo '&nbsp;';
00209     }
00210 
00211     if (has_capability('mod/feedback:edititems', $context)) {
00212         $urlparams = array('action'=>'exportfile', 'id'=>$id);
00213         $exporturl = new moodle_url('/mod/feedback/export.php', $urlparams);
00214         $importurl = new moodle_url('/mod/feedback/import.php', array('id'=>$id));
00215         echo '<p>
00216             <a href="'.$exporturl->out().'">'.get_string('export_questions', 'feedback').'</a>/
00217             <a href="'.$importurl->out().'">'.get_string('import_questions', 'feedback').'</a>
00218         </p>';
00219     }
00220     echo $OUTPUT->box_end();
00221 }
00225 if ($do_show == 'edit') {
00226 
00227     $add_item_form->display();
00228 
00229     if (is_array($feedbackitems)) {
00230         $itemnr = 0;
00231 
00232         $align = right_to_left() ? 'right' : 'left';
00233 
00234         $helpbutton = $OUTPUT->help_icon('preview', 'feedback');
00235 
00236         echo $OUTPUT->heading($helpbutton . get_string('preview', 'feedback'));
00237         if (isset($SESSION->feedback->moving) AND $SESSION->feedback->moving->shouldmoving == 1) {
00238             $anker = '<a href="edit.php?id='.$id.'">';
00239             $anker .= get_string('cancel_moving', 'feedback');
00240             $anker .= '</a>';
00241             echo $OUTPUT->heading($anker);
00242         }
00243 
00244         //check, if there exists required-elements
00245         $params = array('feedback' => $feedback->id, 'required' => 1);
00246         $countreq = $DB->count_records('feedback_item', $params);
00247         if ($countreq > 0) {
00248             echo '<span class="feedback_required_mark">(*)';
00249             echo get_string('items_are_required', 'feedback');
00250             echo '</span>';
00251         }
00252 
00253         //use list instead a table
00254         echo $OUTPUT->box_start('feedback_items');
00255         if (isset($SESSION->feedback->moving) AND $SESSION->feedback->moving->shouldmoving == 1) {
00256             $moveposition = 1;
00257             $movehereurl = new moodle_url($url, array('movehere'=>$moveposition));
00258             //only shown if shouldmoving = 1
00259             echo $OUTPUT->box_start('feedback_item_box_'.$align.' clipboard');
00260             $buttonlink = $movehereurl->out();
00261             $strbutton = get_string('move_here', 'feedback');
00262             $src = $OUTPUT->pix_url('movehere');
00263             echo '<a title="'.$strbutton.'" href="'.$buttonlink.'">
00264                     <img class="movetarget" alt="'.$strbutton.'" src="'.$src.'" />
00265                   </a>';
00266             echo $OUTPUT->box_end();
00267         }
00268         //print the inserted items
00269         $itempos = 0;
00270         foreach ($feedbackitems as $feedbackitem) {
00271             $itempos++;
00272             //hiding the item to move
00273             if (isset($SESSION->feedback->moving)) {
00274                 if ($SESSION->feedback->moving->movingitem == $feedbackitem->id) {
00275                     continue;
00276                 }
00277             }
00278             if ($feedbackitem->dependitem > 0) {
00279                 $dependstyle = ' feedback_depend';
00280             } else {
00281                 $dependstyle = '';
00282             }
00283             echo $OUTPUT->box_start('feedback_item_box_'.$align.$dependstyle);
00284             //items without value only are labels
00285             if ($feedbackitem->hasvalue == 1 AND $feedback->autonumbering) {
00286                 $itemnr++;
00287                 echo $OUTPUT->box_start('feedback_item_number_'.$align);
00288                 echo $itemnr;
00289                 echo $OUTPUT->box_end();
00290             }
00291             echo $OUTPUT->box_start('box generalbox boxalign_'.$align);
00292             echo $OUTPUT->box_start('feedback_item_commands_'.$align);
00293             echo '<span class="feedback_item_commands">';
00294             echo '('.get_string('position', 'feedback').':'.$itempos .')';
00295             echo '</span>';
00296             //print the moveup-button
00297             if ($feedbackitem->position > 1) {
00298                 echo '<span class="feedback_item_command_moveup">';
00299                 $moveupurl = new moodle_url($url, array('moveupitem'=>$feedbackitem->id));
00300                 $buttonlink = $moveupurl->out();
00301                 $strbutton = get_string('moveup_item', 'feedback');
00302                 echo '<a class="icon up" title="'.$strbutton.'" href="'.$buttonlink.'">
00303                         <img alt="'.$strbutton.'" src="'.$OUTPUT->pix_url('t/up') . '" />
00304                       </a>';
00305                 echo '</span>';
00306             }
00307             //print the movedown-button
00308             if ($feedbackitem->position < $lastposition - 1) {
00309                 echo '<span class="feedback_item_command_movedown">';
00310                 $urlparams = array('movedownitem'=>$feedbackitem->id);
00311                 $movedownurl = new moodle_url($url, $urlparams);
00312                 $buttonlink = $movedownurl->out();
00313                 $strbutton = get_string('movedown_item', 'feedback');
00314                 echo '<a class="icon down" title="'.$strbutton.'" href="'.$buttonlink.'">
00315                         <img alt="'.$strbutton.'" src="'.$OUTPUT->pix_url('t/down') . '" />
00316                       </a>';
00317                 echo '</span>';
00318             }
00319             //print the move-button
00320             echo '<span class="feedback_item_command_move">';
00321             $moveurl = new moodle_url($url, array('moveitem'=>$feedbackitem->id));
00322             $buttonlink = $moveurl->out();
00323             $strbutton = get_string('move_item', 'feedback');
00324             echo '<a class="editing_move" title="'.$strbutton.'" href="'.$buttonlink.'">
00325                     <img alt="'.$strbutton.'" src="'.$OUTPUT->pix_url('t/move') . '" />
00326                   </a>';
00327             echo '</span>';
00328             //print the button to edit the item
00329             if ($feedbackitem->typ != 'pagebreak') {
00330                 echo '<span class="feedback_item_command_edit">';
00331                 $editurl = new moodle_url('/mod/feedback/edit_item.php');
00332                 $editurl->params(array('do_show'=>$do_show,
00333                                          'cmid'=>$id,
00334                                          'id'=>$feedbackitem->id,
00335                                          'typ'=>$feedbackitem->typ));
00336 
00337                 // in edit_item.php the param id is used for the itemid
00338                 // and the cmid is the id to get the module
00339                 $buttonlink = $editurl->out();
00340                 $strbutton = get_string('edit_item', 'feedback');
00341                 echo '<a class="editing_update" title="'.$strbutton.'" href="'.$buttonlink.'">
00342                         <img alt="'.$strbutton.'" src="'.$OUTPUT->pix_url('t/edit') . '" />
00343                       </a>';
00344                 echo '</span>';
00345             }
00346 
00347             //print the toggle-button to switch required yes/no
00348             if ($feedbackitem->hasvalue == 1) {
00349                 echo '<span class="feedback_item_command_toggle">';
00350                 if ($feedbackitem->required == 1) {
00351                     $buttontitle = get_string('switch_item_to_not_required', 'feedback');
00352                     $buttonimg = 'pics/required.gif';
00353                 } else {
00354                     $buttontitle = get_string('switch_item_to_required', 'feedback');
00355                     $buttonimg = 'pics/notrequired.gif';
00356                 }
00357                 $urlparams = array('switchitemrequired'=>$feedbackitem->id);
00358                 $requiredurl = new moodle_url($url, $urlparams);
00359                 $buttonlink = $requiredurl->out();
00360                 echo '<a class="icon '.
00361                         'feedback_switchrequired" '.
00362                         'title="'.$buttontitle.'" '.
00363                         'href="'.$buttonlink.'">'.
00364                         '<img alt="'.$buttontitle.'" src="'.$buttonimg.'" />'.
00365                         '</a>';
00366                 echo '</span>';
00367             }
00368 
00369             //print the delete-button
00370             echo '<span class="feedback_item_command_toggle">';
00371             $deleteitemurl = new moodle_url('/mod/feedback/delete_item.php');
00372             $deleteitemurl->params(array('id'=>$id,
00373                                          'do_show'=>$do_show,
00374                                          'deleteitem'=>$feedbackitem->id));
00375 
00376             $buttonlink = $deleteitemurl->out();
00377             $strbutton = get_string('delete_item', 'feedback');
00378             $src = $OUTPUT->pix_url('t/delete');
00379             echo '<a class="icon delete" title="'.$strbutton.'" href="'.$buttonlink.'">
00380                     <img alt="'.$strbutton.'" src="'.$src.'" />
00381                   </a>';
00382             echo '</span>';
00383             echo $OUTPUT->box_end();
00384             if ($feedbackitem->typ != 'pagebreak') {
00385                 feedback_print_item_preview($feedbackitem);
00386             } else {
00387                 echo $OUTPUT->box_start('feedback_pagebreak');
00388                 echo get_string('pagebreak', 'feedback').'<hr class="feedback_pagebreak" />';
00389                 echo $OUTPUT->box_end();
00390             }
00391             echo $OUTPUT->box_end();
00392             echo $OUTPUT->box_end();
00393             if (isset($SESSION->feedback->moving) AND $SESSION->feedback->moving->shouldmoving == 1) {
00394                 $moveposition++;
00395                 $movehereurl->param('movehere', $moveposition);
00396                 echo $OUTPUT->box_start('clipboard'); //only shown if shouldmoving = 1
00397                 $buttonlink = $movehereurl->out();
00398                 $strbutton = get_string('move_here', 'feedback');
00399                 $src = $OUTPUT->pix_url('movehere');
00400                 echo '<a title="'.$strbutton.'" href="'.$buttonlink.'">
00401                         <img class="movetarget" alt="'.$strbutton.'" src="'.$src.'" />
00402                       </a>';
00403                 echo $OUTPUT->box_end();
00404             }
00405             echo '<div class="clearer">&nbsp;</div>';
00406         }
00407         echo $OUTPUT->box_end();
00408     } else {
00409         echo $OUTPUT->box(get_string('no_items_available_yet', 'feedback'),
00410                          'generalbox boxaligncenter');
00411     }
00412 }
00417 
00418 echo $OUTPUT->footer();
 All Data Structures Namespaces Files Functions Variables Enumerations