Esempio n. 1
0
 /**
  * Get the groups ow a wishlist owner
  *
  * @param   integer  $listid        List ID
  * @param   string   $controlgroup  Control group name
  * @param   object   $wishlist      Wishlist
  * @param   integer  $native        Get groups assigned to this wishlist?
  * @param   array    $groups        List of gorups
  * @return  mixed    False if errors, array on success
  */
 public function get_owner_groups($listid, $controlgroup = '', $wishlist = null, $native = 0, $groups = array())
 {
     if ($listid === NULL) {
         return false;
     }
     $wishgroups = array();
     $obj = new Wishlist($this->_db);
     // if tool, get tool group
     if (!$wishlist) {
         $wishlist = $obj->get_wishlist($listid);
     }
     if (isset($wishlist->resource) && $wishlist->resource->type == 7) {
         $toolgroup = $obj->getToolDevGroup($wishlist->referenceid);
         if ($toolgroup) {
             $groups[] = $toolgroup;
         }
     }
     // if primary list, add all site admins
     if ($controlgroup && $wishlist->category == 'general') {
         $instance = Group::getInstance($controlgroup);
         if (is_object($instance)) {
             $gid = $instance->get('gidNumber');
             if ($gid) {
                 $groups[] = $gid;
             }
         }
     }
     // if private group list, add the group
     if ($wishlist->category == 'group') {
         $groups[] = $wishlist->referenceid;
     }
     // get groups assigned to this wishlist
     if (!$native) {
         $sql = "SELECT o.groupid FROM `#__wishlist_ownergroups` AS o WHERE o.wishlist=" . $this->_db->quote($listid);
         $this->_db->setQuery($sql);
         $wishgroups = $this->_db->loadObjectList();
         if ($wishgroups) {
             foreach ($wishgroups as $wg) {
                 if (Group::exists($wg->groupid)) {
                     $groups[] = $wg->groupid;
                 }
             }
         }
     }
     $groups = array_unique($groups);
     sort($groups);
     return $groups;
 }
Esempio n. 2
0
 /**
  * Get a list of owners
  *
  * @param   integer  $listid      List ID
  * @param   object   $admingroup  Admin Group
  * @param   object   $wishlist    Wish list
  * @param   integer  $native      Get groups assigned to this wishlist?
  * @param   integer  $wishid      Wish ID
  * @param   array    $owners      Owners
  * @return  mixed    False if errors, array on success
  */
 public function get_owners($listid, $admingroup, $wishlist = '', $native = 0, $wishid = 0, $owners = array())
 {
     if ($listid === NULL) {
         return false;
     }
     $obj = new Wishlist($this->_db);
     $objG = new OwnerGroup($this->_db);
     if (!$wishlist) {
         $wishlist = $obj->get_wishlist($listid);
     }
     // If private user list, add the user
     if ($wishlist->category == 'user') {
         $owners[] = $wishlist->referenceid;
     }
     // If resource, get contributors
     if ($wishlist->category == 'resource' && $wishlist->resource->type != 7) {
         $cons = $obj->getCons($wishlist->referenceid);
         if ($cons) {
             foreach ($cons as $con) {
                 $owners[] = $con->id;
             }
         }
     }
     // Get groups
     $groups = $objG->get_owner_groups($listid, is_object($admingroup) ? $admingroup->get('group') : $admingroup, $wishlist, $native);
     if ($groups) {
         foreach ($groups as $g) {
             // Load the group
             $group = \Hubzero\User\Group::getInstance($g);
             if ($group && $group->get('gidNumber')) {
                 $members = $group->get('members');
                 $managers = $group->get('managers');
                 $members = array_merge($members, $managers);
                 if ($members) {
                     foreach ($members as $member) {
                         $owners[] = $member;
                     }
                 }
             }
         }
     }
     // Get individuals
     if (!$native) {
         $sql = "SELECT o.userid FROM `#__wishlist_owners` AS o WHERE o.wishlist=" . $this->_db->quote($listid) . " AND o.type!=2";
         $this->_db->setQuery($sql);
         if ($results = $this->_db->loadObjectList()) {
             foreach ($results as $result) {
                 $owners[] = $result->userid;
             }
         }
     }
     $owners = array_unique($owners);
     sort($owners);
     // Are we also including advisory committee?
     $wconfig = Component::params('com_wishlist');
     $advisory = array();
     if ($wconfig->get('allow_advisory')) {
         $sql = "SELECT DISTINCT o.userid FROM `#__wishlist_owners` AS o WHERE o.wishlist=" . $this->_db->quote($listid) . " AND o.type=2";
         $this->_db->setQuery($sql);
         if ($results = $this->_db->loadObjectList()) {
             foreach ($results as $result) {
                 $advisory[] = $result->userid;
             }
         }
     }
     // Find out those who voted - for distribution of points
     if ($wishid) {
         $activeowners = array();
         $query = "SELECT v.userid FROM `#__wishlist_vote` AS v LEFT JOIN `#__wishlist_item` AS i ON v.wishid = i.id ";
         $query .= "WHERE i.wishlist = " . $this->_db->quote($listid) . " AND v.wishid=" . $this->_db->quote($wishid) . " AND (v.userid IN ('" . implode("','", $owners) . "')) ";
         $this->_db->setQuery($query);
         if ($result = $this->_db->loadObjectList()) {
             foreach ($result as $r) {
                 $activeowners[] = $r->userid;
             }
             $owners = $activeowners;
         }
     }
     $collect = array();
     $collect['individuals'] = $owners;
     $collect['groups'] = $groups;
     $collect['advisory'] = $advisory;
     return $collect;
 }