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; }
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; }