summaryrefslogtreecommitdiffstats
path: root/apps/journal/lib/search.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/journal/lib/search.php')
-rw-r--r--apps/journal/lib/search.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/journal/lib/search.php b/apps/journal/lib/search.php
new file mode 100644
index 00000000000..27b9b87b031
--- /dev/null
+++ b/apps/journal/lib/search.php
@@ -0,0 +1,45 @@
+<?php
+class OC_Search_Provider_Journal extends OC_Search_Provider {
+ function search($query){
+ $calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), true);
+ if(count($calendars)==0 || !OCP\App::isEnabled('calendar')) {
+ //return false;
+ }
+ $results=array();
+ $searchquery=array();
+ if(substr_count($query, ' ') > 0) {
+ $searchquery = explode(' ', $query);
+ }else{
+ $searchquery[] = $query;
+ }
+ error_log('search');
+ $user_timezone = OCP\Config::getUserValue(OCP\USER::getUser(), 'calendar', 'timezone', date_default_timezone_get());
+ $l = new OC_l10n('journal');
+ foreach($calendars as $calendar) {
+ $objects = OC_Calendar_Object::all($calendar['id']);
+ foreach($objects as $object) {
+ if($object['objecttype']!='VJOURNAL') {
+ continue;
+ }
+ if(substr_count(strtolower($object['summary']), strtolower($query)) > 0) {
+ $calendardata = OC_VObject::parse($object['calendardata']);
+ $vjournal = $calendardata->VJOURNAL;
+ $dtstart = $vjournal->DTSTART;
+ if($dtstart) {
+ continue;
+ }
+ $start_dt = $dtstart->getDateTime();
+ $start_dt->setTimezone(new DateTimeZone($user_timezone));
+ if ($dtstart->getDateType() == Sabre_VObject_Property_DateTime::DATE) {
+ $info = $l->t('Date') . ': ' . $start_dt->format('d.m.Y');
+ }else{
+ $info = $l->t('Date') . ': ' . $start_dt->format('d.m.y H:i');
+ }
+ $link = OCP\Util::linkTo('journal', 'index.php').'&id='.urlencode($object['id']);
+ $results[]=new OC_Search_Result($object['summary'],$info, $link,(string)$l->t('Journal'));//$name,$text,$link,$type
+ }
+ }
+ }
+ return $results;
+ }
+}