1735e11d42be9d4ab7548a0741faf56bf13bc50d
[moodle.git] / mod / lesson / action / addcluster.php
1 <?php // $Id$
2 /**
3  * Action for adding a cluster page
4  *
5  * @version $Id$
6  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
7  * @package lesson
8  **/
9     confirm_sesskey();
11     // first get the preceeding page
12     // if $pageid = 0, then we are inserting a new page at the beginning of the lesson
13     $pageid = required_param('pageid', PARAM_INT);
14         
15     $timenow = time();
16     
17     if ($pageid == 0) {
18         if (!$page = $DB->get_record("lesson_pages", array("prevpageid" => 0, "lessonid" => $lesson->id))) {
19             print_error('cannotfindpagerecord', 'lesson');
20         }
21     } else {
22         if (!$page = $DB->get_record("lesson_pages", array("id" => $pageid))) {
23             print_error('cannotfindpagerecord', 'lesson');
24         }
25     }
26     $newpage = new stdClass;
27     $newpage->lessonid = $lesson->id;
28     $newpage->prevpageid = $pageid;
29     if ($pageid != 0) {
30         $newpage->nextpageid = $page->nextpageid;
31     } else {
32         $newpage->nextpageid = $page->id;
33     }
34     $newpage->qtype = LESSON_CLUSTER;
35     $newpage->timecreated = $timenow;
36     $newpage->title = get_string("clustertitle", "lesson");
37     $newpage->contents = get_string("clustertitle", "lesson");
38     $newpageid = $DB->insert_record("lesson_pages", $newpage);
39     // update the linked list...
40     if ($pageid != 0) {
41         if (!$DB->set_field("lesson_pages", "nextpageid", $newpageid, array("id" => $pageid))) {
42             print_error('cannotupdatelink', 'lesson');
43         }
44     }
45     
46     if ($pageid == 0) {
47         $page->nextpageid = $page->id;
48     }        
49     if ($page->nextpageid) {
50         // the new page is not the last page
51         if (!$DB->set_field("lesson_pages", "prevpageid", $newpageid, array("id" => $page->nextpageid))) {
52             print_error('cannotupdatelink', 'lesson');
53         }
54     }
55     // ..and the single "answer"
56     $newanswer = new stdClass;
57     $newanswer->lessonid = $lesson->id;
58     $newanswer->pageid = $newpageid;
59     $newanswer->timecreated = $timenow;
60     $newanswer->jumpto = LESSON_CLUSTERJUMP;
61     $newanswerid = $DB->insert_record("lesson_answers", $newanswer);
62     lesson_set_message(get_string('addedcluster', 'lesson'), 'notifysuccess');
63     redirect("$CFG->wwwroot/mod/lesson/edit.php?id=$cm->id");
64 ?>