完全仿的discuz。 上传附件的时候排版于内容之中。
实现正文,附件混编 。<?php
if ($_FILES[attach]) {
echo "<pre>";
print_r($_POST);
print_r($_FILES);
exit();
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>发表新主题:<hr />
<form enctype="multipart/form-data" action="" method="POST">
<p>标题:<input type="text" name="note_title"></p>
<p>内容:<textarea id="note_main" name="note_main" cols="40" rows="4"></textarea>
</p>
<p>上传图片:
<br />
<hr />
<div id="attachDiv" style="display:none" >
<div id="functions">
<input type="file" name="attach[]" />
<span id="localfile[]"></span>
<input type="hidden" name="localid[]" />
</div>
</div>
<hr />
<div id="attachDivBody">
</div>
<hr />
</p>
<p>上传视频:<input type="text" name="vadio"></p>
<p>是否悬赏:<input name="note_type_xuanshang" type="radio" value="1"> 是 <input name="note_type_xuanshang" type="radio" value="0"> 否 悬赏分数:<input name="note_xuanshang_score" type="radio" value="1">1分 <input name="note_xuanshang_score" type="radio" value="2">2分 <input name="note_xuanshang_score" type="radio" value="5">5分 <input name="note_xuanshang_score" type="radio" value="10">10分 <input name="note_xuanshang_score" type="radio" value="20">20分 </p>
<p>是否使用喊话道具:<input name="note_type_hanhua" type="radio" value="1"> 是 <input name="note_type_hanhua" type="radio" value="0"> 否 </p>
<p><input type="submit" value="提交"></p>
</form>
<script type="text/javascript">
function $(id){
return document.getElementById(id);
}
var aid = 1;
var attachexts = new Array();
var attachwh = new Array();
function addAttach() {
newnode = $(‘functions’).cloneNode(true);
var id = aid;
var tags;
newnode.id = ‘functions’ + id;
tags = newnode.getElementsByTagName(‘input’);
for(i in tags) {
if(tags[i].name == ‘attach[]’) {
tags[i].id = ‘attach_’ + id;
tags[i].onchange = function() {insertAttach(id)};
tags[i].unselectable = ‘on’;
tags[i].value = "";
}
if(tags[i].name == ‘localid[]’) {
tags[i].value = id;
}
}
tags = newnode.getElementsByTagName(‘span’);
for(i in tags) {
if(tags[i].id == ‘localfile[]’) {
tags[i].id = ‘localfile_’ + id;
}
}
aid++;
$(‘attachDivBody’).appendChild(newnode);
}
addAttach();
function insertAttach(id){
var path = $(‘attach_’ + id).value;
var ext = path.lastIndexOf(‘.’) == -1 ? ” : path.substr(path.lastIndexOf(‘.’) + 1, path.length).toLowerCase();
var re = new RegExp("(^|\\s|,)" + ext + "($|\\s|,)", "ig");
var localfile = $(‘attach_’ + id).value.substr($(‘attach_’ + id).value.replace(/\\/g, ‘/’).lastIndexOf(‘/’) + 1);
// attachexts[id] = is_ie && in_array(ext, [‘gif’, ‘jpg’, ‘png’, ‘bmp’]) && typeof supe == ‘undefined’ ? 2 : 1;
attachexts[id] = false && in_array(ext, [‘gif’, ‘jpg’, ‘png’, ‘bmp’]) && typeof supe == ‘undefined’ ? 2 : 1;
if(path == ”) {
return;
}
$(‘localfile_’ + id).innerHTML = ‘<a href="###delAttach" onclick="delAttach(‘ + id + ‘)">[删除]</a> <a href="###insertAttach" title="插入" onclick="insertAttachtext(‘ + id + ‘);return false;">[插入]</a> ‘+
(attachexts[id] == 2 ? ‘<span id="localimgpreview_’ + id + ‘" onmouseover="showMenu(this.id, 0, 0, 1, 0)"> <span class="smalltxt">[‘ +id + ‘]</span> <a href="###attachment" onclick="insertAttachtext(‘ + id + ‘);return false;">’ + localfile + ‘</a></span>’ : ‘<span class="smalltxt">[‘ + id + ‘]</span> ‘ + localfile);
$(‘attach_’ + id).style.display = ‘none’;
addAttach();
}
function delAttach(id){
$(‘attachDivBody’).removeChild($(‘attach_’ + id).parentNode);
//$(‘attachDivBody’).innerHTML == ” && addAttach();
//$(‘localimgpreview_’ + id + ‘_menu’) ? document.body.removeChild($(‘localimgpreview_’ + id + ‘_menu’)) : null;
}
function insertAttachtext(id){
insertText(‘[local]’ + id + ‘[/local]’, false)
}
function insertText(text, movestart, moveend, select, sel) {
$("note_main").focus();
editdoc = $("note_main");
if(document.selection && document.selection.createRange) {
sel = document.selection.createRange();
sel.text = text.replace(/\r?\n/g, ‘\r\n’);
if(movestart) {
sel.moveStart(‘character’, -strlen(text) +movestart);
sel.moveEnd(‘character’, -moveend);
} else if(movestart !== false) {
sel.moveStart(‘character’, -strlen(text));
}
sel.select();
} else {
editdoc.value += text;
}
}
</script>
</body>
</html>