diff options
author | Evan Prodromou <evan@status.net> | 2010-10-26 15:33:35 -0400 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-10-26 15:33:35 -0400 |
commit | 5d56d9bb69321d95f8eee519cc186240c03249f3 (patch) | |
tree | dd7e4f7b5c84097a86974020ed9b4a8d297717f1 | |
parent | 7a80ebeb13c88fc543b1d87f0207ba1a00a652f5 (diff) |
UI on profile settings page to opt out of following everyone
-rw-r--r-- | plugins/FollowEveryone/FollowEveryonePlugin.php | 41 | ||||
-rw-r--r-- | plugins/FollowEveryone/User_followeveryone_prefs.php | 18 |
2 files changed, 59 insertions, 0 deletions
diff --git a/plugins/FollowEveryone/FollowEveryonePlugin.php b/plugins/FollowEveryone/FollowEveryonePlugin.php index 67ed927ce..09afbfd8a 100644 --- a/plugins/FollowEveryone/FollowEveryonePlugin.php +++ b/plugins/FollowEveryone/FollowEveryonePlugin.php @@ -151,6 +151,47 @@ class FollowEveryonePlugin extends Plugin } /** + * Show a checkbox on the profile form to ask whether to follow everyone + * + * @param Action $action The action being executed + * + * @return boolean hook value + */ + + function onEndProfileFormData($action) + { + $user = common_current_user(); + + $action->elementStart('li'); + // TRANS: Checkbox label in form for profile settings. + $action->checkbox('followeveryone', _('Follow everyone'), + ($action->arg('followeveryone')) ? + $action->arg('followeveryone') : + User_followeveryone_prefs::followEveryone($user->id)); + $action->elementEnd('li'); + + return true; + } + + /** + * Save checkbox value for following everyone + * + * @param Action $action The action being executed + * + * @return boolean hook value + */ + + function onEndProfileSaveForm($action) + { + $user = common_current_user(); + + User_followeveryone_prefs::savePref($user->id, + $action->boolean('followeveryone')); + + return true; + } + + /** * Provide version information about this plugin. * * @param Array &$versions Array of version data diff --git a/plugins/FollowEveryone/User_followeveryone_prefs.php b/plugins/FollowEveryone/User_followeveryone_prefs.php index 44375d042..d1d9b5f3f 100644 --- a/plugins/FollowEveryone/User_followeveryone_prefs.php +++ b/plugins/FollowEveryone/User_followeveryone_prefs.php @@ -145,4 +145,22 @@ class User_followeveryone_prefs extends Memcached_DataObject return (bool)$ufep->followeveryone; } } + + static function savePref($user_id, $followEveryone) + { + $ufep = self::staticGet('user_id', $user_id); + + if (empty($ufep)) { + $ufep = new User_followeveryone_prefs(); + $ufep->user_id = $user_id; + $ufep->followeveryone = $followEveryone; + $ufep->insert(); + } else { + $orig = clone($ufep); + $ufep->followeveryone = $followEveryone; + $ufep->update(); + } + + return true; + } } |