[ 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 * Book printing 19 * 20 * @package booktool_print 21 * @copyright 2004-2011 Petr Skoda {@link http://skodak.org} 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 require(__DIR__.'/../../../../config.php'); 26 require_once (__DIR__.'/locallib.php'); 27 28 $id = required_param('id', PARAM_INT); // Course Module ID 29 $chapterid = optional_param('chapterid', 0, PARAM_INT); // Chapter ID 30 31 // ========================================================================= 32 // security checks START - teachers and students view 33 // ========================================================================= 34 35 $cm = get_coursemodule_from_id('book', $id, 0, false, MUST_EXIST); 36 $course = $DB->get_record('course', array('id'=>$cm->course), '*', MUST_EXIST); 37 $book = $DB->get_record('book', array('id'=>$cm->instance), '*', MUST_EXIST); 38 39 require_course_login($course, true, $cm); 40 41 $context = context_module::instance($cm->id); 42 require_capability('mod/book:read', $context); 43 require_capability('booktool/print:print', $context); 44 45 // Check all variables. 46 if ($chapterid) { 47 // Single chapter printing - only visible! 48 $chapter = $DB->get_record('book_chapters', array('id'=>$chapterid, 'bookid'=>$book->id), '*', MUST_EXIST); 49 } else { 50 // Complete book. 51 $chapter = false; 52 } 53 54 $PAGE->set_url('/mod/book/print.php', array('id'=>$id, 'chapterid'=>$chapterid)); 55 56 // Use "embedded" instead of "print" because Bootstrapbase shows top 57 // header bar and navbar even on print style - which is inconsistent 58 // with extant behaviour. 59 $PAGE->set_pagelayout("embedded"); 60 61 unset($id); 62 unset($chapterid); 63 64 // Security checks END. 65 66 // read chapters 67 $chapters = book_preload_chapters($book); 68 69 $strbooks = get_string('modulenameplural', 'mod_book'); 70 $strbook = get_string('modulename', 'mod_book'); 71 $strtop = get_string('top', 'mod_book'); 72 73 // Page header. 74 $strtitle = format_string($book->name, true, array('context'=>$context)); 75 $PAGE->set_title($strtitle); 76 $PAGE->set_heading($strtitle); 77 $PAGE->requires->css('/mod/book/tool/print/print.css'); 78 79 // Begin page output. 80 echo $OUTPUT->header(); 81 82 if ($chapter) { 83 84 if ($chapter->hidden) { 85 require_capability('mod/book:viewhiddenchapters', $context); 86 } 87 \booktool_print\event\chapter_printed::create_from_chapter($book, $context, $chapter)->trigger(); 88 89 // Print dialog link. 90 $printtext = get_string('printchapter', 'booktool_print'); 91 $printicon = $OUTPUT->pix_icon('chapter', $printtext, 'booktool_print', array('class' => 'icon')); 92 $printlinkatt = array('onclick' => 'window.print();return false;', 'class' => 'hidden-print'); 93 echo html_writer::link('#', $printicon.$printtext, $printlinkatt); 94 ?> 95 <a name="top"></a> 96 <?php 97 echo $OUTPUT->heading(format_string($book->name, true, array('context'=>$context)), 1); 98 ?> 99 <div class="chapter"> 100 <?php 101 if (!$book->customtitles) { 102 if (!$chapter->subchapter) { 103 $currtitle = book_get_chapter_title($chapter->id, $chapters, $book, $context); 104 echo $OUTPUT->heading($currtitle); 105 } else { 106 $currtitle = book_get_chapter_title($chapters[$chapter->id]->parent, $chapters, $book, $context); 107 $currsubtitle = book_get_chapter_title($chapter->id, $chapters, $book, $context); 108 echo $OUTPUT->heading($currtitle); 109 echo $OUTPUT->heading($currsubtitle, 3); 110 } 111 } 112 113 $chaptertext = file_rewrite_pluginfile_urls($chapter->content, 'pluginfile.php', $context->id, 'mod_book', 'chapter', $chapter->id); 114 echo format_text($chaptertext, $chapter->contentformat, array('noclean'=>true, 'context'=>$context)); 115 echo '</div>'; 116 117 } else { 118 \booktool_print\event\book_printed::create_from_book($book, $context)->trigger(); 119 120 $allchapters = $DB->get_records('book_chapters', array('bookid'=>$book->id), 'pagenum'); 121 $book->intro = file_rewrite_pluginfile_urls($book->intro, 'pluginfile.php', $context->id, 'mod_book', 'intro', null); 122 123 // Print dialog link. 124 $printtext = get_string('printbook', 'booktool_print'); 125 $printicon = $OUTPUT->pix_icon('book', $printtext, 'booktool_print', array('class' => 'icon')); 126 $printlinkatt = array('onclick' => 'window.print();return false;', 'class' => 'hidden-print'); 127 echo html_writer::link('#', $printicon.$printtext, $printlinkatt); 128 ?> 129 <a name="top"></a> 130 <?php 131 echo $OUTPUT->heading(format_string($book->name, true, array('context'=>$context)), 1); 132 ?> 133 <p class="book_summary"><?php echo format_text($book->intro, $book->introformat, array('noclean'=>true, 'context'=>$context)) ?></p> 134 <div class="book_info"><table> 135 <tr> 136 <td><?php echo get_string('site') ?>:</td> 137 <td><a href="<?php echo $CFG->wwwroot ?>"><?php echo format_string($SITE->fullname, true, array('context'=>$context)) ?></a></td> 138 </tr><tr> 139 <td><?php echo get_string('course') ?>:</td> 140 <td><?php echo format_string($course->fullname, true, array('context'=>$context)) ?></td> 141 </tr><tr> 142 <td><?php echo get_string('modulename', 'mod_book') ?>:</td> 143 <td><?php echo format_string($book->name, true, array('context'=>$context)) ?></td> 144 </tr><tr> 145 <td><?php echo get_string('printedby', 'booktool_print') ?>:</td> 146 <td><?php echo fullname($USER, true) ?></td> 147 </tr><tr> 148 <td><?php echo get_string('printdate', 'booktool_print') ?>:</td> 149 <td><?php echo userdate(time()) ?></td> 150 </tr> 151 </table></div> 152 153 <?php 154 list($toc, $titles) = booktool_print_get_toc($chapters, $book, $cm); 155 echo $toc; 156 // chapters 157 $link1 = $CFG->wwwroot.'/mod/book/view.php?id='.$course->id.'&chapterid='; 158 $link2 = $CFG->wwwroot.'/mod/book/view.php?id='.$course->id; 159 foreach ($chapters as $ch) { 160 $chapter = $allchapters[$ch->id]; 161 if ($chapter->hidden) { 162 continue; 163 } 164 echo '<div class="book_chapter"><a name="ch'.$ch->id.'"></a>'; 165 if (!$book->customtitles) { 166 if (!$chapter->subchapter) { 167 echo $OUTPUT->heading($titles[$ch->id]); 168 } else { 169 echo $OUTPUT->heading($titles[$ch->id], 3); 170 } 171 } 172 $content = str_replace($link1, '#ch', $chapter->content); 173 $content = str_replace($link2, '#top', $content); 174 $content = file_rewrite_pluginfile_urls($content, 'pluginfile.php', $context->id, 'mod_book', 'chapter', $ch->id); 175 echo format_text($content, $chapter->contentformat, array('noclean'=>true, 'context'=>$context)); 176 echo '</div>'; 177 // echo '<a href="#toc">'.$strtop.'</a>'; 178 } 179 } 180 181 // Finish page output. 182 echo $OUTPUT->footer();
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 |