Пример #1
0
 protected function actionSyncContacts($params)
 {
     \GO::$ignoreAclPermissions = true;
     //allow this script access to all
     \GO::$disableModelCache = true;
     //for less memory usage
     ini_set('max_execution_time', '300');
     $ab = \GO\Addressbook\Model\Addressbook::model()->findSingleByAttribute('users', '1');
     //\GO::t('users','base'));
     if (!$ab) {
         $ab = new \GO\Addressbook\Model\Addressbook();
         $ab->name = \GO::t('users');
         $ab->users = true;
         $ab->save();
     }
     $stmt = User::model()->find();
     while ($user = $stmt->fetch()) {
         $contact = $user->contact();
         if (!$contact) {
             \GO::output("Creating contact for " . $user->username);
             $contact = new \GO\Addressbook\Model\Contact();
             $contact->go_user_id = $user->id;
             $contact->addressbook_id = $ab->id;
         } else {
             \GO::output("Updating contact for " . $user->username);
         }
         $attr = $user->getAttributes();
         unset($attr['id']);
         $contact->setAttributes($attr);
         $contact->save();
     }
     \GO::output("Done!");
     //return array('success' => true);
 }