📄 smilies.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: smilies.inc.php 13484 2008-04-18 03:11:29Z liuqiang $
*/
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
if($operation == 'export' && $id) {
$smileyarray = $db->fetch_first("SELECT name, directory FROM {$tablepre}imagetypes WHERE typeid='$id' AND type='smiley'");
if(!$smileyarray) {
cpheader();
cpmsg('smilies_export_invalid', '', 'error');
}
$smileyarray['smilies'] = array();
$query = $db->query("SELECT typeid, displayorder, code, url FROM {$tablepre}smilies WHERE type='smiley' AND typeid='$id'");
while($smiley = $db->fetch_array($query)) {
$smileyarray['smilies'][] = $smiley;
}
$smileyarray['version'] = strip_tags($version);
$time = gmdate("$dateformat $timeformat", $timestamp + $timeoffset * 3600);
$smiley_export = "# Discuz! Smilies 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($smileyarray)), 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($smiley_export));
dheader('Content-Disposition: attachment; filename=discuz_smilies_'.$smileyarray['name'].'.txt');
dheader('Content-Type: '.(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? 'application/octetstream' : 'application/octet-stream'));
echo $smiley_export;
dexit();
}
cpheader();
if(!$operation) {
if(!submitcheck('smiliessubmit')) {
shownav('topic', 'smilies_edit');
showsubmenu('nav_smilies', array(
array('smilies_type', 'smilies', 1),
array('smilies_import', 'smilies&operation=import', 0),
));
showtips('smilies_tips_smileytypes');
showformheader('smilies');
showtableheader();
showsubtitle(array('', 'display_order', 'smilies_type', 'dir', 'smilies_nums', '', ''));
$dirfilter = array();
$query = $db->query("SELECT * FROM {$tablepre}imagetypes WHERE type='smiley' ORDER BY displayorder");
while($type = $db->fetch_array($query)) {
$squery = $db->query("SELECT COUNT(*) FROM {$tablepre}smilies WHERE typeid='$type[typeid]'");
$smiliesnum = $db->result($squery, 0);
showtablerow('', array('class="td25"', 'class="td28"'), array(
"<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$type[typeid]\" ".($smiliesnum ? 'disabled' : '').">",
"<input type=\"text\" class=\"txt\" name=\"displayordernew[$type[typeid]]\" value=\"$type[displayorder]\" size=\"2\">",
"<input type=\"text\" class=\"txt\" name=\"namenew[$type[typeid]]\" value=\"$type[name]\" size=\"15\">",
"./images/smilies/$type[directory]",
$smiliesnum,
"<a href=\"admincp.php?action=smilies&operation=export&id=$type[typeid]\" class=\"act\">$lang[export]</a>",
"<a href=\"admincp.php?action=smilies&operation=edit&id=$type[typeid]\" class=\"act\">$lang[detail]</a>"
));
$dirfilter[] = $type['directory'];
}
$smdir = DISCUZ_ROOT.'./images/smilies';
$smiliesdir = dir($smdir);
$dirnum = 0;
while($entry = $smiliesdir->read()) {
if($entry != '.' && $entry != '..' && !in_array($entry, $dirfilter) && preg_match("/^\w+$/", $entry) && strlen($entry) < 30 && is_dir($smdir.'/'.$entry)){
showtablerow('', array('class="td25"', 'class="td28"'), array(
($dirnum ? ' ' : $lang['add_new']),
'<input type="text" class="txt" name="newdisplayorder[]" size="2">',
'<input type="text" class="txt" name="newname[]" size="15">',
'./images/smilies/'.$entry,
'<input type="hidden" name="newdirectory[]" value="'.$entry.'">',
''
));
$dirnum++;
}
}
if(!$dirnum) {
showtablerow('', array('', 'colspan="6"'), array(
lang('add_new'),
lang('smiliesupload_tips')
));
}
showsubmit('smiliessubmit', 'submit', 'del');
showtablefooter();
showformfooter();
} else {
if(is_array($namenew)) {
foreach($namenew as $id => $val) {
$db->query("UPDATE {$tablepre}imagetypes SET name='".htmlspecialchars(trim($val))."', displayorder='$displayordernew[$id]' WHERE typeid='$id'");
}
}
if($ids = implodeids($delete)) {
if($db->result_first("SELECT COUNT(*) FROM {$tablepre}smilies WHERE type='smiley' AND typeid IN ($ids)")) {
cpmsg('smilies_delete_invalid', '', 'error');
}
$db->query("DELETE FROM {$tablepre}imagetypes WHERE typeid IN ($ids)");
}
if(is_array($newname)) {
foreach($newname as $key => $val) {
$val = trim($val);
if($val) {
$smurl = './images/smilies/'.$newdiredctory[$key];
if(!is_dir(DISCUZ_ROOT.$smurl)) {
cpmsg('smilies_directory_invalid', '', 'error');
}
$db->query("INSERT INTO {$tablepre}imagetypes (name, type, displayorder, directory) VALUES ('".htmlspecialchars($val)."', 'smiley', '$newdisplayorder[$key]', '$newdirectory[$key]')");
}
}
}
updatecache('smileytypes');
cpmsg('smilies_edit_succeed', 'admincp.php?action=smilies', 'succeed');
}
} elseif($operation == 'edit' && $id) {
$type = $db->fetch_first("SELECT typeid, name, directory FROM {$tablepre}imagetypes WHERE typeid='$id'AND type='smiley'");
$smurl = './images/smilies/'.$type['directory'];
$smdir = DISCUZ_ROOT.$smurl;
if(!is_dir($smdir)) {
cpmsg('smilies_directory_invalid', '', 'error');
}
if(!$do) {
if(!submitcheck('editsubmit')) {
$smiliesperpage = 10;
$page = max(1, intval($page));
$start_limit = ($page - 1) * $smiliesperpage;
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}smilies WHERE type='smiley' AND typeid='$id'");
$multipage = multi($num, $smiliesperpage, $page, 'admincp.php?action=smilies&operation=edit&id='.$id);
$smileynum = 1;
$smilies = '';
$query = $db->query("SELECT * FROM {$tablepre}smilies WHERE type='smiley' AND typeid='$id' ORDER BY displayorder LIMIT $start_limit, $smiliesperpage");
while($smiley = $db->fetch_array($query)) {
$smilies .= showtablerow('', array('class="td25"', 'class="td28 td24"', 'class="td23"', 'class="td23"', 'class="td24"'), array(
"<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$smiley[id]\">",
"<input type=\"text\" class=\"txt\" size=\"2\" name=\"displayorder[$smiley[id]]\" value=\"$smiley[displayorder]\">",
"<img src=\"$smurl/$smiley[url]\" border=\"0\" onload=\"if(this.height>30) {this.resized=true; this.height=30;}\" onmouseover=\"if(this.resized) this.style.cursor='pointer';\" onclick=\"if(!this.resized) {return false;} else {window.open(this.src);}\">",
$smiley['id'],
"<input type=\"text\" class=\"txt\" size=\"25\" name=\"code[$smiley[id]]\" value=\"".dhtmlspecialchars($smiley['code'])."\" id=\"code_$smileynum\" smileyid=\"$smiley[id]\">",
"<input type=\"hidden\" value=\"$smiley[url]\" id=\"url_$smileynum\">$smiley[url]"
), TRUE);
$imgfilter[] = $smiley[url];
$smileynum ++;
}
shownav('topic', 'nav_smilies');
showsubmenu(lang('smilies_edit').' - '.$type[name], array(
array('admin', "smilies&operation=edit&id=$id", !$do),
array('add', "smilies&operation=edit&do=add&id=$id", $do == 'add')
));
showformheader("smilies&operation=edit&id=$id");
showtableheader('', 'nobottom');
showsubtitle(array('', 'display_order', 'smilies_edit_image', 'smilies_id', 'smilies_edit_code', 'smilies_edit_filename'));
echo $smilies;
showtablerow('', array('', 'colspan="5"'), array(
'',
$lang['smilies_edit_add_code'].' <input type="text" class="txt" style="margin-right:0;width:40px;" size="2" value="'.$lang['smilies_prefix'].'" id="prefix" onclick="clearinput(this, \''.$lang['smilies_prefix'].'\')" /> + <select id="middle"><option value="1">'.$lang['smilies_edit_order_file'].'</option><option value="2">'.$lang['smilies_edit_order_radom'].'</option><option value="3">'.$lang['smilies_id'].'</option></select> + <input type="text" class="txt" style="margin-right:0;width:40px;" size="2" value="'.$lang['smilies_suffix'].'" id="suffix" onclick="clearinput(this, \''.$lang['smilies_suffix'].'\')" /> <input type="button" class="btn" onclick="addsmileycodes(\''.$smileynum.'\', \'\');" value="'.$lang['apply'].'">'
));
showsubmit('editsubmit', 'submit', 'del', '<input type="button" class="btn" value="'.$lang['return'].'" onclick="window.location=\'admincp.php?action=smilies\'">', $multipage);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -