public function solrStore($contact) { $doc = new Apache_Solr_Document(); $doc->setField('id', $contact->id); $doc->setField('timecreate', $contact->timecreate->format('Y-m-d\TH:i:s\Z')); $doc->setField('timeupdate', $contact->timeupdate->format('Y-m-d\TH:i:s\Z')); $doc->setField('usercreate', $contact->usercreate); $doc->setField('userupdate', $contact->userupdate); $doc->setField('datasource', $contact->datasource_id); $doc->setField('domain', $GLOBALS['obm']['domain_id']); $doc->setField('in', $contact->addressbook); $doc->setField('addressbookId', $contact->addressbook_id); $doc->setField('company', $contact->company); $doc->setField('companyId', $contact->company_id); $doc->setField('commonname', $contact->commonname); $doc->setField('lastname', $contact->lastname); $doc->setField('firstname', $contact->firstname); $doc->setField('middlename', $contact->mname); $doc->setField('sortable', $contact->lastname." ".$contact->firstname); $doc->setField('suffix', $contact->suffix); $doc->setField('aka', $contact->aka); $doc->setField('kind', $contact->kind); //$doc->setField('kind', $db->f('kind_header')); $doc->setField('manager', $contact->manager); $doc->setField('assistant', $contact->assistant); $doc->setField('spouse', $contact->spouse); $doc->setField('birthdayId', $contact->birthday_event); $doc->setField('anniversaryId', $contact->anniversary_event); if($contact->birthday) $doc->setField('birthday', $contact->birthday->format('Y-m-d\TH:i:s\Z')); if($contact->anniversary) $doc->setField('anniversary', $contact->anniversary->format('Y-m-d\TH:i:s\Z')); $doc->setField('category', $contact->category); foreach($contact->categories as $category) { foreach($category as $c) { $doc->setMultiValue('categoryId', $c['id']); } } $doc->setField('service', $contact->service); $doc->setField('function', $contact->function); $doc->setField('title', $contact->title); if ($contact->archive) { $doc->setField('is', 'archive'); } if ($contact->collected) { $doc->setField('is', 'collected'); } if ($contact->mailok) { $doc->setField('is', 'mailing'); } if ($contact->newsletter) { $doc->setField('is', 'newsletter'); } if($contact->date) $doc->setField('date', $contact->date->format('Y-m-d\TH:i:s\Z')); $doc->setField('comment', $contact->comment); $doc->setField('comment2', $contact->comment2); $doc->setField('comment3', $contact->comment3); $doc->setField('from', $contact->origin); foreach($contact->email as $email) { $doc->setMultiValue('email', $email['address']); } foreach($contact->phone as $phone) { $doc->setMultiValue('phone', $phone['number']); } foreach($contact->im as $im) { $doc->setMultiValue('jabber', $im['address']); } foreach($contact->address as $address) { $doc->setMultiValue('street', $address['street']); $doc->setMultiValue('zipcode', $address['zipcode']); $doc->setMultiValue('expresspostal', $address['expresspostal']); $doc->setMultiValue('town', $address['town']); $doc->setMultiValue('country', $address['country']); } if($contact->hasACalendarUrl()){ $doc->setField('hasACalendar', "true"); } else { $doc->setField('hasACalendar', "false"); } OBM_IndexingService::store('contact', array($doc)); }