NoteOnMe博客平台搭建
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

364 lines
11 KiB

<!doctype html>
<?php
require_once "pdo.php";
session_start();
if ( isset($_SESSION['error']) ) {
echo '<p style="color:red">'.$_SESSION['error']."</p>\n";
unset($_SESSION['error']);
}
if (isset($_GET['article_id']) )
{
$stmt = $pdo->prepare('SELECT content, headline,user_id,public,category FROM article WHERE article_id = :article_id');
$stmt->execute(array( ':article_id' => $_GET["article_id"]));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ( $row == false ) {
header('Location: index.php');
}
}
?>
<html>
<head>
<meta charset="utf-8"/>
<link rel="stylesheet" type="text/css" href="css/templatemo-style.css?t={{time()}}">
<link type="text/css" href="highlight/styles/a11y-light.css?t={{time()}}" rel="stylesheet">
<script src="highlight/highlight.pack.js"></script>
<script src="js/jquery.min.js"></script>
<script src="extra.js"></script>
<script src="js/setting.js"></script>
<script src="js/bootstrap.min.js"></script>
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="js/jquery.singlePageNav.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="https://cdn.staticfile.org/popper.js/1.12.5/umd/popper.min.js"></script>
<script src="require.js" ></script>
<script>
/*require.config({
paths : {
"marked" : ["https://cdn.jsdelivr.net/npm/marked/marked.min"],
"highlight" : "highlight/highlight.pack"
}
})*/
function load()
{
$('#article_id').val(<?php if(isset($_GET['article_id'])){echo($_GET['article_id']);} ?>);
var str=<?=json_encode($row['content'])?>;
$('#article').val(str);
var str2=<?=json_encode($row['headline'])?>;
$('#title').val(str2);
$('#article_type').val(`<?php if(isset($_GET['article_id'])){echo($row['public']);} ?>`);
$('#category').val(`<?php if(isset($_GET['article_id'])){echo(htmlentities($row['category']));} ?>`);
}
</script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<style type="text/css">
#for_image{
background: url(image/image-4x.png) no-repeat;
}
#code{
background: url(image/code.svg) no-repeat;
background-size:2.3em 2.3em;
}
.nav-button{
vertical-align:middle;
background-attachment:fixed;
background-position:center!important;
background-size:2.3em 2.3em;
width:2.3em; height:5em;
border-style: none;
padding-top:2em;
margin-right:1em;
margin-left:1em;
filter: invert(100%);
}
.nav-button:hover{
color: #6C0500;
border-top:0.2em solid #6C0500;
}
#file-upload{
display:none;
}
#file-upload2{
display:none;
}
#article{
margin:1em;
width:100%;
height:46em;
}
#md_render{
margin:1em;
height:50em;
}
.nav-icon{
vertical-align:middle;
width:1em; height:1.5em;
border-style: none;
background: transparent;
color:#fff;
font-size: 3em;
font-weight: 400;
}
.nav-icon:hover{
color: #93FAFF;
border-top:0.1em solid #93FAFF;
}
h1{
text-align:center;
}
</style>
</head>
<body>
<div class="fixed-header">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<input id="file-upload" type="file" name="file" accept="image/*"/>
<button class="nav-button" id="for_image" onclick="imageupload()"></button>
<button onclick="bold()" class="nav-icon"><i>B</i></button>
<button onclick="titlee()" class="nav-icon"><i>T</i></button>
<input id="file-upload2" type="file" name="file2" accept="image/*"/>
<button onclick="ocr()" class="nav-icon"><i>O</i></button>
<button class="nav-button" id="code" onclick="code()"></button>
</div>
<nav class="main-menu">
<ul>
<li> <button class="btn2 dark-blue-btn2" onclick="save()">提交</button> </li>
<li><a href="index.php" class=" external">取消</a></li>
</ul>
</nav>
</div>
</div>
<div class="container-fluid">
<section class="col-md-12 content" >
<div class="col-lg-12 col-md-12 top" >
<form id="edit_finish" style="text-align:center;margin: 0 auto;" role="form" method="POST" action="save_article.php">
<input type="text" style="box-shadow: none; margin-right:1em; font-size: 16px;height: auto;" name="title" placeholder="标题" id="title">
<input type="text" style="box-shadow: none; margin-right:1em; font-size: 16px;height: auto;" name="category" placeholder="分类" id="category">
<input type="hidden" name="article_id" id="article_id" >
<select name="article_type" style="font-size: 16px; box-sizing:border-box;" id="article_type">
<option value="public">公开</option>
<option value="private">私密</option>
</select>
<br/>
<br/>
</div>
</section>
<section class="col-md-12 content">
<div class="row ">
<div class="col-lg-6 col-md-6 content-item content-item-2 ">
<textarea id="article" name="article" class="form-control" >
</textarea></form>
<?php
if (isset($_GET['article_id']) )
{
echo("
<script>
load();
</script>"
);
}
?>
</div>
<div class="col-lg-6 col-md-6 content-item content-item-2 ">
<pre id="md_render">
</pre>
<div>
</div>
</section>
<div class="text-center footer">
<div class="container"> NOTEBOOK</div>
</div>
</body>
</html>
<script>
require.config({
paths : {
"marked" : ["https://cdn.jsdelivr.net/npm/marked/marked.min"],
"highlight" : "highlight/highlight.pack"
}
})
function code(){
$('#article').val($('#article').val()+"\n"+"```"+"\n"+"\n"+"```");
}
require(["marked","highlight"], function (marked,highlight) {
var rendererMD = new marked.Renderer();
marked.setOptions({
renderer: rendererMD,
gfm: true,
tables: true,
breaks: false,
pedantic: false,
sanitize: false,
smartLists: true,
smartypants: false
});
marked.setOptions({
highlight: function (code) {
return highlight.highlightAuto(code).value;
}
});
$('#article').keyup(function(){
$('#md_render').html(marked($('#article').val()));
$('#md_render').html(marked($('#article').val()));
})
});
function imageupload(){
$("#file-upload").click();
}
function ocr(){
$("#file-upload2").click();
}
function save(){
article = document.getElementById('article').value;
title = document.getElementById('title').value;
type = document.getElementById('article_type').value;
category=document.getElementById('category').value;
if (article == null || article == "" || title == null || title == ""||type==null||category==null||category=="") {
alert("信息不能为空");
return false;
}
$("#edit_finish").submit();
}
function titlee(){
$("#article"). iAddFieldbefore("# ");
}
function bold(){
a=$("#article"). iGetFieldPos();
start=a[0];
end=a[1];
$("#article"). iAddFieldboth("**");
}
</script>
<script type="text/javascript">
/*var article=$("#article").html;
$.post( 'edit_article.php', { 'val': article },
function( data ) {
window.console && console.log(data);
}
).error( function() {
alert("Dang!");
});
$(document).ready(function (e) {*/
$("#file-upload").on('input', function () {
var file_data = $('#file-upload').prop('files')[0];
window.console && console.log(file_data);
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url: 'test9.php', // point to server-side controller method
dataType: 'text', // what to expect back from the server
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function (response) {
if(response)
{
var currentVal = $('#article').val();
$('textarea').val(currentVal + '<img src="'+response+'" width="50%" height="50%" />\n\n');
/* <img src='"+response+" '/>*/
}
//$('#msg').html(response); // display success response from the server
console.log(response);
},
error: function (response) {
$('#msg').html(response); // display error response from the server
}
});
//$('#img').attr('src',file_data);
});
$("#file-upload2").on('input', function () {
var file_data = $('#file-upload2').prop('files')[0];
window.console && console.log(file_data);
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url: 'test10.php', // point to server-side controller method
dataType: 'text', // what to expect back from the server
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function (response) {
if(response)
{
//var obj = eval('(' + response + ')');
var currentVal = $('#article').val();
$('textarea').val(currentVal + response);
/* <img src='"+response+" '/>*/
}
//$('#msg').html(response); // display success response from the server
console.log(response);
},
error: function (response) {
$('#msg').html(response); // display error response from the server
}
});
//$('#img').attr('src',file_data);
});
/* }
);*/
</script>