summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-10-26 15:33:35 -0400
committerEvan Prodromou <evan@status.net>2010-10-26 15:33:35 -0400
commit5d56d9bb69321d95f8eee519cc186240c03249f3 (patch)
treedd7e4f7b5c84097a86974020ed9b4a8d297717f1
parent7a80ebeb13c88fc543b1d87f0207ba1a00a652f5 (diff)
UI on profile settings page to opt out of following everyone
-rw-r--r--plugins/FollowEveryone/FollowEveryonePlugin.php41
-rw-r--r--plugins/FollowEveryone/User_followeveryone_prefs.php18
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;
+ }
}