Het heeft me veel tijd gekost om erachter te komen hoe ik de module LinkMgr kon toevoegen aan de Search Index; hij werd namelijk niet automatisch doorzocht, zoals de News Module. Maar ik heb uiteindelijk de oplossing gevonden, die werkt in zowel mijn oude website (CMS 1.5.2 & LinkMgr 1.1) als in mijn nieuwe website (CMS 1.8.2 & LinkMgr 1.5.1).
Voeg de onderstaande code toe aan het bestand "LinkMgr.module.php" (in map [root]/modules/LinkMgr):
Code: Select all
function SearchReindex(&$module)
{
$db =& $this->GetDb();
$query = 'SELECT * FROM '.cms_db_prefix().'module_linkmgr_links';
$result =& $db->Execute($query);
while( $result && !$result->EOF )
{
$row =& $result->fields;
$module->AddWords($this->GetName(),$row['entry_id'],'linkmgr',
$row['link_name'].' '.$row['link_desc']);
$result->MoveNext();
}
$result->Close();
}
function SearchResult($returnid, $articleid, $attr = '')
{
$targ = $this->GetPreference('45','');
if( !empty($targ) ) $returnid = $targ;
$result = array();
if( $attr == 'linkmgr' )
{
$db =& $this->GetDb();
$q = 'SELECT * FROM '.cms_db_prefix().'module_linkmgr_links
WHERE entry_id = ?';
$row = $db->GetRow($q,array($articleid));
if( $row )
{
$result[0] = $row['link_name'];
$result[1] = $row['link_desc'];
$result[2] = $row['link_url'];
}
}
return $result;
}
Bekijk mijn zoekfunctie: http://www.zoeken-en-vinden.nl/index.php?page=uitgebreid-zoeken
Gerelateerde Engelse forum post: Add search to a custom cmsms module (15 april 2009)