适配编辑器
This commit is contained in:
parent
94bf95951e
commit
12ad13a7f8
@ -5,286 +5,256 @@
|
||||
<title>新增帖子</title>
|
||||
<link rel="stylesheet" href="/static/component/pear/css/pear.css" />
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" action="">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
|
||||
<div class="layui-row layui-col-space15 layui-form-item">
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">{:lang('special column')}</label>
|
||||
<div class="layui-input-block">
|
||||
<select lay-verify="required" name="cate_id" lay-filter="column">
|
||||
<option></option>
|
||||
{volist name="cateList" id="cate"}
|
||||
<option value="{$cate.id}" {if ($Request.param.cate == $cate.ename)} selected {/if}>{:cookie('think_lang') == 'en-us' ? $cate.ename : $cate.catename}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md8">
|
||||
<label for="L_title" class="layui-form-label">{:lang('title')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="L_title" name="title" required lay-verify="required" autocomplete="off" class="layui-input" style="position:relative;" value=""/>
|
||||
<input type="hidden" id="L_title_color" name="title_color" autocomplete="off" class="layui-input" />
|
||||
<div class="layui-input bdsug layui-hide">
|
||||
<ul class="wordlist">
|
||||
</ul>
|
||||
<body>
|
||||
<form class="layui-form" action="">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="layui-row layui-col-space15 layui-form-item">
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">{:lang('special column')}</label>
|
||||
<div class="layui-input-block">
|
||||
<select lay-verify="required" name="cate_id" lay-filter="column">
|
||||
<option></option>
|
||||
{volist name="cateList" id="cate"}
|
||||
<option value="{$cate.id}" {if ($Request.param.cate == $cate.ename)} selected {/if}>{:cookie('think_lang') == 'en-us' ? $cate.ename : $cate.catename}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md8">
|
||||
<label for="L_title" class="layui-form-label">{:lang('title')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="L_title" name="title" required lay-verify="required" autocomplete="off" class="layui-input" style="position:relative;" value=""/>
|
||||
<input type="hidden" id="L_title_color" name="title_color" autocomplete="off" class="layui-input" />
|
||||
<div class="layui-input bdsug layui-hide">
|
||||
<ul class="wordlist">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div id="color"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div id="color"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<div class="layui-input-block">
|
||||
<textarea id="L_content" name="content" required lay-verify="required" placeholder="{:lang('please input the content')}" class="layui-textarea fly-editor" style="height: 260px"> </textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">{:lang('enclosure')}</label>
|
||||
<div class="layui-input-inline" style="width: 190px">
|
||||
<input type="text" class="layui-input" name="upzip" value="" placeholder="zip,image文件" title="上传附件" />
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<div class="layui-input-block">
|
||||
<textarea id="L_content" name="content" required lay-verify="required" placeholder="{:lang('please input the content')}" class="layui-textarea fly-editor" style="height: 260px"> </textarea>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>{:lang('uploads')}</button>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('描述')}</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="description" class="layui-textarea" placeholder="SEO描述"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
{//关键词}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('添加关键词')}</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- <input type="text" class="layui-input" name="" id="inputTags" value="" placeholder="多个回车添加" title="添加关键词" /> -->
|
||||
<input type="text" class="layui-input" name="keywords" value="" placeholder="多个用逗号隔开" title="添加关键词" />
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">{:lang('enclosure')}</label>
|
||||
<div class="layui-input-inline" style="width: 190px">
|
||||
<input type="text" class="layui-input" name="upzip" value="" placeholder="zip,image文件" title="上传附件" />
|
||||
</div>
|
||||
<button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>{:lang('uploads')}</button>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('描述')}</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="description" class="layui-textarea" placeholder="SEO描述"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
{//关键词}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('添加关键词')}</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- <input type="text" class="layui-input" name="" id="inputTags" value="" placeholder="多个回车添加" title="添加关键词" /> -->
|
||||
<input type="text" class="layui-input" name="keywords" value="" placeholder="多个用逗号隔开" title="添加关键词" />
|
||||
</div>
|
||||
</div>
|
||||
{//tag}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('add tags')}</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="tag"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{//tag}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('add tags')}</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="tag"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="forum-save">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
<script src="/static/addons/taonyeditor/tinymce/tinymce.min.js"></script>
|
||||
<script src="/static/xm-select.js"></script>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
layui.extend({
|
||||
editor: '{/}/static/addons/taonyeditor/js/taonyeditor'
|
||||
}).use(["form", "colorpicker", "upload",'editor','xmSelect'], function () {
|
||||
var $ = layui.jquery, form = layui.form, colorpicker = layui.colorpicker, upload = layui.upload;
|
||||
var editor = layui.editor;
|
||||
var xmSelect = layui.xmSelect;
|
||||
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="forum-save">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
|
||||
<script src="/static/jquery-3.6.0.min.js"></script>
|
||||
<script src="/static/addons/taonyeditor/tinymce/tinymce.min.js"></script>
|
||||
<script src="/static/addons/taonyeditor/tinymce/tinymce-jquery.min.js"></script>
|
||||
<script>
|
||||
//定义选择器
|
||||
var mytextareaid = 'textarea#L_content';
|
||||
var imagePrependUrl = "{$domain}";
|
||||
//定义文件上传接口接口
|
||||
var taonyUploadUrl = "{:url('content.forum/uploads')}",
|
||||
taonyUploadImgage = "{:url('content.forum/uploads')}?type=image",
|
||||
taonyUploadVideo = "{:url('content.forum/uploads')}?type=video";
|
||||
taonyUploadZip = "{:url('content.forum/uploads')}?type=zip";
|
||||
taonyUploadAudio = "{:url('content.forum/uploads')}?type=audio";
|
||||
$(mytextareaid).removeClass();
|
||||
</script>
|
||||
|
||||
<script src="/static/xm-select.js"></script>
|
||||
<script>
|
||||
layui.extend({
|
||||
editor: '{/}/static/addons/taonyeditor/js/taonyeditor'
|
||||
}).use(["form", "colorpicker", "upload",'editor','xmSelect'], function () {
|
||||
var $ = layui.jquery, form = layui.form, colorpicker = layui.colorpicker, upload = layui.upload;
|
||||
var editor = layui.editor;
|
||||
var xmSelect = layui.xmSelect;
|
||||
|
||||
|
||||
// var tinymce = layui.tinymce
|
||||
// var edit = tinymce.render({
|
||||
// elem: "#L_content",
|
||||
// height: 400
|
||||
// });
|
||||
|
||||
//获取百度标签标志,tag或者word;
|
||||
var flag = 'word';
|
||||
|
||||
//如果你是采用模版自带的编辑器,你需要开启以下语句来解析。
|
||||
var taonystatus = "{:hook('taonystatus')}";
|
||||
// 编辑器插件启用状态
|
||||
var isShow = taonystatus ? false : true;
|
||||
if(isShow) {
|
||||
$('.layui-textarea').each(function(){
|
||||
var othis = $(this), html = othis.html();
|
||||
othis.attr(fly.content(html));
|
||||
})
|
||||
}
|
||||
|
||||
// 从详情页自动调用端口过滤,获取描述信息
|
||||
tinymce.get('L_content').on('mouseleave', function() {
|
||||
var content = tinymce.get('L_content').getContent({format: 'text'});
|
||||
content = content.replace(/[\r\n]/g,"").replace(/\n/g, '').replace(/\s/g, '').replace(/\t/g, '');
|
||||
if(content.length >200) {
|
||||
content = content.substring(0,200);
|
||||
}
|
||||
// var test = tinymce.activeEditor.getContent({format: 'text'});
|
||||
$('[name="description"]').val(content);
|
||||
});
|
||||
|
||||
// tag标签
|
||||
$(function(){
|
||||
//1.渲染标签
|
||||
var addTags = xmSelect.render({
|
||||
el: '#tag',
|
||||
name: 'tagid',
|
||||
layVerify: '',
|
||||
layVerType: 'msg',
|
||||
paging: true,
|
||||
pageSize: 5,
|
||||
data: []
|
||||
});
|
||||
//2.动态标签赋值
|
||||
$.get("{:url('content.tag/getAllTag')}",function(res){
|
||||
if(res.code === 0){
|
||||
addTags.update({
|
||||
data: res.data,
|
||||
autoRow: true,
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// 通过接口自动获取tag的内容
|
||||
var conf = "{:empty(config('taoler.baidu.client_id'))}";
|
||||
if (conf !== "1") {
|
||||
$("#L_title").on("blur", function () {
|
||||
var title = $(this).val();
|
||||
var content = $("#L_content").val();
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "{:url('content.forum/getKeywords')}",
|
||||
data: { keywords: title, content:content, flag: flag },
|
||||
daType: "json",
|
||||
success: function (data) {
|
||||
if (data.code === 0) {
|
||||
$("input[name='keywords']").val(data.data.join(','));
|
||||
}
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 百度词条
|
||||
var baidu_title_switch = "{:config('taoler.config.baidu_title_switch')}";
|
||||
if(baidu_title_switch === 1) {
|
||||
$("#L_title").bind('input propertychange',function () {
|
||||
var title = $(this).val();
|
||||
var str = '';
|
||||
if(title.length > 0 ) {
|
||||
$.post("{:url('content.forum/getWordList')}",{title:title},function(res){
|
||||
// 动态生成ur>li内容
|
||||
if (res.code === 0) {
|
||||
// 显示动态框
|
||||
$(".bdsug").removeClass('layui-hide');
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
//str += '<li data-key=' + res.data[i].q + '><b>' + res.data[i].q.replace(title,'') + '</b></li>';
|
||||
str += '<li data-key=' + res.data[i].q + '><b>' + res.data[i].q + '</b></li>';
|
||||
}
|
||||
// 清空ul并追加li
|
||||
$('.wordlist').empty().append(str);
|
||||
// 点击李获取li值并复制给#L_title input的value
|
||||
$(".bdsug li").on('click',function(){
|
||||
var word = $(this).attr('data-key');
|
||||
var words = title + '(' + word + ')';
|
||||
$("#L_title").val(words);
|
||||
// 关闭动态框
|
||||
$(".bdsug").addClass('layui-hide');
|
||||
editor.render({
|
||||
selector: 'textarea#L_content',
|
||||
uploadUrl: "{:url('content.forum/uploads')}",
|
||||
imagePrependUrl: "{$domain}"
|
||||
});
|
||||
} else {
|
||||
$(".bdsug").addClass('layui-hide');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$(".bdsug").addClass('layui-hide');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//上传附件
|
||||
upload.render({
|
||||
elem: "#zip-button",
|
||||
url: "{:url('content.forum/uploads')}", //改成您自己的上传接口
|
||||
data: { type: "zip" },
|
||||
accept: "file", //普通文件
|
||||
done: function (res) {
|
||||
if (res.status === 0) {
|
||||
$('input[name="upzip"]').val(res.url);
|
||||
layer.msg("上传成功");
|
||||
} else {
|
||||
layer.msg(res.msg);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
// 改变标题颜色
|
||||
colorpicker.render({
|
||||
elem: "#color",
|
||||
color: "#393d49",
|
||||
predefine: true, // 开启预定义颜色
|
||||
done: function (color) {
|
||||
//譬如你可以在回调中把得到的 color 赋值给表单
|
||||
$("#L_title_color").val(color);
|
||||
$("#L_title").css("color", color);
|
||||
},
|
||||
});
|
||||
//获取百度标签标志,tag或者word;
|
||||
var flag = 'word';
|
||||
|
||||
form.on('submit(forum-save)', function(data) {
|
||||
$.ajax({
|
||||
url: "{:url('content.forum/add')}",
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'post',
|
||||
success: function(result) {
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window
|
||||
.name)); //关闭当前页
|
||||
parent.layui.table.reload("user-table");
|
||||
// 从详情页自动调用端口过滤,获取描述信息
|
||||
tinymce.get('L_content').on('mouseleave', function() {
|
||||
var content = tinymce.get('L_content').getContent({format: 'text'});
|
||||
content = content.replace(/[\r\n]/g,"").replace(/\n/g, '').replace(/\s/g, '').replace(/\t/g, '');
|
||||
if(content.length >200) {
|
||||
content = content.substring(0,200);
|
||||
}
|
||||
// var test = tinymce.activeEditor.getContent({format: 'text'});
|
||||
$('[name="description"]').val(content);
|
||||
});
|
||||
|
||||
// tag标签
|
||||
$(function(){
|
||||
//1.渲染标签
|
||||
var addTags = xmSelect.render({
|
||||
el: '#tag',
|
||||
name: 'tagid',
|
||||
layVerify: '',
|
||||
layVerType: 'msg',
|
||||
paging: true,
|
||||
pageSize: 5,
|
||||
data: []
|
||||
});
|
||||
//2.动态标签赋值
|
||||
$.get("{:url('content.tag/getAllTag')}",function(res){
|
||||
if(res.code === 0){
|
||||
addTags.update({
|
||||
data: res.data,
|
||||
autoRow: true,
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// 通过接口自动获取tag的内容
|
||||
var conf = "{:empty(config('taoler.baidu.client_id'))}";
|
||||
if (conf !== "1") {
|
||||
$("#L_title").on("blur", function () {
|
||||
var title = $(this).val();
|
||||
var content = $("#L_content").val();
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "{:url('content.forum/getKeywords')}",
|
||||
data: { keywords: title, content:content, flag: flag },
|
||||
daType: "json",
|
||||
success: function (data) {
|
||||
if (data.code === 0) {
|
||||
$("input[name='keywords']").val(data.data.join(','));
|
||||
}
|
||||
},
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
// 百度词条
|
||||
var baidu_title_switch = "{:config('taoler.config.baidu_title_switch')}";
|
||||
if(baidu_title_switch === 1) {
|
||||
$("#L_title").bind('input propertychange',function () {
|
||||
var title = $(this).val();
|
||||
var str = '';
|
||||
if(title.length > 0 ) {
|
||||
$.post("{:url('content.forum/getWordList')}",{title:title},function(res){
|
||||
// 动态生成ur>li内容
|
||||
if (res.code === 0) {
|
||||
// 显示动态框
|
||||
$(".bdsug").removeClass('layui-hide');
|
||||
for (var i = 0; i < res.data.length; i++) {
|
||||
//str += '<li data-key=' + res.data[i].q + '><b>' + res.data[i].q.replace(title,'') + '</b></li>';
|
||||
str += '<li data-key=' + res.data[i].q + '><b>' + res.data[i].q + '</b></li>';
|
||||
}
|
||||
// 清空ul并追加li
|
||||
$('.wordlist').empty().append(str);
|
||||
// 点击李获取li值并复制给#L_title input的value
|
||||
$(".bdsug li").on('click',function(){
|
||||
var word = $(this).attr('data-key');
|
||||
var words = title + '(' + word + ')';
|
||||
$("#L_title").val(words);
|
||||
// 关闭动态框
|
||||
$(".bdsug").addClass('layui-hide');
|
||||
});
|
||||
} else {
|
||||
$(".bdsug").addClass('layui-hide');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$(".bdsug").addClass('layui-hide');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//上传附件
|
||||
upload.render({
|
||||
elem: "#zip-button",
|
||||
url: "{:url('content.forum/uploads')}", //改成您自己的上传接口
|
||||
data: { type: "zip" },
|
||||
accept: "file", //普通文件
|
||||
done: function (res) {
|
||||
if (res.status === 0) {
|
||||
$('input[name="upzip"]').val(res.url);
|
||||
layer.msg("上传成功");
|
||||
} else {
|
||||
layer.msg(res.msg);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
// 改变标题颜色
|
||||
colorpicker.render({
|
||||
elem: "#color",
|
||||
color: "#393d49",
|
||||
predefine: true, // 开启预定义颜色
|
||||
done: function (color) {
|
||||
//譬如你可以在回调中把得到的 color 赋值给表单
|
||||
$("#L_title_color").val(color);
|
||||
$("#L_title").css("color", color);
|
||||
},
|
||||
});
|
||||
|
||||
form.on('submit(forum-save)', function(data) {
|
||||
$.ajax({
|
||||
url: "{:url('content.forum/add')}",
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'post',
|
||||
success: function(result) {
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window
|
||||
.name)); //关闭当前页
|
||||
parent.layui.table.reload("user-table");
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -5,233 +5,248 @@
|
||||
<title>修改页面</title>
|
||||
<link rel="stylesheet" href="/static/component/pear/css/pear.css" />
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" action="">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
|
||||
<input type="hidden" name="id" value="{$article.id}">
|
||||
<div class="layui-row layui-col-space15 layui-form-item">
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">{:lang('special column')}</label>
|
||||
<div class="layui-input-block">
|
||||
<select lay-verify="required" name="cate_id" lay-filter="column">
|
||||
<option></option>
|
||||
{volist name="cateList" id="cate"}
|
||||
<option value="{$cate.id}" {if $article.cate_id == $cate.id}selected{/if}>{:cookie('think_lang') == 'en-us' ? $cate.ename : $cate.catename}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md8">
|
||||
<label for="L_title" class="layui-form-label">{:lang('title')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="L_title" name="title" required lay-verify="required" autocomplete="off" class="layui-input" value="{$article.title}">
|
||||
<input type="hidden" id="L_title_color" name="title_color" autocomplete="off" class="layui-input" value="{$article.title_color ?? '#333'}">
|
||||
<input type="hidden" name="user_id" value="{$article.user_id}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div id="color"></div>
|
||||
<div id="test9" style="margin-left: 30px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<div class="layui-input-block">
|
||||
<textarea id="L_content" name="content" required lay-verify="required" placeholder="详细内容" class="layui-textarea fly-editor" style="height: 260px;">{$article.content}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">{:lang('enclosure')}</label>
|
||||
<div class="layui-input-inline" style="width: 190px;">
|
||||
<input type="text" class="layui-input" name="upzip" value="{$article.upzip ?? ''}" placeholder="zip,jpg格式" title="上传附件"/>
|
||||
</div>
|
||||
<button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>上传文件</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('描述')}</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="description" class="layui-textarea" placeholder="SEO描述">{$article.description}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
{//关键词}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('添加关键词')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" name="keywords" value="{$article.keywords}" placeholder="多个英文逗号隔开" title="添加关键词" />
|
||||
<body>
|
||||
<form class="layui-form" action="">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<input type="hidden" name="id" value="{$article.id}">
|
||||
<div class="layui-row layui-col-space15 layui-form-item">
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">{:lang('special column')}</label>
|
||||
<div class="layui-input-block">
|
||||
<select lay-verify="required" name="cate_id" lay-filter="column">
|
||||
<option></option>
|
||||
{volist name="cateList" id="cate"}
|
||||
<option value="{$cate.id}" {if $article.cate_id == $cate.id} selected {/if}> {:cookie('think_lang') == 'en-us' ? $cate.ename : $cate.catename}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md8">
|
||||
<label for="L_title" class="layui-form-label">{:lang('title')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="L_title" name="title" required lay-verify="required" autocomplete="off" class="layui-input" value="{$article.title}">
|
||||
<input type="hidden" id="L_title_color" name="title_color" autocomplete="off" class="layui-input" value="{$article.title_color ?? '#333'}">
|
||||
<input type="hidden" name="user_id" value="{$article.user_id}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md1">
|
||||
<div id="color"></div>
|
||||
<div id="test9" style="margin-left: 30px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<div class="layui-input-block">
|
||||
<textarea id="L_content" name="content" required lay-verify="required" placeholder="详细内容" class="layui-textarea fly-editor" style="height: 260px;">{$article.content}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">{:lang('enclosure')}</label>
|
||||
<div class="layui-input-inline" style="width: 190px;">
|
||||
<input type="text" class="layui-input" name="upzip" value="{$article.upzip ?? ''}" placeholder="zip,jpg格式" title="上传附件"/>
|
||||
</div>
|
||||
<button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>上传文件</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('描述')}</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="description" class="layui-textarea" placeholder="SEO描述">{$article.description}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
{//关键词}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('添加关键词')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input" name="keywords" value="{$article.keywords}" placeholder="多个英文逗号隔开" title="添加关键词" />
|
||||
</div>
|
||||
</div>
|
||||
{//tag}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('add tags')}</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="tag"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<button type="submit" class="layui-btn" lay-filter="article-edit" lay-submit id="article-edit">{:lang('post now')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{//tag}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('add tags')}</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="tag"></div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="forum-save">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<button type="submit" class="layui-btn" lay-filter="article-edit" lay-submit id="article-edit">{:lang('post now')}</button>
|
||||
</div>
|
||||
</form>
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
<script src="/static/addons/taonyeditor/tinymce/tinymce.min.js"></script>
|
||||
<script src="/static/xm-select.js"></script>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
layui.extend({
|
||||
editor: '{/}/static/addons/taonyeditor/js/taonyeditor'
|
||||
}).use(['colorpicker','form','upload', 'editor'], function(){
|
||||
var $ = layui.jquery
|
||||
,colorpicker = layui.colorpicker
|
||||
,form = layui.form
|
||||
,upload = layui.upload;
|
||||
var artId = "{$article.id}";
|
||||
var editor = layui.editor;
|
||||
|
||||
</div>
|
||||
// 初始化编辑器
|
||||
editor.render({
|
||||
selector: 'textarea#L_content',
|
||||
uploadUrl: "{:url('content.forum/uploads')}",
|
||||
imagePrependUrl: "{$domain}"
|
||||
});
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="user-save">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
$(function(){
|
||||
//1.渲染标签
|
||||
var addTags = xmSelect.render({
|
||||
el: '#tag',
|
||||
name: 'tagid',
|
||||
layVerify: '',
|
||||
layVerType: 'msg',
|
||||
paging: true,
|
||||
pageSize: 5,
|
||||
data: []
|
||||
});
|
||||
//2.动态赋值
|
||||
$.get("{:url('content.tag/getArticleTag')}",{id:artId},function(res){
|
||||
if(res.code === 0){
|
||||
addTags.setValue(
|
||||
res.data
|
||||
)
|
||||
}
|
||||
});
|
||||
//3.动态标签赋值
|
||||
$.get("{:url('content.tag/getAllTag')}",function(res){
|
||||
if(res.code === 0){
|
||||
addTags.update({
|
||||
data: res.data,
|
||||
autoRow: true,
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
<script src="/static/jquery-3.6.0.min.js"></script>
|
||||
<script src="/static/addons/taonyeditor/tinymce/tinymce.min.js"></script>
|
||||
<script src="/static/addons/taonyeditor/tinymce/tinymce-jquery.min.js"></script>
|
||||
<script>
|
||||
//定义选择器
|
||||
var mytextareaid = 'textarea#L_content';
|
||||
var imagePrependUrl = "{$domain}";
|
||||
//定义文件上传接口接口
|
||||
var taonyUploadUrl = "{:url('content.forum/uploads')}",
|
||||
taonyUploadImgage = "{:url('content.forum/uploads')}?type=image",
|
||||
taonyUploadVideo = "{:url('content.forum/uploads')}?type=video";
|
||||
taonyUploadZip = "{:url('content.forum/uploads')}?type=zip";
|
||||
taonyUploadAudio = "{:url('content.forum/uploads')}?type=audio";
|
||||
$(mytextareaid).removeClass();
|
||||
</script>
|
||||
<script src="/static/xm-select.js"></script>
|
||||
<script>
|
||||
layui.extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
,editor: '{/}/static/addons/taonyeditor/js/taonyeditor'
|
||||
}).use(['colorpicker','form','upload', 'editor'], function(){
|
||||
var $ = layui.jquery
|
||||
,colorpicker = layui.colorpicker
|
||||
,form = layui.form
|
||||
,upload = layui.upload;
|
||||
var artId = "{$article.id}";
|
||||
var editor = layui.editor;
|
||||
// 从详情页自动调用端口过滤,获取描述信息
|
||||
tinymce.get('L_content').on('mouseleave', function() {
|
||||
var content = tinymce.get('L_content').getContent({format: 'text'});
|
||||
content = content.replace(/[\r\n]/g,"").replace(/\n/g, '').replace(/\s/g, '').replace(/\t/g, '');
|
||||
if(content.length >200) {
|
||||
content = content.substring(0,200);
|
||||
}
|
||||
// var test = tinymce.activeEditor.getContent({format: 'text'});
|
||||
$('[name="description"]').val(content);
|
||||
});
|
||||
|
||||
$(function(){
|
||||
//1.渲染标签
|
||||
var addTags = xmSelect.render({
|
||||
el: '#tag',
|
||||
name: 'tagid',
|
||||
layVerify: '',
|
||||
layVerType: 'msg',
|
||||
paging: true,
|
||||
pageSize: 5,
|
||||
data: []
|
||||
});
|
||||
//2.动态赋值
|
||||
$.get("{:url('content.tag/getArticleTag')}",{id:artId},function(res){
|
||||
if(res.code === 0){
|
||||
addTags.setValue(
|
||||
res.data
|
||||
)
|
||||
}
|
||||
});
|
||||
//3.动态标签赋值
|
||||
$.get("{:url('content.tag/getAllTag')}",function(res){
|
||||
if(res.code === 0){
|
||||
addTags.update({
|
||||
data: res.data,
|
||||
autoRow: true,
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
// 从详情页自动调用端口过滤,获取描述信息
|
||||
tinymce.get('L_content').on('mouseleave', function() {
|
||||
var content = tinymce.get('L_content').getContent({format: 'text'});
|
||||
content = content.replace(/[\r\n]/g,"").replace(/\n/g, '').replace(/\s/g, '').replace(/\t/g, '');
|
||||
if(content.length >200) {
|
||||
content = content.substring(0,200);
|
||||
}
|
||||
// var test = tinymce.activeEditor.getContent({format: 'text'});
|
||||
$('[name="description"]').val(content);
|
||||
});
|
||||
// 获取描述的内容
|
||||
$("#L_content").bind('input propertychange', function(){
|
||||
var content = $(this).val()
|
||||
$.ajax({
|
||||
type:"post",
|
||||
url:"{:url('content.forum/getDescription')}",
|
||||
data:{"content":content},
|
||||
daType:"json",
|
||||
success:function (data){
|
||||
if (data.code == 0) {
|
||||
$('[name="description"]').val(data.data);
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
})
|
||||
|
||||
// 获取描述的内容
|
||||
$("#L_content").bind('input propertychange', function(){
|
||||
var content = $(this).val()
|
||||
$.ajax({
|
||||
type:"post",
|
||||
url:"{:url('content.forum/getDescription')}",
|
||||
data:{"content":content},
|
||||
daType:"json",
|
||||
success:function (data){
|
||||
if (data.code == 0) {
|
||||
$('[name="description"]').val(data.data);
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
})
|
||||
// 获取tag的内容
|
||||
var conf = "{:empty(config('taoler.baidu.client_id'))}";
|
||||
if(conf !== '1'){
|
||||
$("#L_title").on('blur', function(){
|
||||
var title = $(this).val();
|
||||
var flag = 'on';
|
||||
$.ajax({
|
||||
type:"post",
|
||||
url:"{:url('content.forum/getKeywords')}",
|
||||
data:{"keywords":keywords,"flag":flag},
|
||||
daType:"json",
|
||||
success:function (data){
|
||||
if (data.code === 0) {
|
||||
$("input[name='keywords']").val("");
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
})
|
||||
}
|
||||
|
||||
// 获取tag的内容
|
||||
var conf = "{:empty(config('taoler.baidu.client_id'))}";
|
||||
if(conf !== '1'){
|
||||
$("#L_title").on('blur', function(){
|
||||
var title = $(this).val();
|
||||
var flag = 'on';
|
||||
$.ajax({
|
||||
type:"post",
|
||||
url:"{:url('content.forum/getKeywords')}",
|
||||
data:{"keywords":keywords,"flag":flag},
|
||||
daType:"json",
|
||||
success:function (data){
|
||||
if (data.code === 0) {
|
||||
$("input[name='keywords']").val("");
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
})
|
||||
}
|
||||
//预定义颜色项
|
||||
colorpicker.render({
|
||||
elem: '#color'
|
||||
,color: "{$article.title_color ?? '#333'}"
|
||||
,predefine: true // 开启预定义颜色
|
||||
,done: function(color){
|
||||
//譬如你可以在回调中把得到的 color 赋值给表单
|
||||
$('#L_title_color').val(color);
|
||||
//改变标题颜色
|
||||
$('#L_title').css("color", color);
|
||||
}
|
||||
});
|
||||
|
||||
//预定义颜色项
|
||||
colorpicker.render({
|
||||
elem: '#color'
|
||||
,color: "{$article.title_color ?? '#333'}"
|
||||
,predefine: true // 开启预定义颜色
|
||||
,done: function(color){
|
||||
//譬如你可以在回调中把得到的 color 赋值给表单
|
||||
$('#L_title_color').val(color);
|
||||
//改变标题颜色
|
||||
$('#L_title').css("color", color);
|
||||
}
|
||||
});
|
||||
//指定允许上传的文件类型
|
||||
upload.render({
|
||||
elem: '#zip-button'
|
||||
,url: "{:url('content.forum/uploads')}" //改成您自己的上传接口
|
||||
,data: {type:'zip'}
|
||||
,accept: 'file' //普通文件
|
||||
,done: function(res){
|
||||
if(res.status === 0){
|
||||
$('input[name="upzip"]').val(res.url);
|
||||
layer.msg('上传成功');
|
||||
} else {
|
||||
layer.msg(res.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//指定允许上传的文件类型
|
||||
upload.render({
|
||||
elem: '#zip-button'
|
||||
,url: "{:url('content.forum/uploads')}" //改成您自己的上传接口
|
||||
,data: {type:'zip'}
|
||||
,accept: 'file' //普通文件
|
||||
,done: function(res){
|
||||
if(res.status === 0){
|
||||
$('input[name="upzip"]').val(res.url);
|
||||
layer.msg('上传成功');
|
||||
} else {
|
||||
layer.msg(res.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
form.on('submit(forum-save)', function(data) {
|
||||
$.ajax({
|
||||
url: "{:url('content.forum/edit')}",
|
||||
data: JSON.stringify(data.field),
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'post',
|
||||
success: function(result) {
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window
|
||||
.name)); //关闭当前页
|
||||
parent.layui.table.reload("user-table");
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -104,18 +104,19 @@
|
||||
|
||||
<script>
|
||||
const FORUM_List = "{:url('content.forum/list')}";
|
||||
var forumReplys = "{:url('Forum/replys')}",
|
||||
forumRedel = "{:url('Forum/redel')}",
|
||||
forumReplysform = "{:url('Forum/replysform')}",
|
||||
forumTags = "{:url('Forum/tags')}",
|
||||
forumTagsDelete = "{:url('Forum/tagsdelete')}",
|
||||
forumTagsForm = "{:url('Forum/tagsform')}";
|
||||
var forumList = "{:url('content.forum/list')}";
|
||||
layui.use(['jquery','form', 'table','common'], function(){
|
||||
|
||||
layui.use(['toast','jquery','form', 'table','common'], function(){
|
||||
var $ = layui.jquery
|
||||
,form = layui.form
|
||||
,table = layui.table;
|
||||
let common = layui.common;
|
||||
var toast = layui.toast;
|
||||
|
||||
//如果你是采用模版自带的编辑器,你需要开启以下语句来解析。
|
||||
var taonystatus = "{:hook('taonystatus')}";
|
||||
// 编辑器插件启用状态
|
||||
var isShow = taonystatus ? false : true;
|
||||
|
||||
|
||||
let cols = [
|
||||
[
|
||||
@ -207,6 +208,10 @@
|
||||
});
|
||||
|
||||
window.add = function() {
|
||||
if(isShow) {
|
||||
toast.info({title: '信息',message: '编辑器插件未开启或未安装',position: 'topRight'});
|
||||
return false;
|
||||
}
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
@ -217,6 +222,10 @@
|
||||
}
|
||||
|
||||
window.edit = function(obj) {
|
||||
if(isShow) {
|
||||
toast.info({title: '信息',message: '编辑器插件未开启或未安装',position: 'topRight'});
|
||||
return false;
|
||||
}
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '修改',
|
||||
|
@ -602,7 +602,6 @@
|
||||
|
||||
// 升级提醒
|
||||
$(function (){
|
||||
console.log(123)
|
||||
$.get("{:url('system.upgrade/check')}",function (data){
|
||||
if (data.code === 1) {
|
||||
//可升级
|
||||
|
22
app/admin/view/public/admin_base.html
Normal file
22
app/admin/view/public/admin_base.html
Normal file
@ -0,0 +1,22 @@
|
||||
<!--
|
||||
* @Author: TaoLer <alipay_tao@qq.com>
|
||||
* @Date: 2021-12-06 16:04:50
|
||||
* @LastEditTime: 2022-06-28 10:00:54
|
||||
* @LastEditors: TaoLer
|
||||
* @Description: 后台头部结构
|
||||
* Copyright (c) 2020~2023 https://www.aieok.com All rights reserved.
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{block name="title"}TaoLerCMS后台管理系统{/block}</title>
|
||||
<link rel="stylesheet" href="/static/component/pear/css/pear.css" />
|
||||
</head>
|
||||
<body>
|
||||
{block name="body"}内容{/block}
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
{block name="js"}js文件{/block}
|
||||
</body>
|
||||
</html>
|
14
app/admin/view/public/admin_form.html
Normal file
14
app/admin/view/public/admin_form.html
Normal file
@ -0,0 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{block name="title"}TaoLerCMS后台管理系统{/block}</title>
|
||||
<link rel="stylesheet" href="/static/component/pear/css/pear.css" />
|
||||
</head>
|
||||
<body class="pear-container">
|
||||
{block name="body"}内容{/block}
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
{block name="js"}js文件{/block}
|
||||
</body>
|
||||
</html>
|
@ -16,7 +16,7 @@ return [
|
||||
// 应用名,此项不可更改
|
||||
'appname' => 'TaoLer',
|
||||
// 版本配置
|
||||
'version' => '2.2.3',
|
||||
'version' => '2.2.4',
|
||||
// 加盐
|
||||
'salt' => 'taoler',
|
||||
// 数据库备份目录
|
||||
|
Loading…
Reference in New Issue
Block a user