Code Snippet: Search Bookmarks

bupaje

#6
Is there a simple mod to this code to allow it to also search by the text in the title attribute - not only the link text? (This info is currently pulled from the Display field in the Bookmarks module.)

<a href="http://www.example.com/" target="_blank" title="Nice collection of PS brushes with a nifty live preview.">Example</a>

Ryan

Website Baker Project Founder
[url="https://websitebaker.org"]https://websitebaker.org[/url]

To contact me via email, visit:
www.ryandjurovich.com

Craig.Rodway

I didn't notice the bookmarks weren't searchable until after I'd made that code, I just wanted a way to only search the bookmarks, and have the search box on the same page  :wink:

Ryan

Hmm, one day when I get my act together, the bookmarks module will be searchable through the main search feature - so we won't have to write stuff like this anymore. As for now, your code is great! 8)
Website Baker Project Founder
[url="https://websitebaker.org"]https://websitebaker.org[/url]

To contact me via email, visit:
www.ryandjurovich.com

fienieg


Craig.Rodway

Here is a piece of code to allow searching of bookmarks. It's intended to be added to a code module before the bookmarks module, but could be easily adopted to fit into a template.

if( isset( $_GET['search'] ) ) {

 $query_links = $database->query("SELECT title,url,target FROM ".TABLE_PREFIX."mod_bookmarks_links WHERE title LIKE '%".$_GET[search]."%' ORDER BY position ASC");

if( $query_links->numRows() > 0 ) {
 print '<p>Search results for "'.$_GET['search'].'":';
 print '<ul>';
 while($link = $query_links->fetchRow()) {
   print '<li>';
   print '<a href="'.$link['url'].'" target="'.$link['target'].'">';
   print $link['title'];
   print '</a>';
   print '</li>';
 }
 print '</ul>';
} else {
print '<p>Sorry, no results found for "'.$_GET['search'].'".</p>';
}

} else {

 print '<form method="GET" action="'.$_ENV[PHP_SELF].'" style="margin:0px;">';
 print '<p style="margin-bottom:0px;padding-bottom:0px;">Search bookmarks: ';
 print '<input type="text" name="search" size="30">';
 print '<input type="submit" value=" Search "></p>';
 print '</form>';

}

print '<hr>';  // remove this line to get rid of the visible horizontal rule.


Click here to view the live example version :)