添加图音视频标签
This commit is contained in:
parent
f5d01b7eac
commit
a0dcfaa736
@ -7,8 +7,8 @@
|
||||
* 后台:http://adm.aieok.com
|
||||
* 账号:test
|
||||
* 密码:test123
|
||||
* 版本:TaoLer 1.7.7
|
||||
* 日期:2021.5.27
|
||||
* 版本:TaoLer 1.7.8
|
||||
* 日期:2021.6.1
|
||||
|
||||
#### 项目地址
|
||||
|
||||
|
@ -96,7 +96,7 @@ class Article extends Model
|
||||
{
|
||||
$artTop = Cache::get('arttop');
|
||||
if (!$artTop) {
|
||||
$artTop = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,pv,jie,upzip,has_img')->where(['is_top' => 1, 'status' => 1, 'delete_time' => 0])->with([
|
||||
$artTop = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,pv,jie,upzip,has_img,has_video,has_audio')->where(['is_top' => 1, 'status' => 1, 'delete_time' => 0])->with([
|
||||
'cate' => function ($query) {
|
||||
$query->where('delete_time', 0)->field('id,catename,ename');
|
||||
},
|
||||
@ -121,7 +121,7 @@ class Article extends Model
|
||||
{
|
||||
$artList = Cache::get('artlist');
|
||||
if(!$artList){
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_hot,pv,jie,upzip,has_img')
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_hot,pv,jie,upzip,has_img,has_video,has_audio')
|
||||
->with([
|
||||
'cate' => function($query){
|
||||
$query->where('delete_time',0)->field('id,catename,ename');
|
||||
@ -209,7 +209,7 @@ class Article extends Model
|
||||
switch ($type) {
|
||||
//查询文章,15个分1页
|
||||
case 'jie':
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img')->with([
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img,has_video,has_audio')->with([
|
||||
'cate' => function($query){
|
||||
$query->where('delete_time',0)->field('id,catename,ename');
|
||||
},
|
||||
@ -225,7 +225,7 @@ class Article extends Model
|
||||
break;
|
||||
|
||||
case 'hot':
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img')->with([
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img,has_video,has_audio')->with([
|
||||
'cate' => function($query){
|
||||
$query->where('delete_time',0)->field('id,catename,ename');
|
||||
},
|
||||
@ -241,7 +241,7 @@ class Article extends Model
|
||||
break;
|
||||
|
||||
case 'top':
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img')->with([
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img,has_video,has_audio')->with([
|
||||
'cate' => function($query){
|
||||
$query->where('delete_time',0)->field('id,catename,ename');
|
||||
},
|
||||
@ -257,7 +257,7 @@ class Article extends Model
|
||||
break;
|
||||
|
||||
default:
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img')->with([
|
||||
$artList = $this::field('id,title,title_color,cate_id,user_id,create_time,is_top,is_hot,pv,jie,upzip,has_img,has_video,has_audio')->with([
|
||||
'cate' => function($query){
|
||||
$query->where('delete_time',0)->field('id,catename,ename');
|
||||
},
|
||||
|
@ -126,6 +126,7 @@ class Article extends BaseController
|
||||
if(empty($data['content'])){
|
||||
return json(['code'=>0, 'msg'=>'评论不能为空!']);
|
||||
}
|
||||
|
||||
//用户留言存入数据库
|
||||
if (Comment::create($data)) {
|
||||
//站内信
|
||||
@ -165,11 +166,11 @@ class Article extends BaseController
|
||||
if (true !== $result) {
|
||||
return Msgres::error($validate->getError());
|
||||
}
|
||||
//判断是否插入图片
|
||||
$isHasImg = strpos($data['content'],'img[');
|
||||
if(is_int($isHasImg)){
|
||||
$data['has_img'] = 1;
|
||||
};
|
||||
|
||||
//获取内容图片音视频标识
|
||||
$iva= $this->hasIva($data['content']);
|
||||
$data = array_merge($data,$iva);
|
||||
|
||||
$article = new ArticleModel();
|
||||
$result = $article->add($data);
|
||||
if ($result == 1) {
|
||||
@ -207,11 +208,10 @@ class Article extends BaseController
|
||||
if(true !== $res){
|
||||
return Msgres::error($validate->getError());
|
||||
} else {
|
||||
//判断是否插入图片
|
||||
$isHasImg = strpos($data['content'],'img[');
|
||||
if(is_int($isHasImg)){
|
||||
$data['has_img'] = 1;
|
||||
};
|
||||
//获取内容图片音视频标识
|
||||
$iva= $this->hasIva($data['content']);
|
||||
$data = array_merge($data,$iva);
|
||||
|
||||
$result = $article->edit($data);
|
||||
if($result == 1) {
|
||||
//删除原有缓存显示编辑后内容
|
||||
@ -251,7 +251,7 @@ class Article extends BaseController
|
||||
return $res;
|
||||
}
|
||||
|
||||
//文本编辑器图片上传
|
||||
//文本编辑器上传图片
|
||||
public function textImgUpload()
|
||||
{
|
||||
$file = request()->file('file');
|
||||
@ -302,12 +302,12 @@ class Article extends BaseController
|
||||
return json($res);
|
||||
}
|
||||
|
||||
//上传附件
|
||||
//上传视频
|
||||
public function upVideo()
|
||||
{
|
||||
$file = request()->file('file');
|
||||
try {
|
||||
validate(['file'=>'fileSize:10240000|fileExt:mp4,jpg,png,jpeg'])
|
||||
validate(['file'=>'fileSize:102400000|fileExt:mp4,mp3'])
|
||||
->check(['file'=>$file]);
|
||||
$savename = \think\facade\Filesystem::disk('public')->putFile('video',$file);
|
||||
} catch (ValidateException $e) {
|
||||
@ -393,4 +393,20 @@ class Article extends BaseController
|
||||
return json($res);
|
||||
}
|
||||
|
||||
//内容中是否有图片视频音频插入
|
||||
public function hasIva($content)
|
||||
{
|
||||
//判断是否插入图片
|
||||
$isHasImg = strpos($content,'img[');
|
||||
$data['has_img'] = is_int($isHasImg) ? 1 : 0;
|
||||
//判断是否插入视频
|
||||
$isHasVideo = strpos($content,'video(');
|
||||
$data['has_video'] = is_int($isHasVideo) ? 1 : 0;
|
||||
//判断是否插入音频
|
||||
$isHasAudio = strpos($content,'audio[');
|
||||
$data['has_audio'] = is_int($isHasAudio) ? 1 : 0;
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
@ -24,7 +24,7 @@ class Login extends BaseController
|
||||
protected function initialize()
|
||||
{
|
||||
parent::initialize();
|
||||
View::assign(['jspage'=>'user']);
|
||||
View::assign(['jspage'=>'']);
|
||||
}
|
||||
|
||||
//用户登陆
|
||||
|
@ -52,15 +52,15 @@ return [
|
||||
'post now' => '立即发布',
|
||||
'my collection' => '我的收藏',
|
||||
'collection' => '收藏',
|
||||
'cancel collection' => '取消收藏',
|
||||
'cancel collection' => '收藏-',
|
||||
'all' => '综合',
|
||||
'finished' => '已结',
|
||||
'end' => '已结',
|
||||
'no finished' => '未结',
|
||||
'hot' => '精',
|
||||
'top' => '顶',
|
||||
'cancel hoting' => '取加精',
|
||||
'cancel topping' => '取置顶',
|
||||
'hot' => '加精',
|
||||
'top' => '置顶',
|
||||
'cancel hoting' => '精-',
|
||||
'cancel topping' => '顶-',
|
||||
'go sign' => '去签到',
|
||||
'more post' => '更多帖子',
|
||||
'friendly link' => '友情链接',
|
||||
|
@ -59,6 +59,8 @@ CREATE TABLE `tao_article` (
|
||||
`is_hot` enum('0','1') NOT NULL DEFAULT '0' COMMENT '推荐1否0',
|
||||
`is_reply` enum('1','0') NOT NULL DEFAULT '1' COMMENT '0禁评1可评',
|
||||
`has_img` enum('1','0') NOT NULL DEFAULT '0' COMMENT '1有图0无图',
|
||||
`has_video` enum('1','0') NOT NULL DEFAULT '0' COMMENT '1有视频0无',
|
||||
`has_audio` enum('1','0') NOT NULL DEFAULT '0' COMMENT '1有音频0无',
|
||||
`pv` int(11) NOT NULL DEFAULT '0' COMMENT '浏览量',
|
||||
`jie` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0未结1已结',
|
||||
`upzip` varchar(70) DEFAULT NULL COMMENT '文章附件',
|
||||
@ -79,7 +81,6 @@ CREATE TABLE `tao_article` (
|
||||
-- ----------------------------
|
||||
-- Records of tao_article
|
||||
-- ----------------------------
|
||||
INSERT INTO `tao_article` VALUES ('1', 'Fly Template 社区模版', '[quote]\r\n 你们认为layui官方Fly Template 社区模版怎么样?\r\n[/quote]\r\n你喜欢吗?\r\n很多人都说比较喜欢,我个人认为不错的,这个板子非常喜欢,我看到有一些人做了开发,可惜的是都没有很好的维护,有的漏洞比较多,不完善,很美好的一个板子,但没有长久 的更新,非常的可惜。\r\n如果用别人的不好用,那我就做一个出来吧。喜欢的人多关注,适当时候放出来大家一起用。\r\n关于详情页的内容解析\r\n该模板自带一个特定语法的编辑器,当你把内容存储到数据库后,在页面读取后浏览,会发现诸如“表情、代码、图片”等无法解析,这是因为需要对该内容进行一次转义,通常来说这是在服务端完成的,但鉴于简单化,你还可以直接在前端去解析,在模板的detail.html中,我们已经把相关的代码写好了,你只需打开注释即可(在代码的最下面)。当然,如果觉得编辑器无法满足你的需求,你也可以把该编辑器换成别的HTML编辑器或MarkDown编辑器。', '1', '1', '1', '0', '0', '1', '0', '0', '0', null, '0', null, '0', null, null, null, '1546698225', '1577772362', '0');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tao_auth_group
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
public/static/res/images/video_cover.jpg
Normal file
BIN
public/static/res/images/video_cover.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
@ -16,7 +16,7 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
,imgcom = layui.imgcom
|
||||
,device = layui.device()
|
||||
,DISABLED = 'layui-btn-disabled';
|
||||
|
||||
var uid = layui.cache.user.uid;
|
||||
//阻止IE7以下访问
|
||||
if(device.ie && device.ie < 8){
|
||||
layer.alert('如果您非得使用 IE 浏览器访问Fly社区,那么请使用 IE8+');
|
||||
@ -96,12 +96,12 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
var html = ['<div class="layui-unselect fly-edit">'
|
||||
,'<span type="face" title="表情"><i class="iconfont icon-yxj-expression" style="top: 1px;"></i></span>'
|
||||
,'<span type="picture" title="图片:img[src]"><i class="iconfont icon-tupian"></i></span>'
|
||||
,'<span type="video" title="视频"><i class="layui-icon layui-icon-video"></i></span>'
|
||||
,'<span type="audio" title="音频"><i class="layui-icon layui-icon-headset"></i></span>'
|
||||
,'<span type="href" title="超链接格式:a(href)[text]"><i class="iconfont icon-lianjie"></i></span>'
|
||||
,'<span type="quote" title="引用"><i class="iconfont icon-yinyong" style="top: 1px;"></i></span>'
|
||||
,'<span type="code" title="插入代码" class="layui-hide-xs"><i class="iconfont icon-emwdaima" style="top: 1px;"></i></span>'
|
||||
,'<span type="hr" title="水平线">hr</span>'
|
||||
,'<span type="video" title="视频"><i class="layui-icon layui-icon-video"></i></span>'
|
||||
,'<span type="audio" title="音频"><i class="layui-icon layui-icon-headset"></i></span>'
|
||||
,'<span type="preview" title="预览"><i class="iconfont icon-yulan1"></i></span>'
|
||||
,'</div>'].join('');
|
||||
|
||||
@ -134,13 +134,21 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
});
|
||||
}
|
||||
,picture: function(editor){ //插入图片
|
||||
//判断登陆
|
||||
if(uid == -1){
|
||||
layer.msg('请登录再发图', {icon: 6}, function(){
|
||||
location.href = login;
|
||||
})
|
||||
return false;
|
||||
}
|
||||
|
||||
layer.open({
|
||||
type: 1
|
||||
,id: 'fly-jie-upload'
|
||||
,title: '插入图片'
|
||||
,area: 'auto'
|
||||
,shade: false
|
||||
,area: '465px'
|
||||
//,area: '465px'
|
||||
,fixed: false
|
||||
,offset: [
|
||||
editor.offset().top - $(window).scrollTop() + 'px'
|
||||
@ -151,7 +159,7 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
,'<li class="layui-form-item">'
|
||||
,'<label class="layui-form-label">URL</label>'
|
||||
,'<div class="layui-input-inline">'
|
||||
,'<input required name="image" placeholder="支持直接粘贴远程图片地址" value="" class="layui-input">'
|
||||
,'<input required name="image" placeholder="支持粘贴远程图片地址" value="" class="layui-input">'
|
||||
,'</div>'
|
||||
,'<button type="button" class="layui-btn layui-btn-primary" id="uploadImg"><i class="layui-icon"></i>上传图片</button>'
|
||||
,'</li>'
|
||||
@ -257,49 +265,90 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
editor.trigger('keyup');
|
||||
}
|
||||
,video: function(editor){ //插入视频
|
||||
//判断登陆
|
||||
if(uid == -1){
|
||||
layer.msg('请登录再发视频', {icon: 6}, function(){
|
||||
location.href = login;
|
||||
})
|
||||
return false;
|
||||
}
|
||||
layer.open({
|
||||
type: 1
|
||||
,id: 'fly-jie-video-upload'
|
||||
,title: '插入视频'
|
||||
,area: 'auto'
|
||||
,shade: false
|
||||
,area: '465px'
|
||||
//,area: '465px'
|
||||
,fixed: false
|
||||
,offset: [
|
||||
editor.offset().top - $(window).scrollTop() + 'px'
|
||||
,editor.offset().left + 'px'
|
||||
]
|
||||
,skin: 'layui-layer-border'
|
||||
,content: ['<ul class="layui-form layui-form-pane" style="margin: 20px;">'
|
||||
,'<li class="layui-form-item">'
|
||||
,'<label class="layui-form-label">封面</label>'
|
||||
,'<div class="layui-input-inline">'
|
||||
,'<input type="text" required name="cover" placeholder="支持直接粘贴远程图片地址" value="" class="layui-input">'
|
||||
,'<input type="text" required name="cover" placeholder="支持粘贴远程图片地址" value="" class="layui-input">'
|
||||
,'</div>'
|
||||
,'<input required type="file" name="file" lay-type="image" class="layui-upload-file" value="">'
|
||||
,'<button type="button" lay-type="image" class="layui-btn" id="video-img"><i class="layui-icon"></i>上传封图</button>'
|
||||
,'</li>'
|
||||
,'<li class="layui-form-item">'
|
||||
,'<label class="layui-form-label">URL</label>'
|
||||
,'<div class="layui-input-inline">'
|
||||
,'<input type="text" required name="video" placeholder="支持直接粘贴远程视频地址" value="" class="layui-input">'
|
||||
,'<input type="text" required name="video" placeholder="支持粘贴远程视频地址" value="" class="layui-input">'
|
||||
,'</div>'
|
||||
,'<input required type="file" name="file" lay-type="video" class="layui-upload-file" value="上传文件">'
|
||||
,'<button type="button" lay-type="video" class="layui-btn" id="layedit-video"><i class="layui-icon layui-icon-video"></i>上传视频</button>'
|
||||
,'</li>'
|
||||
,'<li class="layui-form-item" style="text-align: center;">'
|
||||
,'<button type="button" lay-submit lay-filter="uploadImages" class="layui-btn">确认</button>'
|
||||
,'</li>'
|
||||
,'</ul>'].join('')
|
||||
,success: function(layero, index){
|
||||
var loding, video = layero.find('input[name="video"]'), cover = layero.find('input[name="cover"]');
|
||||
var video = layero.find('input[name="video"]'), cover = layero.find('input[name="cover"]');
|
||||
|
||||
//上传视频
|
||||
upload.render({
|
||||
url: '/article/upVideo/'
|
||||
,before: function(input){ loding = layer.msg('文件上传中,请稍等哦', { icon: 16 ,shade:0.3,time:0 }); }
|
||||
,elem: '#fly-jie-video-upload .layui-upload-file'
|
||||
,success: function(res,input){
|
||||
layer.close(loding);
|
||||
if(res.status == 0){
|
||||
if($(input).attr('lay-type') == 'image'){
|
||||
cover.val(res.data);
|
||||
}else{
|
||||
video.val(res.data);
|
||||
url: videoUrl
|
||||
,accept: 'video'
|
||||
,acceptMime: 'video/mp4'
|
||||
,exts: 'mp4'
|
||||
,elem: '#layedit-video'
|
||||
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
|
||||
layer.load(2); //上传loading
|
||||
}
|
||||
,done: function(res){
|
||||
if(res.status == 0){
|
||||
video.val(res.url);
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
}
|
||||
layer.closeAll('loading');
|
||||
}
|
||||
});
|
||||
//上传图片
|
||||
upload.render({
|
||||
elem: '#video-img'
|
||||
,accept: 'images'
|
||||
,acceptMime: 'image/*'
|
||||
,exts: 'jpg|png|gif|bmp|jpeg'
|
||||
,url: textImgUpload
|
||||
,auto: false
|
||||
//,bindAction: '#img-button' //指向一个按钮触发上传
|
||||
//,field: 'image'
|
||||
,size: 10240
|
||||
,choose: function (obj) { //选择文件后的回调
|
||||
imgcom.uploads(obj);
|
||||
}
|
||||
,done: function(res){
|
||||
if(res.status == 0){
|
||||
cover.val(res.url);
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
}
|
||||
}
|
||||
,error: function(){
|
||||
layer.msg('系统错误,请联系管理员');
|
||||
}
|
||||
});
|
||||
form.on('submit(uploadImages)', function(data){
|
||||
@ -312,12 +361,25 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
});
|
||||
}
|
||||
,audio: function(editor){ //插入音频
|
||||
//判断登陆
|
||||
if(uid == -1){
|
||||
layer.msg('请登录再发布', {icon: 6}, function(){
|
||||
location.href = login;
|
||||
})
|
||||
return false;
|
||||
}
|
||||
layer.open({
|
||||
type: 1
|
||||
,id: 'fly-jie-audio-upload'
|
||||
,title: '插入音频'
|
||||
,area: 'auto'
|
||||
,shade: false
|
||||
,area: '465px'
|
||||
//,area: '465px'
|
||||
,fixed: false
|
||||
,offset: [
|
||||
editor.offset().top - $(window).scrollTop() + 'px'
|
||||
,editor.offset().left + 'px'
|
||||
]
|
||||
,skin: 'layui-layer-border'
|
||||
,content: ['<ul class="layui-form layui-form-pane" style="margin: 20px;">'
|
||||
,'<li class="layui-form-item">'
|
||||
@ -325,30 +387,38 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
,'<div class="layui-input-inline">'
|
||||
,'<input required name="audio" placeholder="支持直接粘贴远程音频地址" value="" class="layui-input">'
|
||||
,'</div>'
|
||||
,'<input required type="file" name="file" lay-type="audio" class="layui-upload-file" value="">'
|
||||
,'<button required type="button" name="file" lay-type="audio" class="layui-btn upload-audio"><i class="layui-icon layui-icon-headset"></i>上传音频</button>'
|
||||
,'</li>'
|
||||
,'<li class="layui-form-item" style="text-align: center;">'
|
||||
,'<button type="button" lay-submit lay-filter="uploadImages" class="layui-btn">确认</button>'
|
||||
,'</li>'
|
||||
,'</ul>'].join('')
|
||||
,success: function(layero, index){
|
||||
var loding,image = layero.find('input[name="audio"]');
|
||||
var loding,audio = layero.find('input[name="audio"]');
|
||||
|
||||
upload.render({
|
||||
url: '/Ajax/ThreadUpload/',elem: '#fly-jie-audio-upload .layui-upload-file'
|
||||
,before: function(input){ loding = layer.msg('文件上传中,请稍等哦', { icon: 16 ,shade:0.3,time:0 }); }
|
||||
,success: function(res){
|
||||
layer.close(loding);
|
||||
if(res.status == 1){
|
||||
image.val(res.data);
|
||||
url: videoUrl
|
||||
,elem: '#fly-jie-audio-upload .upload-audio'
|
||||
,accept: 'audio'
|
||||
,acceptMime: 'audio/mp3'
|
||||
,exts: 'mp3'
|
||||
,before: function(obj){
|
||||
//loding = layer.msg('文件上传中,请稍等哦', { icon: 16 ,shade:0.3,time:0 });
|
||||
layer.load(2); //上传loading
|
||||
}
|
||||
,done: function(res){
|
||||
|
||||
if(res.status == 0){
|
||||
audio.val(res.url);
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
}
|
||||
layer.closeAll('loading');
|
||||
}
|
||||
});
|
||||
form.on('submit(uploadImages)', function(data){
|
||||
var field = data.field;
|
||||
if(!field.audio) return image.focus();
|
||||
if(!field.audio) return audio.focus();
|
||||
layui.focusInsert(editor[0], 'audio['+ field.audio + '] ');
|
||||
layer.close(index);
|
||||
});
|
||||
@ -503,7 +573,7 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
.replace(/video\(.*?\)\[([^\s]+?)\]/g, function(str){
|
||||
var cover = (str.match(/video\(([\s\S]+?)\)\[/)||[])[1];
|
||||
var video = (str.match(/\)\[([^\s]+?)\]/)||[])[1];
|
||||
cover = cover ? cover : '/Public/Topic/images/video_cover.jpg';
|
||||
cover = cover ? cover : '/static/res/images/video_cover.jpg';
|
||||
return '<video poster="'+ cover + '" controls crossorigin><source src="'+ video + '" type="video/mp4"></video>';
|
||||
})
|
||||
//转义音频
|
||||
@ -677,9 +747,7 @@ layui.define(['layer', 'laytpl', 'form', 'element', 'upload', 'util', 'imgcom'],
|
||||
}
|
||||
$('body').on('click', '#LAY_signin', function(){
|
||||
//登录判断
|
||||
var uid = layui.cache.user.uid;
|
||||
if(uid == -1){
|
||||
console.log(uid);
|
||||
layer.msg('请登录再签到', {icon: 6}, function(){
|
||||
location.href = login;
|
||||
})
|
||||
|
@ -29,16 +29,18 @@
|
||||
<a href="{:url('user/home',['id'=>$art.user.id])}" link>
|
||||
<span class="layui-badge layui-bg-green " title="哪个小区">{:getAsing($art.user.area_id) ?: '无'}</span>
|
||||
<cite>{$art.user.nickname ?: $art.user.name}</cite>
|
||||
<i>{$art.create_time|date='Y-m-d'}</i>
|
||||
<!--
|
||||
<i class="iconfont icon-renzheng" title="认证信息:XXX"></i>
|
||||
-->
|
||||
{if($art.user.vip > 0)}
|
||||
<i class="layui-badge fly-badge-vip">vip{$art.user.vip}</i>
|
||||
{/if}
|
||||
-->
|
||||
</a>
|
||||
<span>
|
||||
{$art.create_time|date='Y-m-d'}
|
||||
{$art.has_img ?= ' <i class="layui-icon layui-icon-picture" style=" color: #5FB878;"></i>'}
|
||||
{$art.has_video ?= ' <i class="layui-icon layui-icon-play" style="color: #FF5722;"></i>'}
|
||||
{$art.has_audio ?= ' <i class="layui-icon layui-icon-speaker" style="color: #000000;"></i>'}
|
||||
{$art.upzip ?= ' <i class="layui-icon layui-icon-file-b" style="color: #009688;" title="附件"></i>'}
|
||||
</span>
|
||||
<span class="layui-hide-xs" title="浏览"><i class="iconfont" title="浏览"></i> {$art.pv}</span>
|
||||
|
@ -67,10 +67,10 @@
|
||||
<i class="layui-badge fly-badge-vip">vip{$article.user.vip}</i>
|
||||
{/if}
|
||||
</a>
|
||||
<span>{$article.create_time|date='Y-m-d H:d'}</span>
|
||||
</div>
|
||||
<div class="detail-hits" id="LAY_jieAdmin" data-id="{$article['id']}">
|
||||
<!--span style="padding-right: 10px; color: #FF7200">悬赏:60飞吻</span-->
|
||||
<span class="post-time" data="{$article.create_time}" style="padding-top: 5px;"></span>
|
||||
{if(session('user_name')==$article.user.name || ($user.auth ?? ''))}
|
||||
<span class="layui-btn layui-btn-xs jie-admin" type="edit"><a href="{:url('article/edit',['id'=>$article.id])}">{:lang('edit')}</a></span>
|
||||
{/if}
|
||||
@ -116,7 +116,7 @@
|
||||
</div>
|
||||
|
||||
<div class="detail-hits">
|
||||
<span>{$vo.create_time}</span>
|
||||
<span class="post-time" data="{$vo.create_time}"></span>
|
||||
</div>
|
||||
{if $vo.cai == 1}
|
||||
<i class="iconfont icon-caina" title="最佳答案"></i>
|
||||
@ -209,7 +209,6 @@
|
||||
{volist name="ad_comm" id="vo"}
|
||||
<a href="{$vo.slid_href}" target="_blank"><img src="{$vo.slid_img}" style="max-width: 100%;"></a>
|
||||
{/volist}
|
||||
<p style="position: relative; color: #666;">QQ扫码加入TaoLer官群</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -221,7 +220,6 @@
|
||||
var collectionFind = "{:url('Collection/find')}",
|
||||
articleJieset = "{:url('Article/jieset')}",
|
||||
articleDelete = "{:url('Article/delete')}",
|
||||
collection = "{:url('Collection/')}",
|
||||
commentJiedaZan = "{:url('Comment/jiedaZan')}",
|
||||
commentJiedaCai = "{:url('Comment/jiedaCai')}",
|
||||
commentGetDa = "{:url('Comment/getDa')}",
|
||||
@ -229,12 +227,28 @@ var collectionFind = "{:url('Collection/find')}",
|
||||
commentJiedaDelete = "{:url('Comment/jiedaDelete')}",
|
||||
langCollection = "{:lang('collection')}",
|
||||
langCancelCollection = "{:lang('cancel collection')}";
|
||||
var collection = "{:url('collection/')}";
|
||||
|
||||
layui.use(['fly', 'face','colorpicker','plyr'], function(){
|
||||
var $ = layui.$
|
||||
,fly = layui.fly
|
||||
,colorpicker = layui.colorpicker
|
||||
,plyr = layui.plyr;
|
||||
var laytpl = layui.laytpl;
|
||||
|
||||
//tpl模板给发布时间赋值
|
||||
$('div.detail-hits').children('span.post-time').each(function(){
|
||||
var othis = $(this), html = othis.html();
|
||||
var string = laytpl('{{ d.time }}').render({
|
||||
//time: html
|
||||
time: othis.attr('data')
|
||||
});
|
||||
var posttime = layui.util.timeAgo(string, 1);
|
||||
|
||||
othis.text(posttime);
|
||||
//console.log(othis.attr('data'));
|
||||
})
|
||||
|
||||
|
||||
//预定义颜色项
|
||||
colorpicker.render({
|
||||
|
@ -10,13 +10,13 @@
|
||||
<script src="/static/layui/jquery.min.js" charset="utf-8"></script>
|
||||
<script src="/static/layui/layui.js" charset="utf-8"></script>
|
||||
<script>
|
||||
var messageNums = "{:url('index/Message/nums')}",
|
||||
messageRead = "{:url('index/Message/read')}",
|
||||
userMessage = "{:url('index/User/message')}",
|
||||
var messageNums = "{:url('message/nums')}",
|
||||
messageRead = "{:url('Message/read')}",
|
||||
userMessage = "{:url('User/message')}",
|
||||
login = "{:url('Login/index')}",
|
||||
articleAdd = "{:url('Article/add')}",
|
||||
websearch = "{:url('index/index/search')}",
|
||||
textImgUpload = "{:url('index/article/textImgUpload')}",
|
||||
textImgUpload = "{:url('article/textImgUpload')}",
|
||||
videoUrl = "{:url('article/upVideo')}",
|
||||
searchUrl = "{:url('index/search')}",
|
||||
langUrl = "{:url('index/language')}",
|
||||
replyNum = "{:lang('replies')}";
|
||||
|
@ -10,16 +10,18 @@
|
||||
<a href="{:url('user/home',['id'=>$art.user.id])}" link>
|
||||
<i class="layui-badge layui-bg-green" title="来自哪简称">{:getAsing($art.user.area_id) ?: '无'}</i>
|
||||
<cite>{$art.user.nickname ?: $art.user.name}</cite>
|
||||
<i>{$art.create_time|date='Y-m-d'}</i>
|
||||
<!--
|
||||
<i class="iconfont icon-renzheng" title="认证信息:XXX"></i>
|
||||
-->
|
||||
{if($art.user.vip > 0)}
|
||||
<i class="layui-badge fly-badge-vip">vip{$art.user.vip}</i>
|
||||
{/if}
|
||||
-->
|
||||
</a>
|
||||
<span>
|
||||
{$art.create_time|date='Y-m-d'}
|
||||
{$art.has_img ?= ' <i class="layui-icon layui-icon-picture" style="color: #5FB878;"></i>'}
|
||||
{$art.has_video ?= ' <i class="layui-icon layui-icon-play" style="color: #FF5722;"></i>'}
|
||||
{$art.has_audio ?= ' <i class="layui-icon layui-icon-speaker" style="color: #000000;"></i>'}
|
||||
{$art.upzip ?= ' <i class="layui-icon layui-icon-file-b" style="color: #009688;" title="附件"></i>'}
|
||||
</span>
|
||||
<span class="layui-hide-xs" title="浏览"><i class="iconfont" title="浏览"></i> {$art.pv}</span>
|
||||
|
@ -10,14 +10,18 @@
|
||||
<a href="{:url('user/home',['id'=>$top.user_id])}" link>
|
||||
<i class="layui-badge layui-bg-green" title="来自哪简称">{:getAsing($top.user.area_id) ?: '无'}</i>
|
||||
<cite>{$top.user.nickname ?: $top.user.name}</cite>
|
||||
<!--i class="iconfont icon-renzheng" title="认证信息:XXX"></i-->
|
||||
<i>{$top.create_time|date='Y-m-d'}</i>
|
||||
<!--
|
||||
<i class="iconfont icon-renzheng" title="认证信息:XXX"></i>
|
||||
{if($top.user.vip > 0)}
|
||||
<i class="layui-badge fly-badge-vip">vip{$top.user.vip}</i>
|
||||
{/if}
|
||||
-->
|
||||
</a>
|
||||
<span>
|
||||
{$top.create_time|date='Y-m-d'}
|
||||
{$top.has_img ?= ' <i class="layui-icon layui-icon-picture" style=" color: #5FB878;"></i>'}
|
||||
{$top.has_img ?= ' <i class="layui-icon layui-icon-picture" style="color: #5FB878;"></i>'}
|
||||
{$top.has_video ?= ' <i class="layui-icon layui-icon-play" style="color: #FF5722;"></i>'}
|
||||
{$top.has_audio ?= ' <i class="layui-icon layui-icon-speaker" style="color: #000000;"></i>'}
|
||||
{$top.upzip ?= ' <i class="layui-icon layui-icon-file-b" style="color: #009688;" title="附件"></i>'}
|
||||
</span>
|
||||
<span class=" layui-hide-xs" title="浏览"> <i class="iconfont" title="浏览"></i> {$top.pv} </span>
|
||||
|
@ -1,6 +1,8 @@
|
||||
{extend name="public/base" /}
|
||||
|
||||
{block name="title"}{$u.nickname ?: $u.name}的主页-{$sysInfo.webname}{/block}
|
||||
{block name="description"}{$u.sign}{/block}
|
||||
{block name="link"}<link rel="stylesheet" href="/static/res/css/plyr.css" charset="utf-8">{/block}
|
||||
{block name="column"}{/block}
|
||||
{block name="content"}
|
||||
<div class="fly-home fly-panel" style="background-image: url();">
|
||||
@ -77,15 +79,19 @@
|
||||
|
||||
{block name="script"}
|
||||
<script>
|
||||
layui.use('face', function(){
|
||||
layui.use(['fly','face','plyr'], function(){
|
||||
var $ = layui.$;
|
||||
var fly = layui.fly;
|
||||
var face = layui.face
|
||||
,plyr = layui.plyr;
|
||||
|
||||
//如果你是采用模版自带的编辑器,你需要开启以下语句来解析。
|
||||
$('.detail-body').each(function(){
|
||||
var othis = $(this), html = othis.html();
|
||||
othis.html(fly.content(html));
|
||||
});
|
||||
|
||||
//加载播放器
|
||||
plyr.setup();
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
|
Loading…
x
Reference in New Issue
Block a user