214 lines
5.3 KiB
PHP
214 lines
5.3 KiB
PHP
<?php
|
|
defined('IN_TS') or die('Access Denied.');
|
|
|
|
//判断用户登录
|
|
$userid = aac('user') -> isLogin();
|
|
|
|
//判断用户是否存在
|
|
if(aac('user')->isUser($userid)==false) tsNotice('不好意思,用户不存在!');
|
|
|
|
//判断发布者状态
|
|
if(aac('user')->isPublisher()==false) tsNotice('不好意思,你还没有权限发布内容!');
|
|
|
|
//发布时间限制
|
|
if(aac('system')->pubTime()==false) tsNotice('不好意思,当前时间不允许发布内容!');
|
|
|
|
//发布时间间隔限制
|
|
if($TS_SITE['timeblank']){
|
|
$lastArticle = $new['article']->find('article',array(
|
|
'userid'=>$userid,
|
|
),'articleid,addtime','addtime desc');
|
|
if($lastArticle){
|
|
if((time()-strtotime($lastArticle['addtime']))<$TS_SITE['timeblank']){
|
|
tsNotice('不好意思,您的内容发送频率过高!请等等再发布!');
|
|
}
|
|
}
|
|
}
|
|
|
|
//发布内容扣除积分限制
|
|
$strScoreOption = $new['article']->find('user_score',array(
|
|
'app'=>'article',
|
|
'action'=>'add',
|
|
'ts'=>'do',
|
|
));
|
|
if($strScoreOption && $strScoreOption['status']==1){
|
|
#用户积分数
|
|
$strUserScore = $new['article']->find('user_info',array(
|
|
'userid'=>$userid,
|
|
),'count_score');
|
|
if($strUserScore['count_score']<$strScoreOption['score']){
|
|
tsNotice('不好意思,您的积分不足!');
|
|
}
|
|
}
|
|
|
|
switch ($ts) {
|
|
case "" :
|
|
if ($TS_APP['allowpost'] == 0 && $TS_USER['isadmin'] == 0) {
|
|
tsNotice('系统设置不允许会员发文章!');
|
|
}
|
|
|
|
$cateid = tsIntval($_GET['cateid']);
|
|
|
|
|
|
foreach ($arrCate as $key=>$item){
|
|
$arrCate[$key]['two'] = $new['article']->findAll('article_cate',array(
|
|
'referid'=>$item['cateid'],
|
|
));
|
|
}
|
|
|
|
|
|
#加载草稿箱
|
|
$strDraft = $new['article']->find('draft',array(
|
|
'userid'=>$userid,
|
|
'types'=>'article',
|
|
));
|
|
|
|
|
|
$title = '发布文章';
|
|
include template('add');
|
|
break;
|
|
|
|
case "do" :
|
|
|
|
#验证码验证
|
|
$authcode = strtolower($_POST ['authcode']);
|
|
if ($TS_SITE['isauthcode']){
|
|
if ($authcode != $_SESSION['verify']){
|
|
tsNotice("验证码输入有误,请重新输入!" );
|
|
}
|
|
}
|
|
|
|
#人机验证
|
|
$vaptcha_token = tsTrim($_POST['vaptcha_token']);
|
|
$vaptcha_server = tsTrim($_POST['vaptcha_server']);
|
|
if ($TS_SITE['is_vaptcha']){
|
|
$strVt = vaptcha($vaptcha_token,0,$vaptcha_server);
|
|
if($strVt['success']==0){
|
|
tsNotice('人机验证未通过!');
|
|
}
|
|
}
|
|
|
|
|
|
$cateid = tsIntval($_POST['cateid']);
|
|
$cateid2 = tsIntval($_POST['cateid2']);
|
|
|
|
if($cateid2) $cateid = $cateid2;
|
|
|
|
$title = tsTrim($_POST['title']);
|
|
$content = tsClean($_POST['content']);
|
|
$content2 = emptyText($_POST['content']);
|
|
$gaiyao = tsTrim($_POST['gaiyao']);
|
|
$tag = tsClean($_POST['tag']);
|
|
$addtime = date('Y-m-d H:i:s');
|
|
|
|
$score = tsIntval($_POST ['score']);#积分
|
|
|
|
|
|
//匿名用户
|
|
$isniming = tsIntval($_POST['isniming']);
|
|
if($TS_SITE['isniming']==1 && $isniming==1) $userid = aac('user')->getNimingId();
|
|
|
|
|
|
|
|
if (tsIntval($TS_USER['isadmin']) == 0) {
|
|
// 过滤内容开始
|
|
$title = antiWord($title);
|
|
$content = antiWord($content);
|
|
$tag = antiWord($tag);
|
|
// 过滤内容结束
|
|
}
|
|
|
|
if ($title == '' || $content2 == '' || $content=='')
|
|
tsNotice("标题和内容都不能为空!");
|
|
|
|
$isTitle = $new['article']->findCount('article',array(
|
|
'title'=>$title,
|
|
));
|
|
|
|
if($isTitle){
|
|
tsNotice("相同标题的文章已经存在!");
|
|
}
|
|
|
|
if($gaiyao){
|
|
$gaiyao = cututf8($gaiyao,0,100);
|
|
}else{
|
|
$gaiyao = cututf8(t(tsDecode($content)),0,100);
|
|
}
|
|
|
|
if($score<0){
|
|
tsNotice ( '积分填写有误!' );
|
|
}
|
|
|
|
//1审核后显示0不审核
|
|
if ($TS_APP['isaudit'] == 1) {
|
|
$isaudit = 1;
|
|
} else {
|
|
$isaudit = 0;
|
|
}
|
|
|
|
$articleid = $new['article'] -> create('article', array(
|
|
'userid' => $userid,
|
|
'cateid' => $cateid,
|
|
'title' => $title,
|
|
#'content' => $content,
|
|
'gaiyao' => $gaiyao,
|
|
'score'=>$score,
|
|
'isaudit' => $isaudit,
|
|
'addtime' => date('Y-m-d H:i:s')
|
|
));
|
|
|
|
if($articleid){
|
|
|
|
$new['article'] -> create('article_content', array(
|
|
'articleid' => $articleid,
|
|
'content' => $content,
|
|
));
|
|
|
|
|
|
#清空草稿箱
|
|
$new['article']->delete('draft',array(
|
|
'userid'=>$userid,
|
|
'types'=>'article',
|
|
));
|
|
|
|
|
|
// 上传图片开始
|
|
$arrUpload = tsUpload($_FILES['photo'], $articleid, 'article', array('jpg', 'gif', 'png', 'jpeg'));
|
|
if ($arrUpload) {
|
|
$new['article'] -> update('article', array(
|
|
'articleid' => $articleid
|
|
), array(
|
|
'path' => $arrUpload['path'],
|
|
'photo' => $arrUpload['url']
|
|
));
|
|
|
|
#生成不同尺寸的图片
|
|
tsXimg($arrUpload['url'],'article',320,180,$arrUpload['path'],'1');
|
|
//tsXimg($arrUpload['url'],'article',640,'',$arrUpload['path']);
|
|
|
|
}
|
|
// 上传图片结束
|
|
|
|
// 处理标签
|
|
aac('tag') -> addTag('article', 'articleid', $articleid, $tag);
|
|
|
|
|
|
// 对积分进行处理
|
|
if($isaudit==0){
|
|
aac('user') -> doScore($TS_URL['app'], $TS_URL['ac'],$TS_URL['mg'],$TS_URL['api'],$TS_URL['ts']);
|
|
}
|
|
|
|
#用户记录
|
|
aac('pubs')->addLogs('article','articleid',$articleid,$userid,$title,$content,0);
|
|
|
|
header("Location: " . tsUrl('article', 'show', array('id' => $articleid)));
|
|
|
|
}else{
|
|
|
|
tsNotice ( '文章发布失败!' );
|
|
|
|
}
|
|
|
|
break;
|
|
}
|