File Manager
<?php
if (!isset($gCms))
exit();
if (!$this->CheckPermission('Modify Templates'))
{
echo $this->ShowErrors(lang('needpermissionto', 'Modify Templates'));
return;
}
if (!isset($params['template']))
{
$params = array('module_error' => lang('missingparams'), 'active_tab' => 'templates');
$this->Redirect($id, 'defaultadmin', $returnid, $params);
return;
}
// get template
$templatecode = $this->GetTemplate($params['template']);
$templatearr = explode(TEMPLATE_SEPARATOR, $templatecode);
$tplcode = $templatearr[0];
$tplcss = $templatearr[1];
$tpljs = substr($templatearr[2], 0, -2);
$templateprops = Gallery_utils::GetTemplateprops($params['template']);
// get a file list
function Gettplfiles($root, $path) {
$output = array();
if ($handle = opendir(str_replace('/', DIRECTORY_SEPARATOR, $root . $path)))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
if (is_dir($root . $path . $file))
{
$output[] = array(
'filename' => $path . $file . "/",
'isdir' => 1
);
$output = array_merge($output, Gettplfiles($root, $path . $file . "/"));
}
else
{
$output[] = array(
'filename' => $path . $file,
'isdir' => 0
);
}
}
}
closedir($handle);
}
return $output;
}
$filecount = 0;
$dir = "../modules/Gallery/templates/" . $params['template'];
$dir = is_dir($dir) ? $dir : "../modules/Gallery/templates/" . strtolower($params['template']);
$files = Gettplfiles($dir, "/");
$xmltxt = '<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n";
$xmltxt .= "<gallerytpl>\n";
$xmltxt .= " <name>" . $params['template'] . "</name>\n";
$xmltxt .= " <version>" . $templateprops['version'] . "</version>\n";
$xmltxt .= " <galleryversion>" . $this->GetVersion() . "</galleryversion>\n";
$xmltxt .= " <about>" . base64_encode($templateprops['about']) . "</about>\n";
$xmltxt .= " <thumbwidth>" . $templateprops['thumbwidth'] . "</thumbwidth>\n";
$xmltxt .= " <thumbheight>" . $templateprops['thumbheight'] . "</thumbheight>\n";
$xmltxt .= " <resizemethod>" . $templateprops['resizemethod'] . "</resizemethod>\n";
$xmltxt .= " <maxnumber>" . $templateprops['maxnumber'] . "</maxnumber>\n";
$xmltxt .= " <sortitems>" . $templateprops['sortitems'] . "</sortitems>\n";
$xmltxt .= " <tplcode>" . base64_encode($tplcode) . "</tplcode>\n";
$xmltxt .= " <tplcss>" . base64_encode($tplcss) . "</tplcss>\n";
$xmltxt .= " <tpljs>" . base64_encode($tpljs) . "</tpljs>\n";
foreach ($files as $file)
{
$xmltxt .= " <file>\n";
$xmltxt .= " <filename>" . $file['filename'] . "</filename>\n";
$xmltxt .= " <isdir>" . $file['isdir'] . "</isdir>\n";
if (!$file['isdir'])
{
$data = base64_encode(file_get_contents($dir . $file['filename']));
$xmltxt .= " <data><![CDATA[" . $data . "]]></data>\n";
}
$xmltxt .= " </file>\n";
++$filecount;
}
$xmltxt .= "</gallerytpl>\n";
$message = 'XML package of ' . strlen($xmltxt) . ' bytes created for Gallery template ' . $params['template'];
$message .= ' including ' . $filecount . ' files';
$xmlname = 'Gallery-tpl-' . $params['template'] . '.xml';
// send the file
ob_end_clean();
ob_end_clean();
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename=' . $xmlname);
echo $xmltxt;
exit();
?>
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com