]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
cleaned up the group profile
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 7 Jan 2011 02:50:45 +0000 (02:50 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 7 Jan 2011 02:50:45 +0000 (02:50 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@7853 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/groups/groupprofile.php
mod/groups/views/default/groups/closedmembership.php [deleted file]
mod/groups/views/default/groups/forum_latest.php [deleted file]
mod/groups/views/default/groups/groupprofile.php [deleted file]
mod/groups/views/default/groups/profile/activity_widget.php [moved from mod/groups/views/default/groups/activity_latest.php with 100% similarity]
mod/groups/views/default/groups/profile/buttons.php [new file with mode: 0644]
mod/groups/views/default/groups/profile/closed_membership.php [new file with mode: 0644]
mod/groups/views/default/groups/profile/forum_widget.php [new file with mode: 0644]
mod/groups/views/default/groups/profile/profile_block.php [new file with mode: 0644]
mod/groups/views/default/groups/profile/widgets.php [moved from mod/groups/views/default/groups/profileitems.php with 56% similarity]
mod/groups/views/default/groups/sidebar/members.php [moved from mod/groups/views/default/groups/members.php with 100% similarity]

index 43473e26122a168a81f6d23180f0924661b50e8a..1c35163ad41cb2f6dfdc29a267d701e9a6c3f582 100644 (file)
@@ -1,56 +1,43 @@
 <?php
-       /**
-        * Full group profile
-        * 
-        * @package ElggGroups
-        */
-
-       $group_guid = get_input('group_guid');
-       elgg_set_context('groups');
-       
-       global $autofeed;
-       $autofeed = true;
-       
-       $group = get_entity($group_guid);
-       if ($group) {
-               set_page_owner($group_guid);
-               
-               $title = $group->name;
-               
-               // Hide some items from closed groups when the user is not logged in.
-               $view_all = true;
-               
-               $groupaccess = group_gatekeeper(false);
-               if (!$groupaccess)
-                       $view_all = false;
-               
-               $area2 .= elgg_view_entity($group, TRUE);
-               
-               if ($view_all) {
-                       //group profile 'items' - these are not real widgets, just contents to display
-                       $area2 .= elgg_view('groups/profileitems',array('entity' => $group));
-                       
-                       //group members
-                       $area3 = elgg_view('groups/members',array('entity' => $group));
-               } else {
-                       $area2 .= elgg_view('groups/closedmembership', array('entity' => $group, 'user' => get_loggedin_user(), 'full' => true));
-               }
-
-               $content = $area1 . $area2;
-               $params = array(
-                       'content' => $content,
-                       'sidebar' => $area3
-               );
-               $body = elgg_view_layout('one_column_with_sidebar', $params);
-       } else {
-               $title = elgg_echo('groups:notfound');
-               
-               $area2 = elgg_view_title($title);
-               $area2 .= "<p class='margin-top'>".elgg_echo('groups:notfound:details')."</p>";
-               
-               $body = elgg_view_layout('one_column_with_sidebar', array('content' => $area2));
-       }
-               
-       // Finally draw the page
-       echo elgg_view_page($title, $body);
-?>
\ No newline at end of file
+/**
+ * Profile of a group
+ * 
+ * @package ElggGroups
+ */
+
+$guid = get_input('group_guid');
+elgg_set_context('groups');
+
+elgg_set_page_owner_guid($guid);
+
+// can the user see all content
+$group_access = group_gatekeeper(false);
+
+// turn this into a core function
+global $autofeed;
+$autofeed = true;
+
+$group = get_entity($guid);
+
+elgg_push_breadcrumb(elgg_echo('groups:all'), elgg_get_site_url() . "pg/groups/world");
+elgg_push_breadcrumb($group->name);
+
+$sidebar = '';
+$content = elgg_view('groups/profile/profile_block', array('entity' => $group));
+if (group_gatekeeper(false)) {
+       $content .= elgg_view('groups/profile/widgets', array('entity' => $group));
+       $sidebar = elgg_view('groups/sidebar/members', array('entity' => $group));
+} else {
+       $content .= elgg_view('groups/profile/closed_membership');
+}
+
+$params = array(
+       'content' => $content,
+       'sidebar' => $sidebar,
+       'title' => $group->name,
+       'buttons' => elgg_view('groups/profile/buttons', array('entity' => $group)),
+       'filter' => '',
+);
+$body = elgg_view_layout('content', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/mod/groups/views/default/groups/closedmembership.php b/mod/groups/views/default/groups/closedmembership.php
deleted file mode 100644 (file)
index d5abe1e..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-       /**
-        * Elgg groups plugin full profile view (for a closed group you haven't joined).
-        * 
-        * @package ElggGroups
-        */
-
-?>
-<p class="margin-top">
-<?php 
-echo elgg_echo('groups:closedgroup');
-if (isloggedin()) {
-       echo ' ' . elgg_echo('groups:closedgroup:request');
-}
-?>
-</p>
diff --git a/mod/groups/views/default/groups/forum_latest.php b/mod/groups/views/default/groups/forum_latest.php
deleted file mode 100644 (file)
index 9b6f292..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-// Latest forum discussion for the group home page
-
-//check to make sure this group forum has been activated
-if($vars['entity']->forum_enable != 'no'){
-?>
-<span class="group_widget_link"><a href="<?php echo elgg_get_site_url() . "pg/groups/forum/" . elgg_get_page_owner_guid(); ?>"><?php echo elgg_echo('link:view:all')?></a></span>
-<h3><?php echo elgg_echo('groups:latestdiscussion'); ?></h3>
-<?php
-       
-    $forum = elgg_get_entities(array('types' => 'object', 'subtypes' => 'groupforumtopic', 'container_guid' => $vars['entity']->guid, 'limit' => 6));
-       
-    if($forum){
-        foreach($forum as $f){
-                   
-                $count_annotations = $f->countAnnotations("generic_comment");
-                 
-                   echo "<div class='entity-listing clearfix'>";
-                   echo "<div class='entity-listing-icon'>" . elgg_view('profile/icon',array('entity' => $f->getOwnerEntity(), 'size' => 'tiny')) . "</div>";
-               echo "<div class='entity-listing-info'><p class='entity-title'><a href=\"".elgg_get_site_url()."mod/groups/topicposts.php?topic={$f->guid}&group_guid={$vars['entity']->guid}\">" . $f->title . "</a></p>";
-               echo "<p class='entity-subtext'>".elgg_echo('comments').": " . $count_annotations . "</p></div>";
-               echo "</div>";
-        }
-    } else {
-           if(elgg_get_page_owner()->isMember(get_loggedin_user())){
-                       $create_discussion = elgg_get_site_url() . "mod/groups/addtopic.php?group_guid=" . elgg_get_page_owner_guid();
-                       echo "<p class='margin-top'><a href=\"{$create_discussion}\">".elgg_echo("groups:addtopic")."</a></p>";
-               }else{
-                       echo "<p class='margin-top'>". elgg_echo("grouptopic:notcreated") . "</p>";
-               }
-    }
-
-}//end of forum active check
\ No newline at end of file
diff --git a/mod/groups/views/default/groups/groupprofile.php b/mod/groups/views/default/groups/groupprofile.php
deleted file mode 100644 (file)
index a21985b..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-/**
- * Elgg groups plugin full profile view.
- *
- * @package ElggGroups
- */
-
-
-$user = get_loggedin_user();
-elgg_push_breadcrumb(elgg_echo('groups:all'), elgg_get_site_url()."pg/groups/world");
-
-// action or page url => label
-$actions = array();
-
-if ($vars['entity']->canEdit()) {
-       // breadcrumb trail
-       elgg_push_breadcrumb(elgg_echo('groups:yours'), elgg_get_site_url()."pg/groups/member/{$user->username}");
-       
-       // edit and invite
-       $url = elgg_get_site_url() . "mod/groups/edit.php?group_guid={$vars['entity']->getGUID()}";
-       $actions[$url] = elgg_echo('groups:edit');
-       $url = elgg_get_site_url() . "mod/groups/invite.php?group_guid={$vars['entity']->getGUID()}";
-       $actions[$url] = elgg_echo('groups:invite');
-} 
-
-if ($vars['entity']->isMember($user)) {
-       // breadcrumb trail
-       elgg_push_breadcrumb(elgg_echo('groups:yours'), elgg_get_site_url()."pg/groups/member/{$user->username}");
-       
-       // 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');
-       }
-}
-
-
-// build action buttons
-$action_buttons = '';
-if (!empty($actions)) {
-       $action_buttons = '<div class="content-header-options">';
-       foreach ($actions as $url => $action) {
-               $action_buttons .= "<a class=\"elgg-action-button\" href=\"$url\">$action</a>";
-       }
-       $action_buttons .= '</div>';
-}
-
-// display breadcrumb
-elgg_push_breadcrumb($vars['entity']->name);
-echo elgg_view('navigation/breadcrumbs');
-
-// build and display header
-echo <<<__HTML
-<div id="content-header" class="clearfix">
-       <div class="content-header-title">
-               <h2>{$vars['entity']->name}</h2>
-       </div>
-       $action_buttons
-</div>
-__HTML;
-
-?>
-<div class="group_profile clearfix">
-       <div class="group_profile_column icon">
-               <div class="group_profile_icon">
-               <?php
-               echo elgg_view(
-                       "groups/icon", array(
-                       'entity' => $vars['entity'],
-                       'size' => 'large',
-                       ));
-               ?>
-               </div>
-
-               <div class="group_stats">
-                       <?php
-                               echo "<p><b>" . elgg_echo("groups:owner") . ": </b><a href=\"" . get_user($vars['entity']->owner_guid)->getURL() . "\">" . get_user($vars['entity']->owner_guid)->name . "</a></p>";
-                       ?>
-                       <p><?php
-                               $count = $vars['entity']->getMembers(0, 0, TRUE);
-                               echo elgg_echo('groups:members') . ": " . $count;
-
-                       ?></p>
-               </div>
-       </div>
-
-       <div class="group_profile_column info">
-               <?php
-                       if ($vars['full'] == true) {
-                               if (is_array($vars['config']->group) && sizeof($vars['config']->group) > 0){
-
-                                       foreach($vars['config']->group as $shortname => $valtype) {
-                                               if ($shortname != "name") {
-                                                       $value = $vars['entity']->$shortname;
-
-                                                       if (!empty($value)) {
-                                                               //This function controls the alternating class
-                                                               $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
-                                                       }
-
-                                                       echo "<p class=\"{$even_odd}\">";
-                                                       echo "<b>";
-                                                       echo elgg_echo("groups:{$shortname}");
-                                                       echo ": </b>";
-
-                                                       $options = array(
-                                                               'value' => $vars['entity']->$shortname
-                                                       );
-
-                                                       if ($valtype == 'tags') {
-                                                               $options['tag_names'] = $shortname;
-                                                       }
-
-                                                       echo elgg_view("output/{$valtype}", $options);
-
-                                                       echo "</p>";
-                                               }
-                                       }
-                               }
-                       }
-               ?>
-       </div>
-</div>
diff --git a/mod/groups/views/default/groups/profile/buttons.php b/mod/groups/views/default/groups/profile/buttons.php
new file mode 100644 (file)
index 0000000..68cd259
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Content header action buttons
+ *
+ * @uses $vars['entity']
+ */
+
+if (!isloggedin()) {
+       return true;
+}
+
+
+$actions = array();
+
+// group owners
+if ($vars['entity']->canEdit()) {
+       // edit and invite
+       $url = elgg_get_site_url() . "mod/groups/edit.php?group_guid={$vars['entity']->getGUID()}";
+       $actions[$url] = elgg_echo('groups:edit');
+       $url = elgg_get_site_url() . "mod/groups/invite.php?group_guid={$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-action-button',
+               ));
+       }
+}
diff --git a/mod/groups/views/default/groups/profile/closed_membership.php b/mod/groups/views/default/groups/profile/closed_membership.php
new file mode 100644 (file)
index 0000000..f801037
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Display message about closed membership
+ * 
+ * @package ElggGroups
+ */
+
+?>
+<p class="mtm">
+<?php 
+echo elgg_echo('groups:closedgroup');
+if (isloggedin()) {
+       echo ' ' . elgg_echo('groups:closedgroup:request');
+}
+?>
+</p>
diff --git a/mod/groups/views/default/groups/profile/forum_widget.php b/mod/groups/views/default/groups/profile/forum_widget.php
new file mode 100644 (file)
index 0000000..265926f
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Latest forum posts
+ *
+ * @uses $vars['entity']
+ */
+
+if ($vars['entity']->forum_enable == 'no') {
+       return true;
+}
+
+$group = $vars['entity'];
+
+
+$all_link = elgg_view('output/url', array(
+       'href' => "pg/groups/forum/$group->guid",
+       'text' => elgg_echo('link:view:all'),
+));
+
+$header = "<span class=\"group-widget-viewall\">$all_link</span>";
+$header .= '<h3>' . elgg_echo('groups:latestdiscussion') . '</h3>';
+
+
+elgg_push_context('widgets');
+$options = array(
+       'type' => 'object',
+       'subtype' => 'groupforumtopic',
+       'container_guid' => $group->getGUID(),
+       'limit' => 6,
+       'full_view' => false,
+       'pagination' => false,
+);
+$content = elgg_list_entities($options);
+elgg_pop_context();
+
+if (!$content) {
+       $content = '<p>' . elgg_echo('grouptopic:notcreated') . '</p>';
+}
+
+$new_link = elgg_view('output/url', array(
+       'href' => "mod/groups/addtopic.php?group_guid=" . $group->getGUID(),
+       'text' => elgg_echo('groups:addtopic'),
+));
+$content .= "<span class='elgg-widget-more'>$new_link</span>";
+
+
+$params = array(
+       'header' => $header,
+       'body' => $content,
+);
+echo elgg_view('layout/objects/module', $params);
diff --git a/mod/groups/views/default/groups/profile/profile_block.php b/mod/groups/views/default/groups/profile/profile_block.php
new file mode 100644 (file)
index 0000000..98595ad
--- /dev/null
@@ -0,0 +1,82 @@
+<?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">
+       <div class="group_profile_column icon">
+               <div class="group_profile_icon">
+               <?php
+                       echo elgg_view('groups/icon', array(
+                               'entity' => $group,
+                               'size' => 'large',
+                       ));
+               ?>
+               </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 info">
+<?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>
similarity index 56%
rename from mod/groups/views/default/groups/profileitems.php
rename to mod/groups/views/default/groups/profile/widgets.php
index 6f5fa32ce9ec7c8b5588b32b182f9611bdc27bf5..af558c90db5bdc143a9d07953b0219a8cc42332d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
-* Elgg groups - group homepage (profile) - provide an area for tools to extend with their latest content.
+* Profile widgets/tools
 * 
 * @package ElggGroups
 */ 
@@ -10,16 +10,16 @@ echo "<div id='group_tools_latest' class='clearfix'>";
 
        // activity latest 
        echo "<div class='group_tool_widget activity clearfix'>";
-       echo elgg_view("groups/activity_latest",array('entity' => $vars['entity']));
+       echo elgg_view("groups/profile/activity_widget", array('entity' => $vars['entity']));
        echo "</div>";
         
        // forum latest
-       echo "<div class='group_tool_widget forum clearfix'>";
-       echo elgg_view("groups/forum_latest",array('entity' => $vars['entity']));
-       echo "</div>";
+       //echo "<div class='group_tool_widget forum clearfix'>";
+       echo elgg_view("groups/profile/forum_widget", array('entity' => $vars['entity']));
+       //echo "</div>";
        
        // enable tools to extend this area
-       echo elgg_view("groups/tool_latest",array('entity' => $vars['entity']));
+       echo elgg_view("groups/tool_latest", array('entity' => $vars['entity']));
 
 echo "</div>";          
 ?>