Source Code Index
<?php
 
/* DAT/EXPORT.PHP - Admin code for export and import posts */
 
// EXPERIMENTAL interface
 
$section = config('arg');
 
$cmd['export'] = "Would you like to save ALL <b>$section</b> posts to the 'import' directory?";
$cmd['import'] = "Would you like to import ALL import files into <b>$section</b>?";
$cmd['delete'] = "Would you like to delete all files in the 'import' directory?";
 
$act['export'] = "export posts";
$act['import'] = "import files";
$act['delete'] = "delete import files";
 
$func['export'] = '_export';
$func['import'] = '_import';
$func['delete'] = '_delete';
 
$sum['export'] = "records written";
$sum['import'] = "files imported";
$sum['delete'] = "files deleted";
 
$query = <<<HTML
<form name="query" method="get" action="{\$_SERVER['PHP_SELF']}">
<input type="submit" value="\$expcmd">
<input type="hidden" name="op" value="export">
<input type="hidden" name="expcmd" value="\$expcmd">
<input type="hidden" name="arg" value="\$arg">
</form>
 
HTML;
 
if ($expcmd == '') {
 
	$n = _export(1);
	echo "There are $n records for export. ";
	if ($n) {
		$expcmd = "export";
//		eval(shit_show($query));
// just a reminder that all that shit_show() does is this:
		$html = addcslashes($query,'"');
		eval("print \"$html\";");
	}
 
	$n = _import(1);
	echo "<br>There are $n files available for import.";
	if (!$n) echo "<br>";
	if ($n) {
		$expcmd = "import";
		eval(shit_show($query));
		$expcmd = "delete";
		eval(shit_show($query));
	}
 
	$doneop = "read";
	$HTML = "";
}
else {
 
	if (!isset($_POST['yes'])) {
		$preamble = $cmd[$expcmd];
		$action = $act[$expcmd];
		eval(shit_show(_message('confirm')));
	}
	else {
		$n = $func[$expcmd]();
		$HTML = "<br>$n ".$sum[$expcmd];
	}
 
	$doneop = $op;
}
 
if (isset($HTML))
echo <<<HTML
$HTML
<br>
<form title="$formtitle" name="done" method="get" action="{$_SERVER['PHP_SELF']}">
<input type="submit" value="done">
<input type="hidden" name="op" value="$doneop">
<input type="hidden" name="arg" value="$arg">
</form>
 
HTML;
 
function _import($cmd = 0) {
 
	$files = glob('import/*.txt');
 
	if ($cmd) return count($files);
 
	echo 'Importing... ';
	natsort($files);
	foreach ($files as $file) {
		echo _file($file);
		$data = file_get_contents($file);
		dbnewrecord($data);
	}
	return count($files);
}
 
function _export($cmd = 0) {
 
	$recs = dblistrecords();
	if (!$recs) return 0;
 
	if ($cmd) return count($recs);
 
	echo 'Saving... ';
	$c = 1;
	natsort($recs);
	foreach ($recs as $id) {
		$record = dbreadrecord($id);
		echo "$id ";
		$file = "import/$c.txt";
		file_put_contents($file,recordtostring($record));
		++$c;
	}
 
	return $c - 1;
}
 
function _delete() {
 
	$files = glob('import/*.txt');
	if (!$files) {
		echo 'no files found';
		return;
	}
 
	echo 'Deleting... ';
	foreach ($files as $file) {
		echo _file($file);
		unlink($file);
	}
	return count($files);
}
 
function _file($file) {
 
	return str_replace('.txt','',str_replace('import/','',$file)).' ';
}
 
THIS source compiler