示例#1
0
 private function indexConnection($created, $data)
 {
     $doc = new Zend_Search_Lucene_Document();
     $doc->addField(Zend_Search_Lucene_Field::Keyword('created', $created));
     $doc->addField(Zend_Search_Lucene_Field::Text('version', $data['version']));
     if (!empty($data['site'])) {
         if (!empty($data['site']['connect_site_title'])) {
             $doc->addField(Zend_Search_Lucene_Field::Text('title', $data['site']['connect_site_title']));
         }
         if (!empty($data['site']['connect_site_url'])) {
             $doc->addField(Zend_Search_Lucene_Field::Keyword('url', $data['site']['connect_site_url']));
         }
         if (!empty($data['site']['connect_site_email'])) {
             $doc->addField(Zend_Search_Lucene_Field::Keyword('email', $data['site']['connect_site_email']));
             // hmm
         }
         if (!empty($data['site']['connect_site_keywords'])) {
             $doc->addField(Zend_Search_Lucene_Field::Text('keywords', $data['site']['connect_site_keywords']));
         }
         if (!empty($data['site']['connect_site_location'])) {
             $loc = TikiLib::lib('geo')->parse_coordinates($data['site']['connect_site_location']);
             if (count($loc) > 1) {
                 $doc->addField(Zend_Search_Lucene_Field::Keyword('geo_lat', $loc['lat']));
                 $doc->addField(Zend_Search_Lucene_Field::Keyword('geo_lon', $loc['lon']));
                 if (count($loc) > 2) {
                     $doc->addField(Zend_Search_Lucene_Field::Keyword('geo_zoom', $loc['zoom']));
                 }
             }
         }
     } else {
         $doc->addField(Zend_Search_Lucene_Field::Text('title', tra('Anonymous')));
     }
     if (!empty($data['tables'])) {
         $doc->addField(Zend_Search_Lucene_Field::UnIndexed('tables', serialize($data['tables'])));
     }
     if (!empty($data['prefs'])) {
         $doc->addField(Zend_Search_Lucene_Field::UnIndexed('prefs', serialize($data['prefs'])));
         if (!empty($data['prefs']['language'])) {
             $languages = TikiLib::get_language_map();
             $doc->addField(Zend_Search_Lucene_Field::Text('language', $languages[$data['prefs']['language']]));
         }
     }
     if (!empty($data['server'])) {
         $doc->addField(Zend_Search_Lucene_Field::UnIndexed('server', serialize($data['server'])));
     }
     if (!empty($data['votes'])) {
         $doc->addField(Zend_Search_Lucene_Field::UnIndexed('votes', serialize($data['votes'])));
     }
     return $doc;
 }
示例#2
0
 private function getLanguages()
 {
     return TikiLib::get_language_map();
 }
 private function getSearchFilters($type, $object)
 {
     $translations = $this->utilities->getTranslations($type, $object);
     $languages = TikiLib::get_language_map();
     foreach ($translations as $trans) {
         unset($languages[$trans['lang']]);
     }
     unset($languages[$this->utilities->getLanguage($type, $object)]);
     $language = '"' . implode('" OR "', array_keys($languages)) . '"';
     if ($language == '""') {
         $language = null;
     }
     $filters = array('type' => $type, 'language' => $language);
     if ($type == 'trackeritem') {
         $info = TikiLib::lib('trk')->get_tracker_item($object);
         $filters['tracker_id'] = $info['trackerId'];
     }
     return $filters;
 }