/*
Example FeedInsert witty or insightful remark here
http://example.org/
Sat, 13 Dec 2003 18:30:02 GMTjohndoe@example.com (John Doe)Atom-Powered Robots Run Amok
http://example.org/2003/12/13/atom03
urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6aSat, 13 Dec 2003 18:30:02 GMTSome text.
*/
include 'multisite.php';
require_once ('functions.php');
require_once ('database.php');
//die (BTW);
//echo $_GET['host'];
// name wordt doorgegeven via een .htaccess rewrite
if(isset($_GET['name']))
{
//die ($_GET['name']);
$name = s_sstr($_GET['name']);
switch($name)
{
case 'edi/datop.nl-googlemerchant/datop-googlemerchant':
$name = $name.'.xml';
$fp = fopen($name, 'r');
fpassthru($fp);
exit;
case 'edi/netwerkwinkel.com-googlemerchant/netwerkwinkel-googlemerchant':
$name = $name.'.xml';
$fp = fopen($name, 'r');
fpassthru($fp);
exit;
case 'sitemap':
// open the file in a binary mode
$name = '.'.SHOPMAP.'sitemap.xml';
$fp = fopen($name, 'r');
// send the right headers
//header("Content-Type: image/png");
//header("Content-Length: " . filesize($name));
// dump the picture and stop the script
fpassthru($fp);
exit;
// include ('.'.SHOPMAP.'sitemap.xml');
break;
case 'koopkeus': require ('xml/koopkeus.php');
break;
default:
// zit er een underscore in de naam?
if (strpos($name,'_')===false) godie('verkeerde url syntax');
else
{ // ja, dan is het mogelijk een geldige aanvraag voor gegevens.
$request = explode('_',$name);
// controleer of het maar 1 underscore is
if (count($request)!=2)
{
godie('Ongeldig aantal parameters');
}
// zit er een streepje in de naam?
if (strpos($name,'-')!==false)
{ // ja, dan een lijst met kolomnamen maken
$columns=explode('-',strtoupper($request[1]));
}
// ookal is er geen streepje, toch een array maken
else $columns=array(strtoupper($request[1]));
$cols=array();
foreach ($columns as $v)
{ // doorloop de kolommen
// wat wordt er gevraagd? de eerste parameter is het type aanvraag
switch ($request[0])
{
case 'singleproduct': require('xml/singleproduct.php');
break;
case 'producten': require('xml/productfeed.php');
$array=sql2arr($cols,$columns,$table);
break;
case 'merk': require('xml/merkfeed.php');
$array=sql2arr($cols,$columns,$table);
break;
case 'randomproduct': if ((s_num($request[1]))&&($request[1]<25)&&($request[1]>0))require ('xml/randomproductfeed.php');
else godie('Ongeldige aanvraag parameter');
break;
case 'catproduct': if (s_num($request[1])) require('xml/catproduct.php');
else godie('Ongeldige aanvraag parameter');
break;
case 'manproduct': if (s_num($request[1])) require('xml/manproduct.php');
else godie('Ongeldige aanvraag parameter');
break;
case 'split': if ($request[1]!="") require('xml/split.php');
else godie('Ongeldige aanvraag parameter');
break;
case 'plist': if (s_num($request[1])) require('xml/plist.php');
else godie('Ongeldige aanvraag parameter');
break;
case 'pdinfo': require('xml/pdinfo.php');
break;
case 'infopage': require('xml/infopage.php');
break;
case 'networksites': require('xml/networksites.php');
break;
default: godie('Missing parameter');//.' R1='.$request[0].' R2='.$request[1]);
}
}
}
}
if (!$noaction)
{
if (count($columns)<1) godie('geen gegevens');
// die ('
'.print_r($array).'
');
$data=''."\n";
if (!$nodtd)
{
$data.=''."\n"; // de ster houd in dat een element afwezig mag zijn en vaker voor mag komen met een plus MOET hij er zijn, maar mag hij vaker voorkomen. Vraagteken is 1 of geen
$data.='1)
$data.=',';
$i--;
}
$data.=')>'."\n";
foreach ($columns as $v)
$data.=''."\n";
$data.=']>'."\n";
}
$data.=''."\n";
foreach($array as $ak=>$av)
{
$data.=''."\n";
foreach($av as $k=>$v)
{
$data.=' <'.$k.'>'."\n".' '.htmlspecialchars(utf8_encode($v))."\n".' '.$k.'>'."\n";
}
$data.=''."\n";
}
$data.=''."\n";
echo $data;
}
}
else godie();
function sql2arr($cols,$columns,$table)
{
global $dbConn;
if ((count($cols)>0)&&(isset($table)))
{ // controleer of er meer dan 1 kolom is, en of er een tabel is ingesteld
$sql = 'select ';
$i = count($cols);
foreach ($cols as $v)
{
$sql.='`'.$v.'`';
if ($i>1)
$sql.=', ';
$i--;
}
$sql.=' from `'.$table.'`';
if ($result=(mysqli_query($dbConn,$sql)))
{
$array=array();
while($row=mysqli_fetch_assoc($result))
{
$i=0;
$line=array();
foreach ($row as $v)
{
$line[$columns[$i]]=htmlspecialchars($v);
$i++;
}
$array[]=$line;
}
}
}
return($array);
}
function godie($reason='Geen reden opgegeven')
{ // is er geen name doorgegeven, geef dan wat informatie over de website
die ('
'.SHOPNAME.'
'.LONGSHOPURLSLASH.'
Ongeldige XML aanvraag ontvangen.
'.$reason.'
');
}
?>