2005-02-23 14:55:01 +00:00
< ?
/*
This file is part of the 'Science Fair In A Box' project
SFIAB Website : http :// www . sfiab . ca
Copyright ( C ) 2005 Sci - Tech Ontario Inc < info @ scitechontario . org >
Copyright ( C ) 2005 James Grant < james @ lightbox . org >
This program is free software ; you can redistribute it and / or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation , version 2.
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; see the file COPYING . If not , write to
the Free Software Foundation , Inc . , 59 Temple Place - Suite 330 ,
Boston , MA 02111 - 1307 , USA .
*/
?>
< ?
require ( " ../common.inc.php " );
2007-11-21 17:02:09 +00:00
require_once ( " ../user.inc.php " );
2007-11-18 23:50:23 +00:00
user_auth_required ( 'committee' , 'admin' );
2005-02-23 14:55:01 +00:00
require ( " ../lpdf.php " );
require ( " ../lcsv.php " );
2006-07-11 20:22:42 +00:00
require ( " ../questions.inc.php " );
2005-02-23 14:55:01 +00:00
if ( ! $_GET [ 'type' ]) $type = " csv " ;
else $type = $_GET [ 'type' ];
if ( $type == " pdf " )
{
$rep = new lpdf ( i18n ( $config [ 'fairname' ]),
i18n ( " Judge List " ),
$_SERVER [ 'DOCUMENT_ROOT' ] . $config [ 'SFIABDIRECTORY' ] . " /data/logo-200.gif "
);
$rep -> newPage ();
$rep -> setFontSize ( 11 );
}
else if ( $type == " csv " )
{
$rep = new lcsv ( i18n ( " Judge List " ));
}
$table = array ();
2010-01-22 17:43:43 +00:00
$table [ 'header' ] = array (
i18n ( " ID " ),
i18n ( " Unique ID " ),
2005-03-09 20:33:16 +00:00
i18n ( " Last Name " ),
2005-02-23 14:55:01 +00:00
i18n ( " First Name " ),
i18n ( " Email " ),
i18n ( " Phone Home " ),
i18n ( " Phone Work " ),
i18n ( " Phone Work Ext " ),
i18n ( " Phone Cell " ),
2006-03-28 23:48:08 +00:00
i18n ( " Languages " ),
2005-02-23 14:55:01 +00:00
i18n ( " Organization " ),
i18n ( " Address 1 " ),
i18n ( " Address 2 " ),
i18n ( " City " ),
2008-07-16 17:23:53 +00:00
i18n ( $config [ 'provincestate' ]),
i18n ( $config [ 'postalzip' ]),
2005-03-29 20:44:28 +00:00
i18n ( " Highest PostSecDeg " ),
2005-02-23 14:55:01 +00:00
i18n ( " Professional Quals " ),
i18n ( " Expertise Other " ));
2006-07-11 20:22:42 +00:00
/* Append headers for all the custom questions */
$qs = questions_load_questions ( 'judgereg' , $config [ 'FAIRYEAR' ]);
$keys = array_keys ( $qs );
foreach ( $keys as $qid ) {
$table [ 'header' ][] = i18n ( $qs [ $qid ][ 'db_heading' ]);
}
2005-03-30 16:04:32 +00:00
2006-02-07 20:19:56 +00:00
//grab the list of divisions, because the last fields of the table will be the sub-divisions
2024-12-08 07:42:00 +00:00
$q = $pdo -> prepare ( " SELECT * FROM projectcategories WHERE year=' " . $config [ 'FAIRYEAR' ] . " ' ORDER BY id " );
$q -> execute ();
$numcats = $q -> rowCount ();
2006-02-07 20:19:56 +00:00
$catheadings = array ();
2024-12-08 07:42:00 +00:00
while ( $r = $q -> fetch ( PDO :: FETCH_OBJ ))
2006-02-07 20:19:56 +00:00
{
$cats [] = $r -> id ;
$catheadings [] = " $r->category (out of 5) " ;
}
2005-03-30 16:04:32 +00:00
//grab the list of divisions, because the last fields of the table will be the sub-divisions
2024-12-08 07:42:00 +00:00
$q = $pdo -> prepare ( " SELECT * FROM projectdivisions WHERE year=' " . $config [ 'FAIRYEAR' ] . " ' ORDER BY id " );
$q -> execute ();
2005-03-30 16:04:32 +00:00
$divheadings = array ();
2024-12-08 07:42:00 +00:00
while ( $r = $q -> fetch ( PDO :: FETCH_OBJ ))
2005-03-30 16:04:32 +00:00
{
$divs [] = $r -> id ;
$divheadings [] = " $r->division (out of 5) " ;
$divheadings [] = " $r->division subdivisions " ;
}
//now append the arrays together
2006-02-07 20:19:56 +00:00
$table [ 'header' ] = array_merge ( $table [ 'header' ], array_merge ( $catheadings , $divheadings ));
2005-03-30 16:04:32 +00:00
2013-02-20 21:18:52 +00:00
$times = array ();
$datetimeheadings = array ();
/* Load the judging rounds */
2024-12-08 07:42:00 +00:00
$q = $pdo -> prepare ( " SELECT date,starttime,endtime,name FROM judges_timeslots WHERE round_id='0' AND year=' { $config [ 'FAIRYEAR' ] } ' ORDER BY starttime,type " );
$q -> execute ();
2013-02-20 21:18:52 +00:00
$x = 0 ;
2024-12-08 07:42:00 +00:00
while ( $r = $q -> fetch ( PDO :: FETCH_OBJ )) {
2013-02-20 21:18:52 +00:00
$found = false ;
foreach ( $times as $xx => $t ) {
if ( $t [ 'date' ] == $r -> date && $t [ 'starttime' ] == $r -> starttime && $t [ 'endtime' ] == $r -> endtime ) {
$times [ $xx ][ 'name' ] .= " , { $r -> name } " ;
$found = true ;
break ;
}
}
if ( ! $found ) {
$times [ $x ] = array ( 'date' => $r -> date ,
'starttime' => $r -> starttime ,
'endtime' => $r -> endtime ,
'name' => $r -> name );
$datetimeheadings [] = $r -> name ;
$x ++ ;
}
}
$table [ 'header' ] = array_merge ( $table [ 'header' ], $datetimeheadings );
2005-03-30 16:04:32 +00:00
2005-02-23 14:55:01 +00:00
//fill these in if we ever make this PDFable
$table [ 'widths' ] = array ();
$table [ 'dataalign' ] = array ();
2024-12-08 07:42:00 +00:00
$q = $pdo -> prepare ( " SELECT
2010-01-22 17:43:43 +00:00
users .* ,
users_judge .*
2005-03-29 20:44:28 +00:00
FROM
2010-01-22 17:43:43 +00:00
users
JOIN users_judge ON users . id = users_judge . users_id
2005-03-29 20:44:28 +00:00
WHERE
2010-01-22 17:43:43 +00:00
users . deleted = 'no' AND
users . year = '".$config[' FAIRYEAR ']."'
AND users . types LIKE '%judge%'
2005-03-29 20:44:28 +00:00
ORDER BY
lastname ,
firstname " );
2024-12-08 07:42:00 +00:00
$q -> execute ();
echo $pdo -> errorInfo ();
while ( $r = $q -> fetch ( PDO :: FETCH_OBJ )) {
2010-01-22 17:43:43 +00:00
$u = user_load ( $r -> id );
2005-03-29 21:09:34 +00:00
$expertise_other = str_replace ( " \n " , " " , $r -> expertise_other );
$expertise_other = str_replace ( " \r " , " " , $expertise_other );
2005-03-30 16:07:33 +00:00
if ( isset ( $divdata )) unset ( $divdata ); $divdata = array ();
2006-02-07 20:19:56 +00:00
if ( isset ( $catdata )) unset ( $catdata ); $catdata = array ();
2010-01-22 17:43:43 +00:00
$languages = " " ;
2005-03-30 16:07:33 +00:00
2010-01-22 17:43:43 +00:00
foreach ( $u [ 'cat_prefs' ] AS $c ) {
$catdata [] = $c + 2 ;
2005-03-30 16:04:32 +00:00
}
2010-01-22 17:43:43 +00:00
foreach ( $u [ 'div_prefs' ] AS $d ) {
$divdata [] = $d ;
//FIXME: 2010-01-22 - James - get the sub divisions for now we use a placeholder
$divdata [] = " " ;
2005-03-30 16:04:32 +00:00
}
2010-01-22 17:43:43 +00:00
foreach ( $u [ 'languages' ] AS $k => $v ) {
$languages .= " $v / " ;
2006-02-07 20:19:56 +00:00
}
2006-03-28 23:48:08 +00:00
$languages = substr ( $languages , 0 , - 1 );
2006-07-11 20:22:42 +00:00
$qarray = array ();
$qans = questions_load_answers ( 'judgereg' , $r -> id , $config [ 'FAIRYEAR' ]);
$keys = array_keys ( $qans );
foreach ( $keys as $qid ) {
$qarray [] = $qans [ $qid ];
}
2013-02-20 21:18:52 +00:00
2024-12-08 07:42:00 +00:00
$tq = $pdo -> prepare ( " SELECT * FROM judges_availability WHERE users_id= \" " . $r -> id . " \" ORDER BY `start` " );
$tq -> execute ();
2013-02-20 21:18:52 +00:00
$sel = array ();
$timedata = array ();
2024-12-08 07:42:00 +00:00
while ( $tr = $tq -> fetch ( PDO :: FETCH_OBJ )) {
2013-02-20 21:18:52 +00:00
foreach ( $times as $x => $t ) {
if ( $tr -> start == $t [ 'starttime' ] && $tr -> end == $t [ 'endtime' ] && $tr -> date == $t [ 'date' ]) {
$sel [ $x ] = true ;
}
}
}
foreach ( $times as $x => $t ) {
if ( $sel [ $x ] == true ) {
$timedata [] = " yes " ;
} else {
$timedata [] = " no " ;
}
}
2006-07-11 20:22:42 +00:00
2005-03-30 16:04:32 +00:00
$tmp = array (
2005-03-09 20:33:16 +00:00
$r -> id ,
2010-01-22 17:43:43 +00:00
$r -> uid ,
2005-02-23 14:55:01 +00:00
$r -> lastname ,
$r -> firstname ,
$r -> email ,
$r -> phonehome ,
$r -> phonework ,
$r -> phoneworkext ,
$r -> phonecell ,
2006-03-28 23:48:08 +00:00
$languages ,
2005-02-23 14:55:01 +00:00
$r -> organization ,
2005-03-29 20:44:28 +00:00
$r -> address ,
2005-02-23 14:55:01 +00:00
$r -> address2 ,
$r -> city ,
$r -> province ,
$r -> postalcode ,
$r -> highest_psd ,
$r -> professional_quals ,
2005-03-29 21:08:47 +00:00
$expertise_other
2005-02-23 14:55:01 +00:00
);
2006-07-11 20:22:42 +00:00
$tmp = array_merge ( $tmp , $qarray );
2005-03-30 16:04:32 +00:00
2006-02-07 20:19:56 +00:00
$extradata = array_merge ( $catdata , $divdata );
2013-02-20 21:18:52 +00:00
$table [ 'data' ][] = array_merge ( array_merge ( $tmp , $extradata ), $timedata );
2005-02-23 14:55:01 +00:00
}
$rep -> addTable ( $table );
$rep -> output ();
?>