<!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>
|