Public feed #602757

Someone

public text v1 · immutable
Raw Edit
·published 2007-07-04 09:06 UTC
rendered paste body
<?php

/**
 *
 *
 * Administration System
 *
 * @package Xaraya eXtensible Management System
 * @copyright (C) 2002 by the Xaraya Development Team.
 * @link http://www.xaraya.com
 *
 * @subpackage labcontest module
 * @author Chad Kraeft <cdavidkraeft@miragelab.com>
*/
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;
}

?>