[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * mod_book data generator. 19 * 20 * @package mod_book 21 * @category test 22 * @copyright 2013 Frédéric Massart 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 defined('MOODLE_INTERNAL') || die(); 27 28 /** 29 * mod_book data generator class. 30 * 31 * @package mod_book 32 * @category test 33 * @copyright 2013 Frédéric Massart 34 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 35 */ 36 class mod_book_generator extends testing_module_generator { 37 38 /** 39 * @var int keep track of how many chapters have been created. 40 */ 41 protected $chaptercount = 0; 42 43 /** 44 * To be called from data reset code only, 45 * do not use in tests. 46 * @return void 47 */ 48 public function reset() { 49 $this->chaptercount = 0; 50 parent::reset(); 51 } 52 53 public function create_instance($record = null, array $options = null) { 54 global $CFG; 55 require_once("$CFG->dirroot/mod/book/locallib.php"); 56 57 $record = (object)(array)$record; 58 59 if (!isset($record->numbering)) { 60 $record->numbering = BOOK_NUM_NUMBERS; 61 } 62 if (!isset($record->customtitles)) { 63 $record->customtitles = 0; 64 } 65 66 return parent::create_instance($record, (array)$options); 67 } 68 69 public function create_chapter($record = null, array $options = null) { 70 global $DB; 71 72 $record = (object) (array) $record; 73 $options = (array) $options; 74 $this->chaptercount++; 75 76 if (empty($record->bookid)) { 77 throw new coding_exception('Chapter generator requires $record->bookid'); 78 } 79 80 if (empty($record->title)) { 81 $record->title = "Chapter {$this->chaptercount}"; 82 } 83 if (empty($record->pagenum)) { 84 $record->pagenum = 1; 85 } 86 if (!isset($record->subchapter)) { 87 $record->subchapter = 0; 88 } 89 if (!isset($record->hidden)) { 90 $record->hidden = 0; 91 } 92 if (!isset($record->importsrc)) { 93 $record->importsrc = ''; 94 } 95 if (!isset($record->content)) { 96 $record->content = "Chapter {$this->chaptercount} content"; 97 } 98 if (!isset($record->contentformat)) { 99 $record->contentformat = FORMAT_MOODLE; 100 } 101 if (!isset($record->timecreated)) { 102 $record->timecreated = time(); 103 } 104 if (!isset($record->timemodified)) { 105 $record->timemodified = time(); 106 } 107 108 // Make room for new page. 109 $sql = "UPDATE {book_chapters} 110 SET pagenum = pagenum + 1 111 WHERE bookid = ? AND pagenum >= ?"; 112 $DB->execute($sql, array($record->bookid, $record->pagenum)); 113 $record->id = $DB->insert_record('book_chapters', $record); 114 115 $sql = "UPDATE {book} 116 SET revision = revision + 1 117 WHERE id = ?"; 118 $DB->execute($sql, array($record->bookid)); 119 120 return $record; 121 } 122 123 public function create_content($instance, $record = array()) { 124 $record = (array)$record + array( 125 'bookid' => $instance->id 126 ); 127 return $this->create_chapter($record); 128 } 129 130 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |