📄 styles.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: styles.inc.php 13486 2008-04-18 04:32:01Z liuqiang $
*/
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
if($operation == 'export' && $id) {
$stylearray = $db->fetch_first("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='$id'");
if(!$stylearray) {
cpheader();
cpmsg('styles_export_invalid', '', 'error');
}
$stylearray['version'] = strip_tags($version);
$time = gmdate("$dateformat $timeformat", $timestamp + $timeoffset * 3600);
$query = $db->query("SELECT * FROM {$tablepre}stylevars WHERE styleid='$id'");
while($style = $db->fetch_array($query)) {
$stylearray['style'][$style['variable']] = $style['substitute'];
}
$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();
dheader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
dheader('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
dheader('Cache-Control: no-cache, must-revalidate');
dheader('Pragma: no-cache');
dheader('Content-Encoding: none');
dheader('Content-Length: '.strlen($style_export));
dheader('Content-Disposition: attachment; filename=discuz_style_'.$stylearray['name'].'.txt');
dheader('Content-Type: '.(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'application/octetstream' : 'application/octet-stream'));
echo $style_export;
dexit();
}
cpheader();
$predefinedvars = array('available', 'bgcolor', 'altbg1', 'altbg2', 'link', 'bordercolor', 'headercolor', 'headertext', 'catcolor',
'tabletext', 'text', 'borderwidth', 'tablespace', 'fontsize', 'msgfontsize', 'msgbigsize', 'msgsmallsize',
'font', 'smfontsize', 'smfont', 'boardimg', 'imgdir', 'maintablewidth', 'stypeid', 'bgborder',
'catborder', 'inputborder', 'lighttext', 'headermenu', 'headermenutext', 'framebgcolor',
'noticebg', 'commonboxborder', 'tablebg', 'highlightlink', 'commonboxbg', 'boxspace', 'portalboxbgcode',
'noticeborder', 'noticetext'
);
if(!$operation) {
if(!submitcheck('stylesubmit')) {
$defaultstyleid = $db->result_first("SELECT value FROM {$tablepre}settings WHERE variable='styleid'");
$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><td>".($styleinfo['styleid'] != $defaultstyleid ? "<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$styleinfo[styleid]\">" : NULL)."</td>\n".
"<td><input type=\"text\" class=\"txt\" name=\"namenew[$styleinfo[styleid]]\" value=\"$styleinfo[name]\" size=\"18\"></td>\n".
"<td>".($styleinfo['styleid'] != $defaultstyleid ? "<input class=\"checkbox\" type=\"checkbox\" name=\"availablenew[$styleinfo[styleid]]\" value=\"1\" ".($styleinfo['available'] ? 'checked' : NULL).">" : "<input class=\"checkbox\" type=\"hidden\" name=\"availablenew[$styleinfo[styleid]]\" value=\"1\">")."</td>\n".
"<td>$styleinfo[styleid]</td>\n".
"<td>$styleinfo[tplname]</td>\n".
"<td><a href=\"admincp.php?action=styles&operation=export&id=$styleinfo[styleid]\" class=\"act\">$lang[export]</a></td>\n".
"<td><a href=\"admincp.php?action=styles&operation=edit&id=$styleinfo[styleid]\" class=\"act\">$lang[detail]</a></td></tr>\n";
}
shownav('forum', 'nav_styles');
showsubmenu('nav_styles', array(
array('config', 'styles&operation=config', '0'),
array('admin', 'styles', '1'),
array('import', 'styles&operation=import', '0')
));
showtips('styles_tips');
showformheader('styles');
showhiddenfields(array('updatecsscache' => 0));
showtableheader();
showsubtitle(array('', 'styles_name', 'available', 'styleID', 'styles_template', '', ''));
echo $styleselect;
echo '<tr><td>'.$lang['add_new'].'</td><td><input type="text" class="txt" name="newname" size="18"></td><td colspan="6"> </td></tr>';
showsubmit('stylesubmit', 'submit', 'del', '<input onclick="this.form.updatecsscache.value=1" type="submit" class="btn" name="stylesubmit" value="'.lang('styles_csscache_update').'">');
showtablefooter();
showformfooter();
} else {
if($updatecsscache) {
updatecache('styles');
cpmsg('csscache_update', 'admincp.php?action=styles', 'succeed');
} else {
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($ids = implodeids($delete)) {
if($db->result_first("SELECT COUNT(*) FROM {$tablepre}settings WHERE variable='styleid' AND value IN ($ids)")) {
cpmsg('styles_delete_invalid', '', 'error');
}
$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')");
}
}
updatecache('settings');
updatecache('styles');
cpmsg('styles_edit_succeed', 'admincp.php?action=styles', 'succeed');
}
}
} elseif($operation == 'import') {
if(!submitcheck('importsubmit')) {
shownav('forum', 'nav_styles');
showsubmenu('nav_styles', array(
array('config', 'styles&operation=config', '0'),
array('admin', 'styles', '0'),
array('import', 'styles&operation=import', '1')
));
showformheader('styles&operation=import', 'enctype');
showtableheader('styles_import');
showtablerow('', '', '<input type="file" name="importfile" size="40" class="uploadbtn marginbot" />');
showtablerow('', '', '<input class="checkbox" type="checkbox" name="ignoreversion" id="ignoreversion" value="1" /><label for="ignoreversion"> '.lang('styles_import_ignore_version').'</label>');
showsubmit('importsubmit');
showtablefooter();
showformfooter();
} else {
$styledata = preg_replace("/(#.*\s+)*/", '', @implode('', file($_FILES['importfile']['tmp_name'])));
@unlink($_FILES['importfile']['tmp_name']);
$stylearray = daddslashes(unserialize(base64_decode($styledata)), 1);
if(!is_array($stylearray)) {
cpmsg('styles_import_data_invalid', '', 'error');
} elseif(empty($ignoreversion) && strip_tags($stylearray['version']) != strip_tags($version)) {
cpmsg('styles_import_version_invalid', '', 'error');
}
$renamed = 0;
if($stylearray['templateid'] != 1) {
$templatedir = DISCUZ_ROOT.'./'.$stylearray['directory'];
if(!is_dir($templatedir)) {
if(!@mkdir($templatedir, 0777)) {
$basedir = dirname($stylearray['directory']);
cpmsg('styles_import_directory_invalid', '', 'error');
}
}
if($db->result_first("SELECT COUNT(*) FROM {$tablepre}templates WHERE name='$stylearray[tplname]'")) {
$stylearray['tplname'] .= '_'.random(4);
$renamed = 1;
}
$db->query("INSERT INTO {$tablepre}templates (name, directory, copyright)
VALUES ('$stylearray[tplname]', '$stylearray[directory]', '$stylearray[copyright]')");
$templateid = $db->insert_id();
} else {
$templateid = 1;
}
if($db->result_first("SELECT COUNT(*) FROM {$tablepre}styles WHERE name='$stylearray[name]'")) {
$stylearray['name'] .= '_'.random(4);
$renamed = 1;
}
$db->query("INSERT INTO {$tablepre}styles (name, templateid)
VALUES ('$stylearray[name]', '$templateid')");
$styleidnew = $db->insert_id();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -