Fixing drift between CVS and git
[moodle.git] / mod / lesson / action / addendofbranch.php
1 <?php // $Id$
2 /**
3  * Action for adding an end of branch 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     $pageid = required_param('pageid', PARAM_INT);
13     
14     $timenow = time();
16     // the new page is not the first page (end of branch always comes after an existing page)
17     if (!$page = $DB->get_record("lesson_pages", array("id" => $pageid))) {
18         print_error('cannotfindpagerecord', 'lesson');
19     }
20     // chain back up to find the (nearest branch table)
21     $btpageid = $pageid;
22     if (!$btpage = $DB->get_record("lesson_pages", array("id" => $btpageid))) {
23         print_error('cannotfindpagerecord', 'lesson');
24     }
25     while (($btpage->qtype != LESSON_BRANCHTABLE) AND ($btpage->prevpageid > 0)) {
26         $btpageid = $btpage->prevpageid;
27         if (!$btpage = $DB->get_record("lesson_pages", array("id" => $btpageid))) {
28             print_error('cannotfindpagerecord', 'lesson');
29         }
30     }
31     if ($btpage->qtype == LESSON_BRANCHTABLE) {
32         $newpage = new stdClass;
33         $newpage->lessonid = $lesson->id;
34         $newpage->prevpageid = $pageid;
35         $newpage->nextpageid = $page->nextpageid;
36         $newpage->qtype = LESSON_ENDOFBRANCH;
37         $newpage->timecreated = $timenow;
38         $newpage->title = get_string("endofbranch", "lesson");
39         $newpage->contents = get_string("endofbranch", "lesson");
40         $newpageid = $DB->insert_record("lesson_pages", $newpage);
41         // update the linked list...
42         $DB->set_field("lesson_pages", "nextpageid", $newpageid, array("id" => $pageid));
43         if ($page->nextpageid) {
44             // the new page is not the last page
45             $DB->set_field("lesson_pages", "prevpageid", $newpageid, array("id" => $page->nextpageid));
46         }
47         // ..and the single "answer"
48         $newanswer = new stdClass;
49         $newanswer->lessonid = $lesson->id;
50         $newanswer->pageid = $newpageid;
51         $newanswer->timecreated = $timenow;
52         $newanswer->jumpto = $btpageid;
53         $newanswerid = $DB->insert_record("lesson_answers", $newanswer);
54         
55         lesson_set_message(get_string('addedanendofbranch', 'lesson'), 'notifysuccess');
56     } else {
57         lesson_set_message(get_string('nobranchtablefound', 'lesson'));
58     }
59     
60     redirect("$CFG->wwwroot/mod/lesson/edit.php?id=$cm->id");
61 ?>