]> git.mxchange.org Git - friendica.git/commitdiff
group select on network page
authorMike Macgirvin <mike@macgirvin.com>
Sun, 25 Jul 2010 23:27:22 +0000 (16:27 -0700)
committerMike Macgirvin <mike@macgirvin.com>
Sun, 25 Jul 2010 23:27:22 +0000 (16:27 -0700)
include/group.php
mod/network.php

index f2e3d18203b570266cc70edaaba32f7350d65942..bca369cd1aaaab9c4aa116256e4362009499f283 100644 (file)
@@ -121,7 +121,7 @@ function group_get_members($gid) {
 
 
 
-function group_side() {
+function group_side($every="contacts",$each="group") {
 
        if(! local_user())
                return;
@@ -136,7 +136,7 @@ $o .= <<< EOT
 
 <div id="sidebar-group-list">
        <ul id="sidebar-group-ul">
-       <li class="sidebar-group-li" ><a href="contacts">Everybody</a></li>
+       <li class="sidebar-group-li" ><a href="$every">Everybody</a></li>
 
 EOT;
 
@@ -145,7 +145,7 @@ EOT;
        );
        if(count($r)) {
                foreach($r as $rr)
-                       $o .= " <li class=\"sidebar-group-li\"><a href=\"group/{$rr['id']}\">{$rr['name']}</a></li>\r\n";
+                       $o .= " <li class=\"sidebar-group-li\"><a href=\"$each/{$rr['id']}\">{$rr['name']}</a></li>\r\n";
        }
        $o .= " </ul>\r\n       </div>\r\n</div>";      
 
index 0807f95614c1239342582d613ad11406534b18e7..262ecc20bc4964163b39ac56b20257b2adba391a 100644 (file)
@@ -2,7 +2,8 @@
 
 
 function network_init(&$a) {
-
+       require_once('include/group.php');
+       $a->page['aside'] .= group_side('network','network');
 }
 
 
@@ -15,9 +16,12 @@ function network_content(&$a, $update = false) {
 
        $contact_id = $a->cid;
 
+       $group = 0;
 
        if(! $update) {
-
+                       // pull out the group here because the updater might have different args
+               if($a->argc > 1)
+                       $group = intval($a->argv[1]);
 
                $tpl = file_get_contents('view/jot-header.tpl');
        
@@ -37,18 +41,52 @@ function network_content(&$a, $update = false) {
                ));
 
 
-               $o .= '<div id="live-network"></div>' . "\r\n";
+               // The special div is needed for liveUpdate to kick in for this page.
+               // We only launch liveUpdate if you are on the front page, you aren't
+               // filtering by group and also you aren't writing a comment (the last
+               // criteria is discovered in javascript).
+
+               if($a->pager['start'] == 0 && $a->argc == 1)
+                       $o .= '<div id="live-network"></div>' . "\r\n";
        }
 
+       // We aren't going to try and figure out at the item, group, and page level 
+       // which items you've seen and which you haven't. You're looking at some
+       // subset of items, so just mark everything seen. 
+       
        $r = q("UPDATE `item` SET `unseen` = 0 
                WHERE `unseen` = 1 AND `uid` = %d",
                intval($_SESSION['uid'])
        );
 
+       // We don't have to deal with ACL's on this page. You're looking at everything
+       // that belongs to you, hence you can see all of it. We will filter by group if
+       // desired. 
 
+       // TODO: Perhaps we should limit the group filter to those with the group in the ACL,
+       // rather than just the contact-id of the post.
+       // Otherwise we're not showing complete conversations, unless all the conversants
+       // happen to be in the group.
 
        $sql_extra = ''; 
 
+       if($group) {
+               $r = q("SELECT `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+                       intval($group),
+                       intval($_SESSION['uid'])
+               );
+               if(! count($r)) {
+                       notice("No such group");
+                       goaway($a->get_baseurl() . '/network');
+                       return; // NOTREACHED
+               }
+
+               $contacts = expand_groups(array($group));
+               $contacts[] = $_SESSION['cid'];
+               $contact_str = implode(',',$contacts);
+               $sql_extra = dbesc(" AND `contact`.`id` IN ( $contact_str ) ");
+
+       }
 
        $r = q("SELECT COUNT(*) AS `total`
                FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`