diff --git a/modules/book.module b/modules/book.module index 207675c3cf0009daff6c99e624a2089a417af183..6c48aaf80e11de1814eb910a6f86e0f340a65e71 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 .= '
'; @@ -509,9 +509,7 @@ function theme_book_navigation($node) { $output .= '
'; } - $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 .= "\n"; } - $html = "\n"; - $html .= ''; - $html .= "\n". check_plain($node->title) ."\n"; - $html .= ''; - $html .= '' . "\n"; - $html .= "\n"; - $html .= "\n\n". $output . "\n\n\n"; - print $html; + print theme('book_export_html', check_plain($node->title), $output); } else { drupal_access_denied(); @@ -720,6 +710,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 = "\n"; + $html .= ''; + $html .= "\n". $title ."\n"; + $html .= ''; + $html .= '' . "\n"; + $html .= "\n"; + $html .= "\n\n". $content . "\n\n\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). diff --git a/modules/book/book.module b/modules/book/book.module index 207675c3cf0009daff6c99e624a2089a417af183..6c48aaf80e11de1814eb910a6f86e0f340a65e71 100644 --- a/modules/book/book.module +++ b/modules/book/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 .= '
'; @@ -509,9 +509,7 @@ function theme_book_navigation($node) { $output .= '
'; } - $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 .= "\n"; } - $html = "\n"; - $html .= ''; - $html .= "\n". check_plain($node->title) ."\n"; - $html .= ''; - $html .= '' . "\n"; - $html .= "\n"; - $html .= "\n\n". $output . "\n\n\n"; - print $html; + print theme('book_export_html', check_plain($node->title), $output); } else { drupal_access_denied(); @@ -720,6 +710,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 = "\n"; + $html .= ''; + $html .= "\n". $title ."\n"; + $html .= ''; + $html .= '' . "\n"; + $html .= "\n"; + $html .= "\n\n". $content . "\n\n\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).