📄 main.php
字号:
}
header('Content-length: '.strlen($output));
echo $output;
}
break;
case 'uploadtpl':
$tpltpl_handler =& xoops_gethandler('tplfile');
$id = intval($_GET['id']);
$tpl =& $tpltpl_handler->get($id);
xoops_cp_header();
echo '<a href="admin.php?fct=tplsets">'. _MD_TPLMAIN .'</a> <span style="font-weight:bold;">»»</span> <a href="./admin.php?fct=tplsets&op=listtpl&moddir='.$tpl->getVar('tpl_module').'&tplset='.$tpl->getVar('tpl_tplset').'">'.$tpl->getVar('tpl_tplset').'</a> <span style="font-weight:bold;">»»</span> '._MD_UPLOAD.'<br /><br />';
if (is_object($tpl)) {
include_once XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
$form = new XoopsThemeForm(_MD_UPLOAD, 'tplupload_form', 'admin.php');
$form->setExtra('enctype="multipart/form-data"');
$form->addElement(new XoopsFormLabel(_MD_FILENAME, $tpl->getVar('tpl_file').' ('.$tpl->getVar('tpl_tplset').')'));
$form->addElement(new XoopsFormFile(_MD_CHOOSEFILE.'<br /><span style="color:#ff0000;">'._MD_UPWILLREPLACE.'</span>', 'tpl_upload', 200000), true);
$form->addElement(new XoopsFormHidden('tpl_id', $id));
$form->addElement(new XoopsFormHidden('op', 'uploadtpl_go'));
$form->addElement(new XoopsFormHidden('fct', 'tplsets'));
$form->addElement(new XoopsFormButton('', 'upload_button', _MD_UPLOAD, 'submit'));
$form->display();
xoops_cp_footer();
exit();
} else {
echo '所选模板不存在';
}
xoops_cp_footer();
break;
case 'uploadtpl_go':
$tpltpl_handler =& xoops_gethandler('tplfile');
$tpl =& $tpltpl_handler->get($tpl_id);
if (is_object($tpl)) {
include_once XOOPS_ROOT_PATH.'/class/uploader.php';
$uploader = new XoopsMediaUploader(XOOPS_UPLOAD_PATH, array('text/html', 'application/x-cdf', 'text/plain'), 200000);
$uploader->setPrefix('tmp');
if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
if (!$uploader->upload()) {
$err = $uploader->getErrors();
} else {
$tpl->setVar('tpl_lastmodified', time());
$fp = @fopen($uploader->getSavedDestination(), 'r');
$fsource = @fread($fp, filesize($uploader->getSavedDestination()));
@fclose($fp);
$tpl->setVar('tpl_source', $fsource, true);
@unlink($uploader->getSavedDestination());
if (!$tpltpl_handler->insert($tpl)) {
$err = '向数据库中插入数据时失败';
} else {
if ($tpl->getVar('tpl_tplset') == $xoopsConfig['template_set']) {
include_once XOOPS_ROOT_PATH.'/class/template.php';
xoops_template_touch($tpl_id, true);
}
}
}
} else {
$err = '文件上传失败';
}
if (isset($err)) {
xoops_cp_header(false);
xoops_error($err);
xoops_cp_footer();
exit();
}
redirect_header('admin.php?fct=tplsets&op=listtpl&moddir='.$tpl->getVar('tpl_module').'&tplset='.urlencode($tpl->getVar('tpl_tplset')), 2, _MD_AM_DBUPDATED);
}
break;
// upload new file
case 'uploadtpl2':
xoops_cp_header();
$tplset = htmlspecialchars($tplset);
$moddir = htmlspecialchars($moddir);
echo '<a href="admin.php?fct=tplsets">'. _MD_TPLMAIN .'</a> <span style="font-weight:bold;">»»</span> <a href="./admin.php?fct=tplsets&op=listtpl&moddir='.$moddir.'&tplset='.$tplset.'">'.$tplset.'</a> <span style="font-weight:bold;">»»</span> '._MD_UPLOAD.'<br /><br />';
include_once XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
$form = new XoopsThemeForm(_MD_UPLOAD, 'tplupload_form', 'admin.php');
$form->setExtra('enctype="multipart/form-data"');
$form->addElement(new XoopsFormLabel(_MD_FILENAME, $file));
$form->addElement(new XoopsFormFile(_MD_CHOOSEFILE.'<br /><span style="color:#ff0000;">'._MD_UPWILLREPLACE.'</span>', 'tpl_upload', 200000), true);
$form->addElement(new XoopsFormHidden('moddir', $moddir));
$form->addElement(new XoopsFormHidden('tplset', $tplset));
$form->addElement(new XoopsFormHidden('file', $file));
$form->addElement(new XoopsFormHidden('type', $type));
$form->addElement(new XoopsFormHidden('op', 'uploadtpl2_go'));
$form->addElement(new XoopsFormHidden('fct', 'tplsets'));
$form->addElement(new XoopsFormButton('', 'ploadtarupload_button', _MD_UPLOAD, 'submit'));
$form->display();
xoops_cp_footer();
break;
case 'uploadtpl2_go':
include_once XOOPS_ROOT_PATH.'/class/uploader.php';
$uploader = new XoopsMediaUploader(XOOPS_UPLOAD_PATH, array('text/html', 'application/x-cdf', 'text/plain'), 200000);
$uploader->setPrefix('tmp');
if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
if (!$uploader->upload()) {
$err = $uploader->getErrors();
} else {
$tpltpl_handler =& xoops_gethandler('tplfile');
$tplfile =& $tpltpl_handler->find('default', $type, null, $moddir, $file);
if (is_array($tplfile)) {
$tpl =& $tplfile[0]->xoopsClone();
$tpl->setVar('tpl_id', 0);
$tpl->setVar('tpl_tplset', $tplset);
$tpl->setVar('tpl_lastmodified', time());
$fp = @fopen($uploader->getSavedDestination(), 'r');
$fsource = @fread($fp, filesize($uploader->getSavedDestination()));
@fclose($fp);
$tpl->setVar('tpl_source', $fsource, true);
@unlink($uploader->getSavedDestination());
if (!$tpltpl_handler->insert($tpl)) {
$err = '向数据库中插入数据时失败';
} else {
if ($tplset == $xoopsConfig['template_set']) {
include_once XOOPS_ROOT_PATH.'/class/template.php';
xoops_template_touch($tpl->getVar('tpl_id'), true);
}
}
} else {
$err = '该模板文件没有必要安装(使用该模板的PHP文件不存在)';
}
}
} else {
$err = '文件上传失败';
}
if (isset($err)) {
xoops_cp_header(false);
xoops_error($err);
xoops_cp_footer();
exit();
}
redirect_header('admin.php?fct=tplsets&op=listtpl&moddir='.$moddir.'&tplset='.urlencode($tplset), 2, _MD_AM_DBUPDATED);
break;
case 'download':
if (isset($tplset)) {
if (false != extension_loaded('zlib')) {
if (isset($_GET['method']) && $_GET['method'] == 'tar') {
if (@function_exists('gzencode')) {
require_once(XOOPS_ROOT_PATH.'/class/tardownloader.php');
$downloader = new XoopsTarDownloader();
}
} else {
if (@function_exists('gzcompress')) {
require_once(XOOPS_ROOT_PATH.'/class/zipdownloader.php');
$downloader = new XoopsZipDownloader();
}
}
$tplset_handler =& xoops_gethandler('tplset');
$tplsetobj =& $tplset_handler->getByName($tplset);
$xml = "<"."?xml version=\"1.0\"?".">\r\n<tplset>\r\n <name>".$tplset."</name>\r\n <dateCreated>".$tplsetobj->getVar('tplset_created')."</dateCreated>\r\n <credits>\r\n".$tplsetobj->getVar('tplset_credits')."\r\n </credits>\r\n <generator>".XOOPS_VERSION."</generator>\r\n <templates>";
$tpltpl_handler =& xoops_gethandler('tplfile');
$files =& $tpltpl_handler->getObjects(new Criteria('tpl_tplset', $tplset), true);
$fcount = count($files);
if ($fcount > 0) {
for ($i = 0; $i < $fcount; $i++) {
if ($files[$i]->getVar('tpl_type') == 'block') {
$path = $tplset.'/templates/'.$files[$i]->getVar('tpl_module').'/blocks/'.$files[$i]->getVar('tpl_file');
$xml .= "\r\n <template name=\"".$files[$i]->getVar('tpl_file')."\">\r\n <module>".$files[$i]->getVar('tpl_module')."</module>\r\n <type>block</type>\r\n <lastModified>".$files[$i]->getVar('tpl_lastmodified')."</lastModified>\r\n </template>";
} elseif ($files[$i]->getVar('tpl_type') == 'module') {
$path = $tplset.'/templates/'.$files[$i]->getVar('tpl_module').'/'.$files[$i]->getVar('tpl_file');
$xml .= "\r\n <template name=\"".$files[$i]->getVar('tpl_file')."\">\r\n <module>".$files[$i]->getVar('tpl_module')."</module>\r\n <type>module</type>\r\n <lastModified>".$files[$i]->getVar('tpl_lastmodified')."</lastModified>\r\n </template>";
}
$downloader->addFileData($files[$i]->getVar('tpl_source'), $path, $files[$i]->getVar('tpl_lastmodified'));
}
$xml .= "\r\n </templates>";
/*
$xml ." "\r\n <images>";
$image_handler =& xoops_gethandler('imagesetimg');
$criteria = new CriteriaCompo(new Criteria('l.tplset_name', $tplset));
$criteria->add(new Criteria('s.imgset_refid', 0));
$ifiles =& $image_handler->getObjects($criteria);
$fcount = count($ifiles);
for ($i = 0; $i < $fcount; $i++) {
$dummyimage = XOOPS_CACHE_PATH.'/_dummyimage'.$i.time();
$fp = @fopen($dummyimage, 'wb');
@fwrite($fp, $ifiles[$i]->getVar('imgsetimg_body'));
@fclose($fp);
$downloader->addBinaryFile($dummyimage, $tplset.'/images/'.$ifiles[$i]->getVar('imgsetimg_file'));
@unlink($dummyimage);
$xml .= " \r\n <image name=\"".$ifiles[$i]->getVar('imgsetimg_file')."\"></image>";
}
*/
}
//$xml .= "\r\n </images>
$xml .= "\r\n</tplset>";
$downloader->addFileData($xml, $tplset.'/tplset.xml', time());
echo $downloader->download($tplset, true);
} else {
xoops_cp_header();
xoops_error(_MD_NOZLIB);
xoops_cp_footer();
}
}
break;
case 'generatetpl':
xoops_cp_header();
xoops_confirm(array('tplset' => $tplset, 'moddir' => $moddir, 'file' => $file, 'type' => $type, 'op' => 'generatetpl_go', 'fct' => 'tplsets'), 'admin.php', _MD_PLZGENERATE, _MD_GENERATE);
xoops_cp_footer();
break;
case 'generatetpl_go':
$tpltpl_handler =& xoops_gethandler('tplfile');
$tplfile =& $tpltpl_handler->find('default', $type, null, $moddir, $file, true);
if (count($tplfile) > 0) {
$newtpl =& $tplfile[0]->xoopsClone();
$newtpl->setVar('tpl_id', 0);
$newtpl->setVar('tpl_tplset', $tplset);
$newtpl->setVar('tpl_lastmodified', time());
$newtpl->setVar('tpl_lastimported', 0);
if (!$tpltpl_handler->insert($newtpl)) {
$err = '错误: 无法插入模板<b>'.$tplfile[0]->getVar('tpl_file').'</b>到数据库.';
} else {
if ($tplset == $xoopsConfig['template_set']) {
include_once XOOPS_ROOT_PATH.'/class/template.php';
xoops_template_touch($newtpl->getVar('tpl_id'));
}
}
} else {
$err = '所选文件不存在)';
}
if (!isset($err)) {
redirect_header('admin.php?fct=tplsets&op=listtpl&moddir='.$newtpl->getVar('tpl_module').'&tplset='.urlencode($newtpl->getVar('tpl_tplset')), 2, _MD_AM_DBUPDATED);
}
xoops_cp_header();
xoops_error($err);
echo '<br /><a href="admin.php?fct=tplsets">'._MD_AM_BTOTADMIN.'</a>';
xoops_cp_footer();
break;
case 'generatemod':
xoops_cp_header();
xoops_confirm(array('tplset' => $tplset, 'op' => 'generatemod_go', 'fct' => 'tplsets', 'moddir' => $moddir), 'admin.php', _MD_PLZGENERATE, _MD_GENERATE);
xoops_cp_footer();
break;
case 'generatemod_go':
$tpltpl_handler =& xoops_gethandler('tplfile');
xoops_cp_header();
echo '<code>';
$tplfiles =& $tpltpl_handler->find('default', 'module', null, $moddir, null, true);
$fcount = count($tplfiles);
if ($fcount > 0) {
echo '正在安装模板'.$tplset.'的模块模板文件...<br />';
for ($i = 0; $i < $fcount; $i++) {
$newtpl =& $tplfiles[$i]->xoopsClone();
$newtpl->setVar('tpl_id', 0);
$newtpl->setVar('tpl_tplset', $tplset);
$newtpl->setVar('tpl_lastmodified', time());
$newtpl->setVar('tpl_lastimported', 0);
if (!$tpltpl_handler->insert($newtpl)) {
echo ' <span style="color:#ff0000;">错误: 无法插入模板<b>'.$file.'</b>到数据库.</span><br />';
} else {
if ($tplset == $xoopsConfig['template_set']) {
include_once XOOPS_ROOT_PATH.'/class/template.php';
xoops_template_touch($newtpl->getVar('tpl_id'));
}
echo ' 模板<b>'.$tplfiles[$i]->getVar('tpl_file').'</b> 已添加到到数据库.<br />';
}
}
flush();
unset($newtpl);
}
unset($files);
$tplfiles =& $tpltpl_handler->find('default', 'block', null, $moddir, null, true);
$fcount = count($tplfiles);
if ($fcount > 0) {
echo ' 正在安装区块模板文件...<br />';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -