From: <lph...@us...> - 2010-11-30 18:33:15
|
Revision: 30957 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=30957&view=rev Author: lphuberdeau Date: 2010-11-30 18:33:09 +0000 (Tue, 30 Nov 2010) Log Message: ----------- [MOD] Adding freetag global source Modified Paths: -------------- trunk/lib/search/searchlib-unified.php Added Paths: ----------- trunk/lib/core/Search/GlobalSource/FreeTagSource.php Added: trunk/lib/core/Search/GlobalSource/FreeTagSource.php =================================================================== --- trunk/lib/core/Search/GlobalSource/FreeTagSource.php (rev 0) +++ trunk/lib/core/Search/GlobalSource/FreeTagSource.php 2010-11-30 18:33:09 UTC (rev 30957) @@ -0,0 +1,36 @@ +<?php + +class Search_GlobalSource_FreeTagSource implements Search_GlobalSource_Interface +{ + private $freetaglib; + + function __construct() + { + global $freetaglib; require_once 'lib/freetag/freetaglib.php'; + $this->freetaglib = $freetaglib; + } + + function getProvidedFields() + { + return array('freetags', 'freetags_text'); + } + + function getData($objectType, $objectId, Search_Type_Factory_Interface $typeFactory, array $data = array()) + { + $tags = $this->freetaglib->get_tags_on_object($objectId, $objectType); + + $textual = array(); + $ids = array(); + + foreach ($tags['data'] as $entry) { + $textual[] = $entry['tag']; + $ids[] = $entry['tagId']; + } + + return array( + 'freetags' => $typeFactory->multivalue($ids), + 'freetags_text' => $typeFactory->plaintext(implode(' ', $textual)), + ); + } +} + Modified: trunk/lib/search/searchlib-unified.php =================================================================== --- trunk/lib/search/searchlib-unified.php 2010-11-30 17:53:10 UTC (rev 30956) +++ trunk/lib/search/searchlib-unified.php 2010-11-30 18:33:09 UTC (rev 30957) @@ -87,6 +87,10 @@ $aggregator->addGlobalSource(new Search_GlobalSource_CategorySource); } + if ($prefs['feature_freetags'] == 'y') { + $aggregator->addGlobalSource(new Search_GlobalSource_FreeTagSource); + } + $aggregator->addGlobalSource(new Search_GlobalSource_PermissionSource(Perms::getInstance(), 'Admins')); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |