X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=classes%2FUser.php;h=491f68df24e77cde5d2c5650d77005da527ab36c;hb=9c29b9ad629b573b6f09b681a0673805fc61ef6a;hp=e4928eb34af7200f39a5fbd15a5ca16a1367abaf;hpb=98af7402c7d4b6fba268dcba7fd26fa285c413c6;p=quix0rs-gnu-social.git diff --git a/classes/User.php b/classes/User.php index e4928eb34a..491f68df24 100644 --- a/classes/User.php +++ b/classes/User.php @@ -36,10 +36,14 @@ class User extends DB_DataObject public $email; // varchar(255) unique_key public $incomingemail; // varchar(255) unique_key public $emailnotifysub; // tinyint(1) default_1 + public $emailmicroid; // tinyint(1) default_1 + public $language; // varchar(50) + public $timezone; // varchar(50) public $emailpost; // tinyint(1) default_1 public $jabber; // varchar(255) unique_key public $jabbernotify; // tinyint(1) public $jabberreplies; // tinyint(1) + public $jabbermicroid; // tinyint(1) default_1 public $updatefrompresence; // tinyint(1) public $sms; // varchar(64) unique_key public $carrier; // int(4) @@ -79,7 +83,7 @@ class User extends DB_DataObject function updateKeys(&$orig) { $parts = array(); - foreach (array('nickname', 'email', 'jabber', 'incomingemail', 'sms', 'carrier', 'smsemail') as $k) { + foreach (array('nickname', 'email', 'jabber', 'incomingemail', 'sms', 'carrier', 'smsemail', 'language', 'timezone') as $k) { if (strcmp($this->$k, $orig->$k) != 0) { $parts[] = $k . ' = ' . $this->_quote($this->$k); } @@ -128,4 +132,104 @@ class User extends DB_DataObject return true; } + + function noticesWithFriends($offset=0, $limit=20) { + + $notice = new Notice(); + + $notice->query('SELECT notice.* ' . + 'FROM notice JOIN subscription on notice.profile_id = subscription.subscribed ' . + 'WHERE subscription.subscriber = ' . $this->id . ' ' . + 'ORDER BY created DESC, notice.id DESC ' . + 'LIMIT ' . $offset . ', ' . $limit); + + return $notice; + } + + static function register($fields) { + + extract($fields); + + $profile = new Profile(); + + $profile->query('BEGIN'); + + $profile->nickname = $nickname; + $profile->profileurl = common_profile_url($nickname); + + if ($fullname) { + $profile->fullname = $fullname; + } + if ($homepage) { + $profile->homepage = $homepage; + } + if ($bio) { + $profile->bio = $bio; + } + if ($location) { + $profile->location = $location; + } + $profile->created = DB_DataObject_Cast::dateTime(); # current time + + $id = $profile->insert(); + + if (!$id) { + common_log_db_error($profile, 'INSERT', __FILE__); + return FALSE; + } + + $user = new User(); + + $user->id = $id; + $user->nickname = $nickname; + $user->password = common_munge_password($password, $id); + $user->created = DB_DataObject_Cast::dateTime(); # current time + $user->uri = common_user_uri($user); + + $result = $user->insert(); + + if (!$result) { + common_log_db_error($user, 'INSERT', __FILE__); + return FALSE; + } + + # Everyone is subscribed to themself + + $subscription = new Subscription(); + $subscription->subscriber = $user->id; + $subscription->subscribed = $user->id; + $subscription->created = $user->created; + + $result = $subscription->insert(); + + if (!$result) { + common_log_db_error($subscription, 'INSERT', __FILE__); + return FALSE; + } + + if ($email) { + + $confirm = new Confirm_address(); + $confirm->code = common_confirmation_code(128); + $confirm->user_id = $user->id; + $confirm->address = $email; + $confirm->address_type = 'email'; + + $result = $confirm->insert(); + if (!$result) { + common_log_db_error($confirm, 'INSERT', __FILE__); + return FALSE; + } + } + + $profile->query('COMMIT'); + + if ($email) { + mail_confirm_address($confirm->code, + $profile->nickname, + $email); + } + + return $user; + } }