/** * @return array - Jui AutoComplete ready array * containing id, value, and label elements. * @param string $partialName * @param int $pageSize * @param null|string $stateMetadataAdapterClassName * @return array */ public static function getByPartialName($partialName, $pageSize, $stateMetadataAdapterClassName = null) { assert('is_string($partialName)'); assert('is_int($pageSize)'); assert('$stateMetadataAdapterClassName == null || is_string($stateMetadataAdapterClassName)'); $autoCompleteResults = array(); $contacts = ContactSearch::getContactsByPartialFullName($partialName, $pageSize, $stateMetadataAdapterClassName); foreach ($contacts as $contact) { $autoCompleteResults[] = array('id' => $contact->id, 'value' => strval($contact), 'label' => strval($contact)); } return $autoCompleteResults; }
public function testUsingStateAdapters() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $contactStates = ContactState::getAll(); $this->assertTrue(count($contactStates) > 1); $firstContactState = $contactStates[0]; $lastContactState = $contactStates[count($contactStates) - 1]; $contact = new Contact(); $contact->title->value = 'Mr.'; $contact->firstName = 'Sallyy'; $contact->lastName = 'Sallyyson'; $contact->owner = $super; $contact->state = $firstContactState; $contact->primaryEmail = new Email(); $contact->primaryEmail->emailAddress = '*****@*****.**'; $contact->secondaryEmail = new Email(); $contact->secondaryEmail->emailAddress = '*****@*****.**'; $this->assertTrue($contact->save()); $data = ContactSearch::getContactsByPartialFullNameOrAnyEmailAddress('sally', 5); $this->assertEquals(2, count($data)); $data = ContactSearch::getContactsByPartialFullName('sally', 5); $this->assertEquals(2, count($data)); //Use contact state adapter $data = ContactSearch::getContactsByPartialFullNameOrAnyEmailAddress('sally', 5, 'ContactsStateMetadataAdapter'); $this->assertEquals(1, count($data)); $this->assertEquals($lastContactState, $data[0]->state); $data = ContactSearch::getContactsByPartialFullName('sally', 5, 'ContactsStateMetadataAdapter'); $this->assertEquals(1, count($data)); $this->assertEquals($lastContactState, $data[0]->state); //Use lead state adapter $data = ContactSearch::getContactsByPartialFullNameOrAnyEmailAddress('sally', 5, 'LeadsStateMetadataAdapter'); $this->assertEquals(1, count($data)); $this->assertEquals($firstContactState, $data[0]->state); $data = ContactSearch::getContactsByPartialFullName('sally', 5, 'LeadsStateMetadataAdapter'); $this->assertEquals(1, count($data)); $this->assertEquals($firstContactState, $data[0]->state); }