From 4cbd5b4c9fef739562b25762b1e7fb03de2831fd Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 23 Aug 2011 12:18:10 -0400 Subject: [PATCH] Add custom list items for follow, unfollow, leave activities --- plugins/Activity/ActivityPlugin.php | 12 +++++ plugins/Activity/followlistitem.php | 78 +++++++++++++++++++++++++++ plugins/Activity/leavelistitem.php | 78 +++++++++++++++++++++++++++ plugins/Activity/unfollowlistitem.php | 78 +++++++++++++++++++++++++++ 4 files changed, 246 insertions(+) create mode 100644 plugins/Activity/followlistitem.php create mode 100644 plugins/Activity/leavelistitem.php create mode 100644 plugins/Activity/unfollowlistitem.php diff --git a/plugins/Activity/ActivityPlugin.php b/plugins/Activity/ActivityPlugin.php index a4d45b2122..e3ee39dc9a 100644 --- a/plugins/Activity/ActivityPlugin.php +++ b/plugins/Activity/ActivityPlugin.php @@ -64,6 +64,9 @@ class ActivityPlugin extends Plugin switch ($cls) { case 'JoinListItem': + case 'LeaveListItem': + case 'FollowListItem': + case 'UnfollowListItem': include_once $dir . '/'.strtolower($cls).'.php'; return false; default: @@ -288,6 +291,15 @@ class ActivityPlugin extends Plugin case ActivityVerb::JOIN: $adapter = new JoinListItem($nli); break; + case ActivityVerb::LEAVE: + $adapter = new JoinListItem($nli); + break; + case ActivityVerb::FOLLOW: + $adapter = new FollowListItem($nli); + break; + case ActivityVerb::UNFOLLOW: + $adapter = new UnfollowListItem($nli); + break; } if (!empty($adapter)) { diff --git a/plugins/Activity/followlistitem.php b/plugins/Activity/followlistitem.php new file mode 100644 index 0000000000..5a3721013a --- /dev/null +++ b/plugins/Activity/followlistitem.php @@ -0,0 +1,78 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * NoticeListItemAdapter for join activities + * + * @category General + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class FollowListItem extends NoticeListItemAdapter +{ + /** + * Show the join activity + * + * @return void + */ + + function showNotice() + { + $out = $this->nli->out; + $out->elementStart('div', 'entry-title'); + $this->showContent(); + $out->elementEnd('div'); + } + + function showContent() + { + $notice = $this->nli->notice; + $out = $this->nli->out; + + // FIXME: get the actual data on the leave + + $out->elementStart('div', 'follow-activity'); + + $out->raw($notice->rendered); + + $out->elementEnd('div'); + } +} + diff --git a/plugins/Activity/leavelistitem.php b/plugins/Activity/leavelistitem.php new file mode 100644 index 0000000000..2c8565e986 --- /dev/null +++ b/plugins/Activity/leavelistitem.php @@ -0,0 +1,78 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * NoticeListItemAdapter for join activities + * + * @category General + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class LeaveListItem extends NoticeListItemAdapter +{ + /** + * Show the join activity + * + * @return void + */ + + function showNotice() + { + $out = $this->nli->out; + $out->elementStart('div', 'entry-title'); + $this->showContent(); + $out->elementEnd('div'); + } + + function showContent() + { + $notice = $this->nli->notice; + $out = $this->nli->out; + + // FIXME: get the actual data on the leave + + $out->elementStart('div', 'leave-activity'); + + $out->raw($notice->rendered); + + $out->elementEnd('div'); + } +} + diff --git a/plugins/Activity/unfollowlistitem.php b/plugins/Activity/unfollowlistitem.php new file mode 100644 index 0000000000..8bc464ed23 --- /dev/null +++ b/plugins/Activity/unfollowlistitem.php @@ -0,0 +1,78 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * NoticeListItemAdapter for join activities + * + * @category General + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class UnfollowListItem extends NoticeListItemAdapter +{ + /** + * Show the join activity + * + * @return void + */ + + function showNotice() + { + $out = $this->nli->out; + $out->elementStart('div', 'entry-title'); + $this->showContent(); + $out->elementEnd('div'); + } + + function showContent() + { + $notice = $this->nli->notice; + $out = $this->nli->out; + + // FIXME: get the actual data on the leave + + $out->elementStart('div', 'unfollow-activity'); + + $out->raw($notice->rendered); + + $out->elementEnd('div'); + } +} + -- 2.39.5