/** * 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; }