diff options
Diffstat (limited to 'modules/book.module')
-rw-r--r-- | modules/book.module | 53 |
1 files changed, 30 insertions, 23 deletions
diff --git a/modules/book.module b/modules/book.module index 207675c3c..6c48aaf80 100644 --- a/modules/book.module +++ b/modules/book.module @@ -444,7 +444,17 @@ function book_nodeapi(&$node, $op, $teaser, $page) { foreach ($book as $key => $value) { $node->$key = $value; } - $node = theme('book_navigation', $node); + + $path = book_location($node); + // Construct the breadcrumb: + $node->breadcrumb = array(); // Overwrite the trail with a book trail. + foreach ($path as $level) { + $node->breadcrumb[] = array('path' => 'node/'. $level->nid, 'title' => $level->title); + } + $node->breadcrumb[] = array('path' => 'node/'. $node->nid); + + $node->body .= theme('book_navigation', $node); + if ($page) { menu_set_location($node->breadcrumb); } @@ -461,16 +471,6 @@ function book_nodeapi(&$node, $op, $teaser, $page) { * @ingroup themeable */ function theme_book_navigation($node) { - $path = book_location($node); - - // Construct the breadcrumb: - - $node->breadcrumb = array(); // Overwrite the trail with a book trail. - foreach ($path as $level) { - $node->breadcrumb[] = array('path' => 'node/'. $level->nid, 'title' => $level->title); - } - $node->breadcrumb[] = array('path' => 'node/'. $node->nid); - if ($node->nid) { $output .= '<div class="book">'; @@ -509,9 +509,7 @@ function theme_book_navigation($node) { $output .= '</div>'; } - $node->body = $node->body.$output; - - return $node; + return $output; } /** @@ -657,7 +655,6 @@ function book_render() { * */ function book_export($type = 'html', $nid = FALSE) { - global $base_url; $type = drupal_strtolower($type); $node = node_load($nid); if ($node) { @@ -684,14 +681,7 @@ function book_export($type = 'html', $nid = FALSE) { for ($i = 1; $i < $depth; $i++) { $output .= "</div>\n"; } - $html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; - $html .= '<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">'; - $html .= "<head>\n<title>". check_plain($node->title) ."</title>\n"; - $html .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; - $html .= '<base href="'. $base_url .'/" />' . "\n"; - $html .= "<style type=\"text/css\">\n@import url(misc/print.css);\n</style>\n"; - $html .= "</head>\n<body>\n". $output . "\n</body>\n</html>\n"; - print $html; + print theme('book_export_html', check_plain($node->title), $output); } else { drupal_access_denied(); @@ -721,6 +711,23 @@ function book_export($type = 'html', $nid = FALSE) { } /** + * How the book's HTML export should be themed + * + * @ingroup themeable + */ +function theme_book_export_html($title, $content) { + global $base_url; + $html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"; + $html .= '<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">'; + $html .= "<head>\n<title>". $title ."</title>\n"; + $html .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; + $html .= '<base href="'. $base_url .'/" />' . "\n"; + $html .= "<style type=\"text/css\">\n@import url(misc/print.css);\n</style>\n"; + $html .= "</head>\n<body>\n". $content . "\n</body>\n</html>\n"; + return $html; +} + +/** * Given a node, this function returns the depth of the node in its hierarchy. * A root node has depth 1, and children of a node of depth n have depth (n+1). * |