Is there a way to prevent Drupal from truncating the search results?
That is, I do not want the search results shortened with a "..." added to the end of the result. I would like the full text.
Cheers in advance.
Yes, there is. Copy the /modules/search/search-result.tpl.php
file into your theme
directory. Then modify it like this:
<?php /* this is just so it will be easier to access the body of the node */ ?>
<?php $node = $variables['result']['node']; ?>
<li class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php print render($title_prefix); ?>
<h3 class="title"<?php print $title_attributes; ?>>
<a href="<?php print $url; ?>"><?php print $title; ?></a>
</h3>
<?php print render($title_suffix); ?>
<div class="search-snippet-info">
<?php if ($snippet): ?>
<p class="search-snippet"<?php print $content_attributes; ?>>
<?php /* this part is modified, you could display different data then the body */ ?>
<?php print $node->body[$node->language][0]['safe_value']; ?>
</p>
<?php endif; ?>
<?php if ($info): ?>
<p class="search-info"><?php print $info; ?></p>
<?php endif; ?>
</div>
</li>
Note Like I said in the comment, it's easy to display content from some other field, not just the body. To see what data you have to play with do:
<?php echo '<pre>';
print_r($variables);
echo '</pre>';
?>
You can rewrite the snippet by preprocessing the search results. Replace test in the module name below with the name of your module and you'll be good to go. I don't really know my way around D7 yet, but I think the 'und' part of the node array implies that you're only using one language on your site.
function test_preprocess_search_result(&$variables) {
$variables['snippet'] = $variables['result']['node']->body['und'][0]['safe_value'];
}
theme_preprocess_search_result
at first but I like templates=)
Dec 8, 2011 at 1:01