(empty($user->subscribe_policy)) ? User::SUBSCRIBE_POLICY_OPEN : $user->subscribe_policy);
$this->elementEnd('li');
}
+ $this->elementStart('li');
+ $this->checkbox('private_stream',
+ // TRANS: Checkbox label in profile settings.
+ _('Make updates visible only to my followers'),
+ ($this->arg('private_stream')) ?
+ $this->boolean('private_stream') : $user->private_stream);
+ $this->elementEnd('li');
$this->elementEnd('ul');
// TRANS: Button to save input in profile settings.
$this->submit('save', _m('BUTTON','Save'));
$location = $this->trimmed('location');
$autosubscribe = $this->boolean('autosubscribe');
$subscribe_policy = $this->trimmed('subscribe_policy');
+ $private_stream = $this->boolean('private_stream');
$language = $this->trimmed('language');
$timezone = $this->trimmed('timezone');
$tagstring = $this->trimmed('tags');
return;
}
- if ($tagstring) {
- $tags = array_map('common_canonical_tag', preg_split('/[\s,]+/', $tagstring));
- } else {
- $tags = array();
- }
+ $tags = array();
+ $tag_priv = array();
+ if (is_string($tagstring) && strlen($tagstring) > 0) {
- foreach ($tags as $tag) {
- if (!common_valid_profile_tag($tag)) {
- // TRANS: Validation error in form for profile settings.
- // TRANS: %s is an invalid tag.
- $this->showForm(sprintf(_('Invalid tag: "%s".'), $tag));
- return;
+ $tags = preg_split('/[\s,]+/', $tagstring);
+
+ foreach ($tags as &$tag) {
+ $private = @$tag[0] === '.';
+
+ $tag = common_canonical_tag($tag);
+ if (!common_valid_profile_tag($tag)) {
+ // TRANS: Validation error in form for profile settings.
+ // TRANS: %s is an invalid tag.
+ $this->showForm(sprintf(_('Invalid tag: "%s".'), $tag));
+ return;
+ }
+
+ $tag_priv[$tag] = $private;
}
}
}
// XXX: XOR
- if (($user->autosubscribe ^ $autosubscribe) || $user->subscribe_policy != $subscribe_policy) {
+ if (($user->autosubscribe ^ $autosubscribe) ||
+ ($user->private_stream ^ $private_stream) ||
+ ($user->subscribe_policy != $subscribe_policy)) {
$original = clone($user);
- $user->autosubscribe = $autosubscribe;
+ $user->autosubscribe = $autosubscribe;
+ $user->private_stream = $private_stream;
$user->subscribe_policy = $subscribe_policy;
$result = $user->update($original);
}
// Set the user tags
- $result = $user->setSelfTags($tags);
+ $result = $user->setSelfTags($tags, $tag_priv);
if (!$result) {
// TRANS: Server error thrown when user profile settings tags could not be saved.