From d2e9a0c7fae9d0c57dd8646aa6ef277f2e14b7fe Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Sun, 11 Sep 2011 08:30:04 -0400 Subject: Fixes #3340 adds group activity widget for the user dashboard --- mod/dashboard/languages/en.php | 14 +++++++ mod/dashboard/start.php | 8 ++++ .../default/widgets/group_activity/content.php | 36 +++++++++++++++++ .../views/default/widgets/group_activity/edit.php | 45 ++++++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 mod/dashboard/languages/en.php create mode 100644 mod/dashboard/views/default/widgets/group_activity/content.php create mode 100644 mod/dashboard/views/default/widgets/group_activity/edit.php (limited to 'mod/dashboard') diff --git a/mod/dashboard/languages/en.php b/mod/dashboard/languages/en.php new file mode 100644 index 000000000..e1378f2f1 --- /dev/null +++ b/mod/dashboard/languages/en.php @@ -0,0 +1,14 @@ + 'Group activity', + 'dashboard:widget:group:desc' => 'View the activity in one of your groups', + 'dashboard:widget:group:select' => 'Select a group', + 'dashboard:widget:group:noactivity' => 'There is no activity in this group', + 'dashboard:widget:group:noselect' => 'Edit this widget to select a group', +); + +add_translation("en", $english); diff --git a/mod/dashboard/start.php b/mod/dashboard/start.php index 69572bd32..5635ead57 100644 --- a/mod/dashboard/start.php +++ b/mod/dashboard/start.php @@ -18,6 +18,14 @@ function dashboard_init() { 'section' => 'alt', )); + elgg_register_widget_type( + 'group_activity', + elgg_echo('dashboard:widget:group:title'), + elgg_echo('dashboard:widget:group:desc'), + 'dashboard', + true + ); + elgg_register_plugin_hook_handler('get_list', 'default_widgets', 'dashboard_default_widgets'); } diff --git a/mod/dashboard/views/default/widgets/group_activity/content.php b/mod/dashboard/views/default/widgets/group_activity/content.php new file mode 100644 index 000000000..60a9b352c --- /dev/null +++ b/mod/dashboard/views/default/widgets/group_activity/content.php @@ -0,0 +1,36 @@ +num_display; +$guid = $vars['entity']->group_guid; + +$content = ''; + +if ($guid) { + $title = get_entity($guid)->name; + $content = "

$title

"; + + elgg_push_context('widgets'); + $db_prefix = elgg_get_config('dbprefix'); + $activity = elgg_list_river(array( + 'limit' => $num, + 'pagination' => false, + 'joins' => array("JOIN {$db_prefix}entities e1 ON e1.guid = rv.object_guid"), + 'wheres' => array("(e1.container_guid = $guid)"), + )); + if (!$activity) { + $activity = '

' . elgg_echo('dashboard:widget:group:noactivity') . '

'; + } + elgg_pop_context(); + + $content .= $activity; +} else { + // no group selected yet + if ($vars['entity']->canEdit()) { + $content = '

' . elgg_echo('dashboard:widget:group:noselect') . '

'; + } +} + +echo $content; diff --git a/mod/dashboard/views/default/widgets/group_activity/edit.php b/mod/dashboard/views/default/widgets/group_activity/edit.php new file mode 100644 index 000000000..4e10f6ad4 --- /dev/null +++ b/mod/dashboard/views/default/widgets/group_activity/edit.php @@ -0,0 +1,45 @@ +getGroups("", 0); +$mygroups = array(); +if (!$vars['entity']->group_guid) { + $mygroups[0] = ''; +} +foreach ($groups as $group) { + $mygroups[$group->guid] = $group->name; +} +$params = array( + 'name' => 'params[group_guid]', + 'value' => $vars['entity']->group_guid, + 'options_values' => $mygroups, +); +$group_dropdown = elgg_view('input/dropdown', $params); +?> +
+ : + +
+num_display)) { + $vars['entity']->num_display = 8; +} + +$params = array( + 'name' => 'params[num_display]', + 'value' => $vars['entity']->num_display, + 'options' => array(5, 8, 10, 12, 15, 20), +); +$num_dropdown = elgg_view('input/dropdown', $params); + +?> +
+ : + +
+ -- cgit v1.2.3