Set prize external_identifier on award download properly. Send proper xml array (prizes[0]prize[0], not prizes[0]prizes[0]) to ysc servers. Handle postback url properly (typo)

This commit is contained in:
james 2010-03-30 16:47:30 +00:00
parent 7cd9f21434
commit 80ff166203
3 changed files with 18 additions and 6 deletions

View File

@ -193,6 +193,8 @@ case 'check':
unset($existingprizes[$ep['prize']]);
}
if(!array_key_exists('identifier', $prize)) $prize['identifier'] = $prize['prize_en'];
mysql_query("UPDATE award_prizes SET
cash='".intval($prize['cash'])."',
scholarship='".intval($prize['scholarship'])."',
@ -200,6 +202,7 @@ case 'check':
prize='".mysql_escape_string($prize['prize_en'])."',
number='".intval($prize['number'])."',
`order`='".intval($prize['ord'])."',
external_identifier='".mysql_real_escape_string(stripslashes($prize['identifier']))."',
trophystudentkeeper='".intval($prize['trophystudentkeeper'])."',
trophystudentreturn='".intval($prize['trophystudentreturn'])."',
trophyschoolkeeper='".intval($prize['trophyschoolkeeper '])."',

View File

@ -83,7 +83,7 @@ function get_winners($awardid)
$winners=array( 'prizes' => array(),
'award_name' => $award['name'],
'external_identifier' => $award['external_identifier'],
'postback' => $award['external_postback']);
'external_postback' => $award['external_postback']);
/* Get the prizes */
$q=mysql_query("SELECT * FROM award_prizes WHERE award_awards_id='{$award['id']}'");
@ -139,7 +139,7 @@ function get_winners($awardid)
/* Save the prize info => projects */
$winners['prizes'][$prize['prize']] = array(
'xml_type'=>'prize', /* For ysc compatability */
'identifier'=>$prize['prize'], /* for ysc compatability */
'identifier'=>$prize['external_identifier'], /* for ysc compatability */
'projects'=>$prizewinners);
}
return $winners;
@ -161,11 +161,15 @@ case 'award_upload':
echo notice(i18n('No winners selected for this award'));
} else {
if($fair['type'] == 'ysc') {
$w = array();
foreach($winners['prizes'] as $prize_name=>$prize) {
$w[] = $prize;
}
$req=array("awardwinners"=>array(
"username"=>$fair['username'],
"password"=>$fair['password'],
"identifier"=>$winners['external_identifier'],
"prizes"=>$winners,
"prizes"=>$w,
)
);
$url = $winners['external_postback'];
@ -181,9 +185,14 @@ case 'award_upload':
$data = curl_query($fair, $req, $url);
if($data['error'] != 0) {
echo error("Server said: $data");
echo error("Server said: ".htmlspecialchars(print_r($data,true)));
} else {
echo notice("{$fair['name']} server said: <pre>".join("\n", $data['notice'])."</pre>");
if(is_array($data['notice']))
echo notice("{$fair['name']} server said: <pre>".join("\n", $data['notice'])."</pre>");
else if(is_array($data['message']))
echo notice("{$fair['name']} server said: <pre>".join("\n", $data['message'])."</pre>");
else
echo notice("{$fair['name']} server said: <pre>".htmlspecialchars(print_r($data,true))."</pre>");
echo happy(i18n("Upload completed successfully"));
}
}

View File

@ -86,7 +86,7 @@
break;
}
// debug_("Curl Send: (type:{$fair['type']}=>$url) $str");
// debug_("Curl Send: (type:{$fair['type']}=>$url ysc_url=>$ysc_url) $str");
$ch = curl_init(); /// initialize a cURL session
curl_setopt ($ch, CURLOPT_URL, $url);