[ter info] Module LinkMgr toevoegen aan Core Module Search
Posted: Sun Aug 22, 2010 11:02 am
Voor het tonen van externe links op mijn website maak ik gebruik van de module LinkMgr. Omdat het om redelijk wat links gaat, leek het me handig om de module doorzoekbaar te maken met de standaard Zoekfunctie.
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):
Na het bijwerken van het bestand "LinkMgr.module.php" op de server, moet je binnen de Search Module eerst alle content opnieuw indexeren. Vanaf dat moment zullen de links pas doorzoekbaar zijn en getoond worden in de zoekresultaten.
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)
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)