)(.*)(<\/body>.*)$/i", $body, $m)) {
$header = tag_encode($m[1]);
$body = $m[2];
$footer = str_replace("\r", "
", $m[3]);
$heads = split("\r", $m[1]);
if (count($heads)) {
foreach ($heads as $l) {
if (preg_match("/href=(\"|\')(.+)(\.css)(\"|\')/i", $l, $m)) {
$css = "$m[2]$m[3]";
if (!in_array($css, $styles)) {
$styles[] = $css;
}
}
if (preg_match("/src=(\"|\')(.+)(\.js)(\"|\')/i", $l, $m)) {
$js = "$m[2]$m[3]";
if (!in_array($js, $scripts)) {
$scripts[] = $js;
}
}
}
}
}
if ($_REQUEST[encode]) {
$encode = $_REQUEST[encode];
} else {
$encode = mb_detect_encoding($body, "EUC-JP,SJIS,JIS,UTF-8,ASCII");
}
$encode != "UTF-8" && $body = mb_convert_encoding($body, "UTF-8", $encode);
}
foreach ($mb_encode as $v) {
$select = "";
$encode && $encode == $v && $select = "selected";
$encode_options .= "
";
}
$abs = str_replace("../", "/", $_REQUEST[dir]);
$html .=<<<_
_;
$javascript =<<<_
var filedialog;
var previewwin;
parent.top.set_status('mainwindow', 'htmlエディタはSSIやAjaxで挿入するテキストを編集します。保存と同時に反映されます。');
function save(flag) {
if (document.editform.filename.value=='') {
saveas(flag);
} else {
document.editform.saveflag.value=flag;
var text = '
\
上書き保存しても宜しいですか?';
if (!flag) {
text += '
保存後はエディタが閉じられます。';
}
document.getElementById('confirmdialog').innerHTML = text;
$(function() {
$('#confirmdialog').dialog({
title: '上書き確認',
resizable: false,width: 400,height:170,modal:true,show:'blind',hide:'blind',
buttons: {
上書き保存: function() {
$(this).dialog('close');
if (flag) {
document.editform.target='blind';
} else {
document.editform.target='';
}
document.editform.cmd.value='';
document.editform.submit();
},
キャンセル: function() { $(this).dialog('close'); }
}
});
});
}
}
function saveas(flag) {
document.editform.saveflag.value=flag;
path = document.editform.dir.value+document.editform.filename.value;
fileDialog = window.open('filedialog.php?cd=1&ud=../&ua=/&func=savefile&types=html&path='+path,'fileDialog', 'width=920,height=600,status=no');
filedialog.focus();
}
function savefile(file) {
file = '..' + file;
var Split = file.split('/');
var cnt = Split.length;
var dir = '';
for(i = 0; i < cnt; i++) {
if (i == cnt - 1) {
filename = Split[i];
} else {
dir += Split[i] + '/';
}
}
if (filename) {
if (document.editform.saveflag.value) {
document.editform.target='blind';
} else {
document.editform.target='';
}
document.editform.cmd.value='';
document.editform.dir.value=dir;
document.editform.filename.value=filename;
document.editform.submit();
}
}
function windowGoResize() {
var size = GetWindowSize();
var v = 80;
document.getElementById('editor').style.height=size[1]-v+'px';
}
windowGoResize();
window.onresize=windowGoResize;
$(window).unload(function(){
window.unload=parent.top.set_status('mainwindow', '');
});
_;
?>