Page 1 of 1

[ter info] Module LinkMgr toevoegen aan Core Module Search

Posted: Sun Aug 22, 2010 11:02 am
by Acorna078
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):

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;
		  }
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)

Re: [ter info] Module LinkMgr toevoegen aan Core Module Search

Posted: Sun Aug 22, 2010 1:46 pm
by Rolf
Hallo Acorna078,

Bedankt voor deze informatie. Ik verplaats het artikel even naar de Tips & Trucs sectie, waar deze meer thuis hoort.
Al denk ik dat de code beter als Feature Request in de Forge kan worden geplaatst, Nullig werkt wel mee met dit soort verbeteringen van zijn module ;)
http://dev.cmsmadesimple.org/feature_request/list/507

Groet, Rolf