private function import_contact($user, $source = 'qaiku') { static $cached_contacts = array(); if (!isset($cached_contacts[$source])) { $cached_contacts[$source] = array(); } if (isset($cached_contacts[$source][$user->screen_name])) { return $cached_contacts[$source][$user->screen_name]; } $qb = new midgard_query_builder('net_nemein_avaudu_contact'); $qb->add_constraint("{$source}nick", '=', $user->screen_name); $contacts = $qb->execute(); if (count($contacts) > 0) { // We already know this contact $cached_contacts[$source][$user->screen_name] = $contacts[0]->id; return $cached_contacts[$source][$user->screen_name]; // TODO: Update? } $contact = new net_nemein_avaudu_contact(); $contact->name = $user->name; $contact->avatar = $user->profile_image_url; $nickfield = "{$source}nick"; $contact->{$nickfield} = $user->screen_name; $idfield = "{$source}id"; $contact->{$idfield} = $user->id; $contact->create(); $cached_contacts[$source][$user->screen_name] = $contact->id; return $cached_contacts[$source][$user->screen_name]; }