Файл: adultscript-2.0.3-pro/files/admin/modules/pornstar/components/export_xml.php
Строк: 122
<?php
defined('_VALID') or die('Restricted Access!');
class VComponent_Admin_pornstar_export_xml
{
public function __construct()
{
}
public function render()
{
$errors = array();
$method = 'display';
if (isset($_POST['submit-export'])) {
$method = VF::factory('filter')->get('method');
if ($method == 'display') {
$this->display_xml($this->build_xml());
} elseif ($method == 'download') {
$this->download_xml($this->build_xml());
} else {
$errors[] = 'Invalid export method! What exactly did you select/click!?';
}
}
$tpl = VF::factory('template');
$tpl->menu = 'pornstar';
$tpl->submenu = 'pornstar_export';
$tpl->extramenu = 'pornstar_export_xml';
$tpl->meta_title = 'Admin::Pornstar::Export';
$tpl->errors = $errors;
$tpl->method = $method;
$tpl->load(array('header', 'pornstar_export_xml', 'footer'));
$tpl->display();
}
private function build_xml()
{
$db = VF::factory('database');
$db->query("SELECT m.model_id, m.name, m.slug, m.description,
m.gender, m.ext, mb.*
FROM #__model AS m
INNER JOIN #__model_bio AS mb ON (mb.model_id = m.model_id)
ORDER BY m.name ASC");
$pornstars = $db->fetch_rows();
$output = array();
$output[] = '<?xml version="1.0" encoding="UTF-8" ?>';
$output[] = '<models>';
foreach ($pornstars as $pornstar) {
$name = explode(' ', $pornstar['name']);
$first_name = $name['0'];
$last_name = $name['1'];
$measures = explode('-', $pornstar['measurements']);
$breast = 0;
$waist = 0;
$hips = 0;
if (isset($measures['0'])) {
$breast = $measures['0'];
}
if (isset($measures['1'])) {
$waist = $measures['1'];
}
if (isset($measures['2'])) {
$hips = $measures['2'];
}
$tattoes = (isset($pornstar['tattoes'])) ? $pornstar['tattoes'] : '';
$piercing = (isset($pornstar['piercings'])) ? $pornstar['piercings'] : '';
$output[] = "t<model>";
$output[] = "tt<firstname>".e($first_name).'</firstname>';
$output[] = "tt<lastname>".e($last_name).'</lastname>';
$output[] = "tt<bio>".e($pornstar['description']).'</bio>';
$output[] = "tt<tracking_link>".BASE_URL.'/pornstar/'.$pornstar['slug'].'/'.'</tracking_link>';
if ($pornstar['photo_url'] == '') {
$output[] = "tt<photo_url>".BASE_URL.'/media/pornstars/'.$pornstar['model_id'].'.'.$pornstar['ext'].'</photo_url>';
}
$output[] = "tt<birth_date>".$pornstar['birth_date'].'</birth_date>';
$output[] = "tt<age>".VDate::age($pornstar['birth_date']).'</age>';
$output[] = "tt<alias>".e($pornstar['aliases']).'</alias>';
$output[] = "tt<height>".$pornstar['height'].'</height>';
$output[] = "tt<weight>".$pornstar['weight'].'</weight>';
$output[] = "tt<measurements>".$pornstar['measurements'].'</measurements>';
$output[] = "tt<breast>".$breast.'</breast>';
$output[] = "tt<waist>".$waist.'</waist>';
$output[] = "tt<hips>".$hips.'</hips>';
$output[] = "tt<tattoo>".$tattoes.'</tattoo>';
$output[] = "tt<piercing>".$piercing.'</piercing>';
$output[] = "tt<nationality>".$pornstar['nationality'].'</nationality>';
$output[] = "tt<ethnicity>".$pornstar['ethnicity'].'</ethnicity>';
$output[] = "tt<hair_color>".$pornstar['hair_color'].'</hair_color>';
$output[] = "tt<eye_color>".$pornstar['eye_color'].'</eye_color>';
$output[] = "tt<skin_color>".$pornstar['skin_color'].'</skin_color>';
$output[] = "t</model>";
}
$output[] = '</models>';
return implode("n", $output);
}
private function download_xml($xml)
{
$file = TMP_DIR.'/downloads/models.xml';
file_put_contents($file, $xml);
VDownload::force($file);
}
private function display_xml($xml)
{
VResponse::add_header('Content-Type', 'text/xml');
VResponse::add_header('Pragma', 'no-cache');
VResponse::add_header('Cache-Control', 'no-cache, must-revalidate');
VResponse::add_header('Last-Modified', gmdate('D, d M Y H:i:s').' GMT');
VResponse::add_header('Expires', 'Sat, 26 Jul 1997 05:00:00 GMT');
VResponse::send_headers();
echo $xml;
VF::close();
exit;
}
}