*/ function labcontest_adminapi_geteligible($args) { extract($args); if (!isset($numitems) || !is_numeric($numitems)) { $numitems = -1; } $itemsperpage = xarModGetVar('labcontest','itemsperpage'); $dbconn =& xarDBGetConn(); $xartable = xarDBGetTables(); $contestants_table = $xartable['labcontest_contestants']; $roles_table = $xartable['roles']; $sql = "SELECT a.xar_contestantid, a.xar_userid, a.xar_entrydate, b.xar_name, b.xar_uname, b.xar_email, FLOOR(10000000000 * RAND() ) FROM $contestants_table a, $roles_table b WHERE b.xar_uid = a.xar_userid AND b.xar_state = 3 AND a.xar_contestid = 1"; // $contestid"; $whereclause = array(); if(isset($owneruid) && $owneruid > 0) { $whereclause[] = "owneruid=".$owneruid; } if (!empty($parentid)) { $whereclause[] = "parentid=".$parentid; } if(count($whereclause) > 0) $sql .= " WHERE ".implode(" AND ", $whereclause); $result = $dbconn->SelectLimit($sql, -1, 0); if ($dbconn->ErrorNo() != 0) { $msg = xarML('DATABASE_ERROR'. $sql); xarErrorSet(XAR_SYSTEM_EXCEPTION, 'DATABASE_ERROR: ', new SystemException(__FILE__.'('.__LINE__.'): '.$msg)); return; } $userinfo = array(); $useridlist = array(); for (; !$result->EOF; $result->MoveNext()) { list($contestantid, $userid, $entrydate, $displayname, $username, $email, $randomid) = $result->fields; if(xarIsParent('Users', $username)) { $useridlist[] = $userid; $userinfo[$userid] = array('contestantid' => $contestantid, 'userid' => $userid, 'entrydate' => $entrydate, 'displayname' => $displayname, 'username' => $username, 'email' => $email, 'randomid' => $randomid); } /* $moredata = xarModAPIFunc('dynamicdata','user','getitems', array('module' => 'roles', 'itemtype' => 0, 'itemids' => $userid, 'join' => "xar_roles", 'getobject' => 1)); // get back the object list $items[] = array_merge($userinfo, $moredata->items); */ } $moredata = array(); if(count($useridlist) > 0) { $moredata_object = xarModAPIFunc('dynamicdata','user','getitems', array('module' => 'roles', 'itemtype' => 0, 'itemids' => $useridlist, 'join' => "xar_roles", 'getobject' => 1)); // get back the object list $moredata = $moredata_object->items; } $items = array(); foreach($moredata as $extendedinfo) { $valid = true; foreach($filters as $filter) { switch($filter['filtertype']) { case "notempty": if(empty($extendedinfo[$filter['field']])) $valid = false; break; case "eq": if($extendedinfo[$filter['field']] != $filter['q']) $valid = false; break; case "ne": if($extendedinfo[$filter['field']] == $filter['q']) $valid = false; break; case "ge": if($extendedinfo[$filter['field']] < $filter['q']) $valid = false; break; case "lt": if($extendedinfo[$filter['field']] >= $filter['q']) $valid = false; break; } } $userid = $extendedinfo['uid']; $randomid = (int)$userinfo[$userid]['randomid']; $iteminfo = array_merge($userinfo[$userid], $extendedinfo); if($valid) $items[$randomid] = $iteminfo; } $result->Close(); return $items; } ?>