适配编辑器

This commit is contained in:
taoser 2023-04-23 10:36:27 +08:00
parent 94bf95951e
commit 12ad13a7f8
7 changed files with 520 additions and 491 deletions

View File

@ -5,286 +5,256 @@
<title>新增帖子</title> <title>新增帖子</title>
<link rel="stylesheet" href="/static/component/pear/css/pear.css" /> <link rel="stylesheet" href="/static/component/pear/css/pear.css" />
</head> </head>
<body> <body>
<form class="layui-form" action=""> <form class="layui-form" action="">
<div class="mainBox"> <div class="mainBox">
<div class="main-container"> <div class="main-container">
<div class="layui-row layui-col-space15 layui-form-item">
<div class="layui-row layui-col-space15 layui-form-item"> <div class="layui-col-md3">
<div class="layui-col-md3"> <label class="layui-form-label">{:lang('special column')}</label>
<label class="layui-form-label">{:lang('special column')}</label> <div class="layui-input-block">
<div class="layui-input-block"> <select lay-verify="required" name="cate_id" lay-filter="column">
<select lay-verify="required" name="cate_id" lay-filter="column"> <option></option>
<option></option> {volist name="cateList" id="cate"}
{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>
<option value="{$cate.id}" {if ($Request.param.cate == $cate.ename)} selected {/if}>{:cookie('think_lang') == 'en-us' ? $cate.ename : $cate.catename}</option> {/volist}
{/volist} </select>
</select> </div>
</div> </div>
</div> <div class="layui-col-md8">
<div class="layui-col-md8"> <label for="L_title" class="layui-form-label">{:lang('title')}</label>
<label for="L_title" class="layui-form-label">{:lang('title')}</label> <div class="layui-input-block">
<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="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" />
<input type="hidden" id="L_title_color" name="title_color" autocomplete="off" class="layui-input" /> <div class="layui-input bdsug layui-hide">
<div class="layui-input bdsug layui-hide"> <ul class="wordlist">
<ul class="wordlist"> </ul>
</ul> </div>
</div>
</div>
<div class="layui-col-md1">
<div id="color"></div>
</div> </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-form-item layui-form-text">
<div class="layui-input-block"> <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> <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>
<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> </div>
<button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>{:lang('uploads')}</button> <div class="layui-form-item layui-inline">
</div> <label class="layui-form-label">{:lang('enclosure')}</label>
<div class="layui-form-item"> <div class="layui-input-inline" style="width: 190px">
<label class="layui-form-label">{:lang('描述')}</label> <input type="text" class="layui-input" name="upzip" value="" placeholder="zip,image文件" title="上传附件" />
<div class="layui-input-block"> </div>
<textarea name="description" class="layui-textarea" placeholder="SEO描述"></textarea> <button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>{:lang('uploads')}</button>
</div> </div>
</div> <div class="layui-form-item">
{//关键词} <label class="layui-form-label">{:lang('描述')}</label>
<div class="layui-form-item"> <div class="layui-input-block">
<label class="layui-form-label">{:lang('添加关键词')}</label> <textarea name="description" class="layui-textarea" placeholder="SEO描述"></textarea>
<div class="layui-input-block"> </div>
<!-- <input type="text" class="layui-input" name="" id="inputTags" value="" placeholder="多个回车添加" title="添加关键词" /> --> </div>
<input type="text" class="layui-input" name="keywords" value="" placeholder="多个用逗号隔开" title="添加关键词" /> {//关键词}
<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>
</div> </div>
{//tag} </div>
<div class="layui-form-item"> <div class="bottom">
<label class="layui-form-label">{:lang('add tags')}</label> <div class="button-container">
<div class="layui-input-block"> <button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="forum-save">
<div id="tag"></div> <i class="layui-icon layui-icon-ok"></i>
</div> 提交
</button>
<button type="reset" class="pear-btn pear-btn-sm">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
</div> </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> editor.render({
<div class="bottom"> selector: 'textarea#L_content',
<div class="button-container"> uploadUrl: "{:url('content.forum/uploads')}",
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="forum-save"> imagePrependUrl: "{$domain}"
<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');
}); });
} else {
$(".bdsug").addClass('layui-hide');
}
});
} else {
$(".bdsug").addClass('layui-hide');
}
});
}
//上传附件 //获取百度标签标志tag或者word;
upload.render({ var flag = 'word';
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({ tinymce.get('L_content').on('mouseleave', function() {
elem: "#color", var content = tinymce.get('L_content').getContent({format: 'text'});
color: "#393d49", content = content.replace(/[\r\n]/g,"").replace(/\n/g, '').replace(/\s/g, '').replace(/\t/g, '');
predefine: true, // 开启预定义颜色 if(content.length >200) {
done: function (color) { content = content.substring(0,200);
//譬如你可以在回调中把得到的 color 赋值给表单 }
$("#L_title_color").val(color); // var test = tinymce.activeEditor.getContent({format: 'text'});
$("#L_title").css("color", color); $('[name="description"]').val(content);
}, });
});
// tag标签
form.on('submit(forum-save)', function(data) { $(function(){
$.ajax({ //1.渲染标签
url: "{:url('content.forum/add')}", var addTags = xmSelect.render({
data: JSON.stringify(data.field), el: '#tag',
dataType: 'json', name: 'tagid',
contentType: 'application/json', layVerify: '',
type: 'post', layVerType: 'msg',
success: function(result) { paging: true,
if (result.code === 0) { pageSize: 5,
layer.msg(result.msg, { data: []
icon: 1, });
time: 1000 //2.动态标签赋值
}, function() { $.get("{:url('content.tag/getAllTag')}",function(res){
parent.layer.close(parent.layer.getFrameIndex(window if(res.code === 0){
.name)); //关闭当前页 addTags.update({
parent.layui.table.reload("user-table"); 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> var baidu_title_switch = "{:config('taoler.config.baidu_title_switch')}";
</body> 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> </html>

View File

@ -5,233 +5,248 @@
<title>修改页面</title> <title>修改页面</title>
<link rel="stylesheet" href="/static/component/pear/css/pear.css" /> <link rel="stylesheet" href="/static/component/pear/css/pear.css" />
</head> </head>
<body> <body>
<form class="layui-form" action=""> <form class="layui-form" action="">
<div class="mainBox"> <div class="mainBox">
<div class="main-container"> <div class="main-container">
<input type="hidden" name="id" value="{$article.id}">
<input type="hidden" name="id" value="{$article.id}"> <div class="layui-row layui-col-space15 layui-form-item">
<div class="layui-row layui-col-space15 layui-form-item"> <div class="layui-col-md3">
<div class="layui-col-md3"> <label class="layui-form-label">{:lang('special column')}</label>
<label class="layui-form-label">{:lang('special column')}</label> <div class="layui-input-block">
<div class="layui-input-block"> <select lay-verify="required" name="cate_id" lay-filter="column">
<select lay-verify="required" name="cate_id" lay-filter="column"> <option></option>
<option></option> {volist name="cateList" id="cate"}
{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>
<option value="{$cate.id}" {if $article.cate_id == $cate.id}selected{/if}>{:cookie('think_lang') == 'en-us' ? $cate.ename : $cate.catename}</option> {/volist}
{/volist} </select>
</select> </div>
</div> </div>
</div> <div class="layui-col-md8">
<div class="layui-col-md8"> <label for="L_title" class="layui-form-label">{:lang('title')}</label>
<label for="L_title" class="layui-form-label">{:lang('title')}</label> <div class="layui-input-block">
<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="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" 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}">
<input type="hidden" name="user_id" value="{$article.user_id}"> </div>
</div> </div>
</div> <div class="layui-col-md1">
<div class="layui-col-md1"> <div id="color"></div>
<div id="color"></div> <div id="test9" style="margin-left: 30px;"></div>
<div id="test9" style="margin-left: 30px;"></div> </div>
</div> </div>
</div> <div class="layui-form-item layui-form-text">
<div class="layui-input-block">
<div class="layui-form-item layui-form-text"> <textarea id="L_content" name="content" required lay-verify="required" placeholder="详细内容" class="layui-textarea fly-editor" style="height: 260px;">{$article.content}</textarea>
<div class="layui-input-block"> </div>
<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> <div class="layui-inline">
<div class="layui-form-item"> <label class="layui-form-label">{:lang('enclosure')}</label>
<div class="layui-inline"> <div class="layui-input-inline" style="width: 190px;">
<label class="layui-form-label">{:lang('enclosure')}</label> <input type="text" class="layui-input" name="upzip" value="{$article.upzip ?? ''}" placeholder="zip,jpg格式" title="上传附件"/>
<div class="layui-input-inline" style="width: 190px;"> </div>
<input type="text" class="layui-input" name="upzip" value="{$article.upzip ?? ''}" placeholder="zip,jpg格式" title="上传附件"/> <button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>上传文件</button>
</div> </div>
<button type="button" class="layui-btn" id="zip-button"><i class="layui-icon"></i>上传文件</button> </div>
</div> <div class="layui-form-item">
</div> <label class="layui-form-label">{:lang('描述')}</label>
<div class="layui-form-item"> <div class="layui-input-block">
<label class="layui-form-label">{:lang('描述')}</label> <textarea name="description" class="layui-textarea" placeholder="SEO描述">{$article.description}</textarea>
<div class="layui-input-block"> </div>
<textarea name="description" class="layui-textarea" placeholder="SEO描述">{$article.description}</textarea> </div>
</div> {//关键词}
</div> <div class="layui-form-item">
{//关键词} <label class="layui-form-label">{:lang('添加关键词')}</label>
<div class="layui-form-item"> <div class="layui-input-block">
<label class="layui-form-label">{:lang('添加关键词')}</label> <input type="text" class="layui-input" name="keywords" value="{$article.keywords}" placeholder="多个英文逗号隔开" title="添加关键词" />
<div class="layui-input-block"> </div>
<input type="text" class="layui-input" name="keywords" value="{$article.keywords}" placeholder="多个英文逗号隔开" title="添加关键词" /> </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>
</div> </div>
{//tag} <div class="bottom">
<div class="layui-form-item"> <div class="button-container">
<label class="layui-form-label">{:lang('add tags')}</label> <button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="forum-save">
<div class="layui-input-block"> <i class="layui-icon layui-icon-ok"></i>
<div id="tag"></div> 提交
</button>
<button type="reset" class="pear-btn pear-btn-sm">
<i class="layui-icon layui-icon-refresh"></i>
重置
</button>
</div> </div>
</div> </div>
<div class="layui-form-item layui-hide"> </form>
<button type="submit" class="layui-btn" lay-filter="article-edit" lay-submit id="article-edit">{:lang('post now')}</button> <script src="/static/component/layui/layui.js"></script>
</div> <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"> $(function(){
<div class="button-container"> //1.渲染标签
<button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="user-save"> var addTags = xmSelect.render({
<i class="layui-icon layui-icon-ok"></i> el: '#tag',
提交 name: 'tagid',
</button> layVerify: '',
<button type="reset" class="pear-btn pear-btn-sm"> layVerType: 'msg',
<i class="layui-icon layui-icon-refresh"></i> paging: true,
重置 pageSize: 5,
</button> data: []
</div> });
</div> //2.动态赋值
</form> $.get("{:url('content.tag/getArticleTag')}",{id:artId},function(res){
<script src="/static/component/layui/layui.js"></script> if(res.code === 0){
<script src="/static/component/pear/pear.js"></script> 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> tinymce.get('L_content').on('mouseleave', function() {
<script src="/static/addons/taonyeditor/tinymce/tinymce-jquery.min.js"></script> var content = tinymce.get('L_content').getContent({format: 'text'});
<script> content = content.replace(/[\r\n]/g,"").replace(/\n/g, '').replace(/\s/g, '').replace(/\t/g, '');
//定义选择器 if(content.length >200) {
var mytextareaid = 'textarea#L_content'; content = content.substring(0,200);
var imagePrependUrl = "{$domain}"; }
//定义文件上传接口接口 // var test = tinymce.activeEditor.getContent({format: 'text'});
var taonyUploadUrl = "{:url('content.forum/uploads')}", $('[name="description"]').val(content);
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;
$(function(){ // 获取描述的内容
//1.渲染标签 $("#L_content").bind('input propertychange', function(){
var addTags = xmSelect.render({ var content = $(this).val()
el: '#tag', $.ajax({
name: 'tagid', type:"post",
layVerify: '', url:"{:url('content.forum/getDescription')}",
layVerType: 'msg', data:{"content":content},
paging: true, daType:"json",
pageSize: 5, success:function (data){
data: [] if (data.code == 0) {
}); $('[name="description"]').val(data.data);
//2.动态赋值 }
$.get("{:url('content.tag/getArticleTag')}",{id:artId},function(res){ }
if(res.code === 0){ });
addTags.setValue( return false;
res.data })
)
}
});
//3.动态标签赋值
$.get("{:url('content.tag/getAllTag')}",function(res){
if(res.code === 0){
addTags.update({
data: res.data,
autoRow: true,
})
}
});
})
// 从详情页自动调用端口过滤,获取描述信息 // 获取tag的内容
tinymce.get('L_content').on('mouseleave', function() { var conf = "{:empty(config('taoler.baidu.client_id'))}";
var content = tinymce.get('L_content').getContent({format: 'text'}); if(conf !== '1'){
content = content.replace(/[\r\n]/g,"").replace(/\n/g, '').replace(/\s/g, '').replace(/\t/g, ''); $("#L_title").on('blur', function(){
if(content.length >200) { var title = $(this).val();
content = content.substring(0,200); var flag = 'on';
} $.ajax({
// var test = tinymce.activeEditor.getContent({format: 'text'}); type:"post",
$('[name="description"]').val(content); 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;
})
}
// 获取描述的内容 //预定义颜色项
$("#L_content").bind('input propertychange', function(){ colorpicker.render({
var content = $(this).val() elem: '#color'
$.ajax({ ,color: "{$article.title_color ?? '#333'}"
type:"post", ,predefine: true // 开启预定义颜色
url:"{:url('content.forum/getDescription')}", ,done: function(color){
data:{"content":content}, //譬如你可以在回调中把得到的 color 赋值给表单
daType:"json", $('#L_title_color').val(color);
success:function (data){ //改变标题颜色
if (data.code == 0) { $('#L_title').css("color", color);
$('[name="description"]').val(data.data); }
} });
}
});
return false;
})
// 获取tag的内容 //指定允许上传的文件类型
var conf = "{:empty(config('taoler.baidu.client_id'))}"; upload.render({
if(conf !== '1'){ elem: '#zip-button'
$("#L_title").on('blur', function(){ ,url: "{:url('content.forum/uploads')}" //改成您自己的上传接口
var title = $(this).val(); ,data: {type:'zip'}
var flag = 'on'; ,accept: 'file' //普通文件
$.ajax({ ,done: function(res){
type:"post", if(res.status === 0){
url:"{:url('content.forum/getKeywords')}", $('input[name="upzip"]').val(res.url);
data:{"keywords":keywords,"flag":flag}, layer.msg('上传成功');
daType:"json", } else {
success:function (data){ layer.msg(res.msg);
if (data.code === 0) { }
$("input[name='keywords']").val(""); }
} });
}
});
return false;
})
}
//预定义颜色项 form.on('submit(forum-save)', function(data) {
colorpicker.render({ $.ajax({
elem: '#color' url: "{:url('content.forum/edit')}",
,color: "{$article.title_color ?? '#333'}" data: JSON.stringify(data.field),
,predefine: true // 开启预定义颜色 dataType: 'json',
,done: function(color){ contentType: 'application/json',
//譬如你可以在回调中把得到的 color 赋值给表单 type: 'post',
$('#L_title_color').val(color); success: function(result) {
//改变标题颜色 if (result.code === 0) {
$('#L_title').css("color", color); 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;
});
//指定允许上传的文件类型 });
upload.render({ </script>
elem: '#zip-button' </body>
,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);
}
}
});
});
</script>
</body>
</html> </html>

View File

@ -104,18 +104,19 @@
<script> <script>
const FORUM_List = "{:url('content.forum/list')}"; const FORUM_List = "{:url('content.forum/list')}";
var forumReplys = "{:url('Forum/replys')}",
forumRedel = "{:url('Forum/redel')}", layui.use(['toast','jquery','form', 'table','common'], function(){
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(){
var $ = layui.jquery var $ = layui.jquery
,form = layui.form ,form = layui.form
,table = layui.table; ,table = layui.table;
let common = layui.common; let common = layui.common;
var toast = layui.toast;
//如果你是采用模版自带的编辑器,你需要开启以下语句来解析。
var taonystatus = "{:hook('taonystatus')}";
// 编辑器插件启用状态
var isShow = taonystatus ? false : true;
let cols = [ let cols = [
[ [
@ -207,6 +208,10 @@
}); });
window.add = function() { window.add = function() {
if(isShow) {
toast.info({title: '信息',message: '编辑器插件未开启或未安装',position: 'topRight'});
return false;
}
layer.open({ layer.open({
type: 2, type: 2,
title: '新增', title: '新增',
@ -217,6 +222,10 @@
} }
window.edit = function(obj) { window.edit = function(obj) {
if(isShow) {
toast.info({title: '信息',message: '编辑器插件未开启或未安装',position: 'topRight'});
return false;
}
layer.open({ layer.open({
type: 2, type: 2,
title: '修改', title: '修改',

View File

@ -602,7 +602,6 @@
// 升级提醒 // 升级提醒
$(function (){ $(function (){
console.log(123)
$.get("{:url('system.upgrade/check')}",function (data){ $.get("{:url('system.upgrade/check')}",function (data){
if (data.code === 1) { if (data.code === 1) {
//可升级 //可升级

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

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

View File

@ -16,7 +16,7 @@ return [
// 应用名,此项不可更改 // 应用名,此项不可更改
'appname' => 'TaoLer', 'appname' => 'TaoLer',
// 版本配置 // 版本配置
'version' => '2.2.3', 'version' => '2.2.4',
// 加盐 // 加盐
'salt' => 'taoler', 'salt' => 'taoler',
// 数据库备份目录 // 数据库备份目录