[drupal-devel] [feature] Node module should provide node object to theme search hook

Eric Scouten drupal-devel at drupal.org
Sun Jan 23 22:48:24 UTC 2005


 Project:      Drupal
 Version:      4.5.0
 Component:    page.module
 Category:     feature requests
 Priority:     normal
 Assigned to:  Eric Scouten
 Reported by:  Eric Scouten
 Updated by:   Eric Scouten
 Status:       patch

Actually, for the particular site I was designing (not yet visible on
the Internet), I needed several pieces of information that were not
available to the search hook:


node's creation date, not the last updated date
node's teaser, not the text near the search term match
thumbnail for image nodes


I wouldn't expect the way I'm rendering search results to be desirable
for most sites, but it makes sense for this site, and the easiest way
to accomplish the desired rendering was to have the theme render the
node teaser rather than doing all kinds of image-specific additions.

I suspect I won't be alone in wanting to do node-specific rendering of
search results, so it seems reasonable IMHO to add the $node object to
the set of information provided for theme('search_item'). The attached
patch does exactly that and nothing more.

You wrote:

The problem really is: does presentation of the search result belong in
the theme or in the modules? I'd like to avoid putting features like
search thumbnails in a theme, as a thumbnail adds more information
rather than just changing the way something is presented.

As a matter of general principle, I agree with your argument that
Drupal as a whole is cleaner if the core (or the relevant node module)
does the heavy lifting of presenting search results and I am not
submitting any theme that would violate that principle. However, if
you're saying that Drupal should prevent a site designer from having
enough information to override the search results when the default
presentation isn't appropriate, then I strongly disagree with you.

Eric Scouten



Previous comments:
------------------------------------------------------------------------

January 23, 2005 - 12:28 : Eric Scouten

Attachment: http://drupal.org/files/issues/node_search_hook.patch (719 bytes)

As currently defined node.module's search hook doesn't provide enough
information to allow a rich rendering of search results. For instance,
in a photographic web site, I'd like the search results to show a
thumbnail of each matched image. I can't do this without access to the
node object.

The attached one-line patch provides access to the node object in the
search results.

------------------------------------------------------------------------

January 23, 2005 - 13:55 : Anonymous

I assume you want the $node object in theme('search_item').

Another possibility is to change nodeapi('search result') so it can add
custom fields to the $item array rather than just being for adding
textual information to the result by-line. That way, the image.module
could add a 'thumbnail' field, which can be displayed in the theme.

The problem really is: does presentation of the search result belong in
the theme or in the modules? I'd like to avoid putting features like
search thumbnails in a theme, as a thumbnail adds more information
rather than just changing the way something is presented.

The current search API is still a bit of a mess, mostly because I
focused on functionality of the content search, and just did a minor
cleanup of the API code in my patch. Perhaps more invasive changes are
needed to allow truly rich search results?

------------------------------------------------------------------------

January 23, 2005 - 13:56 : Steven

Sorry, that was me.

-- 
View: http://drupal.org/node/16056
Edit: http://drupal.org/project/comments/add/16056





More information about the drupal-devel mailing list