function ed_readmore_nodeapi in Read More Link (Drupal 6 and earlier) 5
Same name and namespace in other branches
- 6.5 ed_readmore.module \ed_readmore_nodeapi()
- 6.2 ed_readmore.module \ed_readmore_nodeapi()
- 6.3 ed_readmore.module \ed_readmore_nodeapi()
Fix "read more" flag From the most excellent angry donuts site: http://www.angrydonuts.com/the_nuisance_of_the_read_more_fl From author: Note that I'm using a lot of arguments to l() -- I'm telling it to provide an 'absolute' path, because these teasers often go out to RSS, and providing an absolute path is much, much safer.
File
- ./
ed_readmore.module, line 73 - Customize the "Read more" link shown in teasers.
Code
function ed_readmore_nodeapi(&$node, $op, $teaser, $page) {
$enabled = variable_get('ed_readmore_readmore_tweak', ED_READMORE_READMORE_TWEAK_DEFAULT);
if ($enabled) {
$link_text = t(variable_get('ed_readmore_text', ED_READMORE_TEXT_DEFAULT));
if (variable_get('ed_readmore_readmore_strong', 1)) {
$link_text = '<strong>' . $link_text . '</strong>';
}
$inlineflag = variable_get('ed_readmore_readmore_inline', ED_READMORE_READMORE_INLINE_DEFAULT);
$rss_enabled = variable_get('ed_readmore_readmore_rss_enabled', ED_READMORE_READMORE_RSS_DEFAULT);
if ($rss_enabled && $op == 'rss item') {
// Since this is an RSS item, we need an absolute URL.
// And, while we're at it, we make it a _blank target as does node.module node_feed() function.
$options['target'] = '_blank';
$item_length = variable_get('feed_item_length', 'teaser');
// from node.module node_feed() code
switch ($item_length) {
case 'teaser':
if (strlen($node->teaser) < strlen($node->body)) {
$readmore_url = l($link_text, "node/{$node->nid}", $options, NULL, NULL, TRUE, TRUE);
$node->teaser = _ed_readmore_place_readmore_link($node->teaser, $readmore_url, $inlineflag);
}
break;
}
return;
}
if ($op == 'view') {
if ($teaser && $node->readmore) {
if (variable_get('ed_readmore_readmore_remove', TRUE)) {
$node->readmore = FALSE;
// since we are blowing away some of the implicit info ($node->readmore) let's remember that this was a teaser
$node->is_teaser = TRUE;
}
$readmore_url = l($link_text, "node/{$node->nid}", NULL, NULL, NULL, TRUE, TRUE);
$node->content[body]['#value'] = _ed_readmore_place_readmore_link($node->content[body]['#value'], $readmore_url, $inlineflag);
}
}
}
}