Пример #1
0
 /**
  * Create new user - add defaults & save
  */
 public function createNewUser(Application_Model_Profiles_Row $profile, $origin = null)
 {
     $session = new Zend_Session_Namespace('Default');
     $language = $session->language ? $session->language : Zend_Registry::get('config')->get('default_language');
     $profile->role = 'user';
     $profile->screen_name = $profile->name;
     $profile->type = 'user';
     $profile->avatar = 'default/generic.jpg';
     $profile->cover = 'default/' . rand(1, 3) . '.jpg';
     $profile->is_hidden = 0;
     $profile->owner = 0;
     $profile->default_privacy = 'everyone';
     $profile->profile_privacy = 'everyone';
     $profile->language = $language;
     // trigger hooks
     Zend_Registry::get('hooks')->trigger('hook_app_preadduser', $profile);
     try {
         $created_id = $profile->save();
     } catch (Zend_Db_Exception $e) {
         Application_Plugin_Common::log($e->getMessage());
     }
     $ProfilesMeta = new Application_Model_ProfilesMeta();
     $ProfilesMeta->metaUpdate('date_created', Application_Plugin_Common::now(), $created_id);
     // referral user cookie
     if (isset($_COOKIE['ref'])) {
         $ref_by_user = $this->getProfileByField('id', base64_decode($_COOKIE['ref']));
         if ($ref_by_user) {
             $ProfilesMeta->metaUpdate('referred_by', $ref_by_user->id, $profile->id);
         }
     }
     if ($origin) {
         $ProfilesMeta->metaUpdate('registration_origin', $origin, $profile->id);
     }
     // new user notification
     if (Zend_Registry::get('config')->get('newuser_notify_email')) {
         $to = Zend_Registry::get('config')->get('newuser_notify_email');
         $subject = 'New user - ' . $profile->name;
         // prepare phtml email template
         $mail_template_path = APPLICATION_PATH . '/views/emails/';
         $view = new Zend_View();
         $view->setScriptPath($mail_template_path);
         $view->assign('user_name', $profile->name);
         $body = $view->render('newuser.phtml');
         Application_Plugin_Common::sendEmail($to, $subject, $body);
     }
     // auto follow users
     if (Zend_Registry::get('config')->get('auto_follow_users')) {
         $Connections = new Application_Model_Connections();
         $users = explode(",", Zend_Registry::get('config')->get('auto_follow_users'));
         foreach ($users as $user) {
             $follow = $this->getProfileByField('name', trim($user));
             if ($follow && $follow->type == 'user') {
                 $Connections->followUser($profile->id, $follow->id);
             } elseif ($follow && $follow->type == 'group') {
                 $Connections->followUser($profile->id, $follow->id);
                 $Connections->approveConnection($profile->id, $follow->id);
             }
         }
     }
     // trigger hooks
     Zend_Registry::get('hooks')->trigger('hook_app_postadduser', $profile);
     return $profile;
 }