]> git.mxchange.org Git - friendica.git/commitdiff
bug #369 - show contacts who are not in any groups
authorfriendica <info@friendica.com>
Fri, 13 Apr 2012 06:06:41 +0000 (23:06 -0700)
committerfriendica <info@friendica.com>
Fri, 13 Apr 2012 06:06:41 +0000 (23:06 -0700)
include/Contact.php
include/group.php
mod/nogroup.php [new file with mode: 0644]
view/group_side.tpl
view/nogroup-template.tpl [new file with mode: 0644]

index 8d893cf70e7b6e0204fb3b0d792b1f82dab80b49..657977801a0d8800e51cc951be6389d850c6d19e 100644 (file)
@@ -176,12 +176,26 @@ function random_profile() {
 }
 
 
-function contacts_not_grouped($uid) {
-       $r = q("select * from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ",
+function contacts_not_grouped($uid,$start = 0,$count = 0) {
+dbg(1);
+       if(! $count) {
+               $r = q("select count(*) as total from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ",
+                       intval($uid),
+                       intval($uid)
+               );
+dbg(0);
+               return $r;
+
+
+       }
+dbg(1);
+       $r = q("select * from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) limit %d, %d",
+               intval($uid),
                intval($uid),
-               intval($uid)
+               intval($start),
+               intval($count)
        );
-
+dbg(0);
        return $r;
 }
 
index 4a35912e5d288d126770ffe9dbee351e4a7fc71e..edb547de6d8f00ea31561efebf63c7a3b84dbf4c 100644 (file)
@@ -212,6 +212,7 @@ function group_side($every="contacts",$each="group",$edit = false, $group_id = 0
                '$title'                => t('Groups'),
                '$edittext'     => t('Edit group'),
                '$createtext'   => t('Create a new group'),
+               '$ungrouped'    => (($every === 'contacts') ? t('Contacts not in any group') : ''),
                '$groups'               => $groups,
                '$add'                  => t('add'),
        ));
diff --git a/mod/nogroup.php b/mod/nogroup.php
new file mode 100644 (file)
index 0000000..bd1ec82
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+require_once('include/Contact.php');
+require_once('include/socgraph.php');
+require_once('include/contact_selectors.php');
+
+function nogroup_init(&$a) {
+
+       if(! local_user())
+               return;
+
+       require_once('include/group.php');
+       require_once('include/contact_widgets.php');
+
+       if(! x($a->page,'aside'))
+               $a->page['aside'] = '';
+
+       $a->page['aside'] .= group_side('contacts','group',false,0,$contact_id);
+}
+
+
+function nogroup_content(&$a) {
+
+       if(! local_user()) {
+               notice( t('Permission denied.') . EOL);
+               return '';
+       }
+
+       require_once('include/Contact.php');
+       $r = contacts_not_grouped(local_user());
+       if(count($r)) {
+               $a->set_pager_total($r[0]['total']);
+       }
+       $r = contacts_not_grouped(local_user(),$a->pager['start'],$a->pager['itemspage']);
+       if(count($r)) {
+               foreach($r as $rr) {
+
+
+                       $contacts[] = array(
+                               'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
+                               'edit_hover' => t('Edit contact'),
+                               'photo_menu' => contact_photo_menu($rr),
+                               'id' => $rr['id'],
+                               'alt_text' => $alt_text,
+                               'dir_icon' => $dir_icon,
+                               'thumb' => $rr['thumb'], 
+                               'name' => $rr['name'],
+                               'username' => $rr['name'],
+                               'sparkle' => $sparkle,
+                               'itemurl' => $rr['url'],
+                               'url' => $url,
+                               'network' => network_to_name($rr['network']),
+                       );
+               }
+       }
+       $tpl = get_markup_template("nogroup-template.tpl");
+       $o .= replace_macros($tpl,array(
+               '$header' => t('Contacts who are not members of a group'),
+               '$contacts' => $contacts,
+               '$paginate' => paginate($a),
+       )); 
+       
+       return $o;
+
+}
index 0353b1d2ccf464713c5cba3e3a45577e273d7ea4..ebb194d9c0e2b56d461c754967aefc322099637c 100644 (file)
   <div id="sidebar-new-group">
   <a href="group/new">$createtext</a>
   </div>
+  {{ if $ungrouped }}
+  <div id="sidebar-ungrouped">
+  <a href="nogroup">$ungrouped</a>
+  </div>
+  {{ endif }}
 </div>
 
 
diff --git a/view/nogroup-template.tpl b/view/nogroup-template.tpl
new file mode 100644 (file)
index 0000000..dd00ed0
--- /dev/null
@@ -0,0 +1,12 @@
+<h1>$header</h1>
+
+{{ for $contacts as $contact }}
+       {{ inc contact_template.tpl }}{{ endinc }}
+{{ endfor }}
+<div id="contact-edit-end"></div>
+
+$paginate
+
+
+
+