This commit is contained in:
Stefan Rohde-Enslin 2019-08-25 21:45:52 +02:00
commit f7140573e1
23 changed files with 2574 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/csv

BIN
css/OpenSans-Light.ttf Normal file

Binary file not shown.

BIN
css/OpenSans-Regular.ttf Normal file

Binary file not shown.

43
css/main.css Normal file
View File

@ -0,0 +1,43 @@
@font-face {
font-family: opensans-regular;
src: url(./OpenSans-Regular.ttf);
}
body {margin:0px;padding:0px;background-color:#fefeff;font-family:opensans-regular;font-size:0.90em;}
div.title {height:50px;width:100%;text-align:center;background-color:9999cc;line-height:50px;font-size:1.2em;}
div.maincontent {padding:10px;line-height:21px;}
div.uploader {padding:10px 10px 12px 10px;line-height:21px;border:1px solid #666666;border-radius:3px;}
a {text-decoration:none;color:#000000;}
.couponcode:hover .coupontooltip {
display: block;
}
.coupontooltip {
display: none;
background: #cc6600;
border: 1px solid black;
border-radius:4px;
margin-left: -5px;
margin-top: 26px;
padding: 10px;
position: absolute;
z-index: 1000;
max-width:400px;
height:auto;
color: white;
font-size: 0.95em;
}
.couponcode {
margin:100px;
}
p {
padding:0px 5px 0px 5px;
margin:0px;
}
p.hint {margin:5px 0px 5px 0px;}
th {text-align:left;}
td {vertical-align:top;}

803
csv_check.php Normal file

File diff suppressed because one or more lines are too long

46
csv_laden.php Normal file
View File

@ -0,0 +1,46 @@
<?php
ob_start();
include_once ('inc/zeichen.php');
$filename=$_GET['fnam'];
$csv_datei = 'csv/'.$filename;
mkdir("xml",0777);
$fp = fopen ( $csv_datei, 'r' );
$y = 0;
while ( $zeile = fgetcsv ( $fp, 100000, ';' ) )
{
$y++;
//echo '<b>Zeile='.$y.' Anzahl in Zeile: '.count ( $zeile ).'</b><br>';
$zieldatei = 'xml/'.$y.'.xml';
if (!$handle = fopen($zieldatei, 'w'))
{
echo "Cannot open file ($zieldatei)";exit;
}
$somecontent='<?xml version="1.0" encoding="ISO-8859-1"?>'."\n"; // normal
$somecontent=$somecontent.'<record>'."\n";
for ( $x = 0; $x < count ( $zeile ); $x++ )
{
$inhalt[$y][$x]=$zeile[$x];
//echo '<b>'.$inhalt[1][$x].'</b> --> '.$zeile[$x].'<br>';
if ($inhalt[$y][$x]=='') $inhalt[$y][$x]='ERSATZ';
//$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.utf8_decode(transform($inhalt[$y][$x])).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; // für utf8
//$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.(($inhalt[$y][$x])).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //für ungarn sonst weg //////////////////////////////////////////////////////////////
$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.transform($inhalt[$y][$x]).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //normaleinstellung
}
$somecontent=$somecontent.'</record>';
//if ($y>1)
//{
if (fwrite($handle, $somecontent) === FALSE)
{
echo "Cannot write to file ($filename)";exit;
}
// echo "Success, wrote to file ($filename)<br><br>";
//}
fclose($handle);
}
fclose($fp);
echo ($y-1).' files created';
echo '<br><a href="zipit.php"><img src="img/go.gif"> Download as zip</a>';
?>

54
csv_laden_hu.php Normal file
View File

@ -0,0 +1,54 @@
<?php
ob_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; // für ungarn sonst weg //////////////////////
include ('inc/zeichen.php');
$filename=$_GET['fnam'];
$csv_datei = 'csv/'.$filename;
if (!file_exists("xml")) {
mkdir("xml", 0700);
}
$fp = fopen ( $csv_datei, 'r' );
$y = 0;
while ( $zeile = fgetcsv ( $fp, 100000, ';' ) )
{
$y++;
//echo '<b>Zeile='.$y.' Anzahl in Zeile: '.count ( $zeile ).'</b><br>';
$zieldatei = 'xml/'.$y.'.xml';
if (!$handle = fopen($zieldatei, 'w'))
{
echo "Cannot open file ($zieldatei)";exit;
}
$somecontent='<?xml version="1.0" encoding="UTF-8"?>'."\n"; // für Ungarn ///////////////////////////////////
/*$somecontent='<?xml version="1.0" encoding="ISO-8859-1"?>'."\n"; // normal */
$somecontent=$somecontent.'<record>'."\n";
for ( $x = 0; $x < count ( $zeile ); $x++ )
{
$inhalt[$y][$x]=$zeile[$x];
//echo '<b>'.$inhalt[1][$x].'</b> --> '.$zeile[$x].'<br>';
if ($inhalt[$y][$x]=='') $inhalt[$y][$x]='ERSATZ';
//$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.utf8_decode(transform($inhalt[$y][$x])).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; // für utf8
$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.(($inhalt[$y][$x])).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //für ungarn sonst weg //////////////////////////////////////////////////////////////
//$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.transform($inhalt[$y][$x]).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //normaleinstellung
}
$somecontent=$somecontent.'</record>';
//if ($y>1)
//{
if (fwrite($handle, $somecontent) === FALSE)
{
echo "Cannot write to file ($filename)";exit;
}
// echo "Success, wrote to file ($filename)<br><br>";
//}
fclose($handle);
}
fclose($fp);
echo ($y-1).' files created';
echo '<br><a href="zipit.php"><img src="img/go.gif"> Download as zip</a>';
?>

49
csv_laden_hu_alt.php Normal file
View File

@ -0,0 +1,49 @@
<?php
ob_start();
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; // für ungarn sonst weg //////////////////////
include ('inc/zeichen.php');
$filename=$_GET['fnam'];
$csv_datei = 'csv/'.$filename;
mkdir("xml",0777);
$fp = fopen ( $csv_datei, 'r' );
$y = 0;
while ( $zeile = fgetcsv ( $fp, 100000, ';' ) )
//while ( $zeile = fgetcsv ( $fp, 100000, ',' ) )
{
$y++;
//echo '<b>Zeile='.$y.' Anzahl in Zeile: '.count ( $zeile ).'</b><br>';
$zieldatei = 'xml/'.$y.'.xml';
if (!$handle = fopen($zieldatei, 'w'))
{
echo "Cannot open file ($zieldatei)";exit;
}
$somecontent='<?xml version="1.0" encoding="UTF-8"?>'."\n"; // für Ungarn ///////////////////////////////////
/*$somecontent='<?xml version="1.0" encoding="ISO-8859-1"?>'."\n"; // normal */
$somecontent=$somecontent.'<record>'."\n";
for ( $x = 0; $x < count ( $zeile ); $x++ )
{
$inhalt[$y][$x]=$zeile[$x];
//echo '<b>'.$inhalt[1][$x].'</b> --> '.$zeile[$x].'<br>';
if ($inhalt[$y][$x]=='') $inhalt[$y][$x]='ERSATZ';
//$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.utf8_decode(transform($inhalt[$y][$x])).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; // für utf8
$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.(($inhalt[$y][$x])).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //für ungarn sonst weg //////////////////////////////////////////////////////////////
//$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.transform($inhalt[$y][$x]).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //normaleinstellung
}
echo $y.'<br>';
$somecontent=$somecontent.'</record>';
//if ($y>1)
//{
if (fwrite($handle, $somecontent) === FALSE)
{
echo "Cannot write to file ($filename)";exit;
}
// echo "Success, wrote to file ($filename)<br><br>";
//}
fclose($handle);
}
fclose($fp);
echo '<a href="zipit.php">download as zip</a>';
?>

37
csv_laden_iso.php Normal file
View File

@ -0,0 +1,37 @@
<?PHP
ob_start();
include_once ('inc/zeichen.php');
$filename=$_GET['fnam'];
$csv_datei = 'csv/'.$filename;
mkdir("xml",0777);
$fp = fopen ( $csv_datei, 'r' );
$y = 0;
while ( $zeile = fgetcsv ( $fp, 100000, ';' ) )
{
$y++;
$zieldatei = 'xml/'.$y.'.xml';
if (!$handle = fopen($zieldatei, 'w'))
{
echo "Cannot open file ($zieldatei)";exit;
}
$somecontent='<?xml version="1.0" encoding="ISO-8859-1"?>'."\n"; // normal
$somecontent=$somecontent.'<record>'."\n";
for ( $x = 0; $x < count ( $zeile ); $x++ )
{
$inhalt[$y][$x]=$zeile[$x];
//if ($inhalt[$y][$x]=='') $inhalt[$y][$x]='ERSATZ';
$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.transform($inhalt[$y][$x]).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //normaleinstellung
}
$somecontent=$somecontent.'</record>';
if (fwrite($handle, $somecontent) === FALSE)
{
echo "Cannot write to file ($filename)";exit;
}
fclose($handle);
}
fclose($fp);
echo ($y-1).' files created';
echo '<br><a href="zipit.php"><img src="img/go.gif"> Download as zip</a>';
?>

42
csv_laden_utf.php Normal file
View File

@ -0,0 +1,42 @@
<?PHP
//error_reporting(E_ALL);
//ini_set('display_errors',1);
ob_start();
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; // für ungarn sonst weg //////////////////////
include ('inc/zeichen.php');
$filename=$_GET['fnam'];
$csv_datei = 'csv/'.$filename;
mkdir("xml",0777);
$fp = fopen ( $csv_datei, 'r' );
$y = 0;
while ( $zeile = fgetcsv ( $fp, 100000, ';' ) )
{
$y++;
$zieldatei = 'xml/'.$y.'.xml';
if (!$handle = fopen($zieldatei, 'w'))
{
echo "Cannot open file ($zieldatei)";exit;
}
$somecontent='<?xml version="1.0" encoding="UTF-8"?>'."\n"; // für Ungarn ///////////////////////////////////
$somecontent=$somecontent.'<record>'."\n";
for ( $x = 0; $x < count ( $zeile ); $x++ )
{
$inhalt[$y][$x]=$zeile[$x];
$inhalt[$y][$x] = preg_replace('/[\x00-\x1F\x7F]/u', '', $inhalt[$y][$x]);
$inhalt[$y][$x] = str_replace('>',']',str_replace('<','[',$inhalt[$y][$x]));
//if ($y!=1) $inhalt[$y][$x] = '<![CDATA['.$inhalt[$y][$x].']]>';
$somecontent=$somecontent.'<'.tagify(transform($inhalt[1][$x])).'>'.(($inhalt[$y][$x])).'</'.tagify(transform($inhalt[1][$x])).'>'."\n"; //für ungarn sonst weg }
}
$somecontent=$somecontent.'</record>';
if (fwrite($handle, $somecontent) === FALSE)
{
echo "Cannot write to file ($filename)";exit;
}
fclose($handle);
}
fclose($fp);
echo ($y-1).' files created';
echo '<br><a href="zipit.php"><img src="img/go.gif"> Download as zip</a>';
?>

BIN
img/go.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 B

41
inc/zeichen.php Normal file
View File

@ -0,0 +1,41 @@
<?PHP
function transform($transform)
{
$transform=str_replace(chr(14),"",$transform);
$transform=str_replace('&quot;','"',$transform);
$transform=str_replace('&','&amp;',$transform);
$transform=str_replace('"','&quot;',$transform);
$transform=str_replace('</br>',' ',$transform);
$transform=str_replace('<br />',' ',$transform);
$transform=str_replace('&rsquo;','\'',$transform);
$transform=str_replace(chr(11),' ',$transform);
$transform=str_replace('<','&lt;',$transform);
$transform=str_replace('>','&gt;',$transform);
$transform=str_replace('´','&apos;',$transform);
$transform=str_replace('&sbquo','\'',$transform);
$transform=str_replace('&lsquo','\'',$transform);
$transform=str_replace(chr(96),'\'',$transform);
$transform=str_replace(chr(130),'\'',$transform);
$transform=str_replace(chr(145),'\'',$transform);
$transform=str_replace(chr(146),'\'',$transform);
return $transform;
}
function tagify($tagify)
{
$tagify=str_replace(' ','_',$tagify);
$tagify=str_replace('/','_',$tagify);
$tagify=str_replace(',','_',$tagify);
$tagify=str_replace('__','_',$tagify);
$tagify=str_replace('Ä','ae',$tagify);
$tagify=str_replace('ä','ae',$tagify);
$tagify=str_replace('Ö','oe',$tagify);
$tagify=str_replace('ö','oe',$tagify);
$tagify=str_replace('Ü','ue',$tagify);
$tagify=str_replace('ü','ue',$tagify);
$tagify=str_replace('ß','ss',$tagify);
$tagify=str_replace(chr(41),'',$tagify);
$tagify=str_replace(chr(40),'',$tagify);
return $tagify;
}

441
inc/zip.php Normal file
View File

@ -0,0 +1,441 @@
<?php
/**
* Class to create and manage a Zip file.
*
* Inspired by CreateZipFile by Rochak Chauhan www.rochakchauhan.com (http://www.phpclasses.org/browse/package/2322.html)
* and
* http://www.pkware.com/documents/casestudies/APPNOTE.TXT Zip file specification.
*
* @author A. Grandt
* @see Distributed under "General Public License"
* @version 1.1
*/
class Zip {
private $zipMemoryThreshold = 1048576; // Autocreate tempfile if the zip data exceeds 1048576 bytes (1 MB)
private $endOfCentralDirectory = "\x50\x4b\x05\x06\x00\x00\x00\x00"; //end of Central directory record
private $localFileHeader = "\x50\x4b\x03\x04"; // Local file header signature
private $centralFileHeader = "\x50\x4b\x01\x02"; // Central file header signature
private $zipData = null;
private $zipFile = null;
private $zipComment = null;
private $cdRec = array(); // central directory
private $offset = 0;
private $isFinalized = false;
private $streamChunkSize = 65536;
private $streamFilePath = null;
private $streamTimeStamp = null;
private $streamComment = null;
private $streamFile = null;
private $streamData = null;
private $streamFileLength = 0;
/**
* Constructor.
*
* @param $useZipFile boolean. Write temp zip data to tempFile? Default false
*/
function __construct($useZipFile = false) {
if ($useZipFile) {
$this->zipFile = tmpfile();
} else {
$this->zipData = "";
}
}
function __destruct() {
if (!is_null($this->zipFile)) {
fclose($this->zipFile);
}
$this->zipData= null;
}
/**
* Set Zip archive comment.
*
* @param string $newComment New comment. null to clear.
*/
public function setComment($newComment = null) {
$this->zipComment = $newComment;
}
/**
* Set zip file to write zip data to.
* This will cause all present and future data written to this class to be written to this file.
* This can be used at any time, even after the Zip Archive have been finalized. Any previous file will be closed.
* Warning: If the given file already exists, it will be overwritten.
*
* @param string $fileName
*/
public function setZipFile($fileName) {
if (file_exists($fileName)) {
unlink ($fileName);
}
$fd=fopen($fileName, "x+b");
if (!is_null($this->zipFile)) {
rewind($this->zipFile);
while(!feof($this->zipFile)) {
fwrite($fd, fread($this->zipFile, $this->streamChunkSize));
}
fclose($this->zipFile);
} else {
fwrite($fd, $this->zipData);
$this->zipData = null;
}
$this->zipFile = $fd;
}
/**
* Add an empty directory entry to the zip archive.
* Basically this is only used if an empty directory is added.
*
* @param string $directoryPath Directory Path and name to be added to the archive.
* @param int $timestamp (Optional) Timestamp for the added directory, if omitted or set to 0, the current time will be used.
* @param string $fileComment (Optional) Comment to be added to the archive for this directory. To use fileComment, timestamp must be given.
*/
public function addDirectory($directoryPath, $timestamp = 0, $fileComment = null) {
if ($this->isFinalized) {
return;
}
$this->buildZipEntry($directoryPath, $fileComment, "\x00\x00", "\x00\x00", $timestamp, "\x00\x00\x00\x00", 0, 0, 16);
}
/**
* Add a file to the archive at the specified location and file name.
*
* @param string $data File data.
* @param string $filePath Filepath and name to be used in the archive.
* @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
* @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
*/
public function addFile($data, $filePath, $timestamp = 0, $fileComment = null) {
if ($this->isFinalized) {
return;
}
$gzType = "\x08\x00"; // Compression type 8 = deflate
$gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression.
$dataLength = strlen($data);
$fileCRC32 = pack("V", crc32($data));
$gzData = gzcompress($data);
$gzData = substr( substr($gzData, 0, strlen($gzData) - 4), 2); // gzcompress adds a 2 byte header and 4 byte CRC we can't use.
// The 2 byte header does contain useful data, though in this case the 2 parameters we'd be interrested in will always be 8 for compression type, and 2 for General purpose flag.
$gzLength = strlen($gzData);
if ($gzLength >= $dataLength) {
$gzLength = $dataLength;
$gzData = $data;
$gzType = "\x00\x00"; // Compression type 0 = stored
$gpFlags = "\x00\x00"; // Compression type 0 = stored
}
if (is_null($this->zipFile) && ($this->offset + $gzLength) > $this->zipMemoryThreshold) {
$this->zipFile = tmpfile();
fwrite($this->zipFile, $this->zipData);
$this->zipData = null;
}
$this->buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, 32);
if (is_null($this->zipFile)) {
$this->zipData .= $gzData;
} else {
fwrite($this->zipFile, $gzData);
}
}
/**
* Add a file to the archive at the specified location and file name.
*
* @param string $dataFile File name/path.
* @param string $filePath Filepath and name to be used in the archive.
* @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
* @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
*/
public function addLargeFile($dataFile, $filePath, $timestamp = 0, $fileComment = null) {
if ($this->isFinalized) {
return;
}
$this->openStream($filePath, $timestamp, $fileComment);
$fh = fopen($dataFile, "rb");
while(!feof($fh)) {
$this->addStreamData(fread($fh, $this->streamChunkSize));
}
fclose($fh);
$this->closeStream();
}
/**
* Create a stream to be used for large entries.
*
* @param string $filePath Filepath and name to be used in the archive.
* @param int $timestamp (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used.
* @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given.
*/
public function openStream($filePath, $timestamp = 0, $fileComment = null) {
if ($this->isFinalized) {
return;
}
if (is_null($this->zipFile)) {
$this->zipFile = tmpfile();
fwrite($this->zipFile, $this->zipData);
$this->zipData = null;
}
if (strlen($this->streamFilePath) > 0) {
closeStream();
}
$this->streamFile = tempnam(sys_get_temp_dir(), 'Zip');
$this->streamData = gzopen($this->streamFile, "w9");
$this->streamFilePath = $filePath;
$this->streamTimestamp = $timestamp;
$this->streamFileComment = $fileComment;
$this->streamFileLength = 0;
}
public function addStreamData($data) {
$length = gzwrite($this->streamData, $data, strlen($data));
if ($length != strlen($data)) {
print "<p>Length mismatch</p>\n";
}
$this->streamFileLength += $length;
return $length;
}
/**
* Close the current stream.
*/
public function closeStream() {
if ($this->isFinalized || strlen($this->streamFilePath) == 0) {
return;
}
fflush($this->streamData);
gzclose($this->streamData);
$gzType = "\x08\x00"; // Compression type 8 = deflate
$gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression.
$file_handle = fopen($this->streamFile, "rb");
$stats = fstat($file_handle);
$eof = $stats['size'];
fseek($file_handle, $eof-8);
$fileCRC32 = fread($file_handle, 4);
$dataLength = $this->streamFileLength;//$gzl[1];
$gzLength = $eof-10;
$eof -= 9;
fseek($file_handle, 10);
$this->buildZipEntry($this->streamFilePath, $this->streamFileComment, $gpFlags, $gzType, $this->streamTimestamp, $fileCRC32, $gzLength, $dataLength, 32);
while(!feof($file_handle)) {
fwrite($this->zipFile, fread($file_handle, $this->streamChunkSize));
}
unlink($this->streamFile);
$this->streamFile = null;
$this->streamData = null;
$this->streamFilePath = null;
$this->streamTimestamp = null;
$this->streamFileComment = null;
$this->streamFileLength = 0;
}
/**
* Close the archive.
* A closed archive can no longer have new files added to it.
*/
public function finalize() {
if(!$this->isFinalized) {
if (strlen($this->streamFilePath) > 0) {
$this->closeStream();
}
$cd = implode("", $this->cdRec);
$cdRec = $cd . $this->endOfCentralDirectory
. pack("v", sizeof($this->cdRec))
. pack("v", sizeof($this->cdRec))
. pack("V", strlen($cd))
. pack("V", $this->offset);
if (!is_null($this->zipComment)) {
$cdRec .= pack("v", strlen($this->zipComment)) . $this->zipComment;
} else {
$cdRec .= "\x00\x00";
}
if (is_null($this->zipFile)) {
$this->zipData .= $cdRec;
} else {
fwrite($this->zipFile, $cdRec);
fflush($this->zipFile);
}
$this->isFinalized = true;
$cd = null;
$this->cdRec = null;
}
}
/**
* Get the handle ressource for the archive zip file.
* If the zip haven't been finalized yet, this will cause it to become finalized
*
* @return zip file handle
*/
public function getZipFile() {
if(!$this->isFinalized) {
$this->finalize();
}
if (is_null($this->zipFile)) {
$this->zipFile = tmpfile();
fwrite($this->zipFile, $this->zipData);
$this->zipData = null;
}
rewind($this->zipFile);
return $this->zipFile;
}
/**
* Get the zip file contents
* If the zip haven't been finalized yet, this will cause it to become finalized
*
* @return zip data
*/
public function getZipData() {
if(!$this->isFinalized) {
$this->finalize();
}
if (is_null($this->zipFile)) {
return $this->zipData;
} else {
rewind($this->zipFile);
$filestat = fstat($this->zipFile);
return fread($this->zipFile, $filestat['size']);
}
}
/**
* Send the archive as a zip download
*
* @param String $fileName The name of the Zip archive, ie. "archive.zip".
* @return void
*/
function sendZip($fileName) {
if(!$this->isFinalized) {
$this->finalize();
}
if (!headers_sent($headerFile, $headerLine) or die("<p><strong>Error:</strong> Unable to send file $fileName. HTML Headers have already been sent from <strong>$headerFile</strong> in line <strong>$headerLine</strong></p>")) {
if (ob_get_contents() === false or die("\n<p><strong>Error:</strong> Unable to send file <strong>$fileName.epub</strong>. Output buffer contains the following text (typically warnings or errors):<br>" . ob_get_contents() . "</p>")) {
if (ini_get('zlib.output_compression')) {
ini_set('zlib.output_compression', 'Off');
}
header('Pragma: public');
header("Last-Modified: " . gmdate("D, d M Y H:i:s T"));
header("Expires: 0");
header("Accept-Ranges: bytes");
header("Connection: close");
header("Content-Type: application/zip");
header('Content-Disposition: attachment; filename="' . $fileName . '";' );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". $this->getArchiveSize());
if (is_null($this->zipFile)) {
echo $this->zipData;
} else {
rewind($this->zipFile);
while(!feof($this->zipFile)) {
echo fread($this->zipFile, $this->streamChunkSize);
}
}
}
}
}
public function getArchiveSize() {
if (is_null($this->zipFile)) {
return strlen($this->zipData);
}
$filestat = fstat($this->zipFile);
return $filestat['size'];
}
/**
* Calculate the 2 byte dostime used in the zip entries.
*
* @param int $timestamp
* @return 2-byte encoded DOS Date
*/
private function getDosTime($timestamp = 0) {
$timestamp = (int)$timestamp;
$date = ($timestamp == 0 ? getdate() : getDate($timestamp));
if ($date["year"] >= 1980) {
return pack("V", (($date["mday"] + ($date["mon"] << 5) + (($date["year"]-1980) << 9)) << 16) |
(($date["seconds"] >> 1) + ($date["minutes"] << 5) + ($date["hours"] << 11)));
}
return "\x00\x00\x00\x00";
}
/**
* Build the Zip file structures
*
* @param unknown_type $filePath
* @param unknown_type $fileComment
* @param unknown_type $gpFlags
* @param unknown_type $gzType
* @param unknown_type $timestamp
* @param unknown_type $fileCRC32
* @param unknown_type $gzLength
* @param unknown_type $dataLength
* @param integer $extFileAttr 16 for directories, 32 for files.
*/
private function buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, $extFileAttr) {
$filePath = str_replace("\\", "/", $filePath);
$fileCommentLength = (is_null($fileComment) ? 0 : strlen($fileComment));
$dosTime = $this->getDosTime($timestamp);
$zipEntry = $this->localFileHeader;
$zipEntry .= "\x14\x00"; // Version needed to extract
$zipEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32;
$zipEntry .= pack("VV", $gzLength, $dataLength);
$zipEntry .= pack("v", strlen($filePath) ); // File name length
$zipEntry .= "\x00\x00"; // Extra field length
$zipEntry .= $filePath; // FileName . Extra field
if (is_null($this->zipFile)) {
$this->zipData .= $zipEntry;
} else {
fwrite($this->zipFile, $zipEntry);
}
$cdEntry = $this->centralFileHeader;
$cdEntry .= "\x00\x00"; // Made By Version
$cdEntry .= "\x14\x00"; // Version Needed to extract
$cdEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32;
$cdEntry .= pack("VV", $gzLength, $dataLength);
$cdEntry .= pack("v", strlen($filePath)); // Filename length
$cdEntry .= "\x00\x00"; // Extra field length
$cdEntry .= pack("v", $fileCommentLength); // File comment length
$cdEntry .= "\x00\x00"; // Disk number start
$cdEntry .= "\x00\x00"; // internal file attributes
$cdEntry .= pack("V", $extFileAttr ); // External file attributes
$cdEntry .= pack("V", $this->offset ); // Relative offset of local header
$cdEntry .= $filePath; // FileName . Extra field
if (!is_null($fileComment)) {
$cdEntry .= $fileComment; // Comment
}
$this->cdRec[] = $cdEntry;
$this->offset += strlen($zipEntry) + $gzLength;
}
}
?>

133
index.php Normal file
View File

@ -0,0 +1,133 @@
<?PHP
error_reporting(E_ALL);
ini_set('display_errors',1);
?>
<head>
<script language="javascript" type="text/javascript">
var tooltips = document.querySelectorAll('.couponcode');
for(var i = 0; i < tooltips.length; i++) {
tooltips[i].addEventListener('mousemove', function fn(e) {
var tooltip = e.target.classList.contains("coupontooltip") ?
e.target :
e.target.querySelector(':scope .coupontooltip');
tooltip.style.left =
e.pageX + tooltip.clientWidth + 10 <
document.body.clientWidth ?
e.pageX + 10 + 'px' :
document.body.clientWidth + 5 - tooltip.clientWidth + 'px';
tooltip.style.top =
e.pageY + tooltip.clientHeight + 10 <
document.body.clientHeight ?
e.pageY + 10 + 'px' :
document.body.clientHeight + 5 - tooltip.clientHeight + 'px';
});
}</script>
</head>
<?PHP
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8"/>';
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">';
echo 'museum-digital CSV to XML converter';
echo '</div>';
echo '<div class="maincontent">';
echo '<div class="uploader">';
echo '<form enctype="multipart/form-data" action="upload.php" method="POST" style="margin:0px;padding:0px;">';
echo 'Please choose a csv-file to create xml-files: <input name="uploaded" type="file" />';
echo '<input type="submit" value="Upload" />';
echo '</form>';
echo '</div>';
echo '<div class="main_fieldlist">';
include('values/all_fields.php');
echo '<p>Currently approved tags (column names) for md:import:</p>';
//echo '<table>';
//echo '<th>Name</th><th>Mandatory</th><th>Allowed</th><th>Remarks</th><th>Dependencies</th>';
$categories=array('basic','other object title','detailed description','inscription','material_technique separate','separate dimensions','comparable objects','closer location','categorisation', 'object administration', 'object history', 'worth', 'state', 'location', 'rights (object)', 'remarks', 'links', 'literature', 'object_group', 'tags', 'events: related place', 'events: related actor', 'events: related time', 'images', 'resources', 'events: production', 'events: finding', 'events: publication', 'events: template creation', 'events: depiction_who', 'events: depiction_place', 'events: use', 'events: writing', 'events: colleting', 'events: painting', 'events: taking', 'events: receiving', 'events: printing plate production', 'events: sending', 'events: issuing', 'events: signing', 'events: type description', 'events:drawing', 'events: copying', 'events: has lived', 'events: commissioned', 'events: printed', 'events: spoken', 'events: sung', 'events: decor designed', 'events: form designed', 'events: modelled', 'events: signed', 'events: mentioning', 'events: burying', 'events: intellectual creation', 'events: painting on', 'events: illustrated' );
$cat_counter=0;
for ($i=0;$i<count($allowed);$i++)
{
//echo '<tr>';
if ($i==0) {echo '<br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==10) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==12) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==15) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==18) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==20) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==36) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==39) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==41) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==47) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==53) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==57) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==65) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==67) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==75) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==78) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==82) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==86) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==108) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==123) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==133) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==137) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==141) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==145) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==215) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==233) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==247) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==261) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==275) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==289) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==293) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;} /**/
if ($i==297) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==311) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==325) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==339) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==353) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==367) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==381) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==395) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==409) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==423) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==437) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==451) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==465) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==479) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==489) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==503) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==517) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==531) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==545) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==559) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==573) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==587) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==601) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==615) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==629) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==643) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
if ($i==657) {echo '<br/><br/><b>'.$categories[$cat_counter].'</b><br/>';$cat_counter++;}
/*
*/
echo '<span class="couponcode" style="display:inline-block;padding:3px;border:1px solid #666666;border-radius:2px;margin:2px;';
if ($allowed[$i][1]=='y') echo 'background-color:#eeee99;'; else echo 'background-color:#eeeeee;';
echo '">';
echo '<span class="coupontooltip">';
echo '<p style="text-align:center;padding:0px;margin:0px;line-height:18px;">'.$allowed[$i][0].'</p><hr>';
if (isset($allowed[$i][1])) echo '<p>Mandatory: '.$allowed[$i][1]."</p>";
if (isset($allowed[$i][5])) echo '<p class="hint" style="background-color:black;">'.$allowed[$i][5].'</p>';
if (isset($allowed[$i][2])) echo '<p>Format: '.$allowed[$i][2]."</p>";
if (isset($allowed[$i][3])) echo '<p>Allowed values: '.$allowed[$i][3]."</p>";
if (isset($allowed[$i][4])) echo '<p>Dependencies: '.$allowed[$i][4]."</p>";
echo '</span>';
echo '<a';
echo '>'.$allowed[$i][0].'</a>';
echo '</span>';
// echo '<td>'.$allowed[$i][1].'</td>';
// echo '<td>'.$allowed[$i][2].'</td>';
// echo '<td>'.$allowed[$i][3].'</td>';
// echo '<td>'.$allowed[$i][4].'</td>';
//echo '</tr>';
}
//echo '</table>';
//print_r($allowed);
echo '</div>';
echo '</div>';
?>

17
index2.php Normal file
View File

@ -0,0 +1,17 @@
<?PHP
$semikoma=$_GET['semikoma'];
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">';
echo 'museum-digital CSV to XML converter';
echo '</div>';
echo '<div class="maincontent">';
echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%">';
echo '<tr>';
echo '<td width="50%">';
echo 'Please wait ... (transforming)<hr>';
include('csv_laden_iso.php');
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</div>';
?>

22
index3.php Normal file
View File

@ -0,0 +1,22 @@
<?PHP
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">';
echo 'museum-digital CSV to XML converter';
echo '</div>';
echo '<div class="maincontent">';
$semikoma=$_GET['semikoma'];
echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%" style="border-bottom:1px solid #000000;padding-bottom:3px;margin-bottom:5px;">';
echo '<tr>';
echo '<td width="80%">';
echo 'Please wait ... (checking validity)';
echo '</td>';
echo '<td style="text-align:right;padding-top:0px;padding-bottom:0px;">';
echo '<form action="index.php" style="margin:0px;padding:0px;">';
echo '<input type="submit" value="Reload" />';
echo '</form>';
echo '</td>';
echo '</tr>';
echo '</table>';
include('csv_check.php');
echo '</div>';
?>

19
index4.php Normal file
View File

@ -0,0 +1,19 @@
<?PHP
//error_reporting(E_ALL);
//ini_set('display_errors',1);
$semikoma=$_GET['semikoma'];
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">';
echo 'museum-digital CSV to XML converter';
echo '</div>';
echo '<div class="maincontent">';
echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%">';
echo '<tr>';
echo '<td width="50%">';
echo 'Please wait ... (transforming)<hr>';
include('csv_laden_utf.php');
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</div>';
?>

17
index5.php Normal file
View File

@ -0,0 +1,17 @@
<?PHP
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">';
echo 'museum-digital CSV to XML converter';
echo '</div>';
echo '<div class="maincontent">';
$semikoma=$_GET['semikoma'];
echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%">';
echo '<tr>';
echo '<td width="50%">';
echo 'Please wait ... (transforming)<hr>';
include('csv_laden.php');
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</div>';
?>

16
index6.php Normal file
View File

@ -0,0 +1,16 @@
<?PHP
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">';
echo 'museum-digital CSV to XML converter';
echo '</div>';
echo '<div class="maincontent">';
$semikoma=$_GET['semikoma'];
echo '<table border="0" cellpadding="0" cellspacing="0" summary="" width="100%">';
echo '<tr>';
echo '<td width="50%">';
echo 'Please wait ... (transforming)<hr>';
include('csv_laden_hu.php');
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</div>';

40
upload.php Normal file
View File

@ -0,0 +1,40 @@
<?PHP
echo '<link rel="stylesheet" type="text/css" href="css/main.css">';
echo '<div class="title">';
echo 'museum-digital CSV to XML converter';
echo '</div>';
echo '<div class="maincontent">';
$target = "csv/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$targetpart = basename( $_FILES['uploaded']['name']);
$ok=1;
$semikoma=$_POST['deli'];
//This is our size condition
if ($uploaded_size > 40000000)
{
echo "Your file is too large.<br>";
$ok=0;
}
//Here we check that $ok was not set to 0 by an error
if ($ok==0)
{
echo "Sorry your file was not uploaded";
}
else
{
//If everything is ok we try to upload it
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file <b>". basename( $_FILES['uploaded']['name']). "</b> has been uploaded<hr>";
echo '<a href="index2.php?fnam='.basename( $_FILES['uploaded']['name']).'"><img src="img/go.gif"> Create XML (iso8859)</a><br>';
echo '<a href="index4.php?fnam='.basename( $_FILES['uploaded']['name']).'"><img src="img/go.gif"> Create XML (utf-8)</a><br>';
echo '<a href="index3.php?fnam='.basename( $_FILES['uploaded']['name']).'"><img src="img/go.gif"> Check validity for museum-digital import</a>';
}
else
{
echo "Sorry, there was a problem uploading your file.";
}
}
echo '</div>';
?>

1
values/_siko.php Normal file

File diff suppressed because one or more lines are too long

695
values/all_fields.php Normal file
View File

@ -0,0 +1,695 @@
<?PHP
/* Structure of array:
0: name of element
1: mandatory? (y or n)
2: format (eg. text/utf8
3: allowed values (eg. "m", "cm", ...)
4: dependent fields
5: remarks
*/
$allowed=array(
array ('inventory_number','y','text/utf8','freetext','none','Only unique values allowed'),
array ('institution_name','n','text/utf8','freetext','none','If name of institution is given it has to be exactly the same as already known in museum-digital'),
array ('collection_name1','n','text/utf8','freetext','none','Use if object belongs to a collection. If collection is already in museum-digital, please use exactly the same name'),
array ('collection_name2','n','text/utf8','freetext','none','Use if the object belongs to a second collection. If collection is already in museum-digital, please use exactly the same name'),
array ('object_type','y','text/utf8','freetext','none','Keep it short! Field is needed to create valid LIDO from museum-digital entries'),
array ('object_title','y','text/utf8','freetext','none','Best is not to repeat the title again and again for many objects, e.g. vase, vase, vase ... better: Green vase, Blue vase, Yellow vase, ...'),
array ('object_description','y','text/utf8','freetext','none','A good description of the objects is fundamental to make the objects searchable in the internet'),
array ('object_material_technique','n','text/utf8','freetext','none','This is a cummulative field for material and technique. It is also possible to additionally save the information separate in the fields: <i>material_separate</i> and <i>technique_separate</i>'),
array ('object_dimensions','n','text/utf8','freetext','none','This is a cummulative field for dimensions (values and units). It is also possible to additionally save the information separate. See the block: <i>separate dimensions</i>'),
array ('object_publication','n','One letter only','"y","n"','none','Shall the object be visible directly after import?'),
array ('object_other_title','n','text/utf8','freetext','object_other_title_kind_of','If the field <i>object_other_title</i> is used. It has to be specified where this alternative title is used. Specification should be done within the field: <i>object_other_title_kind_of</i>'),
array ('object_other_title_kind_of','n','text/utf8','de: "Wissenschaft", "Alltagssprache", "Umgangssprache", "Dialekt"<br>hu: "Tudományos", "Köznyelvi", "Nyelvjárás"', 'object_other_title', 'This field has to be used togehter with <i>object_other_title</i>'),
array ('detailed_description','n','text/utf8','freetext','detailed_description_md and detailed_description_extern','If <i>detailed_desription</i> is made available for an object, <i>detailed_description_md</i> and <i>detailed_description_extern</i> have to have values too'),
array ('detailed_description_md','n','One letter only','"y","n"','detailed_description and detailed_description_extern','Shall detailed description be visible at museum-digital? If <i>detailed_desription</i> is available for an object, <i>detailed_description_md</i> and <i>detailed_description_extern</i> have to have values too'),
array ('detailed_description_extern','n','One letter only','"y","n"','detailed_description_md and detailed_description','Shall later exports from museum-digital include the detailed_description?</br>If <i>detailed_desription</i> is available for an object, <i>detailed_description_md</i> and <i>detailed_description_extern</i> have to have values too'),
array ('inscription','n','text/utf8','freetext','inscription_md and inscription_extern','If <i>inscription</i> is made available for an object, <i>inscription_md></i> and <i>inscription_extern</i> have to have values too'),
array ('inscription_md','n','One letter only','"y","n"','inscription_md and inscription_extern','Shall a given inscription be displayed at museum-digital? If <i>inscription</i> is available for an object, <i>inscription_md></i> and <i>inscription_extern</i> have to have values too'),
array ('inscription_extern','n','One letter only','"y","n"','inscription_md and inscription_extern','Shall later exports from museum-digital inlude inscription? If <i>inscription</i> is available for an object, <i>inscription_md></i> and <i>inscription_extern</i> have to have values too'),
array ('material_separate','n','text/utf8','freetext','none','Additional to collecting material and technique in a combined field (see above), the material(s) can be given here separately'),
array ('technique_separate','n','text/utf8','freetext','none', 'Additional to collecting material and technique in a combined field (see above), the technique(s) can be given here separately'),
array ('dimensions_separate_length_value','n','text/utf8','number','dimensions_separate_length_unit, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_length_unit','n','text/utf8','"m","dm","cm","mm"','dimensions_separate_length_value, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_width_value', 'n', 'text/utf8', 'number','dimensions_separate_width_unit, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_width_unit', 'n', 'text/utf8', '"m","dm","cm","mm"','dimensions_separate_width_value, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_height_value', 'n', 'text/utf8', 'number','dimensions_separate_height_unit, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_height_unit', 'n', 'text/utf8', '"m","dm","cm","mm"','dimensions_separate_height_value, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_weight_value', 'n', 'text/utf8','number','dimensions_separate_weight_unit, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_weight_unit', 'n', 'text/utf8', '"m","dm","cm","mm"','dimensions_separate_width_value, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_diameter_value', 'n', 'text/utf8', 'number','dimensions_separate_diameter_unit, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_diameter_unit', 'n', 'text/utf8', '"m","dm","cm","mm"','dimensions_separate_diameter_value, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_wall_thickness_value', 'n', 'text/utf8', 'number','dimensions_separate_thickness_unit, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_wall_thickness_unit', 'n', 'text/utf8', '"m","dm","cm","mm"','dimensions_separate_thickness_value, dimensions_separate_show_md, dimensions_separate_show_extern','If a separated value is given an entry for the respective unit is necessary. If a separated dimension entry is given, <i>dimensions_separate_show_md</i> and <i>dimensions_separate_show_extern</i> need to be filled in, too.'),
array ('dimensions_separate_show_md', 'n', 'One letter only', '"y","n"','Any field named dimensions_separate ...','If one or more separate dimension-value (and -unit) is given it has to be specified if the separated entries should be made visible at museum-digital'),
array ('dimensions_separate_show_extern', 'n', 'One letter only', '"y","n"','Any field named dimensions_separate ...','If one or more separate dimension-value (and -unit) is given it has to be specified if the separated entries should be included in a later export from museum-digital'),
array ('number_of_pieces', 'n', 'text/utf8','number','none','Only to be given if more than one copies of an object are available and catalogued with the same inventory number'),
array ('number_of_pages', 'n', 'text/utf8', 'number', 'none','Only to be given for books (etc.)'),
array ('comparable_objects_other_museums', 'n', 'text/utf8', 'freetext', 'comparable_objects_other_museums_show_md, comparable_objects_other_museums_show_extern', 'Name of other museum and if available the inventory number of the respective object. If <i>comparable_objects_other_museums</i> is given <i>comparable_objects_other_museums_show_md</i> and <i>comparable_objects_other_museums_show_extern</i> have to be given too'),
array ('comparable_objects_other_museums_show_md', 'n', 'One letter only', '"y","n"', 'comparable_objects_other_museums','Necessary if <i>comparable_objects_other_museums</i> is given. Should the information about comparable objects be displayed at museum-digital?'),
array ('comparable_objects_other_museums_show_extern', 'n', 'One letter only', '"y","n"', 'comparable_objects_other_museums','Necessary if <i>comparable_objects_other_museums</i> is given. Should the information about comparable objects be part of later exports from museum-digital?'),
//array ('other_object_title', 'n', ''),
//array ('other_object_title_in', 'n', ''),
array ('closer_location', 'n', 'text/utf8', 'freetext', 'closer_location_as', 'A place in a special relation to the object. The kind of relation has to specified in <i>closer_location_as</i>'),
array ('closer_location_as', 'n', 'text/utf8', 'de: "Aufnahmeort", "Fundort", "Früherer Ort"&#10;hu: "Felvétel késztésének helye","Lelőhely","Történelmi elnevezés"', 'closer_location', 'A place in a special relation to the object can be given in <i>closer_location</i>. Here the kind of relation between object and place has to specified'),
/* Structure of array:
0: name of element
1: mandatory? (y or n)
2: format (eg. text/utf8
3: allowed values (eg. "m", "cm", ...)
4: dependent fields
5: remarks
*/
array ('entry_number', 'n', 'text/utf8','freetext','none','The entry number of the object if available'),
array ('other_inventory_number', 'n', 'text/utf8','freetext','none','All other inventory numbers (older ones presumably) in one field'),
array ('subject_group', 'n', 'text/utf8','freetext','none','If the object is part of an subject group this information should be given here'),
array ('systematic', 'n', 'text/utf8','freetext','none','If the object is put into a museum-systematic the place it has there'),
array ('bundle', 'n', 'text/utf8','freetext','none','The bundle the object belongs to'),
array ('part_of', 'n', 'text/utf8','freetext','none','If the object is part of something it can be given here'),
array ('inclusion_when', 'n', ''),
array ('inclusion_kind_of', 'n', ''),
array ('inclusion_who', 'n', ''),
array ('inclusion_where', 'n', ''),
array ('registration_first_who', 'n', ''),
array ('registration_first_when', 'n', ''),
array ('owner_previous', 'n', ''),
array ('object_history', 'n', ''),
array ('bought_for', 'n', ''),
array ('bought_for_currency', 'n', ''),
array ('worth_determiner', 'n', ''),
array ('worth_when', 'n', ''),
array ('worth_value', 'n', ''),
array ('worth_unit', 'n', ''),
array ('worth_incurance_determiner', 'n', ''),
array ('worth_incurance_when', 'n', ''),
array ('worth_insurance_value', 'n', ''),
array ('worth_insurance_unit', 'n', ''),
array ('state', 'n', ''),
array ('restauration', 'n', ''),
array ('abode_actual', 'n', ''),
array ('abode_regular', 'n', ''),
array ('exhibition', 'n', ''),
array ('on_loan_to', 'n', ''),
array ('on_loan_contact', 'n', ''),
array ('on_loan_when', 'n', ''),
array ('on_loan_insurance_value', 'n', ''),
array ('on_loan_annotation', 'n', ''),
array ('copyright', 'n', ''),
array ('rights_of_use', 'n', ''),
array ('rights_annotation', 'n', ''),
array ('remarks_short', 'n', ''),
array ('remarks_long', 'n', ''),
array ('images_in_museum', 'n', ''),
array ('documents_in_museum', 'n', ''),
array ('link_url1', 'n', ''),
array ('link_show1', 'n', ''),
array ('link_url2', 'n', ''),
array ('link_show2', 'n', ''),
array ('literature_author1', 'n', ''),
array ('literature_year1', 'n', ''),
array ('literature_title1', 'n', ''),
array ('literature_place1', 'n', ''),
array ('literature_abbreviation1', 'n', ''),
array ('literature_gnd1', 'n', ''),
array ('literature_isbn1', 'n', ''),
array ('literature_signature1', 'n', ''),
array ('literature_online1', 'n', ''),
array ('literature_annotation1', 'n', ''),
array ('literature_inlit1', 'n', ''),
array ('literature_author2', 'n', ''),
array ('literature_year2', 'n', ''),
array ('literature_title2', 'n', ''),
array ('literature_place2', 'n', ''),
array ('literature_abbreviation2', 'n', ''),
array ('literature_gnd2', 'n', ''),
array ('literature_isbn2', 'n', ''),
array ('literature_signature2', 'n', ''),
array ('literature_online2', 'n', ''),
array ('literature_annotation2', 'n', ''),
array ('literature_inlit2', 'n', ''),
array ('object_group_name1', 'n', ''),
array ('object_group_description1', 'n', ''),
array ('object_group_show1', 'n', ''),
array ('object_group_name2', 'n', ''),
array ('object_group_description2', 'n', ''),
array ('object_group_show2', 'n', ''),
array ('object_group_name3', 'n', ''),
array ('object_group_description3', 'n', ''),
array ('object_group_show3', 'n', ''),
array ('object_group_name4', 'n', ''),
array ('object_group_description4', 'n', ''),
array ('object_group_show4', 'n', ''),
array ('object_group_name5', 'n', ''),
array ('object_group_description5', 'n', ''),
array ('object_group_show5', 'n', ''),
array ('tag1', 'n', ''),
array ('tag2', 'n', ''),
array ('tag3', 'n', ''),
array ('tag4', 'n', ''),
array ('tag5', 'n', ''),
array ('tag6', 'n', ''),
array ('tag7', 'n', ''),
array ('tag8', 'n', ''),
array ('tag9', 'n', ''),
array ('tag10', 'n', ''),
array ('related_place1', 'n', ''),
array ('related_place_sure1', 'n', ''),
array ('related_place2', 'n', ''),
array ('related_place_sure2', 'n', ''),
array ('related_actor1', 'n', ''),
array ('related_actor_sure1', 'n', ''),
array ('related_actor2', 'n', ''),
array ('related_actor_sure2', 'n', ''),
array ('related_time1', 'n', ''),
array ('related_time_sure1', 'n', ''),
array ('related_time2', 'n', ''),
array ('related_time_sure2', 'n', ''),
array ('image_name1', 'n', ''),
array ('image_description1', 'n', ''),
array ('image_owner1', 'n', ''),
array ('image_creator1', 'n', ''),
array ('image_rights1', 'n', ''),
array ('image_visible1', 'n', ''),
array ('image_main1', 'n', ''),
array ('image_name2', 'n', ''),
array ('image_description2', 'n', ''),
array ('image_owner2', 'n', ''),
array ('image_creator2', 'n', ''),
array ('image_rights2', 'n', ''),
array ('image_visible2', 'n', ''),
array ('image_main2', 'n', ''),
array ('image_name3', 'n', ''),
array ('image_description3', 'n', ''),
array ('image_owner3', 'n', ''),
array ('image_creator3', 'n', ''),
array ('image_rights3', 'n', ''),
array ('image_visible3', 'n', ''),
array ('image_main3', 'n', ''),
array ('image_name4', 'n', ''),
array ('image_description4', 'n', ''),
array ('image_owner4', 'n', ''),
array ('image_creator4', 'n', ''),
array ('image_rights4', 'n', ''),
array ('image_visible4', 'n', ''),
array ('image_main4', 'n', ''),
array ('image_name5', 'n', ''),
array ('image_description5', 'n', ''),
array ('image_owner5', 'n', ''),
array ('image_creator5', 'n', ''),
array ('image_rights5', 'n', ''),
array ('image_visible5', 'n', ''),
array ('image_main5', 'n', ''),
array ('image_name6', 'n', ''),
array ('image_description6', 'n', ''),
array ('image_owner6', 'n', ''),
array ('image_creator6', 'n', ''),
array ('image_rights6', 'n', ''),
array ('image_visible6', 'n', ''),
array ('image_main6', 'n', ''),
array ('image_name7', 'n', ''),
array ('image_description7', 'n', ''),
array ('image_owner7', 'n', ''),
array ('image_creator7', 'n', ''),
array ('image_rights7', 'n', ''),
array ('image_visible7', 'n', ''),
array ('image_main7', 'n', ''),
array ('image_name8', 'n', ''),
array ('image_description8', 'n', ''),
array ('image_owner8', 'n', ''),
array ('image_creator8', 'n', ''),
array ('image_rights8', 'n', ''),
array ('image_visible8', 'n', ''),
array ('image_main8', 'n', ''),
array ('image_name9', 'n', ''),
array ('image_description9', 'n', ''),
array ('image_owner9', 'n', ''),
array ('image_creator9', 'n', ''),
array ('image_rights9', 'n', ''),
array ('image_visible9', 'n', ''),
array ('image_main9', 'n', ''),
array ('image_name10', 'n', ''),
array ('image_description10', 'n', ''),
array ('image_owner10', 'n', ''),
array ('image_creator10', 'n', ''),
array ('image_rights10', 'n', ''),
array ('image_visible10', 'n', ''),
array ('image_main10', 'n', ''),
array ('resource_media_type1', 'n', ''),
array ('resource_fileformat1', 'n', ''),
array ('resource_location1', 'n', ''),
array ('resource_name1', 'n', ''),
array ('resource_description1', 'n', ''),
array ('resource_owner1', 'n', ''),
array ('resource_creator1', 'n', ''),
array ('resource_rights1', 'n', ''),
array ('resource_visible1', 'n', ''),
array ('resource_media_type2', 'n', ''),
array ('resource_fileformat2', 'n', ''),
array ('resource_location2', 'n', ''),
array ('resource_name2', 'n', ''),
array ('resource_description2', 'n', ''),
array ('resource_owner2', 'n', ''),
array ('resource_creator2', 'n', ''),
array ('resource_rights2', 'n', ''),
array ('resource_visible2', 'n', ''),
array ('production_when1', 'n', ''),
array ('production_when_sure1', 'n', ''),
array ('production_who1', 'n', ''),
array ('production_who_sure1', 'n', ''),
array ('production_where1', 'n', ''),
array ('production_where_sure1', 'n', ''),
array ('production_annotation1', 'n', ''),
array ('production_when2', 'n', ''),
array ('production_when_sure2', 'n', ''),
array ('production_who2', 'n', ''),
array ('production_who_sure2', 'n', ''),
array ('production_where2', 'n', ''),
array ('production_where_sure2', 'n', ''),
array ('production_annotation2', 'n', ''),
array ('finding_when1', 'n', ''),
array ('finding_when_sure1', 'n', ''),
array ('finding_who1', 'n', ''),
array ('finding_who_sure1', 'n', ''),
array ('finding_where1', 'n', ''),
array ('finding_where_sure1', 'n', ''),
array ('finding_annotation1', 'n', ''),
array ('finding_when2', 'n', ''),
array ('finding_when_sure2', 'n', ''),
array ('finding_who2', 'n', ''),
array ('finding_who_sure2', 'n', ''),
array ('finding_where2', 'n', ''),
array ('finding_where_sure2', 'n', ''),
array ('finding_annotation2', 'n', ''),
array ('publication_when1', 'n', ''),
array ('publication_when_sure1', 'n', ''),
array ('publication_who1', 'n', ''),
array ('publication_who_sure1', 'n', ''),
array ('publication_where1', 'n', ''),
array ('publication_where_sure1', 'n', ''),
array ('publication_annotation1', 'n', ''),
array ('publication_when2', 'n', ''),
array ('publication_when_sure2', 'n', ''),
array ('publication_who2', 'n', ''),
array ('publication_who_sure2', 'n', ''),
array ('publication_where2', 'n', ''),
array ('publication_where_sure2', 'n', ''),
array ('publication_annotation2', 'n', ''),
array ('template_creation_when1', 'n', ''),
array ('template_creation_when_sure1', 'n', ''),
array ('template_creation_who1', 'n', ''),
array ('template_creation_who_sure1', 'n', ''),
array ('template_creation_where1', 'n', ''),
array ('template_creation_where_sure1', 'n', ''),
array ('template_creation_annotation1', 'n', ''),
array ('template_creation_when2', 'n', ''),
array ('template_creation_when_sure2', 'n', ''),
array ('template_creation_who2', 'n', ''),
array ('template_creation_who_sure2', 'n', ''),
array ('template_creation_where2', 'n', ''),
array ('template_creation_where_sure2', 'n', ''),
array ('template_creation_annotation2', 'n', ''),
array ('was_depicted_who1', 'n', ''),
array ('was_depicted_who_sure1', 'n', ''),
array ('was_depicted_who2', 'n', ''),
array ('was_depicted_who_sure2', 'n', ''),
array ('was_depicted_place1', 'n', ''),
array ('was_depicted_place_sure1', 'n', ''),
array ('was_depicted_place2', 'n', ''),
array ('was_depicted_place_sure2', 'n', ''),
array ('was_used_when1', 'n', ''),
array ('was_used_when_sure1', 'n', ''),
array ('was_used_who1', 'n', ''),
array ('was_used_who_sure1', 'n', ''),
array ('was_used_where1', 'n', ''),
array ('was_used_where_sure1', 'n', ''),
array ('was_used_annotation1', 'n', ''),
array ('was_used_when2', 'n', ''),
array ('was_used_when_sure2', 'n', ''),
array ('was_used_who2', 'n', ''),
array ('was_used_who_sure2', 'n', ''),
array ('was_used_where2', 'n', ''),
array ('was_used_where_sure2', 'n', ''),
array ('was_used_annotation2', 'n', ''),
array ('written_when1', 'n', ''),
array ('written_when_sure1', 'n', ''),
array ('written_who1', 'n', ''),
array ('written_who_sure1', 'n', ''),
array ('written_where1', 'n', ''),
array ('written_where_sure1', 'n', ''),
array ('written_annotation1', 'n', ''),
array ('written_when2', 'n', ''),
array ('written_when_sure2', 'n', ''),
array ('written_who2', 'n', ''),
array ('written_who_sure2', 'n', ''),
array ('written_where2', 'n', ''),
array ('written_where_sure2', 'n', ''),
array ('written_annotation2', 'n', ''),
array ('collected_when1', 'n', ''),
array ('collected_when_sure1', 'n', ''),
array ('collected_who1', 'n', ''),
array ('collected_who_sure1', 'n', ''),
array ('collected_where1', 'n', ''),
array ('collected_where_sure1', 'n', ''),
array ('collected_annotation1', 'n', ''),
array ('collected_when2', 'n', ''),
array ('collected_when_sure2', 'n', ''),
array ('collected_who2', 'n', ''),
array ('collected_who_sure2', 'n', ''),
array ('collected_where2', 'n', ''),
array ('collected_where_sure2', 'n', ''),
array ('collected_annotation2', 'n', ''),
array ('painted_when1', 'n', ''),
array ('painted_when_sure1', 'n', ''),
array ('painted_who1', 'n', ''),
array ('painted_who_sure1', 'n', ''),
array ('painted_where1', 'n', ''),
array ('painted_where_sure1', 'n', ''),
array ('painted_annotation1', 'n', ''),
array ('painted_when2', 'n', ''),
array ('painted_when_sure2', 'n', ''),
array ('painted_who2', 'n', ''),
array ('painted_who_sure2', 'n', ''),
array ('painted_where2', 'n', ''),
array ('painted_where_sure2', 'n', ''),
array ('painted_annotation2', 'n', ''),
array ('taken_when1', 'n', ''),
array ('taken_when_sure1', 'n', ''),
array ('taken_who1', 'n', ''),
array ('taken_who_sure1', 'n', ''),
array ('taken_where1', 'n', ''),
array ('taken_where_sure1', 'n', ''),
array ('taken_annotation1', 'n', ''),
array ('taken_when2', 'n', ''),
array ('taken_when_sure2', 'n', ''),
array ('taken_who2', 'n', ''),
array ('taken_who_sure2', 'n', ''),
array ('taken_where2', 'n', ''),
array ('taken_where_sure2', 'n', ''),
array ('taken_annotation2', 'n', ''),
array ('received_when1', 'n', ''),
array ('received_when_sure1', 'n', ''),
array ('received_who1', 'n', ''),
array ('received_who_sure1', 'n', ''),
array ('received_where1', 'n', ''),
array ('received_where_sure1', 'n', ''),
array ('received_annotation1', 'n', ''),
array ('received_when2', 'n', ''),
array ('received_when_sure2', 'n', ''),
array ('received_who2', 'n', ''),
array ('received_who_sure2', 'n', ''),
array ('received_where2', 'n', ''),
array ('received_where_sure2', 'n', ''),
array ('received_annotation2', 'n', ''),
array ('printing_plate_produced_when1', 'n', ''),
array ('printing_plate_produced_when_sure1', 'n', ''),
array ('printing_plate_produced_who1', 'n', ''),
array ('printing_plate_produced_who_sure1', 'n', ''),
array ('printing_plate_produced_where1', 'n', ''),
array ('printing_plate_produced_where_sure1', 'n', ''),
array ('printing_plate_produced_annotation1', 'n', ''),
array ('printing_plate_produced_when2', 'n', ''),
array ('printing_plate_produced_when_sure2', 'n', ''),
array ('printing_plate_produced_who2', 'n', ''),
array ('printing_plate_produced_who_sure2', 'n', ''),
array ('printing_plate_produced_where2', 'n', ''),
array ('printing_plate_produced_where_sure2', 'n', ''),
array ('printing_plate_produced_annotation2', 'n', ''),
array ('sent_when1', 'n', ''),
array ('sent_when_sure1', 'n', ''),
array ('sent_who1', 'n', ''),
array ('sent_who_sure1', 'n', ''),
array ('sent_where1', 'n', ''),
array ('sent_where_sure1', 'n', ''),
array ('sent_annotation1', 'n', ''),
array ('sent_when2', 'n', ''),
array ('sent_when_sure2', 'n', ''),
array ('sent_who2', 'n', ''),
array ('sent_who_sure2', 'n', ''),
array ('sent_where2', 'n', ''),
array ('sent_where_sure2', 'n', ''),
array ('sent_annotation2', 'n', ''),
array ('issued_when1', 'n', ''),
array ('issued_when_sure1', 'n', ''),
array ('issued_who1', 'n', ''),
array ('issued_who_sure1', 'n', ''),
array ('issued_where1', 'n', ''),
array ('issued_where_sure1', 'n', ''),
array ('issued_annotation1', 'n', ''),
array ('issued_when2', 'n', ''),
array ('issued_when_sure2', 'n', ''),
array ('issued_who2', 'n', ''),
array ('issued_who_sure2', 'n', ''),
array ('issued_where2', 'n', ''),
array ('issued_where_sure2', 'n', ''),
array ('issued_annotation2', 'n', ''),
array ('signed_when1', 'n', ''),
array ('signed_when_sure1', 'n', ''),
array ('signed_who1', 'n', ''),
array ('signed_who_sure1', 'n', ''),
array ('signed_where1', 'n', ''),
array ('signed_where_sure1', 'n', ''),
array ('signed_annotation1', 'n', ''),
array ('signed_when2', 'n', ''),
array ('signed_when_sure2', 'n', ''),
array ('signed_who2', 'n', ''),
array ('signed_who_sure2', 'n', ''),
array ('signed_where2', 'n', ''),
array ('signed_where_sure2', 'n', ''),
array ('signed_annotation2', 'n', ''),
array ('type_described_when1', 'n', ''),
array ('type_described_when_sure1', 'n', ''),
array ('type_described_who1', 'n', ''),
array ('type_described_who_sure1', 'n', ''),
array ('type_described_where1', 'n', ''),
array ('type_described_where_sure1', 'n', ''),
array ('type_described_annotation1', 'n', ''),
array ('type_described_when2', 'n', ''),
array ('type_described_when_sure2', 'n', ''),
array ('type_described_who2', 'n', ''),
array ('type_described_who_sure2', 'n', ''),
array ('type_described_where2', 'n', ''),
array ('type_described_where_sure2', 'n', ''),
array ('type_described_annotation2', 'n', ''),
array ('drawn_when1', 'n', ''),
array ('drawn_when_sure1', 'n', ''),
array ('drawn_who1', 'n', ''),
array ('drawn_who_sure1', 'n', ''),
array ('drawn_where1', 'n', ''),
array ('drawn_where_sure1', 'n', ''),
array ('drawn_annotation1', 'n', ''),
array ('drawn_when2', 'n', ''),
array ('drawn_when_sure2', 'n', ''),
array ('drawn_who2', 'n', ''),
array ('drawn_who_sure2', 'n', ''),
array ('drawn_where2', 'n', ''),
array ('drawn_where_sure2', 'n', ''),
array ('drawn_annotation2', 'n', ''),
array ('copied_when1', 'n', ''),
array ('copied_when_sure1', 'n', ''),
array ('copied_who1', 'n', ''),
array ('copied_who_sure1', 'n', ''),
array ('copied_where1', 'n', ''),
array ('copied_where_sure1', 'n', ''),
array ('copied_annotation1', 'n', ''),
array ('copied_when2', 'n', ''),
array ('copied_when_sure2', 'n', ''),
array ('copied_who2', 'n', ''),
array ('copied_who_sure2', 'n', ''),
array ('copied_where2', 'n', ''),
array ('copied_where_sure2', 'n', ''),
array ('copied_annotation2', 'n', ''),
array ('has_lived_when1', 'n', ''),
array ('has_lived_when_sure1', 'n', ''),
array ('has_lived_where1', 'n', ''),
array ('has_lived_where_sure1', 'n', ''),
array ('has_lived_annotation1', 'n', ''),
array ('has_lived_when2', 'n', ''),
array ('has_lived_when_sure2', 'n', ''),
array ('has_lived_where2', 'n', ''),
array ('has_lived_where_sure2', 'n', ''),
array ('has_lived_annotation2', 'n', ''),
array ('commissioned_when1', 'n', ''),
array ('commissioned_when_sure1', 'n', ''),
array ('commissioned_who1', 'n', ''),
array ('commissioned_who_sure1', 'n', ''),
array ('commissioned_where1', 'n', ''),
array ('commissioned_where_sure1', 'n', ''),
array ('commissioned_annotation1', 'n', ''),
array ('commissioned_when2', 'n', ''),
array ('commissioned_when_sure2', 'n', ''),
array ('commissioned_who2', 'n', ''),
array ('commissioned_who_sure2', 'n', ''),
array ('commissioned_where2', 'n', ''),
array ('commissioned_where_sure2', 'n', ''),
array ('commissioned_annotation2', 'n', ''),
array ('printed_when1', 'n', ''),
array ('printed_when_sure1', 'n', ''),
array ('printed_who1', 'n', ''),
array ('printed_who_sure1', 'n', ''),
array ('printed_where1', 'n', ''),
array ('printed_where_sure1', 'n', ''),
array ('printed_annotation1', 'n', ''),
array ('printed_when2', 'n', ''),
array ('printed_when_sure2', 'n', ''),
array ('printed_who2', 'n', ''),
array ('printed_who_sure2', 'n', ''),
array ('printed_where2', 'n', ''),
array ('printed_where_sure2', 'n', ''),
array ('printed_annotation2', 'n', ''),
array ('spoken_when1', 'n', ''),
array ('spoken_when_sure1', 'n', ''),
array ('spoken_who1', 'n', ''),
array ('spoken_who_sure1', 'n', ''),
array ('spoken_where1', 'n', ''),
array ('spoken_where_sure1', 'n', ''),
array ('spoken_annotation1', 'n', ''),
array ('spoken_when2', 'n', ''),
array ('spoken_when_sure2', 'n', ''),
array ('spoken_who2', 'n', ''),
array ('spoken_who_sure2', 'n', ''),
array ('spoken_where2', 'n', ''),
array ('spoken_where_sure2', 'n', ''),
array ('spoken_annotation2', 'n', ''),
array ('sung_when1', 'n', ''),
array ('sung_when_sure1', 'n', ''),
array ('sung_who1', 'n', ''),
array ('sung_who_sure1', 'n', ''),
array ('sung_where1', 'n', ''),
array ('sung_where_sure1', 'n', ''),
array ('sung_annotation1', 'n', ''),
array ('sung_when2', 'n', ''),
array ('sung_when_sure2', 'n', ''),
array ('sung_who2', 'n', ''),
array ('sung_who_sure2', 'n', ''),
array ('sung_where2', 'n', ''),
array ('sung_where_sure2', 'n', ''),
array ('sung_annotation2', 'n', ''),
array ('decor_designed_when1', 'n', ''),
array ('decor_designed_when_sure1', 'n', ''),
array ('decor_designed_who1', 'n', ''),
array ('decor_designed_who_sure1', 'n', ''),
array ('decor_designed_where1', 'n', ''),
array ('decor_designed_where_sure1', 'n', ''),
array ('decor_designed_annotation1', 'n', ''),
array ('decor_designed_when2', 'n', ''),
array ('decor_designed_when_sure2', 'n', ''),
array ('decor_designed_who2', 'n', ''),
array ('decor_designed_who_sure2', 'n', ''),
array ('decor_designed_where2', 'n', ''),
array ('decor_designed_where_sure2', 'n', ''),
array ('decor_designed_annotation2', 'n', ''),
array ('form_designed_when1', 'n', ''),
array ('form_designed_when_sure1', 'n', ''),
array ('form_designed_who1', 'n', ''),
array ('form_designed_who_sure1', 'n', ''),
array ('form_designed_where1', 'n', ''),
array ('form_designed_where_sure1', 'n', ''),
array ('form_designed_annotation1', 'n', ''),
array ('form_designed_when2', 'n', ''),
array ('form_designed_when_sure2', 'n', ''),
array ('form_designed_who2', 'n', ''),
array ('form_designed_who_sure2', 'n', ''),
array ('form_designed_where2', 'n', ''),
array ('form_designed_where_sure2', 'n', ''),
array ('form_designed_annotation2', 'n', ''),
array ('modelled_when1', 'n', ''),
array ('modelled_when_sure1', 'n', ''),
array ('modelled_who1', 'n', ''),
array ('modelled_who_sure1', 'n', ''),
array ('modelled_where1', 'n', ''),
array ('modelled_where_sure1', 'n', ''),
array ('modelled_annotation1', 'n', ''),
array ('modelled_when2', 'n', ''),
array ('modelled_when_sure2', 'n', ''),
array ('modelled_who2', 'n', ''),
array ('modelled_who_sure2', 'n', ''),
array ('modelled_where2', 'n', ''),
array ('modelled_where_sure2', 'n', ''),
array ('modelled_annotation2', 'n', ''),
array ('signed_when1', 'n', ''),
array ('signed_when_sure1', 'n', ''),
array ('signed_who1', 'n', ''),
array ('signed_who_sure1', 'n', ''),
array ('signed_where1', 'n', ''),
array ('signed_where_sure1', 'n', ''),
array ('signed_annotation1', 'n', ''),
array ('signed_when2', 'n', ''),
array ('signed_when_sure2', 'n', ''),
array ('signed_who2', 'n', ''),
array ('signed_who_sure2', 'n', ''),
array ('signed_where2', 'n', ''),
array ('signed_where_sure2', 'n', ''),
array ('signed_annotation2', 'n', ''),
array ('was_mentioned_when1', 'n', ''),
array ('was_mentioned_when_sure1', 'n', ''),
array ('was_mentioned_who1', 'n', ''),
array ('was_mentioned_who_sure1', 'n', ''),
array ('was_mentioned_where1', 'n', ''),
array ('was_mentioned_where_sure1', 'n', ''),
array ('was_mentioned_annotation1', 'n', ''),
array ('was_mentioned_when2', 'n', ''),
array ('was_mentioned_when_sure2', 'n', ''),
array ('was_mentioned_who2', 'n', ''),
array ('was_mentioned_who_sure2', 'n', ''),
array ('was_mentioned_where2', 'n', ''),
array ('was_mentioned_where_sure2', 'n', ''),
array ('was_mentioned_annotation2', 'n', ''),
array ('buried_when1', 'n', ''),
array ('buried_when_sure1', 'n', ''),
array ('buried_who1', 'n', ''),
array ('buried_who_sure1', 'n', ''),
array ('buried_where1', 'n', ''),
array ('buried_where_sure1', 'n', ''),
array ('buried_annotation1', 'n', ''),
array ('buried_when2', 'n', ''),
array ('buried_when_sure2', 'n', ''),
array ('buried_who2', 'n', ''),
array ('buried_who_sure2', 'n', ''),
array ('buried_where2', 'n', ''),
array ('buried_where_sure2', 'n', ''),
array ('buried_annotation2', 'n', ''),
array ('intellectual_creation_when1', 'n', ''),
array ('intellectual_creation_when_sure1', 'n', ''),
array ('intellectual_creation_who1', 'n', ''),
array ('intellectual_creation_who_sure1', 'n', ''),
array ('intellectual_creation_where1', 'n', ''),
array ('intellectual_creation_where_sure1', 'n', ''),
array ('intellectual_creation_annotation1', 'n', ''),
array ('intellectual_creation_when2', 'n', ''),
array ('intellectual_creation_when_sure2', 'n', ''),
array ('intellectual_creation_who2', 'n', ''),
array ('intellectual_creation_who_sure2', 'n', ''),
array ('intellectual_creation_where2', 'n', ''),
array ('intellectual_creation_where_sure2', 'n', ''),
array ('intellectual_creation_annotation2', 'n', ''),
array ('painted_on_when1', 'n', ''),
array ('painted_on_when_sure1', 'n', ''),
array ('painted_on_who1', 'n', ''),
array ('painted_on_who_sure1', 'n', ''),
array ('painted_on_where1', 'n', ''),
array ('painted_on_where_sure1', 'n', ''),
array ('painted_on_annotation1', 'n', ''),
array ('painted_on_when2', 'n', ''),
array ('painted_on_when_sure2', 'n', ''),
array ('painted_on_who2', 'n', ''),
array ('painted_on_who_sure2', 'n', ''),
array ('painted_on_where2', 'n', ''),
array ('painted_on_where_sure2', 'n', ''),
array ('painted_on_annotation2', 'n', ''),
array ('illustrated_when1', 'n', ''),
array ('illustrated_when_sure1', 'n', ''),
array ('illustrated_who1', 'n', ''),
array ('illustrated_who_sure1', 'n', ''),
array ('illustrated_where1', 'n', ''),
array ('illustrated_where_sure1', 'n', ''),
array ('illustrated_annotation1', 'n', ''),
array ('illustrated_when2', 'n', ''),
array ('illustrated_when_sure2', 'n', ''),
array ('illustrated_who2', 'n', ''),
array ('illustrated_who_sure2', 'n', ''),
array ('illustrated_where2', 'n', ''),
array ('illustrated_where_sure2', 'n', ''),
array ('illustrated_annotation2', 'n', ''),
);
?>

57
zipit.php Normal file
View File

@ -0,0 +1,57 @@
<?PHP
include_once("inc/zip.php");
$fileTime = date("D, d M Y H:i:s T");
$fileDir='xml/';
$zip = new Zip();
//$zip->setComment("Example Zip file.\nCreated on " . date('l jS \of F Y h:i:s A'));
//$zip->addFile("Hello World!", "hello.txt");
if ($handle = opendir($fileDir)) {
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
if (strpos($file, ".xml") !== false) {
$pathData = pathinfo($fileDir . $file);
$fileName = $pathData['filename'];
if ($file!='1.xml')
$zip->addFile(file_get_contents($fileDir . $file), $file, filectime($fileDir . $file));
}
}
}
if (ini_get('zlib.output_compression')) {
ini_set('zlib.output_compression', 'Off');
}
$zip->finalize(); // Not scrictly necessary, the next line will call it anyway.
$zipData = $zip->getZipData();
$length = strlen($zipData);
header('Pragma: public');
header("Last-Modified: " . $fileTime);
header("Expires: 0");
header("Accept-Ranges: bytes");
header("Connection: close");
header("Content-Type: application/zip");
header('Content-Disposition: attachment; filename="csv_xml.zip";' );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". $length);
echo $zipData;
function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
}
$dir_name='xml';
rrmdir($dir_name);
?>