aboutsummaryrefslogtreecommitdiff
path: root/mod/groups/views
diff options
context:
space:
mode:
Diffstat (limited to 'mod/groups/views')
-rw-r--r--mod/groups/views/default/annotation/group_topic_post.php19
-rw-r--r--mod/groups/views/default/discussion/group_module.php20
-rw-r--r--mod/groups/views/default/discussion/replies.php28
-rw-r--r--mod/groups/views/default/forms/discussion/reply/save.php57
-rw-r--r--mod/groups/views/default/forms/discussion/save.php2
-rw-r--r--mod/groups/views/default/forms/groups/delete.php17
-rw-r--r--mod/groups/views/default/forms/groups/edit.php105
-rw-r--r--mod/groups/views/default/forms/groups/find.php16
-rw-r--r--mod/groups/views/default/forms/groups/invite.php2
-rw-r--r--mod/groups/views/default/forms/groups/search.php15
-rw-r--r--mod/groups/views/default/group/default.php51
-rw-r--r--mod/groups/views/default/groups/css.php203
-rw-r--r--mod/groups/views/default/groups/edit.php17
-rw-r--r--mod/groups/views/default/groups/group_sort_menu.php45
-rw-r--r--mod/groups/views/default/groups/invitationrequests.php64
-rw-r--r--mod/groups/views/default/groups/js.php13
-rw-r--r--mod/groups/views/default/groups/membershiprequests.php75
-rw-r--r--mod/groups/views/default/groups/profile/activity_module.php62
-rw-r--r--mod/groups/views/default/groups/profile/buttons.php55
-rw-r--r--mod/groups/views/default/groups/profile/fields.php38
-rw-r--r--mod/groups/views/default/groups/profile/layout.php13
-rw-r--r--mod/groups/views/default/groups/profile/module.php25
-rw-r--r--mod/groups/views/default/groups/profile/profile_block.php77
-rw-r--r--mod/groups/views/default/groups/profile/summary.php64
-rw-r--r--mod/groups/views/default/groups/profile/widgets.php26
-rw-r--r--mod/groups/views/default/groups/side_menu.php8
-rw-r--r--mod/groups/views/default/groups/sidebar/featured.php4
-rw-r--r--mod/groups/views/default/groups/sidebar/find.php8
-rw-r--r--mod/groups/views/default/groups/sidebar/members.php27
-rw-r--r--mod/groups/views/default/groups/sidebar/my_status.php62
-rw-r--r--mod/groups/views/default/groups/sidebar/search.php15
-rw-r--r--mod/groups/views/default/object/groupforumtopic.php54
-rw-r--r--mod/groups/views/default/plugins/groups/settings.php40
-rw-r--r--mod/groups/views/default/river/annotation/group_topic_post/reply.php12
-rw-r--r--mod/groups/views/default/river/group/create.php20
-rw-r--r--mod/groups/views/default/river/object/groupforumtopic/create.php35
-rw-r--r--mod/groups/views/default/river/relationship/member/create.php15
-rw-r--r--mod/groups/views/default/settings/groups/edit.php22
-rw-r--r--mod/groups/views/default/widgets/a_users_groups/content.php3
-rw-r--r--mod/groups/views/rss/annotation/group_topic_post.php32
-rw-r--r--mod/groups/views/rss/discussion/replies.php12
-rw-r--r--mod/groups/views/rss/forum/topicposts.php3
-rw-r--r--mod/groups/views/rss/forum/topics.php10
-rw-r--r--mod/groups/views/rss/forum/viewposts.php22
-rw-r--r--mod/groups/views/rss/groups/contentwrapper.php5
-rw-r--r--mod/groups/views/rss/groups/profile/layout.php18
-rw-r--r--mod/groups/views/rss/groups/profileitems.php15
-rw-r--r--mod/groups/views/rss/object/groupforumtopic.php49
48 files changed, 873 insertions, 727 deletions
diff --git a/mod/groups/views/default/annotation/group_topic_post.php b/mod/groups/views/default/annotation/group_topic_post.php
new file mode 100644
index 000000000..f38d2a77a
--- /dev/null
+++ b/mod/groups/views/default/annotation/group_topic_post.php
@@ -0,0 +1,19 @@
+<?php
+/*
+ * Embeds an edit link for the annotation
+ */
+
+$annotation = elgg_extract('annotation', $vars);
+
+echo elgg_view('annotation/default', $vars);
+
+if ($annotation->canEdit()) {
+ $form = elgg_view_form('discussion/reply/save', array(), array_merge(array(
+ 'entity' => get_entity($annotation->entity_guid),
+ 'annotation' => $annotation
+ ), $vars)
+ );
+
+ echo "<div class=\"hidden mbm\" id=\"edit-annotation-$annotation->id\">$form</div>";
+}
+
diff --git a/mod/groups/views/default/discussion/group_module.php b/mod/groups/views/default/discussion/group_module.php
index afe47ab68..e0bcd55d6 100644
--- a/mod/groups/views/default/discussion/group_module.php
+++ b/mod/groups/views/default/discussion/group_module.php
@@ -13,14 +13,11 @@ $group = $vars['entity'];
$all_link = elgg_view('output/url', array(
- 'href' => "pg/discussion/owner/$group->guid",
+ 'href' => "discussion/owner/$group->guid",
'text' => elgg_echo('link:view:all'),
+ 'is_trusted' => true,
));
-$header = "<span class=\"group-widget-viewall\">$all_link</span>";
-$header .= '<h3>' . elgg_echo('discussion:group') . '</h3>';
-
-
elgg_push_context('widgets');
$options = array(
'type' => 'object',
@@ -34,13 +31,18 @@ $content = elgg_list_entities($options);
elgg_pop_context();
if (!$content) {
- $content = '<p>' . elgg_echo('grouptopic:notcreated') . '</p>';
+ $content = '<p>' . elgg_echo('discussion:none') . '</p>';
}
$new_link = elgg_view('output/url', array(
- 'href' => "pg/discussion/add/" . $group->getGUID(),
+ 'href' => "discussion/add/" . $group->getGUID(),
'text' => elgg_echo('groups:addtopic'),
+ 'is_trusted' => true,
));
-$content .= "<span class='elgg-widget-more'>$new_link</span>";
-echo elgg_view_module('info', '', $content, array('header' => $header));
+echo elgg_view('groups/profile/module', array(
+ 'title' => elgg_echo('discussion:group'),
+ 'content' => $content,
+ 'all_link' => $all_link,
+ 'add_link' => $new_link,
+)); \ No newline at end of file
diff --git a/mod/groups/views/default/discussion/replies.php b/mod/groups/views/default/discussion/replies.php
new file mode 100644
index 000000000..2bfb6f0cd
--- /dev/null
+++ b/mod/groups/views/default/discussion/replies.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * List replies with optional add form
+ *
+ * @uses $vars['entity'] ElggEntity
+ * @uses $vars['show_add_form'] Display add form or not
+ */
+
+$show_add_form = elgg_extract('show_add_form', $vars, true);
+
+echo '<div id="group-replies" class="mtl">';
+
+$options = array(
+ 'guid' => $vars['entity']->getGUID(),
+ 'annotation_name' => 'group_topic_post',
+);
+$html = elgg_list_annotations($options);
+if ($html) {
+ echo '<h3>' . elgg_echo('group:replies') . '</h3>';
+ echo $html;
+}
+
+if ($show_add_form) {
+ $form_vars = array('class' => 'mtm');
+ echo elgg_view_form('discussion/reply/save', $form_vars, $vars);
+}
+
+echo '</div>';
diff --git a/mod/groups/views/default/forms/discussion/reply/save.php b/mod/groups/views/default/forms/discussion/reply/save.php
new file mode 100644
index 000000000..083fefb78
--- /dev/null
+++ b/mod/groups/views/default/forms/discussion/reply/save.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Discussion topic reply form body
+ *
+ * @uses $vars['entity'] A discussion topic object
+ * @uses $vars['inline'] Display a shortened form?
+ */
+
+if (isset($vars['entity']) && elgg_is_logged_in()) {
+ echo elgg_view('input/hidden', array(
+ 'name' => 'entity_guid',
+ 'value' => $vars['entity']->getGUID(),
+ ));
+
+ $inline = elgg_extract('inline', $vars, false);
+
+ $annotation = elgg_extract('annotation', $vars);
+
+ $value = '';
+
+ if ($annotation) {
+ $value = $annotation->value;
+ echo elgg_view('input/hidden', array(
+ 'name' => 'annotation_id',
+ 'value' => $annotation->id
+ ));
+ }
+
+ if ($inline) {
+ echo elgg_view('input/text', array('name' => 'group_topic_post', 'value' => $value));
+ echo elgg_view('input/submit', array('value' => elgg_echo('reply')));
+ } else {
+?>
+ <div>
+ <label>
+ <?php
+ if ($annotation) {
+ echo elgg_echo('edit');
+ } else {
+ echo elgg_echo("reply");
+ }
+ ?>
+ </label>
+ <?php echo elgg_view('input/longtext', array('name' => 'group_topic_post', 'value' => $value)); ?>
+ </div>
+ <div class="elgg-foot">
+<?php
+ if ($annotation) {
+ echo elgg_view('input/submit', array('value' => elgg_echo('save')));
+ } else {
+ echo elgg_view('input/submit', array('value' => elgg_echo('reply')));
+ }
+?>
+ </div>
+<?php
+ }
+}
diff --git a/mod/groups/views/default/forms/discussion/save.php b/mod/groups/views/default/forms/discussion/save.php
index 5d50d5c91..a6582ede7 100644
--- a/mod/groups/views/default/forms/discussion/save.php
+++ b/mod/groups/views/default/forms/discussion/save.php
@@ -42,7 +42,7 @@ $guid = elgg_extract('guid', $vars, null);
<label><?php echo elgg_echo('access'); ?></label><br />
<?php echo elgg_view('input/access', array('name' => 'access_id', 'value' => $access_id)); ?>
</div>
-<div>
+<div class="elgg-foot">
<?php
echo elgg_view('input/hidden', array('name' => 'container_guid', 'value' => $container_guid));
diff --git a/mod/groups/views/default/forms/groups/delete.php b/mod/groups/views/default/forms/groups/delete.php
deleted file mode 100644
index 85379a342..000000000
--- a/mod/groups/views/default/forms/groups/delete.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Group delete form body
- */
-
-$warning = elgg_echo("groups:deletewarning");
-
-echo elgg_view('input/hidden', array(
- 'name' => 'group_guid',
- 'value' => $vars['entity']->getGUID(),
-));
-
-echo elgg_view('input/submit', array(
- 'class' => "elgg-button elgg-button-delete",
- 'value' => elgg_echo('groups:delete'),
- 'onclick' => "return confirm('$warning');",
-));
diff --git a/mod/groups/views/default/forms/groups/edit.php b/mod/groups/views/default/forms/groups/edit.php
index f9ef86296..e2dc5455a 100644
--- a/mod/groups/views/default/forms/groups/edit.php
+++ b/mod/groups/views/default/forms/groups/edit.php
@@ -5,12 +5,9 @@
* @package ElggGroups
*/
-// new groups default to open membership
-if (isset($vars['entity'])) {
- $membership = $vars['entity']->membership;
-} else {
- $membership = ACCESS_PUBLIC;
-}
+// only extract these elements.
+$name = $membership = $vis = $entity = null;
+extract($vars, EXTR_IF_EXISTS);
?>
<div>
@@ -21,7 +18,7 @@ if (isset($vars['entity'])) {
<label><?php echo elgg_echo("groups:name"); ?></label><br />
<?php echo elgg_view("input/text", array(
'name' => 'name',
- 'value' => $vars['entity']->name,
+ 'value' => $name
));
?>
</div>
@@ -39,7 +36,7 @@ if ($group_profile_fields > 0) {
echo "</label>$line_break";
echo elgg_view("input/{$valtype}", array(
'name' => $shortname,
- 'value' => $vars['entity']->$shortname,
+ 'value' => elgg_extract($shortname, $vars)
));
echo '</div>';
}
@@ -49,10 +46,10 @@ if ($group_profile_fields > 0) {
<div>
<label>
<?php echo elgg_echo('groups:membership'); ?><br />
- <?php echo elgg_view('input/access', array(
+ <?php echo elgg_view('input/dropdown', array(
'name' => 'membership',
'value' => $membership,
- 'options' => array(
+ 'options_values' => array(
ACCESS_PRIVATE => elgg_echo('groups:access:private'),
ACCESS_PUBLIC => elgg_echo('groups:access:public')
)
@@ -64,23 +61,11 @@ if ($group_profile_fields > 0) {
<?php
if (elgg_get_plugin_setting('hidden_groups', 'groups') == 'yes') {
- $this_owner = $vars['entity']->owner_guid;
- if (!$this_owner) {
- $this_owner = elgg_get_logged_in_user_guid();
- }
- $access = array(
- ACCESS_FRIENDS => elgg_echo("access:friends:label"),
+ $access_options = array(
+ ACCESS_PRIVATE => elgg_echo('groups:access:group'),
ACCESS_LOGGED_IN => elgg_echo("LOGGED_IN"),
ACCESS_PUBLIC => elgg_echo("PUBLIC")
);
- $collections = get_user_access_collections($vars['entity']->guid);
- if (is_array($collections)) {
- foreach ($collections as $c) {
- $access[$c->id] = $c->name;
- }
- }
-
- $current_access = $vars['entity']->access_id ? $vars['entity']->access_id : ACCESS_PUBLIC;
?>
<div>
@@ -88,8 +73,8 @@ if (elgg_get_plugin_setting('hidden_groups', 'groups') == 'yes') {
<?php echo elgg_echo('groups:visibility'); ?><br />
<?php echo elgg_view('input/access', array(
'name' => 'vis',
- 'value' => $current_access,
- 'options' => $access,
+ 'value' => $vis,
+ 'options_values' => $access_options,
));
?>
</label>
@@ -98,17 +83,57 @@ if (elgg_get_plugin_setting('hidden_groups', 'groups') == 'yes') {
<?php
}
+if (isset($vars['entity'])) {
+ $entity = $vars['entity'];
+ $owner_guid = $vars['entity']->owner_guid;
+} else {
+ $entity = false;
+}
+
+if ($entity && ($owner_guid == elgg_get_logged_in_user_guid() || elgg_is_admin_logged_in())) {
+ $members = array();
+
+ $options = array(
+ 'relationship' => 'member',
+ 'relationship_guid' => $vars['entity']->getGUID(),
+ 'inverse_relationship' => true,
+ 'type' => 'user',
+ 'limit' => 0,
+ );
+
+ $batch = new ElggBatch('elgg_get_entities_from_relationship', $options);
+ foreach ($batch as $member) {
+ $members[$member->guid] = "$member->name (@$member->username)";
+ }
+?>
+
+<div>
+ <label>
+ <?php echo elgg_echo('groups:owner'); ?><br />
+ <?php echo elgg_view('input/dropdown', array(
+ 'name' => 'owner_guid',
+ 'value' => $owner_guid,
+ 'options_values' => $members,
+ 'class' => 'groups-owner-input',
+ ));
+ ?>
+ </label>
+ <?php
+ if ($owner_guid == elgg_get_logged_in_user_guid()) {
+ echo '<span class="elgg-text-help">' . elgg_echo('groups:owner:warning') . '</span>';
+ }
+ ?>
+</div>
+
+<?php
+}
+
$tools = elgg_get_config('group_tool_options');
if ($tools) {
usort($tools, create_function('$a,$b', 'return strcmp($a->label,$b->label);'));
foreach ($tools as $group_option) {
$group_option_toggle_name = $group_option->name . "_enable";
- if ($group_option->default_on) {
- $group_option_default_value = 'yes';
- } else {
- $group_option_default_value = 'no';
- }
- $value = $vars['entity']->$group_option_toggle_name ? $vars['entity']->$group_option_toggle_name : $group_option_default_value;
+ $value = elgg_extract($group_option_toggle_name, $vars);
?>
<div>
<label>
@@ -128,16 +153,26 @@ if ($tools) {
}
}
?>
-<div class="bta">
+<div class="elgg-foot">
<?php
-if (isset($vars['entity'])) {
+if ($entity) {
echo elgg_view('input/hidden', array(
'name' => 'group_guid',
- 'value' => $vars['entity']->getGUID(),
+ 'value' => $entity->getGUID(),
));
}
echo elgg_view('input/submit', array('value' => elgg_echo('save')));
+
+if ($entity) {
+ $delete_url = 'action/groups/delete?guid=' . $entity->getGUID();
+ echo elgg_view('output/confirmlink', array(
+ 'text' => elgg_echo('groups:delete'),
+ 'href' => $delete_url,
+ 'confirm' => elgg_echo('groups:deletewarning'),
+ 'class' => 'elgg-button elgg-button-delete float-alt',
+ ));
+}
?>
</div>
diff --git a/mod/groups/views/default/forms/groups/find.php b/mod/groups/views/default/forms/groups/find.php
new file mode 100644
index 000000000..ddf639b74
--- /dev/null
+++ b/mod/groups/views/default/forms/groups/find.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Group tag-based search form body
+ */
+
+$tag_string = elgg_echo('groups:search:tags');
+
+$params = array(
+ 'name' => 'tag',
+ 'class' => 'elgg-input-search mbm',
+ 'value' => $tag_string,
+ 'onclick' => "if (this.value=='$tag_string') { this.value='' }",
+);
+echo elgg_view('input/text', $params);
+
+echo elgg_view('input/submit', array('value' => elgg_echo('search:go')));
diff --git a/mod/groups/views/default/forms/groups/invite.php b/mod/groups/views/default/forms/groups/invite.php
index a49bbe2fb..ef3131782 100644
--- a/mod/groups/views/default/forms/groups/invite.php
+++ b/mod/groups/views/default/forms/groups/invite.php
@@ -12,9 +12,11 @@ $friends = elgg_get_logged_in_user_entity()->getFriends('', 0);
if ($friends) {
echo elgg_view('input/friendspicker', array('entities' => $friends, 'name' => 'user_guid', 'highlight' => 'all'));
+ echo '<div class="elgg-foot">';
echo elgg_view('input/hidden', array('name' => 'forward_url', 'value' => $forward_url));
echo elgg_view('input/hidden', array('name' => 'group_guid', 'value' => $group->guid));
echo elgg_view('input/submit', array('value' => elgg_echo('invite')));
+ echo '</div>';
} else {
echo elgg_echo('groups:nofriendsatall');
} \ No newline at end of file
diff --git a/mod/groups/views/default/forms/groups/search.php b/mod/groups/views/default/forms/groups/search.php
index 8495fc186..850b6088e 100644
--- a/mod/groups/views/default/forms/groups/search.php
+++ b/mod/groups/views/default/forms/groups/search.php
@@ -1,13 +1,20 @@
<?php
-
-$tag_string = elgg_echo('groups:search:tags');
+/**
+ * Group search form
+ *
+ * @uses $vars['entity'] ElggGroup
+ */
$params = array(
- 'name' => 'tag',
+ 'name' => 'q',
'class' => 'elgg-input-search mbm',
'value' => $tag_string,
- 'onclick' => "if (this.value=='$tag_string') { this.value='' }",
);
echo elgg_view('input/text', $params);
+echo elgg_view('input/hidden', array(
+ 'name' => 'container_guid',
+ 'value' => $vars['entity']->getGUID(),
+));
+
echo elgg_view('input/submit', array('value' => elgg_echo('search:go')));
diff --git a/mod/groups/views/default/group/default.php b/mod/groups/views/default/group/default.php
index 77b17402b..d9460dff4 100644
--- a/mod/groups/views/default/group/default.php
+++ b/mod/groups/views/default/group/default.php
@@ -9,58 +9,29 @@ $group = $vars['entity'];
$icon = elgg_view_entity_icon($group, 'tiny');
-//get the membership type
-$membership = $group->membership;
-if ($membership == ACCESS_PUBLIC) {
- $mem = elgg_echo("groups:open");
-} else {
- $mem = elgg_echo("groups:closed");
-}
-
-// number of members
-$num_members = get_group_members($group->guid, 10, 0, 0, true);
-$members_string = elgg_echo('groups:member');
-
-$metadata = "<ul class=\"elgg-menu elgg-menu-metadata\"><li>$mem</li>";
-$metadata .= "<li>$num_members $members_string</li>";
-
-// feature link
-if (elgg_is_admin_logged_in()) {
- if ($group->featured_group == "yes") {
- $url = "action/groups/featured?group_guid={$group->guid}&action_type=unfeature";
- $wording = elgg_echo("groups:makeunfeatured");
- } else {
- $url = "action/groups/featured?group_guid={$group->guid}&action_type=feature";
- $wording = elgg_echo("groups:makefeatured");
- }
- $feature_link = elgg_view('output/url', array(
- 'href' => $url,
- 'text' => $wording,
- 'is_action' => true,
- ));
- $metadata .= "<li>$feature_link</li>";
-}
-
-$metadata .= elgg_view("entity/metadata", array('entity' => $group));
-
-$metadata .= "</ul>";
+$metadata = elgg_view_menu('entity', array(
+ 'entity' => $group,
+ 'handler' => 'groups',
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
+));
if (elgg_in_context('owner_block') || elgg_in_context('widgets')) {
$metadata = '';
}
-if ($vars['full']) {
- echo elgg_view("groups/profile/profile_block", $vars);
+if ($vars['full_view']) {
+ echo elgg_view('groups/profile/summary', $vars);
} else {
// brief view
-
$params = array(
'entity' => $group,
'metadata' => $metadata,
'subtitle' => $group->briefdescription,
);
- $list_body = elgg_view('page/components/list/body', $params);
+ $params = $params + $vars;
+ $list_body = elgg_view('group/elements/summary', $params);
- echo elgg_view_image_block($icon, $list_body);
+ echo elgg_view_image_block($icon, $list_body, $vars);
}
diff --git a/mod/groups/views/default/groups/css.php b/mod/groups/views/default/groups/css.php
index 5276e2bfa..32dd2b74d 100644
--- a/mod/groups/views/default/groups/css.php
+++ b/mod/groups/views/default/groups/css.php
@@ -6,178 +6,71 @@
*/
?>
-#group_tools_latest > .elgg-module {
- float: left;
- margin-bottom: 40px;
- min-height: 200px;
- width: 350px;
+.groups-profile > .elgg-image {
+ margin-right: 10px;
}
-
-#group_tools_latest > .elgg-module:nth-child(odd) {
- margin-right: 30px;
+.groups-stats {
+ background: #eeeeee;
+ padding: 5px;
+ margin-top: 10px;
+
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
}
-.group-widget-viewall {
- float: right;
- font-size: 85%;
+.groups-profile-fields .odd,
+.groups-profile-fields .even {
+ background: #f4f4f4;
+
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+
+ padding: 2px 4px;
+ margin-bottom: 7px;
}
-.groups-latest-comment {
- float: right;
+.groups-profile-fields .elgg-output {
+ margin: 0;
}
-
-/* group listings */
-.group_count {
- float:right;
-}
-.group_listings {
- /* wraps group lists on
- latest discussion, newest, popular */
-}
-.entity-subtext.groups {
- float:right;
- width:300px;
- text-align: right;
- margin-left: 10px;
-}
-.topic_post.maintopic {
- margin:10px 0 0 0;
- padding-bottom:40px;
- border-bottom:1px solid #CCCCCC;
-}
-.elgg-image-block.topic .topic_post p {
- margin:10px 0 5px 0;
-}
-.elgg-image-block.topic:hover {
- background-color: white;
+#groups-tools > li {
+ width: 48%;
+ min-height: 200px;
+ margin-bottom: 40px;
}
-
-/* group invitations */
-.group_invitations a.elgg-button-action,
-.group_invitations a.elgg-button-submit {
- float:right;
- margin:0 0 0 14px;
+#groups-tools > li:nth-child(odd) {
+ margin-right: 4%;
}
-
-/* GROUPS SIDEBAR ELEMENTS */
-#groupsearchform .search-input {
- width:196px;
-}
-.featured_group {
- margin-bottom:15px;
-}
-.featured_group .elgg-user-icon {
- float:left;
- margin-right:10px;
-}
-.featured_group p.entity-title {
- margin-bottom:0;
-}
-.member_icon {
- margin:6px 6px 0 0;
- float:left;
+.groups-widget-viewall {
+ float: right;
+ font-size: 85%;
}
-
-/* GROUP PROFILE PAGE (individual group homepage) */
-.group_profile_column {
- float:left;
- margin-top:10px;
-}
-.group_profile_column.icon {
- width:200px;
-}
-.group_profile_column.info {
- width:510px;
- margin-left:20px;
-}
-.group_profile_icon {
- width:200px;
- height:200px;
-}
-.group_stats {
- background: #eeeeee;
- padding:5px;
- margin-top:10px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-.group_stats p {
- margin:0;
-}
-.group_profile_column .odd,
-.group_profile_column .even {
- background:#f4f4f4;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- padding:2px 4px;
- margin:0 0 7px;
+.groups-latest-reply {
+ float: right;
}
-/* tool content boxes on group profile page */
-#group_tools_latest {
- min-height: 300px;
- margin-top:20px;
-}
-.group_tool_widget {
- float:left;
- margin-right:30px;
- margin-bottom:40px;
- min-height:200px;
- width:350px;
-}
-.group_tool_widget.odd {
- margin-right:0;
-}
-.group_tool_widget h3 {
- border-bottom:1px solid #CCCCCC;
- background:#e4e4e4;
- color:#333333;
- padding:5px 5px 3px 5px;
- -moz-border-radius-topleft:4px;
- -moz-border-radius-topright:4px;
- -webkit-border-top-left-radius:4px;
- -webkit-border-top-right-radius:4px;
-}
+.elgg-menu-groups-my-status li a {
+ display: block;
-/* group activity latest
- (hide some items used on the full riverdashboard activity)
- @todo provide a separate view for a groups latest activity
- - so we can have tiny avatars and not have to manually hide elements
-*/
-.group_tool_widget.activity a.river_comment_form_button,
-.group_tool_widget.activity .river_comments_tabs,
-.group_tool_widget.activity .river_content_display,
-.group_tool_widget.activity .river-comments,
-.group_tool_widget.activity .river_link_divider,
-.group_tool_widget.activity .river_user-like_button {
- display:none;
-}
-.group_tool_widget.activity .river_item .entity-subtext {
- padding:0;
-}
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
-/* override default elgg-body width */
-.group_tool_widget .elgg-body {
- width:315px;
+ background-color: white;
+ margin: 3px 0 5px 0;
+ padding: 2px 4px 2px 8px;
}
-.group_widget_link {
- float:right;
- margin:4px 6px 0 0;
- font-size: 85%;
+.elgg-menu-groups-my-status li a:hover {
+ background-color: #0054A7;
+ color: white;
+ text-decoration: none;
}
-
-/* edit group page */
-.delete_group {
- float: right;
- margin-top:-44px;
+.elgg-menu-groups-my-status li.elgg-state-selected > a {
+ background-color: #4690D6;
+ color: white;
}
-
-/* edit forum posts
- - force tinyMCE to correct width */
-.edit_comment .defaultSkin table.mceLayout {
- width: 694px !important;
-} \ No newline at end of file
diff --git a/mod/groups/views/default/groups/edit.php b/mod/groups/views/default/groups/edit.php
index 87fbaa182..5579ad54a 100644
--- a/mod/groups/views/default/groups/edit.php
+++ b/mod/groups/views/default/groups/edit.php
@@ -1,16 +1,15 @@
<?php
/**
- * Edit/create a group
+ * Edit/create a group wrapper
+ *
+ * @uses $vars['entity'] ElggGroup object
*/
$entity = elgg_extract('entity', $vars, null);
-$form_vars = array('enctype' => 'multipart/form-data');
-$body_vars = array('entity' => $entity);
-echo elgg_view_form('groups/edit', $form_vars, $body_vars);
+$form_vars = array(
+ 'enctype' => 'multipart/form-data',
+ 'class' => 'elgg-form-alt',
+);
-if ($entity) {
- echo '<div class="delete_group">';
- echo elgg_view_form('groups/delete', array(), array('entity' => $entity));
- echo '</div>';
-}
+echo elgg_view_form('groups/edit', $form_vars, groups_prepare_form_vars($entity));
diff --git a/mod/groups/views/default/groups/group_sort_menu.php b/mod/groups/views/default/groups/group_sort_menu.php
index 6ba56628e..f5631a31f 100644
--- a/mod/groups/views/default/groups/group_sort_menu.php
+++ b/mod/groups/views/default/groups/group_sort_menu.php
@@ -1,21 +1,36 @@
<?php
/**
- * All groups navigation menu
+ * All groups listing page navigation
+ *
+ * @uses $vars['selected'] Name of the tab that has been selected
*/
-$group_count = (int)elgg_get_entities(array('types' => 'group', 'count' => true));
+$tabs = array(
+ 'newest' => array(
+ 'text' => elgg_echo('groups:newest'),
+ 'href' => 'groups/all?filter=newest',
+ 'priority' => 200,
+ ),
+ 'popular' => array(
+ 'text' => elgg_echo('groups:popular'),
+ 'href' => 'groups/all?filter=popular',
+ 'priority' => 300,
+ ),
+ 'discussion' => array(
+ 'text' => elgg_echo('groups:latestdiscussion'),
+ 'href' => 'groups/all?filter=discussion',
+ 'priority' => 400,
+ ),
+);
-$selected = elgg_extract('selected', $vars);
-
- //url
- $url = elgg_get_site_url() . "pg/groups/all/";
+foreach ($tabs as $name => $tab) {
+ $tab['name'] = $name;
-?>
-<div class="elgg-tabs mtm">
-<div class="group_count"><?php echo $group_count . " " . elgg_echo("groups:count"); ?></div>
-<ul>
- <li <?php if($selected == "newest") echo "class='selected'"; ?>><a href="<?php echo $url; ?>?filter=newest"><?php echo elgg_echo('groups:newest'); ?></a></li>
- <li <?php if($selected == "pop") echo "class='selected'"; ?>><a href="<?php echo $url; ?>?filter=pop"><?php echo elgg_echo('groups:popular'); ?></a></li>
- <li <?php if($selected == "active") echo "class='selected'"; ?>><a href="<?php echo $url; ?>?filter=active"><?php echo elgg_echo('groups:latestdiscussion'); ?></a></li>
-</ul>
-</div>
+ if ($vars['selected'] == $name) {
+ $tab['selected'] = true;
+ }
+
+ elgg_register_menu_item('filter', $tab);
+}
+
+echo elgg_view_menu('filter', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz'));
diff --git a/mod/groups/views/default/groups/invitationrequests.php b/mod/groups/views/default/groups/invitationrequests.php
index 60a0ec853..94dbdf1f2 100644
--- a/mod/groups/views/default/groups/invitationrequests.php
+++ b/mod/groups/views/default/groups/invitationrequests.php
@@ -1,37 +1,51 @@
<?php
+/**
+ * A user's group invitations
+ *
+ * @uses $vars['invitations'] Array of ElggGroups
+ */
if (!empty($vars['invitations']) && is_array($vars['invitations'])) {
$user = elgg_get_logged_in_user_entity();
- foreach($vars['invitations'] as $group)
+ echo '<ul class="elgg-list">';
+ foreach ($vars['invitations'] as $group) {
if ($group instanceof ElggGroup) {
-
- ?>
- <div class="elgg-image-block group_invitations clearfix">
- <?php
- echo "<div class='elgg-image'>";
- echo elgg_view_entity_icon($group, 'tiny', array('override' => 'true'));
- echo "</div>";
+ $icon = elgg_view_entity_icon($group, 'tiny', array('use_hover' => 'true'));
+
+ $group_title = elgg_view('output/url', array(
+ 'href' => $group->getURL(),
+ 'text' => $group->name,
+ 'is_trusted' => true,
+ ));
$url = elgg_add_action_tokens_to_url(elgg_get_site_url()."action/groups/join?user_guid={$user->guid}&group_guid={$group->guid}");
- ?>
- <div class="elgg-body">
- <a href="<?php echo $url; ?>" class="elgg-button elgg-button-submit"><?php echo elgg_echo('accept'); ?></a>
- <?php
- echo str_replace('<a', '<a class="elgg-button elgg-button-action elgg-state-disabled" ', elgg_view('output/confirmlink',array(
- 'href' => "action/groups/killinvitation?user_guid={$user->getGUID()}&group_guid={$group->getGUID()}",
+ $accept_button = elgg_view('output/url', array(
+ 'href' => $url,
+ 'text' => elgg_echo('accept'),
+ 'class' => 'elgg-button elgg-button-submit',
+ 'is_trusted' => true,
+ ));
+
+ $url = "action/groups/killinvitation?user_guid={$user->getGUID()}&group_guid={$group->getGUID()}";
+ $delete_button = elgg_view('output/confirmlink', array(
+ 'href' => $url,
'confirm' => elgg_echo('groups:invite:remove:check'),
'text' => elgg_echo('delete'),
- )));
-
- echo "<p class='entity-title'><a href=\"" . $group->getUrl() . "\">" . $group->name . "</a></p>";
- echo "<p class='entity-subtext'>" . $group->briefdescription . "</p>";
+ 'class' => 'elgg-button elgg-button-delete mlm',
+ ));
- ?>
- </div></div>
- <?php
- }
+ $body = <<<HTML
+<h4>$group_title</h4>
+<p class="elgg-subtext">$group->briefdescription</p>
+HTML;
+ $alt = $accept_button . $delete_button;
- } else {
- echo "<p class='default_string mtm'>" . elgg_echo('groups:invitations:none') . "</p>";
+ echo '<li class="pvs">';
+ echo elgg_view_image_block($icon, $body, array('image_alt' => $alt));
+ echo '</li>';
+ }
+ }
+ echo '</ul>';
+} else {
+ echo '<p class="mtm">' . elgg_echo('groups:invitations:none') . "</p>";
}
-?> \ No newline at end of file
diff --git a/mod/groups/views/default/groups/js.php b/mod/groups/views/default/groups/js.php
new file mode 100644
index 000000000..0319be14a
--- /dev/null
+++ b/mod/groups/views/default/groups/js.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Javascript for Groups forms
+ *
+ * @package ElggGroups
+ */
+?>
+
+// this adds a class to support IE8 and older
+elgg.register_hook_handler('init', 'system', function() {
+ // jQuery uses 0-based indexing
+ $('#groups-tools').children('li:even').addClass('odd');
+});
diff --git a/mod/groups/views/default/groups/membershiprequests.php b/mod/groups/views/default/groups/membershiprequests.php
index 303b9aad1..2bac0e32b 100644
--- a/mod/groups/views/default/groups/membershiprequests.php
+++ b/mod/groups/views/default/groups/membershiprequests.php
@@ -1,36 +1,47 @@
<?php
+/**
+ * A group's member requests
+ *
+ * @uses $vars['entity'] ElggGroup
+ * @uses $vars['requests'] Array of ElggUsers
+ */
- if (!empty($vars['requests']) && is_array($vars['requests'])) {
+if (!empty($vars['requests']) && is_array($vars['requests'])) {
+ echo '<ul class="elgg-list">';
+ foreach ($vars['requests'] as $user) {
+ $icon = elgg_view_entity_icon($user, 'tiny', array('use_hover' => 'true'));
- foreach($vars['requests'] as $request)
- if ($request instanceof ElggUser) {
-
- ?>
- <div class="elgg-image-block group_invitations clearfix">
- <?php
- echo "<div class='elgg-image'>";
- echo elgg_view_entity_icon($request, 'small', array('override' => 'true'));
- echo "</div>";
-
- $url = elgg_add_action_tokens_to_url(elgg_get_site_url()."action/groups/addtogroup?user_guid={$request->guid}&group_guid={$vars['entity']->guid}");
- ?>
- <div class="elgg-body">
- <a href="<?php echo $url; ?>" class="elgg-button elgg-button-submit"><?php echo elgg_echo('accept'); ?></a>
- <?php
- echo str_replace('<a', '<a class="elgg-button elgg-button-cancel elgg-state-disabled" ', elgg_view('output/confirmlink',array(
- 'href' => 'action/groups/killrequest?user_guid='.$request->guid.'&group_guid=' . $vars['entity']->guid,
- 'confirm' => elgg_echo('groups:joinrequest:remove:check'),
- 'text' => elgg_echo('delete'),
- )));
- echo "<p class='entity-title'><a href=\"" . $request->getUrl() . "\">" . $request->name . "</a></p>";
- echo "<p class='entity-subtext'>" . $request->briefdescription . "</p>";
- ?>
- </div>
- </div>
- <?php
- }
- } else {
- echo "<p>" . elgg_echo('groups:requests:none') . "</p>";
- }
+ $user_title = elgg_view('output/url', array(
+ 'href' => $user->getURL(),
+ 'text' => $user->name,
+ 'is_trusted' => true,
+ ));
+
+ $url = "action/groups/addtogroup?user_guid={$user->guid}&group_guid={$vars['entity']->guid}";
+ $url = elgg_add_action_tokens_to_url($url);
+ $accept_button = elgg_view('output/url', array(
+ 'href' => $url,
+ 'text' => elgg_echo('accept'),
+ 'class' => 'elgg-button elgg-button-submit',
+ 'is_trusted' => true,
+ ));
+
+ $url = 'action/groups/killrequest?user_guid=' . $user->guid . '&group_guid=' . $vars['entity']->guid;
+ $delete_button = elgg_view('output/confirmlink', array(
+ 'href' => $url,
+ 'confirm' => elgg_echo('groups:joinrequest:remove:check'),
+ 'text' => elgg_echo('delete'),
+ 'class' => 'elgg-button elgg-button-delete mlm',
+ ));
-?> \ No newline at end of file
+ $body = "<h4>$user_title</h4>";
+ $alt = $accept_button . $delete_button;
+
+ echo '<li class="pvs">';
+ echo elgg_view_image_block($icon, $body, array('image_alt' => $alt));
+ echo '</li>';
+ }
+ echo '</ul>';
+} else {
+ echo '<p class="mtm">' . elgg_echo('groups:requests:none') . '</p>';
+}
diff --git a/mod/groups/views/default/groups/profile/activity_module.php b/mod/groups/views/default/groups/profile/activity_module.php
index 60a8e025c..832ff4a4b 100644
--- a/mod/groups/views/default/groups/profile/activity_module.php
+++ b/mod/groups/views/default/groups/profile/activity_module.php
@@ -2,32 +2,33 @@
/**
* Groups latest activity
*
+ * @todo add people joining group to activity
+ *
* @package Groups
*/
-global $CONFIG;
-
if ($vars['entity']->activity_enable == 'no') {
return true;
}
$group = $vars['entity'];
-
+if (!$group) {
+ return true;
+}
$all_link = elgg_view('output/url', array(
- 'href' => "pg/groups/activity/$group->guid",
+ 'href' => "groups/activity/$group->guid",
'text' => elgg_echo('link:view:all'),
+ 'is_trusted' => true,
));
-$header = "<span class=\"group-widget-viewall\">$all_link</span>";
-$header .= '<h3>' . elgg_echo('groups:activity') . '</h3>';
-
elgg_push_context('widgets');
+$db_prefix = elgg_get_config('dbprefix');
$content = elgg_list_river(array(
'limit' => 4,
'pagination' => false,
- 'joins' => array("join {$CONFIG->dbprefix}entities e1 on e1.guid = rv.object_guid"),
+ 'joins' => array("JOIN {$db_prefix}entities e1 ON e1.guid = rv.object_guid"),
'wheres' => array("(e1.container_guid = $group->guid)"),
));
elgg_pop_context();
@@ -36,43 +37,8 @@ if (!$content) {
$content = '<p>' . elgg_echo('groups:activity:none') . '</p>';
}
-echo elgg_view_module('info', '', $content, array('header' => $header));
-
-return true;
-?>
-<span class="group_widget_link">
-<?php
- echo elgg_view('output/url', array(
- 'href' => "pg/groups/activity/" . elgg_get_page_owner_guid(),
- 'text' => elgg_echo('link:view:all'),
- ));
-?>
-</span>
-<h3><?php echo elgg_echo("activity"); ?></h3>
-<?php
- $owner = elgg_get_page_owner_entity();
- $group_guid = $owner->guid;
- $limit = 5;
-
- $offset = (int) get_input('offset', 0);
-
- // Sanitise variables -- future proof in case they get sourced elsewhere
- $limit = (int) $limit;
- $offset = (int) $offset;
- $group_guid = (int) $group_guid;
-
- //@todo Holy cow, this really needs to be a function!
- $sql = "SELECT {$CONFIG->dbprefix}river.id, {$CONFIG->dbprefix}river.type, {$CONFIG->dbprefix}river.subtype, {$CONFIG->dbprefix}river.action_type, {$CONFIG->dbprefix}river.access_id, {$CONFIG->dbprefix}river.view, {$CONFIG->dbprefix}river.subject_guid, {$CONFIG->dbprefix}river.object_guid, {$CONFIG->dbprefix}river.posted FROM {$CONFIG->dbprefix}river INNER JOIN {$CONFIG->dbprefix}entities AS entities1 ON {$CONFIG->dbprefix}river.object_guid = entities1.guid INNER JOIN {$CONFIG->dbprefix}entities AS entities2 ON entities1.container_guid = entities2.guid WHERE entities2.guid = $group_guid OR {$CONFIG->dbprefix}river.object_guid = $group_guid ORDER BY posted DESC limit {$offset},{$limit}";
-
- $items = get_data($sql);
-
- if (count($items) > 0) {
- $river_items = elgg_view('river/item/list',array(
- 'limit' => $limit,
- 'offset' => $offset,
- 'items' => $items
- ));
- }
- echo $river_items;
-
-?>
+echo elgg_view('groups/profile/module', array(
+ 'title' => elgg_echo('groups:activity'),
+ 'content' => $content,
+ 'all_link' => $all_link,
+));
diff --git a/mod/groups/views/default/groups/profile/buttons.php b/mod/groups/views/default/groups/profile/buttons.php
deleted file mode 100644
index 0aef3920b..000000000
--- a/mod/groups/views/default/groups/profile/buttons.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- * Content header action buttons
- *
- * @uses $vars['entity']
- *
- * @todo This should be done by registering menu items with the page actions menu
- */
-
-if (!elgg_is_logged_in()) {
- return true;
-}
-
-
-$actions = array();
-
-// group owners
-if ($vars['entity']->canEdit()) {
- // edit and invite
- $url = elgg_get_site_url() . "pg/groups/edit/{$vars['entity']->getGUID()}";
- $actions[$url] = elgg_echo('groups:edit');
- $url = elgg_get_site_url() . "pg/groups/invite/{$vars['entity']->getGUID()}";
- $actions[$url] = elgg_echo('groups:invite');
-}
-
-// group members
-if ($vars['entity']->isMember($user)) {
- // leave
- $url = elgg_get_site_url() . "action/groups/leave?group_guid={$vars['entity']->getGUID()}";
- $url = elgg_add_action_tokens_to_url($url);
- $actions[$url] = elgg_echo('groups:leave');
-} else {
- // join - admins can always join.
- if ($vars['entity']->isPublicMembership() || $vars['entity']->canEdit()) {
- $url = elgg_get_site_url() . "action/groups/join?group_guid={$vars['entity']->getGUID()}";
- $url = elgg_add_action_tokens_to_url($url);
- $actions[$url] = elgg_echo('groups:join');
- } else {
- // request membership
- $url = elgg_get_site_url() . "action/groups/joinrequest?group_guid={$vars['entity']->getGUID()}";
- $url = elgg_add_action_tokens_to_url($url);
- $actions[$url] = elgg_echo('groups:joinrequest');
- }
-}
-
-// display action buttons
-if ($actions) {
- foreach ($actions as $url => $action) {
- echo elgg_view('output/url', array(
- 'text' => $action,
- 'href' => $url,
- 'class' => 'elgg-button elgg-button-action',
- ));
- }
-}
diff --git a/mod/groups/views/default/groups/profile/fields.php b/mod/groups/views/default/groups/profile/fields.php
new file mode 100644
index 000000000..14827f11a
--- /dev/null
+++ b/mod/groups/views/default/groups/profile/fields.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Group profile fields
+ */
+
+$group = $vars['entity'];
+
+$profile_fields = elgg_get_config('group');
+
+if (is_array($profile_fields) && count($profile_fields) > 0) {
+
+ $even_odd = 'odd';
+ foreach ($profile_fields as $key => $valtype) {
+ // do not show the name
+ if ($key == 'name') {
+ continue;
+ }
+
+ $value = $group->$key;
+ if (empty($value)) {
+ continue;
+ }
+
+ $options = array('value' => $group->$key);
+ if ($valtype == 'tags') {
+ $options['tag_names'] = $key;
+ }
+
+ echo "<div class=\"{$even_odd}\">";
+ echo "<b>";
+ echo elgg_echo("groups:$key");
+ echo ": </b>";
+ echo elgg_view("output/$valtype", $options);
+ echo "</div>";
+
+ $even_odd = ($even_odd == 'even') ? 'odd' : 'even';
+ }
+}
diff --git a/mod/groups/views/default/groups/profile/layout.php b/mod/groups/views/default/groups/profile/layout.php
new file mode 100644
index 000000000..f513f10ae
--- /dev/null
+++ b/mod/groups/views/default/groups/profile/layout.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Layout of the groups profile page
+ *
+ * @uses $vars['entity']
+ */
+
+echo elgg_view('groups/profile/summary', $vars);
+if (group_gatekeeper(false)) {
+ echo elgg_view('groups/profile/widgets', $vars);
+} else {
+ echo elgg_view('groups/profile/closed_membership');
+}
diff --git a/mod/groups/views/default/groups/profile/module.php b/mod/groups/views/default/groups/profile/module.php
new file mode 100644
index 000000000..9d0b18266
--- /dev/null
+++ b/mod/groups/views/default/groups/profile/module.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Group module (also called a group widget)
+ *
+ * @uses $vars['title'] The title of the module
+ * @uses $vars['content'] The module content
+ * @uses $vars['all_link'] A link to list content
+ * @uses $vars['add_link'] A link to create content
+ */
+
+$group = elgg_get_page_owner_entity();
+
+$header = "<span class=\"groups-widget-viewall\">{$vars['all_link']}</span>";
+$header .= '<h3>' . $vars['title'] . '</h3>';
+
+if ($group->canWriteToContainer() && isset($vars['add_link'])) {
+ $vars['content'] .= "<span class='elgg-widget-more'>{$vars['add_link']}</span>";
+}
+
+echo '<li>';
+echo elgg_view_module('info', '', $vars['content'], array(
+ 'header' => $header,
+ 'class' => 'elgg-module-group',
+));
+echo '</li>';
diff --git a/mod/groups/views/default/groups/profile/profile_block.php b/mod/groups/views/default/groups/profile/profile_block.php
deleted file mode 100644
index aec8fc6cd..000000000
--- a/mod/groups/views/default/groups/profile/profile_block.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * Group profile
- *
- * Icon and profile fields
- *
- * @uses $vars['group']
- */
-
-if (!isset($vars['entity']) || !$vars['entity']) {
- echo elgg_echo('groups:notfound');
- return true;
-}
-
-$group = $vars['entity'];
-$owner = $group->getOwnerEntity();
-
-$profile_fields = elgg_get_config('group');
-
-?>
-<div class="group_profile clearfix elgg-image-block">
- <div class="group_profile_column elgg-image">
- <div class="group_profile_icon">
- <?php echo elgg_view_entity_icon($group, 'large', array('href' => '')); ?>
- </div>
- <div class="group_stats">
- <p>
- <b><?php echo elgg_echo("groups:owner"); ?>: </b>
- <?php
- echo elgg_view('output/url', array(
- 'text' => $owner->name,
- 'value' => $owner->getURL(),
- ));
- ?>
- </p>
- <p>
- <?php
- echo elgg_echo('groups:members') . ": " . $group->getMembers(0, 0, TRUE);
- ?>
- </p>
- </div>
- </div>
-
- <div class="group_profile_column elgg-body">
-<?php
-if (is_array($profile_fields) && count($profile_fields) > 0) {
-
- $even_odd = 'odd';
- foreach ($profile_fields as $key => $valtype) {
- // do not show the name
- if ($key == 'name') {
- continue;
- }
-
- $value = $group->$key;
- if (empty($value)) {
- continue;
- }
-
- $options = array('value' => $group->$key);
- if ($valtype == 'tags') {
- $options['tag_names'] = $key;
- }
-
- echo "<p class=\"{$even_odd}\">";
- echo "<b>";
- echo elgg_echo("groups:$key");
- echo ": </b>";
- echo elgg_view("output/$valtype", $options);
- echo "</p>";
-
- $even_odd = ($even_odd == 'even') ? 'odd' : 'even';
- }
-}
-?>
- </div>
-</div>
diff --git a/mod/groups/views/default/groups/profile/summary.php b/mod/groups/views/default/groups/profile/summary.php
new file mode 100644
index 000000000..3f7496871
--- /dev/null
+++ b/mod/groups/views/default/groups/profile/summary.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Group profile summary
+ *
+ * Icon and profile fields
+ *
+ * @uses $vars['group']
+ */
+
+if (!isset($vars['entity']) || !$vars['entity']) {
+ echo elgg_echo('groups:notfound');
+ return true;
+}
+
+$group = $vars['entity'];
+$owner = $group->getOwnerEntity();
+
+if (!$owner) {
+ // not having an owner is very bad so we throw an exception
+ $msg = elgg_echo('InvalidParameterException:IdNotExistForGUID', array('group owner', $group->guid));
+ throw new InvalidParameterException($msg);
+}
+
+?>
+<div class="groups-profile clearfix elgg-image-block">
+ <div class="elgg-image">
+ <div class="groups-profile-icon">
+ <?php
+ // we don't force icons to be square so don't set width/height
+ echo elgg_view_entity_icon($group, 'large', array(
+ 'href' => '',
+ 'width' => '',
+ 'height' => '',
+ ));
+ ?>
+ </div>
+ <div class="groups-stats">
+ <p>
+ <b><?php echo elgg_echo("groups:owner"); ?>: </b>
+ <?php
+ echo elgg_view('output/url', array(
+ 'text' => $owner->name,
+ 'value' => $owner->getURL(),
+ 'is_trusted' => true,
+ ));
+ ?>
+ </p>
+ <p>
+ <?php
+ echo elgg_echo('groups:members') . ": " . $group->getMembers(0, 0, TRUE);
+ ?>
+ </p>
+ </div>
+ </div>
+
+ <div class="groups-profile-fields elgg-body">
+ <?php
+ echo elgg_view('groups/profile/fields', $vars);
+ ?>
+ </div>
+</div>
+<?php
+?>
+
diff --git a/mod/groups/views/default/groups/profile/widgets.php b/mod/groups/views/default/groups/profile/widgets.php
index 08cbf1dae..7635cad4f 100644
--- a/mod/groups/views/default/groups/profile/widgets.php
+++ b/mod/groups/views/default/groups/profile/widgets.php
@@ -6,17 +6,19 @@
*/
// tools widget area
-echo "<div id='group_tools_latest' class='clearfix'>";
-
- // enable tools to extend this area
- echo elgg_view("groups/tool_latest", array('entity' => $vars['entity']));
+echo '<ul id="groups-tools" class="elgg-gallery elgg-gallery-fluid mtl clearfix">';
+
+// enable tools to extend this area
+echo elgg_view("groups/tool_latest", $vars);
+
+// backward compatibility
+$right = elgg_view('groups/right_column', $vars);
+$left = elgg_view('groups/left_column', $vars);
+if ($right || $left) {
+ elgg_deprecated_notice('The views groups/right_column and groups/left_column have been replaced by groups/tool_latest', 1.8);
+ echo $left;
+ echo $right;
+}
-echo "</div>";
-?>
+echo "</ul>";
-<?php //@todo JS 1.8: no ?>
-<script type="text/javascript">
-$(function () { // subclass every other group tool widget
- $('#group_tools_latest').find('.group_tool_widget:odd').addClass('odd');
-});
-</script>
diff --git a/mod/groups/views/default/groups/side_menu.php b/mod/groups/views/default/groups/side_menu.php
deleted file mode 100644
index 0ae2bef63..000000000
--- a/mod/groups/views/default/groups/side_menu.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<ul class="submenu page_navigation">
-<?php
- if(elgg_is_logged_in()){
- echo "<li><a href=\"".elgg_get_site_url()."pg/groups/member/{elgg_get_logged_in_user_entity()->username}\">". elgg_echo('groups:yours') ."</a></li>";
- echo "<li><a href=\"".elgg_get_site_url()."pg/groups/invitations/{elgg_get_logged_in_user_entity()->username}\">". elgg_echo('groups:invitations') ."</a></li>";
- }
-?>
-</ul> \ No newline at end of file
diff --git a/mod/groups/views/default/groups/sidebar/featured.php b/mod/groups/views/default/groups/sidebar/featured.php
index 695782783..f3f8f8d2d 100644
--- a/mod/groups/views/default/groups/sidebar/featured.php
+++ b/mod/groups/views/default/groups/sidebar/featured.php
@@ -8,7 +8,7 @@
$featured_groups = elgg_get_entities_from_metadata(array(
'metadata_name' => 'featured_group',
'metadata_value' => 'yes',
- 'types' => 'group',
+ 'type' => 'group',
'limit' => 10,
));
@@ -17,7 +17,7 @@ if ($featured_groups) {
elgg_push_context('widgets');
$body = '';
foreach ($featured_groups as $group) {
- $body .= elgg_view_entity($group, false);
+ $body .= elgg_view_entity($group, array('full_view' => false));
}
elgg_pop_context();
diff --git a/mod/groups/views/default/groups/sidebar/find.php b/mod/groups/views/default/groups/sidebar/find.php
index 0d31ee711..c1a8da3c2 100644
--- a/mod/groups/views/default/groups/sidebar/find.php
+++ b/mod/groups/views/default/groups/sidebar/find.php
@@ -4,7 +4,11 @@
*
* @package ElggGroups
*/
-$url = elgg_get_site_url() . 'pg/groups/world';
-$body = elgg_view_form('groups/search', array('action' => $url, 'method' => 'get'));
+$url = elgg_get_site_url() . 'groups/search';
+$body = elgg_view_form('groups/find', array(
+ 'action' => $url,
+ 'method' => 'get',
+ 'disable_security' => true,
+));
echo elgg_view_module('aside', elgg_echo('groups:searchtag'), $body);
diff --git a/mod/groups/views/default/groups/sidebar/members.php b/mod/groups/views/default/groups/sidebar/members.php
index 669d2c6bd..1199a0c34 100644
--- a/mod/groups/views/default/groups/sidebar/members.php
+++ b/mod/groups/views/default/groups/sidebar/members.php
@@ -3,19 +3,30 @@
* Group members sidebar
*
* @package ElggGroups
+ *
+ * @uses $vars['entity'] Group entity
+ * @uses $vars['limit'] The number of members to display
*/
+$limit = elgg_extract('limit', $vars, 14);
+
$all_link = elgg_view('output/url', array(
- 'href' => 'pg/groups/members/' . $vars['entity']->guid,
+ 'href' => 'groups/members/' . $vars['entity']->guid,
'text' => elgg_echo('groups:members:more'),
+ 'is_trusted' => true,
+));
+
+$body = elgg_list_entities_from_relationship(array(
+ 'relationship' => 'member',
+ 'relationship_guid' => $vars['entity']->guid,
+ 'inverse_relationship' => true,
+ 'type' => 'user',
+ 'limit' => $limit,
+ 'list_type' => 'gallery',
+ 'gallery_class' => 'elgg-gallery-users',
+ 'pagination' => false
));
-$body = '<div class="clearfix">';
-$members = $vars['entity']->getMembers(10);
-foreach ($members as $mem) {
- $body .= "<div class='member_icon'><a href=\"{$mem->getURL()}\">" . elgg_view_entity_icon($mem, 'tiny', array('override' => 'true')) . "</a></div>";
-}
-$body .= '</div>';
$body .= "<div class='center mts'>$all_link</div>";
-echo elgg_view_module('aside', elgg_echo('groups:members'), $body); \ No newline at end of file
+echo elgg_view_module('aside', elgg_echo('groups:members'), $body);
diff --git a/mod/groups/views/default/groups/sidebar/my_status.php b/mod/groups/views/default/groups/sidebar/my_status.php
new file mode 100644
index 000000000..1e4e84b80
--- /dev/null
+++ b/mod/groups/views/default/groups/sidebar/my_status.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Group status for logged in user
+ *
+ * @package ElggGroups
+ *
+ * @uses $vars['entity'] Group entity
+ */
+
+$group = elgg_extract('entity', $vars);
+$user = elgg_get_logged_in_user_entity();
+$subscribed = elgg_extract('subscribed', $vars);
+
+if (!elgg_is_logged_in()) {
+ return true;
+}
+
+// membership status
+$is_member = $group->isMember($user);
+$is_owner = $group->getOwnerEntity() == $user;
+
+if ($is_owner) {
+ elgg_register_menu_item('groups:my_status', array(
+ 'name' => 'membership_status',
+ 'text' => '<a>' . elgg_echo('groups:my_status:group_owner') . '</a>',
+ 'href' => false
+ ));
+} elseif ($is_member) {
+ elgg_register_menu_item('groups:my_status', array(
+ 'name' => 'membership_status',
+ 'text' => '<a>' . elgg_echo('groups:my_status:group_member') . '</a>',
+ 'href' => false
+ ));
+} else {
+ elgg_register_menu_item('groups:my_status', array(
+ 'name' => 'membership_status',
+ 'text' => elgg_echo('groups:join'),
+ 'href' => "/action/groups/join?group_guid={$group->getGUID()}",
+ 'is_action' => true
+ ));
+}
+
+// notification info
+if (elgg_is_active_plugin('notifications') && $is_member) {
+ if ($subscribed) {
+ elgg_register_menu_item('groups:my_status', array(
+ 'name' => 'subscription_status',
+ 'text' => elgg_echo('groups:subscribed'),
+ 'href' => "notifications/group/$user->username",
+ 'is_action' => true
+ ));
+ } else {
+ elgg_register_menu_item('groups:my_status', array(
+ 'name' => 'subscription_status',
+ 'text' => elgg_echo('groups:unsubscribed'),
+ 'href' => "notifications/group/$user->username"
+ ));
+ }
+}
+
+$body = elgg_view_menu('groups:my_status');
+echo elgg_view_module('aside', elgg_echo('groups:my_status'), $body);
diff --git a/mod/groups/views/default/groups/sidebar/search.php b/mod/groups/views/default/groups/sidebar/search.php
new file mode 100644
index 000000000..226835715
--- /dev/null
+++ b/mod/groups/views/default/groups/sidebar/search.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Search for content in this group
+ *
+ * @uses vars['entity'] ElggGroup
+ */
+
+$url = elgg_get_site_url() . 'search';
+$body = elgg_view_form('groups/search', array(
+ 'action' => $url,
+ 'method' => 'get',
+ 'disable_security' => true,
+), $vars);
+
+echo elgg_view_module('aside', elgg_echo('groups:search_in_group'), $body); \ No newline at end of file
diff --git a/mod/groups/views/default/object/groupforumtopic.php b/mod/groups/views/default/object/groupforumtopic.php
index d1c6005ff..e6988d16e 100644
--- a/mod/groups/views/default/object/groupforumtopic.php
+++ b/mod/groups/views/default/object/groupforumtopic.php
@@ -5,7 +5,7 @@
* @package ElggGroups
*/
-$full = elgg_extract('full', $vars, FALSE);
+$full = elgg_extract('full_view', $vars, FALSE);
$topic = elgg_extract('entity', $vars, FALSE);
if (!$topic) {
@@ -20,30 +20,38 @@ $poster_icon = elgg_view_entity_icon($poster, 'tiny');
$poster_link = elgg_view('output/url', array(
'href' => $poster->getURL(),
'text' => $poster->name,
+ 'is_trusted' => true,
));
$poster_text = elgg_echo('groups:started', array($poster->name));
$tags = elgg_view('output/tags', array('tags' => $topic->tags));
$date = elgg_view_friendly_time($topic->time_created);
-$comments_link = '';
-$comments_text = '';
-$num_comments = $topic->countComments();
-if ($num_comments != 0) {
- $last_comment = $topic->getAnnotations("generic_comment", 1, 0, "desc");
- $commenter = $last_comment[0]->getOwnerEntity();
- $comment_time = elgg_view_friendly_time($last_comment[0]->time_created);
- $comments_text = elgg_echo('groups:updated', array($commenter->name, $comment_time));
+$replies_link = '';
+$reply_text = '';
+$num_replies = elgg_get_annotations(array(
+ 'annotation_name' => 'group_topic_post',
+ 'guid' => $topic->getGUID(),
+ 'count' => true,
+));
+if ($num_replies != 0) {
+ $last_reply = $topic->getAnnotations('group_topic_post', 1, 0, 'desc');
+ $poster = $last_reply[0]->getOwnerEntity();
+ $reply_time = elgg_view_friendly_time($last_reply[0]->time_created);
+ $reply_text = elgg_echo('groups:updated', array($poster->name, $reply_time));
- $comments_link = elgg_view('output/url', array(
- 'href' => $topic->getURL() . '#topic-comments',
- 'text' => elgg_echo("comments") . " ($num_comments)",
+ $replies_link = elgg_view('output/url', array(
+ 'href' => $topic->getURL() . '#group-replies',
+ 'text' => elgg_echo('group:replies') . " ($num_replies)",
+ 'is_trusted' => true,
));
}
-$metadata = elgg_view('navigation/menu/metadata', array(
- 'entity' => $topic,
+$metadata = elgg_view_menu('entity', array(
+ 'entity' => $vars['entity'],
'handler' => 'discussion',
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
));
// do not show the metadata and controls in widget view
@@ -52,27 +60,32 @@ if (elgg_in_context('widgets')) {
}
if ($full) {
- $subtitle = "$poster_text $date $comments_link";
+ $subtitle = "$poster_text $date $replies_link";
$params = array(
'entity' => $topic,
- 'title' => false,
'metadata' => $metadata,
'subtitle' => $subtitle,
'tags' => $tags,
);
- $list_body = elgg_view('page/components/list/body', $params);
+ $params = $params + $vars;
+ $list_body = elgg_view('object/elements/summary', $params);
$info = elgg_view_image_block($poster_icon, $list_body);
+
+ $body = elgg_view('output/longtext', array(
+ 'value' => $topic->description,
+ 'class' => 'clearfix',
+ ));
+
echo <<<HTML
-$header
$info
$body
HTML;
} else {
// brief view
- $subtitle = "$poster_text $date $comments_link <span class=\"groups-latest-comment\">$comments_text</span>";
+ $subtitle = "$poster_text $date $replies_link <span class=\"groups-latest-reply\">$reply_text</span>";
$params = array(
'entity' => $topic,
@@ -81,7 +94,8 @@ HTML;
'tags' => $tags,
'content' => $excerpt,
);
- $list_body = elgg_view('page/components/list/body', $params);
+ $params = $params + $vars;
+ $list_body = elgg_view('object/elements/summary', $params);
echo elgg_view_image_block($poster_icon, $list_body);
}
diff --git a/mod/groups/views/default/plugins/groups/settings.php b/mod/groups/views/default/plugins/groups/settings.php
new file mode 100644
index 000000000..41ea146db
--- /dev/null
+++ b/mod/groups/views/default/plugins/groups/settings.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Groups plugin settings
+ */
+
+// set default value
+if (!isset($vars['entity']->hidden_groups)) {
+ $vars['entity']->hidden_groups = 'no';
+}
+
+// set default value
+if (!isset($vars['entity']->limited_groups)) {
+ $vars['entity']->limited_groups = 'no';
+}
+
+echo '<div>';
+echo elgg_echo('groups:allowhiddengroups');
+echo ' ';
+echo elgg_view('input/dropdown', array(
+ 'name' => 'params[hidden_groups]',
+ 'options_values' => array(
+ 'no' => elgg_echo('option:no'),
+ 'yes' => elgg_echo('option:yes')
+ ),
+ 'value' => $vars['entity']->hidden_groups,
+));
+echo '</div>';
+
+echo '<div>';
+echo elgg_echo('groups:whocancreate');
+echo ' ';
+echo elgg_view('input/dropdown', array(
+ 'name' => 'params[limited_groups]',
+ 'options_values' => array(
+ 'no' => elgg_echo('LOGGED_IN'),
+ 'yes' => elgg_echo('admin')
+ ),
+ 'value' => $vars['entity']->limited_groups,
+));
+echo '</div>';
diff --git a/mod/groups/views/default/river/annotation/group_topic_post/reply.php b/mod/groups/views/default/river/annotation/group_topic_post/reply.php
new file mode 100644
index 000000000..afc823bde
--- /dev/null
+++ b/mod/groups/views/default/river/annotation/group_topic_post/reply.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Reply river view
+ */
+$object = $vars['item']->getObjectEntity();
+$reply = $vars['item']->getAnnotation();
+$excerpt = elgg_get_excerpt($reply->value);
+
+echo elgg_view('river/elements/layout', array(
+ 'item' => $vars['item'],
+ 'message' => $excerpt,
+)); \ No newline at end of file
diff --git a/mod/groups/views/default/river/group/create.php b/mod/groups/views/default/river/group/create.php
index a70f8b51d..ea42b5b00 100644
--- a/mod/groups/views/default/river/group/create.php
+++ b/mod/groups/views/default/river/group/create.php
@@ -7,19 +7,7 @@ $object = $vars['item']->getObjectEntity();
$excerpt = strip_tags($object->description);
$excerpt = elgg_get_excerpt($excerpt);
-$params = array(
- 'href' => $object->getURL(),
- 'text' => $object->name,
-);
-$link = elgg_view('output/url', $params);
-
-
-echo elgg_echo('groups:river:create');
-
-echo " $link";
-
-if ($excerpt) {
- echo '<div class="elgg-river-content">';
- echo $excerpt;
- echo '</div>';
-}
+echo elgg_view('river/elements/layout', array(
+ 'item' => $vars['item'],
+ 'message' => $excerpt,
+)); \ No newline at end of file
diff --git a/mod/groups/views/default/river/object/groupforumtopic/create.php b/mod/groups/views/default/river/object/groupforumtopic/create.php
index 1ca871b58..e7d92bc08 100644
--- a/mod/groups/views/default/river/object/groupforumtopic/create.php
+++ b/mod/groups/views/default/river/object/groupforumtopic/create.php
@@ -7,29 +7,16 @@ $object = $vars['item']->getObjectEntity();
$excerpt = strip_tags($object->description);
$excerpt = elgg_get_excerpt($excerpt);
-$params = array(
- 'href' => $object->getURL(),
- 'text' => $object->title,
-);
-$link = elgg_view('output/url', $params);
-
-$group_string = '';
-$container = $object->getContainerEntity();
-if ($container instanceof ElggGroup) {
- $params = array(
- 'href' => $container->getURL(),
- 'text' => $container->name,
- );
- $group_link = elgg_view('output/url', $params);
- $group_string = elgg_echo('river:ingroup', array($group_link));
+$responses = '';
+if (elgg_is_logged_in() && $object->canAnnotate(0, 'group_topic_post')) {
+ // inline comment form
+ $form_vars = array('id' => "groups-reply-{$object->getGUID()}", 'class' => 'hidden');
+ $body_vars = array('entity' => $object, 'inline' => true);
+ $responses = elgg_view_form('discussion/reply/save', $form_vars, $body_vars);
}
-echo elgg_echo('forumtopic:river:create');
-
-echo " $link $group_string";
-
-if ($excerpt) {
- echo '<div class="elgg-river-content">';
- echo $excerpt;
- echo '</div>';
-}
+echo elgg_view('river/elements/layout', array(
+ 'item' => $vars['item'],
+ 'message' => $excerpt,
+ 'responses' => $responses,
+));
diff --git a/mod/groups/views/default/river/relationship/member/create.php b/mod/groups/views/default/river/relationship/member/create.php
index 5123964c3..0afd87e4b 100644
--- a/mod/groups/views/default/river/relationship/member/create.php
+++ b/mod/groups/views/default/river/relationship/member/create.php
@@ -3,15 +3,6 @@
* Group join river view.
*/
-$object = $vars['item']->getObjectEntity();
-
-$params = array(
- 'href' => $object->getURL(),
- 'text' => $object->name,
-);
-$link = elgg_view('output/url', $params);
-
-
-echo elgg_echo('groups:river:join');
-
-echo " $link";
+echo elgg_view('river/elements/layout', array(
+ 'item' => $vars['item'],
+));
diff --git a/mod/groups/views/default/settings/groups/edit.php b/mod/groups/views/default/settings/groups/edit.php
deleted file mode 100644
index 1cf6be466..000000000
--- a/mod/groups/views/default/settings/groups/edit.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Groups plugin settings
- */
-
-// set default value
-if (!isset($vars['entity']->hidden_groups)) {
- $vars['entity']->hidden_groups = 'no';
-}
-
-echo '<p>';
-echo elgg_echo('groups:allowhiddengroups');
-echo ' ';
-echo elgg_view('input/dropdown', array(
- 'name' => 'params[hidden_groups]',
- 'options_values' => array(
- 'no' => elgg_echo('option:no'),
- 'yes' => elgg_echo('option:yes')
- ),
- 'value' => $vars['entity']->hidden_groups,
-));
-echo '</p>';
diff --git a/mod/groups/views/default/widgets/a_users_groups/content.php b/mod/groups/views/default/widgets/a_users_groups/content.php
index c15e4507e..fe1a46e39 100644
--- a/mod/groups/views/default/widgets/a_users_groups/content.php
+++ b/mod/groups/views/default/widgets/a_users_groups/content.php
@@ -21,10 +21,11 @@ $content = elgg_list_entities_from_relationship($options);
echo $content;
if ($content) {
- $url = "pg/group/member/" . elgg_get_page_owner_entity()->username;
+ $url = "groups/member/" . elgg_get_page_owner_entity()->username;
$more_link = elgg_view('output/url', array(
'href' => $url,
'text' => elgg_echo('groups:more'),
+ 'is_trusted' => true,
));
echo "<span class=\"elgg-widget-more\">$more_link</span>";
} else {
diff --git a/mod/groups/views/rss/annotation/group_topic_post.php b/mod/groups/views/rss/annotation/group_topic_post.php
new file mode 100644
index 000000000..0d3a40117
--- /dev/null
+++ b/mod/groups/views/rss/annotation/group_topic_post.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * RSS view for a discussion reply
+ *
+ * @uses $vars['annotation']
+ */
+
+$annotation = $vars['annotation'];
+
+$poster = $annotation->getOwnerEntity();
+$poster_name = htmlspecialchars($poster->name, ENT_NOQUOTES, 'UTF-8');
+$pubdate = date('r', $annotation->getTimeCreated());
+$permalink = $annotation->getURL();
+
+$title = elgg_echo('discussion:reply:title', array($poster_name));
+
+$creator = elgg_view('page/components/creator', array('entity' => $annotation));
+$extensions = elgg_view('extensions/item', $vars);
+
+$item = <<<__HTML
+<item>
+ <guid isPermaLink='true'>$permalink</guid>
+ <pubDate>$pubdate</pubDate>
+ <link>$permalink</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[{$vars['annotation']->value}]]></description>
+ $creator$extensions
+</item>
+
+__HTML;
+
+echo $item;
diff --git a/mod/groups/views/rss/discussion/replies.php b/mod/groups/views/rss/discussion/replies.php
new file mode 100644
index 000000000..419003b21
--- /dev/null
+++ b/mod/groups/views/rss/discussion/replies.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * List replies RSS view
+ *
+ * @uses $vars['entity'] ElggEntity
+ */
+
+$options = array(
+ 'guid' => $vars['entity']->getGUID(),
+ 'annotation_name' => 'group_topic_post',
+);
+echo elgg_list_annotations($options);
diff --git a/mod/groups/views/rss/forum/topicposts.php b/mod/groups/views/rss/forum/topicposts.php
deleted file mode 100644
index 15c5adc7f..000000000
--- a/mod/groups/views/rss/forum/topicposts.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-?> \ No newline at end of file
diff --git a/mod/groups/views/rss/forum/topics.php b/mod/groups/views/rss/forum/topics.php
deleted file mode 100644
index 1cb22aaea..000000000
--- a/mod/groups/views/rss/forum/topics.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
- /**
- * Elgg groups plugin
- *
- * @package ElggGroups
- */
-
- // If there are any topics to view, view them
- echo $vars['topics'];
-?> \ No newline at end of file
diff --git a/mod/groups/views/rss/forum/viewposts.php b/mod/groups/views/rss/forum/viewposts.php
deleted file mode 100644
index ad52365e6..000000000
--- a/mod/groups/views/rss/forum/viewposts.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
- /**
- * Elgg groups plugin display topic posts
- *
- * @package ElggGroups
- */
-
- //display follow up comments
- $count = $vars['entity']->countAnnotations('group_topic_post');
- $offset = (int) get_input('offset',0);
-
- foreach($vars['entity']->getAnnotations('group_topic_post', 50, $offset, "asc") as $post) {
-
- $post->title = '';
- $post->description = $post->value;
- echo elgg_view('object/default', array('entity' => $post));
- // echo elgg_view("forum/topicposts",array('entity' => $post));
-
- }
-
-?> \ No newline at end of file
diff --git a/mod/groups/views/rss/groups/contentwrapper.php b/mod/groups/views/rss/groups/contentwrapper.php
deleted file mode 100644
index 15397d552..000000000
--- a/mod/groups/views/rss/groups/contentwrapper.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
- echo $vars['body'];
-
-?> \ No newline at end of file
diff --git a/mod/groups/views/rss/groups/profile/layout.php b/mod/groups/views/rss/groups/profile/layout.php
new file mode 100644
index 000000000..0dafe78ad
--- /dev/null
+++ b/mod/groups/views/rss/groups/profile/layout.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Group profile RSS view
+ *
+ * Displays a list of the latest content in the group
+ *
+ * @uses $vars['entity'] ElggGroup object
+ */
+
+$entities = elgg_get_config('registered_entities');
+
+if (!empty($entities['object'])) {
+ echo elgg_list_entities(array(
+ 'type' => 'object',
+ 'subtypes' => $entities['object'],
+ 'container_guid' => $vars['entity']->getGUID(),
+ ));
+}
diff --git a/mod/groups/views/rss/groups/profileitems.php b/mod/groups/views/rss/groups/profileitems.php
deleted file mode 100644
index 5e595a379..000000000
--- a/mod/groups/views/rss/groups/profileitems.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
- /**
- * Elgg groups items view.
- * This is the messageboard, members, pages and latest forums posts. Each plugin will extend the views
- *
- * @package ElggGroups
- */
-
- //right column
- if ($forae = elgg_get_entities(array('types' => 'object', 'container_guid' => $vars['entity']->guid))) {
- foreach($forae as $forum)
- echo elgg_view_entity($forum);
- }
-
-?> \ No newline at end of file
diff --git a/mod/groups/views/rss/object/groupforumtopic.php b/mod/groups/views/rss/object/groupforumtopic.php
index 19297b350..b2d05d488 100644
--- a/mod/groups/views/rss/object/groupforumtopic.php
+++ b/mod/groups/views/rss/object/groupforumtopic.php
@@ -1,32 +1,35 @@
<?php
/**
- * Elgg groupforumtopic view
+ * Elgg groupforumtopic RSS view
*
- * @package Elgg
- * @subpackage Core
+ * @package ElggGroups
*/
$title = $vars['entity']->title;
-
-$body = '';
-$annotation = $vars['entity']->getAnnotations('group_topic_post', 1, 0, "asc");
-if (count($annotation == 1)) {
- $body = $annotation[0]->value;
+if (empty($title)) {
+ $title = strip_tags($vars['entity']->description);
+ $title = elgg_get_excerpt($title, 32);
}
-?>
+$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8');
+$pubdate = date('r', $vars['entity']->getTimeCreated());
+
+$description = elgg_autop($vars['entity']->description);
+
+$creator = elgg_view('page/components/creator', $vars);
+$georss = elgg_view('page/components/georss', $vars);
+$extension = elgg_view('extensions/item', $vars);
+
+$item = <<<__HTML
<item>
-<guid isPermaLink='true'><?php echo htmlspecialchars($vars['entity']->getURL()); ?></guid>
-<pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate>
-<link><?php echo htmlspecialchars($vars['entity']->getURL()); ?></link>
-<title><![CDATA[<?php echo $title; ?>]]></title>
-<description><![CDATA[<?php echo (autop($body)); ?>]]></description>
-<?php
- $owner = $vars['entity']->getOwnerEntity();
- if ($owner) {
-?>
-<dc:creator><?php echo $owner->name; ?></dc:creator>
-<?php
- }
-?>
-</item> \ No newline at end of file
+ <guid isPermaLink="true">$permalink</guid>
+ <pubDate>$pubdate</pubDate>
+ <link>$permalink</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[$description]]></description>
+ $creator$georss$extension
+</item>
+
+__HTML;
+
+echo $item;