array("prog_year", "prog_codes", "Listing by Programme Year"), "grouptag" => array("grouptag", "prog_year", "Listing by Group Tag"), "city" => array("city", "prog_year", "Listing by City, Year"), "status" => array("prog_year", "status", "Listing by Year, Status") ); $lvl1 = $levels[$group][0]; $lvl2 = $levels[$group][1]; $head = $levels[$group][2]; $arraylevels = array("prog_codes"); if (in_array($lvl2, $arraylevels)) $lvl2t = "array"; else $lvl2t = "single"; $SQL = "SELECT person_id,surname,firstname,prog_year,prog_codes,status,oneliner,city,grouptag FROM person LEFT JOIN city USING (city_id) ORDER BY $lvl1,".($lvl2?$lvl2.",":"")."surname,firstname"; // echo $SQL; $ptmp = $dbh->getAll($SQL); $niceprog = array( "" => "Unassigned", "CompSci" => "BA Computer Science", "BusAdmin" => "BA Business Administration", "Govt" => "BA Government", "Comms" => "BA Communications", "Psych" => "BA Psychology", "MA-Govt" => "MA Government", "MBA-Classic" => "MBA Classic", "MBA-Entrep" => "MBA Entrepreneurship", "MA-Psych" => "MA Psychology", "Law-Exchange" => "Law Exchange", "Law(Heb)" => "BA Law (Hebrew)" ); foreach ($ptmp as $p) { if ($lvl2t=="array") { $progs = slashes2array($p[$lvl2]); foreach($progs as $prog) $people[$p[$lvl1]][$niceprog[$prog]][] = $p; } else { if ($p[$lvl1]=="") $p[$lvl1]="zz Unassigned"; $people[$p[$lvl1]][($lvl2?$p[$lvl2]:"")][] = $p; } if ($p["status"]!="Irrelevant") if (!isset($count[$p[$lvl1]])) $count[$p[$lvl1]]=1; else $count[$p[$lvl1]]++; } ksort($people, $group=="progyear" ? SORT_NUMERIC : NULL); $tpl->assign_by_ref("listhead", $head); $tpl->assign_by_ref("people", $people); $tpl->assign_by_ref("count", $count); tpl_display(); ?>