Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1802 → Rev 1803

/trunk/jrest/tests/api.php
149,7 → 149,8
$sess = $id = array();
preg_match('/.*PHPSESSID=(\w+)/', $result, $sess);
preg_match('/"id_utilisateur":"(\d+)"/', $result, $id);
if(DEBUG) fwrite(STDERR, "curl \"".$URL ."\" : {$sess[1]} / {$id[1]}\n");
 
if(DEBUG) @fwrite(STDERR, "curl \"".$URL ."\" : {$sess[1]} / {$id[1]}\n");
if(isset($sess[1])) {
define('COOKIE', $sess[1]);
if(!defined('USER')) {
202,6 → 203,38
return $result;
}
 
function importXLS($d) {
$URL = DOMAIN . '/jrest/ImportXLS';
if(!is_file($d)) return FALSE;
exec("csvtool -o /tmp/a.csv col 1- $d");
exec(__DIR__ . "/bin/csv2xls -v 0 -f -o /tmp/a /tmp/a.csv &>/dev/null");
if(DEBUG) fwrite(STDERR,
"csvtool -o /tmp/a.csv col 1- $d;\n" .
__DIR__ . "/bin/csv2xls -v 0 -f -o /tmp/a /tmp/a.csv\n");
$d = "/tmp/a.xls";
if(!is_file($d)) { die('error: ' . __FILE__ . ':' . __LINE__); }
 
$ch = curl_init();
 
// curl does not support setting filename="X.csv";type=application/octet-stream'
// with plain POST variables
 
curl_setopt($ch,CURLOPT_URL, $URL);
curl_setopt($ch,CURLOPT_POSTFIELDS, array(
'upload' => '@' . $d . ';filename=test.xls',
'utilisateur' => USER
));
 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
 
if(DEBUG) fwrite(STDERR, "curl -F \"upload=@$d;filename=test.xls\" -F utilisateur=" . USER . " \"$URL\"\n");
 
//execute post
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
 
function export($cols = "standard,avance") {
if(!defined('COOKIE')) return FALSE;
 
214,9 → 247,9
curl_setopt($ch,CURLOPT_URL, $URL);
curl_setopt($ch,CURLOPT_COOKIE, 'PHPSESSID=' . COOKIE);
 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
 
if(DEBUG) fwrite(STDERR, "curl -b PHPSESSID=" . COOKIE . ' "' . $URL ."\"\n");
 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
//execute post
$result = curl_exec($ch);
curl_close($ch);
223,6 → 256,46
return $result;
}
 
function exportXLS($cols = "standard,avance") {
if(!defined('COOKIE')) return FALSE;
 
$file = "/tmp/b.xls";
 
$URL = DOMAIN . '/jrest/CelWidgetExport/export?';
$URL .= http_build_query(array('colonnes' => $cols,
'id_utilisateur' => USER,
'format' => 'xls'));
$ch = curl_init();
 
curl_setopt($ch,CURLOPT_URL, $URL);
curl_setopt($ch,CURLOPT_COOKIE, 'PHPSESSID=' . COOKIE);
 
$fh = fopen($file, 'w');
curl_setopt($ch,CURLOPT_FILE, $fh);
 
if(DEBUG) fwrite(STDERR, "curl -o $file -b PHPSESSID=" . COOKIE . ' "' . $URL ."\"\n");
//execute post
curl_exec($ch);
 
fflush($fh);
fclose($fh);
curl_close($ch);
 
// if(DEBUG) fwrite(STDERR, "xls2csv $file\n");
// exec("xls2csv $file", $result, $ret);
// return implode("\n", $result);
if(DEBUG) fwrite(STDERR, __DIR__ . "/bin/xls2csv-separate-sheets.pl -i $file\n");
exec(__DIR__ . "/bin/xls2csv-separate-sheets.pl -i $file &>/dev/null", $result, $ret);
$newfile = substr($file, 0, -4) . '-Liste' . '.csv';
 
// because xls2csv-separate-sheets.pl does latin9
if(DEBUG) fwrite(STDERR, "iconv -f latin9 -t utf8 $newfile >| /tmp/.x; mv -f /tmp/.x $newfile\n");
exec("iconv -f latin9 -t utf8 -o /tmp/.x $newfile; mv -f /tmp/.x $newfile");
if($ret) die('error: ' . __FILE__ . ':' . __LINE__);
 
return file_get_contents($newfile);
}
 
function getCSV_line($csv, $line) {
$line = max(0, intval($line - 1)); // -1 à cause du header
 
235,6 → 308,10
$l = fgetcsv($out);
fclose($out);
if(!$l) return FALSE;
// xls2csv-separate-sheets.pl supprime les trailing champs vides
if(count($l) != count($head)) {
$l += array_fill(count($l), count($head) - count($l), "");
}
return array_combine($head, $l);
}