[ter info] Module LinkMgr toevoegen aan Core Module Search

Een board om T&T's te plaatsen m.b.t. CMSMS, PHP of Smarty

Moderator: velden

Post Reply
Acorna078

[ter info] Module LinkMgr toevoegen aan Core Module Search

Post 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)
Last edited by Acorna078 on Sun Aug 22, 2010 11:37 am, edited 1 time in total.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

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

Post 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
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
Post Reply

Return to “Tips en Trucs”