summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlessandro Cosentino <cosenal@gmail.com>2012-10-18 00:18:33 -0400
committerAlessandro Cosentino <cosenal@gmail.com>2012-10-18 00:18:57 -0400
commitb3baecc30eb02cc62b31ba85a95b2eca0730c620 (patch)
tree8761c641b7b348b6388aa42856724bb15a25380d
parent138de85e03495a08250773541ab74b3410f6ce8f (diff)
almost-working search provider
-rw-r--r--appinfo/app.php8
-rw-r--r--lib/feedmapper.php6
-rw-r--r--lib/search.php28
3 files changed, 36 insertions, 6 deletions
diff --git a/appinfo/app.php b/appinfo/app.php
index 6c2aca9ef..97ad68ee3 100644
--- a/appinfo/app.php
+++ b/appinfo/app.php
@@ -23,15 +23,17 @@ OC::$CLASSPATH['OCA\News\FolderMapper'] = 'apps/news/lib/foldermapper.php';
OC::$CLASSPATH['OCA\News\Utils'] = 'apps/news/lib/utils.php';
+OC::$CLASSPATH['OC_Search_Provider_News'] = 'apps/news/lib/search.php';
+
OC::$CLASSPATH['OCA\News\Backgroundjob'] = 'apps/news/lib/backgroundjob.php';
OCP\Backgroundjob::addRegularTask( 'OCA\News\Backgroundjob', 'run' );
-$l = new OC_l10n('news');
-
OCP\App::addNavigationEntry( array(
'id' => 'news',
'order' => 74,
'href' => OC_Helper::linkTo( 'news', 'index.php' ),
'icon' => OC_Helper::imagePath( 'news', 'icon.svg' ),
- 'name' => $l->t('News')
+ 'name' => OC_L10N::get('news')->t('News')
));
+
+OC_Search::registerProvider('OC_Search_Provider_News');
diff --git a/lib/feedmapper.php b/lib/feedmapper.php
index 4220f99d7..27c1276a8 100644
--- a/lib/feedmapper.php
+++ b/lib/feedmapper.php
@@ -47,7 +47,6 @@ class FeedMapper {
/**
* @brief as a list that can be easily parsed using JSON
- * @param userid
* @returns
*/
public function findAll() {
@@ -66,13 +65,14 @@ class FeedMapper {
$id = $row['id'];
$folderid = $row['folder_id'];
$userid = $row['user_id'];
- $feeds[] = array("url" => $url, "id" => $id, "folderid" => $folderid, 'userid' => $userid );
+ $title = $row['title'];
+ $feeds[] = array("url" => $url, "id" => $id, "folderid" => $folderid,
+ 'userid' => $userid, 'title' => $title );
}
return $feeds;
}
-
/**
* @brief returns the number of feeds that a user has
* @returns the number of feeds that a user has
diff --git a/lib/search.php b/lib/search.php
new file mode 100644
index 000000000..d9d5d89f3
--- /dev/null
+++ b/lib/search.php
@@ -0,0 +1,28 @@
+<?php
+
+class OC_Search_Provider_News extends OC_Search_Provider{
+
+ function search($query) {
+ if (!OCP\App::isEnabled('news')) {
+ return array();
+ }
+
+ $feedMapper = new OCA\News\FeedMapper(OCP\USER::getUser());
+ $results=array();
+
+ if($feedMapper->feedCount() > 0) {
+ $allFeeds = $feedMapper->findAll();
+
+ $l = new OC_l10n('news');
+
+ foreach($allFeeds as $feed) {
+ if(substr_count(strtolower($feed['title']), strtolower($query)) > 0) {
+ $link = OCP\Util::linkTo('news', 'index.php').'&lastViewedFeedId='.urlencode($feed['id']);
+ $results[]=new OC_Search_Result($feed['title'], '', $link, (string)$l->t('News'));
+ }
+ }
+ }
+ return $results;
+
+ }
+}