📄 templates.inc.php
字号:
$islang = FALSE;
if(preg_match('/\.lang\.php$/i', $filename)) {
$currentlang = $lang;
$currentmsglang = $msglang;
unset($lang, $msglang);
include $filename;
$islang = TRUE;
$langinputs = '';
isset($actioncode) && $langinputs .= langedit('actioncode');
isset($language) && $langinputs .= langedit('language');
isset($lang) && $langinputs .= langedit('lang');
isset($msglang) && $langinputs .= langedit('msglang');
isset($spacelanguage) && $langinputs .= langedit('spacelanguage');
$lang = $currentlang;
$msglang = $currentmsglang;
} else {
$fp = @fopen($filename, 'rb');
$content = @fread($fp, filesize($filename));
fclose($fp);
}
$resetbutton = $onclickevent = $checkresult = '';
if($template['templateid'] != 1) {
$defaulttpl = DISCUZ_ROOT."./templates/default/$fn";
if(file_exists($defaulttpl) && md5_file($defaulttpl) != md5_file($filename)) {
$resetbutton = ' <input style="vertical-align: middle" type="button" class="btn" value="'.$lang['templates_edit_reset'].'" accesskey="r" onclick="location.href=\''.$BASESCRIPT.'?action=templates&operation=edit&templateid='.$template['templateid'].'&fn='.$fn.'&keyword='.$keywordenc.'&reset=yes\'"> '.
(strtolower(fileext($fn)) == 'htm' ? '<input style="vertical-align: middle" type="button" class="btn" value="'.$lang['templates_edit_diff'].'" onclick="location.href=\''.$BASESCRIPT.'?action=templates&operation=edit&templateid='.$template['templateid'].'&fn='.$fn.'&keyword='.$keywordenc.'&checktpl=yes\'"> ' : '');
}
$dellist = $addlist = array();
if($checktpl && strtolower(fileext($fn)) == 'htm') {
$fp = @fopen($defaulttpl, 'rb');
$defaultcontent = @fread($fp, filesize($defaulttpl));
fclose($fp);
require_once DISCUZ_ROOT.'./include/diff.class.php';
$a = new Diff($content, $defaultcontent);
$entries = $a->fetch_diff();
$result = '<br /><table class="tb tb2 nobdb" width="100%" border="0" cellpadding="0" cellspacing="0"><tr class="partition"><td>'.$lang['templates_edit_diff_current'].'</td><td> </td><td>'.$lang['templates_edit_diff_default'].'</td></tr>';
foreach ($entries as $diff_entry) {
$result .= '<tr><th width="49.5%" valign="top" class="diff-'.$diff_entry->left_class().'">'.
$diff_entry->diff_text($diff_entry->left).'</th><th width="1%"> </th>'.
'<th width="49.5%" valign="top" class="diff-'.$diff_entry->right_class().'">'.
$diff_entry->diff_text($diff_entry->right)."</th></tr>";
}
$result .= '</table><br /><table class="tb tb2 nobdb" width="100%" border="0" cellpadding="4" cellspacing="0">'.
'<tr><th class="diff-deleted" style="text-align: center">'.$lang['templates_edit_diff_deleted'].'</th><th class="diff-notext"> </th></tr>'.
'<tr><th class="diff-changed" style="text-align: center" colspan="2">'.$lang['templates_edit_diff_changed'].' </th></tr>'.
'<tr><th class="diff-notext"> </th><th class="diff-added" style="text-align: center">'.$lang['templates_edit_diff_added'].'</th></tr></table>';
$checkresult = $result;
}
} else {
$onclickevent = 'onclick="return confirm(\''.$lang['templates_edit_default_overwriteconfirm'].'\')"';
}
$content = dhtmlspecialchars($content);
$filemtime = date("$dateformat $timeformat", filemtime($filename));
?>
<script language="JavaScript">
var n = 0;
function displayHTML(obj) {
win = window.open(" ", 'popup', 'toolbar = no, status = no, scrollbars=yes');
win.document.write("" + obj.value + "");
}
function HighlightAll(obj) {
obj.focus();
obj.select();
if(document.all) {
obj.createTextRange().execCommand("Copy");
window.status = "<?=$lang['templates_edit_clickboard']?>";
setTimeout("window.status=''", 1800);
}
}
function findInPage(obj, str, noalert) {
var txt, i, found;
if(str == "") {
return false;
}
if(document.layers) {
if(!obj.find(str)) {
while(obj.find(str, false, true)) {
n++;
}
} else {
n++;
}
if(n == 0 && !noalert) {
alert("<?=$lang['templates_edit_keyword_not_found']?>");
}
}
if(document.all) {
txt = obj.createTextRange();
for(i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart('character', 1);
txt.moveEnd('textedit');
}
if(found) {
txt.moveStart('character', -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
return true;
} else {
if(n > 0) {
n = 0;
findInPage(obj, str, noalert);
} else if(!noalert) {
alert("<?=$lang['templates_edit_keyword_not_found']?>");
}
}
}
return false;
}
<?
if($islang) {
?>
var ni = 0;
var niprev = 0;
function MultifindInPage(obj, str) {
for(var i = ni; i < obj.elements.length; i++) {
if(obj.elements[i].type == 'textarea') {
if(findInPage(obj.elements[i], str, 1)) {
ni = i;
break;
}
}
if(i == obj.elements.length - 1) ni = 0;
}
}
<?
}
?>
</script>
<?
shownav('style', 'templates_edit');
showsubmenu("$lang[templates_edit] - $template[name] $fn - $lang[lastmodified]: $filemtime");
showformheader("templates&operation=edit&templateid=$templateid&fn=$fn");
showhiddenfields(array('keyword' => $keywordenc));
?>
<div class="colorbox">
<?
if($islang) {
?>
<div style="margin-bottom:10px;width:99%;height:390px;overflow-y:scroll;overflow-x:hidden;">
<table class="tb tb2" style="border:none">
<tr><td><b><?=$lang['templates_edit_variable']?></b></td><td><b><?=$lang['templates_edit_value']?></b></td></tr>
<?=$langinputs?>
</table>
</div>
<?
} else {
?>
<textarea cols="100" rows="25" name="templatenew" style="margin-bottom:10px;width:99%;height:390px;"><?=$content?></textarea>
<?
}
?>
<input name="search" type="text" class="txt" style="width:150px;" accesskey="t" size="20" onChange="n=0;">
<?
if($islang) {
?>
<input type="button" class="btn" value="<?=$lang['search']?>" accesskey="f" onClick="MultifindInPage(this.form, this.form.search.value)">
<?
} else {
?>
<input type="button" class="btn" value="<?=$lang['search']?>" accesskey="f" onClick="findInPage(this.form.templatenew, this.form.search.value)">
<?
}
?>
<input type="button" class="btn" value="<?=$lang['return']?>" accesskey="e" onClick="location.href='<?=$BASESCRIPT?>?action=templates&operation=maint&id=<?=$templateid?>&keyword=<?=$keywordenc?>'">
<input type="button" class="btn" value="<?=$lang['preview']?>" accesskey="p" onClick="displayHTML(this.form.templatenew)">
<input type="button" class="btn" value="<?=$lang['copy']?>" accesskey="c" onClick="HighlightAll(this.form.templatenew)">
<?
if($allowedittpls) {
echo "<input type=\"submit\" class=\"btn\" name=\"editsubmit\" value=\"$lang[submit]\" $onclickevent><br />";
if($directorys) {
echo $lang['templates_edit_copyto_otherdirs']."<select id=\"copyto\">".
"$directorys</select> <input style=\"vertical-align: middle\" type=\"button\" class=\"btn\" value=\"$lang[templates_edit_start_copy]\" ".
"accesskey=\"r\" onclick=\"if(\$('copyto').value == 1 && confirm('$lang[templates_edit_default_overwriteconfirm]') || \$('copyto').value != 1) location.href=$BASESCRIPT.'?action=templates&operation=copy&templateid={$template['templateid']}&fn={$fn}©to='+\$('copyto').value\">";
}
echo $resetbutton;
}
echo '</div></form>'.$checkresult;
} elseif($delete == 'yes') {
checkpermission('tpledit');
if(!$confirmed) {
cpmsg('tpl_delete_confirm', "$BASESCRIPT?action=templates&operation=edit&templateid=$templateid&fn=$fn&delete=yes", 'form');
} else {
if(@unlink($filename)) {
cpmsg('tpl_delete_succeed', "$BASESCRIPT?action=templates&operation=maint&id=$templateid", 'succeed');
} else {
cpmsg('tpl_delete_fail', '', 'error');
}
}
} elseif($reset == 'yes') {
checkpermission('tpledit');
if(!$confirmed) {
cpmsg('tpl_reset_confirm', "$BASESCRIPT?action=templates&operation=edit&templateid=$templateid&fn=$fn&keyword=$keywordenc&reset=yes", 'form');
} else {
$defaultfilename = DISCUZ_ROOT.'./templates/default/'.$fn;
$filename = DISCUZ_ROOT."./$template[directory]/$fn";
if(!copy($defaultfilename, $filename)) {
cpmsg('tpl_edit_invalid', '', 'error');
}
cpmsg('tpl_reset_succeed', "$BASESCRIPT?action=templates&operation=maint&id=$templateid&keyword=$keywordenc", 'succeed');
}
} else {
checkpermission('tpledit');
if(preg_match('/\.lang\.php$/i', $filename)) {
$templatenew = '';
foreach($langnew as $key => $value) {
$templatenew .= '$'.$key." = array\n(\n";
foreach($value as $key1 => $value1) {
if(substr($value1, strlen($value1) -1 , 1) == '\\') {
$value1 .= '\\\\';
}
$templatenew .= "\t'$key1' => '".str_replace('\\\\\'', '\\\'', addcslashes(stripslashes(str_replace("\x0d\x0a", "\x0a", $value1)), "'"))."',\n";
}
$templatenew .= ");\n";
}
$templatenew = "<?php\n\n// Language Pack for Discuz! Version 1.0.0\n\n$templatenew\n?>";
} else {
$templatenew = stripslashes(str_replace("\x0d\x0a", "\x0a", $templatenew));
}
$fp = fopen($filename, 'wb');
flock($fp, 2);
fwrite($fp, $templatenew);
fclose($fp);
if(substr(basename($filename), 0, 3) == 'css') {
updatecache('styles');
}
cpmsg('tpl_edit_succeed', "$BASESCRIPT?action=templates&operation=maint&id=$templateid&keyword=$keywordenc", 'succeed');
}
} elseif($operation == 'add') {
checkpermission('tpledit');
$template = $db->fetch_first("SELECT * FROM {$tablepre}templates WHERE templateid='$id'");
if(!$template) {
cpmsg('tpl_add_invalid', '', 'error');
} elseif(!istpldir($template['directory'])) {
$directory = $template['directory'];
cpmsg('tpl_directory_invalid', '', 'error');
} elseif(file_exists(DISCUZ_ROOT."./$template[directory]/$name.htm")) {
cpmsg('tpl_add_duplicate', '', 'error');
} elseif(!@$fp = fopen(DISCUZ_ROOT."./$template[directory]/$name.htm", 'wb')) {
cpmsg('tpl_add_file_invalid', '', 'error');
}
@fclose($fp);
cpmsg('tpl_add_succeed', "$BASESCRIPT?action=templates&operation=edit&templateid=1&fn=$name.htm", 'succeed');
}
function langedit($var) {
global $$var, $currentlang;
$return = '';
foreach($$var as $key => $value) {
$return .= '<tr><td width="100" style="border:0">'.$key.'</td><td style="border:0"><textarea cols="100" rows="3" name="langnew['.$var.']['.$key.']" style="width: 95%;">'.dhtmlspecialchars($value).'</textarea></td></tr>';
}
return $return;
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -