📄 styles.inc.php
字号:
<?php
/*
[DISCUZ!] admin/styles.inc.php - add, edit, export/import styles, etc
This is NOT a freeware, use is subject to license terms
Version: 4.0.0
Web: http://www.comsenz.com
Copyright: 2001-2005 Comsenz Technology Ltd.
Last Modified: 2004/10/23 03:53
*/
if(!defined('IN_DISCUZ') || !isset($PHP_SELF) || !preg_match("/[\/\\\\]admincp\.php$/", $PHP_SELF)) {
exit('Access Denied');
}
if($action == 'styles' && $export) {
$query = $db->query("SELECT s.name, s.templateid, t.name AS tplname, t.directory, t.copyright FROM {$tablepre}styles s LEFT JOIN {$tablepre}templates t ON t.templateid=s.templateid WHERE styleid='$export'");
if(!$stylearray = $db->fetch_array($query)) {
cpheader();
cpmsg('styles_export_invalid');
}
$stylearray['version'] = strip_tags($version);
$time = gmdate("$dateformat $timeformat", $timestamp + $timeoffset * 3600);
$query = $db->query("SELECT * FROM {$tablepre}stylevars WHERE styleid='$export'");
while($style = $db->fetch_array($query)) {
$stylearray['style'][$style['variable']] = $style['substitute'];
}
/*
if($stylearray['templateid'] != 1) {
$dir = dir(DISCUZ_ROOT.'./'.$stylearray['directory']);
while($entry = $dir->read()) {
$filename = DISCUZ_ROOT.'./'.$stylearray['directory'].'/'.$entry;
if(is_file($filename)) {
$stylearray['template'][str_replace('.', '_DOT_', $entry)] = join('', file($filename));
}
}
$dir->close();
}
*/
$style_export = "# Discuz! Style Dump\n".
"# Version: Discuz! $version\n".
"# Time: $time\n".
"# From: $bbname ($boardurl)\n".
"#\n".
"# This file was BASE64 encoded\n".
"#\n".
"# Discuz! Community: http://www.Discuz.net\n".
"# Please visit our website for latest news about Discuz!\n".
"# --------------------------------------------------------\n\n\n".
wordwrap(base64_encode(serialize($stylearray)), 50, "\n", 1);
ob_end_clean();
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Content-Encoding: none');
header('Content-Length: '.strlen($style_export));
header('Content-Disposition: attachment; filename=discuz_style_'.$stylearray['name'].'.txt');
header('Content-Type: '.(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'application/octetstream' : 'application/octet-stream'));
echo $style_export;
dexit();
}
cpheader();
if($action == 'styles' && !$export) {
$predefinedvars = array('available', 'bgcolor', 'altbg1', 'altbg2', 'link', 'bordercolor', 'innerbordercolor', 'headercolor', 'headertext', 'catcolor',
'tabletext', 'text', 'borderwidth', 'innerborderwidth', 'tablewidth', 'tablespace', 'fontsize', 'msgfontsize', 'font', 'smfontsize',
'smfont', 'nobold', 'boardimg', 'imgdir', 'maintablewidth', 'maintablespace', 'maintablecolor', 'smdir', 'cattext');
if(!submitcheck('stylesubmit') && !submitcheck('importsubmit') && !$edit && !$export) {
$styleselect = '';
$query = $db->query("SELECT s.styleid, s.available, s.name, t.name AS tplname, t.copyright FROM {$tablepre}styles s LEFT JOIN {$tablepre}templates t ON t.templateid=s.templateid");
while($styleinfo = $db->fetch_array($query)) {
$styleselect .= "<tr align=\"center\"><td bgcolor=\"".ALTBG1."\"><input type=\"checkbox\" name=\"delete[]\" value=\"$styleinfo[styleid]\"></td>\n".
"<td bgcolor=\"".ALTBG2."\"><input type=\"text\" name=\"namenew[$styleinfo[styleid]]\" value=\"$styleinfo[name]\" size=\"18\"></td>\n".
"<td bgcolor=\"".ALTBG1."\"><input type=\"checkbox\" name=\"availablenew[$styleinfo[styleid]]\" value=\"1\" ".($styleinfo['available'] ? 'checked' : NULL)."></td>\n".
"<td bgcolor=\"".ALTBG2."\">$styleinfo[styleid]</td>\n".
"<td bgcolor=\"".ALTBG1."\">$styleinfo[tplname]</td>\n".
"<td bgcolor=\"".ALTBG2."\"><a href=\"admincp.php?action=styles&export=$styleinfo[styleid]\">[$lang[download]]</a></td>\n".
"<td bgcolor=\"".ALTBG1."\"><a href=\"admincp.php?action=styles&edit=$styleinfo[styleid]\">[$lang[detail]]</a></td></tr>\n";
}
?>
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td><?=$lang['tips']?></td></tr>
<tr bgcolor="<?=ALTBG1?>"><td>
<br><?=$lang['styles_tips']?>
</td></tr></table><br><br>
<form method="post" action="admincp.php?action=styles">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header" align="center">
<td width="48"><input type="checkbox" name="chkall" class="header" onclick="checkall(this.form)"><?=$lang['del']?></td>
<td><?=$lang['styles_name']?></td><td><?=$lang['available']?></td><td>styleID</td><td><?=$lang['styles_template']?></td></td><td><?=$lang['export']?></td><td><?=$lang['edit']?></td></tr>
<?=$styleselect?>
<tr><td colspan="8" class="singleborder"> </td></tr>
<tr align="center"><td bgcolor="<?=ALTBG1?>"><?=$lang['add_new']?></td>
<td bgcolor="<?=ALTBG2?>"><input type='text' name="newname" size="18"></td>
<td colspan="6" bgcolor="<?=ALTBG2?>"> </td>
</tr></table><br>
<center><input type="submit" name="stylesubmit" value="<?=$lang['submit']?>"></center></form>
<br><form method="post" action="admincp.php?action=styles">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td><?=$lang['styles_import']?></td></tr>
<tr><td bgcolor="<?=ALTBG1?>" align="center"><textarea name="styledata" cols="80" rows="8"></textarea><br>
<input type="checkbox" name="ignoreversion" value="1"> <?=$lang['styles_import_ignore_version']?></td></tr>
</table><br><center><input type="submit" name="importsubmit" value="<?=$lang['submit']?>"></center></form>
<?
} elseif(submitcheck('stylesubmit')) {
if(is_array($namenew)) {
foreach($namenew as $id => $val) {
$db->query("UPDATE {$tablepre}styles SET name='$namenew[$id]', available='$availablenew[$id]' WHERE styleid='$id'");
}
}
if(is_array($delete)) {
$ids = $comma = '';
foreach($delete as $id) {
$ids .= "$comma'$id'";
$comma = ',';
}
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}settings WHERE variable='styleid' AND value IN ($ids)");
if($db->result($query, 0)) {
cpmsg('styles_delete_invalid');
}
$db->query("DELETE FROM {$tablepre}styles WHERE styleid IN ($ids)");
$db->query("DELETE FROM {$tablepre}stylevars WHERE styleid IN ($ids)");
$db->query("UPDATE {$tablepre}members SET styleid='0' WHERE styleid IN ($ids)");
$db->query("UPDATE {$tablepre}forums SET styleid='0' WHERE styleid IN ($ids)");
$db->query("UPDATE {$tablepre}sessions SET styleid='$_DCACHE[settings][styleid]' WHERE styleid IN ($ids)");
}
if($newname) {
$db->query("INSERT INTO {$tablepre}styles (name, templateid) VALUES ('$newname', '1')");
$styleidnew = $db->insert_id();
foreach($predefinedvars as $variable) {
$db->query("INSERT INTO {$tablepre}stylevars (styleid, variable)
VALUES ('$styleidnew', '$variable')");
}
}
cpmsg('styles_edit_succeed', 'admincp.php?action=styles');
} elseif(submitcheck('importsubmit')) {
$styledata = preg_replace("/(#.*\s+)*/", '', $styledata);
$stylearray = daddslashes(unserialize(base64_decode($styledata)), 1);
if(!is_array($stylearray)) {
cpmsg('styles_import_data_invalid');
} elseif(empty($ignoreversion) && strip_tags($stylearray['version']) != strip_tags($version)) {
cpmsg('styles_import_version_invalid');
}
$renamed = 0;
if($stylearray['templateid'] != 1) {
$templatedir = DISCUZ_ROOT.'./'.$stylearray['directory'];
if(!is_dir($templatedir)) {
if(!@mkdir($templatedir, 0777)) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -