Index: paging.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/paging/paging.module,v retrieving revision 1.15.2.3 diff -u -p -r1.15.2.3 paging.module --- paging.module 23 Apr 2007 08:41:40 -0000 1.15.2.3 +++ paging.module 23 Apr 2007 19:27:12 -0000 @@ -97,36 +97,38 @@ function paging_nodeapi(&$node, $op, $te } } -/* +/** * Helper function for paging_nodeapi(). */ function _paging_nodeapi(&$node, &$nodebody, &$nodeteaser, $op, $teaser, $page) { - switch ($op) { - case 'load': - $node->pages = explode(PAGING_SEPARATOR, $nodebody); - $node->pages_count = count($node->pages); - break; - - case 'view': - $node_type = in_array($node->type, variable_get('paging_node_types_enabled', array()), TRUE); - if (!$node->in_preview && $node_type && ereg('', $teaser ? $nodeteaser : $nodebody)) { - $element = 1; - if (!$teaser && $node->pages_count > 1 && arg(2) != 'print' && arg(2) != 'full') { - global $pager_page_array, $pager_total; - $page = isset($_GET['page']) ? $_GET['page'] : ''; - $pager_page_array = explode(',', $page); - $pager_total[$element] = $node->pages_count; - $page = isset($pager_page_array[$element]) ? $pager_page_array[$element] : 0; - $node->content['body']['#value'] = check_markup($node->pages[$page], $node->format, false); - $node->content['body']['#value'] .= theme('pager', NULL, 1, $element); - } - elseif ($teaser && $node->pages_count > 1 && strlen($node->teaser) > strlen($node->pages[0])) { - // check to see if the teaser is longer than our first page. - $node->content['body']['#value'] = check_markup($node->pages[0], $node->format, false); - $node->pagemore = true; + if (in_array($node->type, variable_get('paging_node_types_enabled', array()), TRUE) && !empty(substr_count(PAGING_SEPARATOR, $teaser ? $nodeteaser : $nodebody))) { + switch ($op) { + case 'load': + $node->pages = explode(PAGING_SEPARATOR, $nodebody); + $node->pages_count = count($node->pages); + break; + case 'update index': + return array_slice($node->pages, 1); + case 'view': + if (!$node->in_preview) { + $element = 1; + if (!$teaser && $node->pages_count > 1 && arg(2) != 'print' && arg(2) != 'full') { + global $pager_page_array, $pager_total; + $page = isset($_GET['page']) ? $_GET['page'] : ''; + $pager_page_array = explode(',', $page); + $pager_total[$element] = $node->pages_count; + $page = isset($pager_page_array[$element]) ? $pager_page_array[$element] : 0; + $node->content['body']['#value'] = check_markup($node->pages[$page], $node->format, false); + $node->content['body']['#value'] .= theme('pager', NULL, 1, $element); + } + elseif ($teaser && $node->pages_count > 1 && strlen($node->teaser) > strlen($node->pages[0])) { + // check to see if the teaser is longer than our first page. + $node->content['body']['#value'] = check_markup($node->pages[0], $node->format, false); + $node->pagemore = true; + } } - } - break; + break; + } } }