Beispiel #1
0
 /**
  * 发布活动
  * @param int    $id
  * @param int    $cover_id
  * @param string $title
  * @param string $explain
  * @param string $sTime
  * @param string $eTime
  * @param string $address
  * @param int    $limitCount
  * @param string $deadline
  * autor:xjw129xjt
  */
 public function doPost($id = 0, $cover_id = 0, $title = '', $explain = '', $sTime = '', $eTime = '', $address = '', $limitCount = 0, $deadline = '', $type_id = 0)
 {
     if (!is_login()) {
         $this->error('请登陆后再投稿。');
     }
     if (!$cover_id) {
         $this->error('请上传封面。');
     }
     if (trim(op_t($title)) == '') {
         $this->error('请输入标题。');
     }
     if ($type_id == 0) {
         $this->error('请选择分类。');
     }
     if (trim(op_h($explain)) == '') {
         $this->error('请输入内容。');
     }
     if (trim(op_h($address)) == '') {
         $this->error('请输入地点。');
     }
     if ($sTime < $deadline) {
         $this->error('报名截止不能大于活动开始时间');
     }
     if ($deadline == '') {
         $this->error('请输入截止日期');
     }
     if ($sTime > $eTime) {
         $this->error('活动开始时间不能大于活动结束时间');
     }
     $content = D('Event')->create();
     $content['explain'] = op_h($content['explain']);
     $content['title'] = op_t($content['title']);
     $content['sTime'] = strtotime($content['sTime']);
     $content['eTime'] = strtotime($content['eTime']);
     $content['deadline'] = strtotime($content['deadline']);
     $content['type_id'] = intval($type_id);
     if ($id) {
         $content_temp = D('Event')->find($id);
         if (!is_administrator(is_login())) {
             //不是管理员则进行检测
             if ($content_temp['uid'] != is_login()) {
                 $this->error('小样儿,可别学坏。别以为改一下页面元素就能越权操作。');
             }
         }
         $content['uid'] = $content_temp['uid'];
         //权限矫正,防止被改为管理员
         $rs = D('Event')->save($content);
         $postUrl = "http://{$_SERVER['HTTP_HOST']}" . U('Event/Index/detail', array('id' => $id));
         $weiboApi = new WeiboApi();
         $weiboApi->resetLastSendTime();
         $weiboApi->sendWeibo("我修改了活动【" . $title . "】:" . $postUrl);
         if ($rs) {
             $this->success('编辑成功。', U('detail', array('id' => $content['id'])));
         } else {
             $this->success('编辑失败。', '');
         }
     } else {
         if (C('NEED_VERIFY') && !is_administrator()) {
             $content['status'] = 0;
             $tip = '但需管理员审核通过后才会显示在列表中,请耐心等待。';
             $user = query_user(array('username', 'nickname'), is_login());
             D('Common/Message')->sendMessage(C('USER_ADMINISTRATOR'), "{$user['nickname']}发布了一个活动,请到后台审核。", $title = '活动发布提醒', U('Admin/Event/verify'), is_login(), 2);
         }
         $rs = D('Event')->add($content);
         //同步到微博
         $postUrl = "http://{$_SERVER['HTTP_HOST']}" . U('Event/Index/detail', array('id' => $rs));
         $weiboApi = new WeiboApi();
         $weiboApi->resetLastSendTime();
         $weiboApi->sendWeibo("我发布了一个新的活动【" . $title . "】:" . $postUrl);
         if ($rs) {
             $this->success('发布成功。' . $tip, U('index'));
         } else {
             $this->success('发布失败。', '');
         }
     }
 }
 public function addGroup()
 {
     if (!is_login()) {
         $this->apiError('请登陆后再发起活动。');
     }
     //基本信息
     $aTitle = I('title', '', 'op_t');
     $aDetail = I('detail', '', 'op_h');
     $aTypeId = I('type_id', 0, 'intval');
     /* $aBackground = I('background', 0, 'intval');*/
     $aType = I('type', 0, 'intval');
     $aLogo = I('logo', 0, 'intval');
     $aId = I('id', 0, 'intval');
     /*   if (!$aBackground) {
              $this->apiError('请上传封面。');
          }*/
     if (trim(op_t($aTitle)) == '') {
         $this->apiError('请输入标题。');
     }
     if ($aTypeId == 0) {
         $this->apiError('请选择分类。');
     }
     if (trim(op_h($aDetail)) == '') {
         $this->apiError('请填写群组介绍。');
     }
     /*     if (!$aLogo) {
                $this->apiError('请上传背景');
            }*/
     $data = D('Group/Group')->create();
     $data['detail'] = $aDetail;
     $data['title'] = $aTitle;
     $data['logo'] = $aLogo;
     /* $data['background'] = $aBackground;*/
     $data['type'] = $aType;
     $data['type_id'] = $aTypeId;
     $data['create_time'] = time();
     $data['uid'] = is_login();
     //根据id查看是否已有活动
     if ($aId) {
         $Group = D('Group/Group')->find($aId);
         if (!is_administrator(is_login())) {
             //不是管理员则进行检测
             if ($Group['uid'] != is_login()) {
                 $this->apiError('无权编辑');
             }
         }
         //编辑基本信息
         $result = D('Group/Group')->where(array('id' => $aId))->save($data);
         $postUrl = "http://{$_SERVER['HTTP_HOST']}" . U('Event/Index/group', array('id' => $aId));
         $weiboApi = new WeiboApi();
         $weiboApi->resetLastSendTime();
         $weiboApi->sendWeibo("我修改了群组【" . $aTitle . "】:" . $postUrl);
         if ($result) {
             $this->apiSuccess('编辑成功。', U('detail', array('id' => $data['id'])));
         } else {
             $this->apiError('编辑失败。');
         }
     } else {
         if (modC('NEED_VERIFY', 1, 'group') && !is_administrator()) {
             $data['status'] = 0;
             $user = query_user(array('username', 'nickname'), is_login());
             D('Common/Message')->sendMessage(C('USER_ADMINISTRATOR'), "{$user['nickname']}发布了一个活动,请到后台审核。", $title = '活动发布提醒', U('Admin/Group/verify'), is_login(), 2);
         }
         $Group = D('Group/Group')->add($data);
         //同步到微博
         $postUrl = "http://{$_SERVER['HTTP_HOST']}" . U('Group/Index/group', array('id' => $Group));
         $weiboModel = D('Weibo/Weibo');
         $weiboModel->addWeibo("我发布了一个新的活动【" . $aTitle . "】:" . $postUrl);
         if ($Group) {
             $this->apiSuccess('发布成功。但需管理员审核通过后才会显示在列表中,请耐心等待。');
         } else {
             $this->apiError('发布失败。');
         }
     }
 }
 public function doEdit($post_id = null, $forum_id = 0, $title, $content)
 {
     $post_id = intval($post_id);
     $forum_id = intval($forum_id);
     $title = op_t($title);
     $content = op_h($content);
     //判断是不是编辑模式
     $isEdit = $post_id ? true : false;
     $forum_id = intval($forum_id);
     //如果是编辑模式,确认当前用户能编辑帖子
     if ($isEdit) {
         $this->requireAllowEditPost($post_id);
     }
     //确认当前论坛能发帖
     $this->requireForumAllowPublish($forum_id);
     if ($title == '') {
         $this->error('请输入标题。');
     }
     if ($forum_id == 0) {
         $this->error('请选择发布的版块。');
     }
     if (strlen($content) < 20) {
         $this->error('发表失败:内容长度不能小于20');
     }
     $content = filterBase64($content);
     //检测图片src是否为图片并进行过滤
     $content = filterImage($content);
     //写入帖子的内容
     $model = D('ForumPost');
     if ($isEdit) {
         $data = array('id' => intval($post_id), 'title' => $title, 'content' => $content, 'parse' => 0, 'forum_id' => intval($forum_id));
         $result = $model->editPost($data);
         if (!$result) {
             $this->error('编辑失败:' . $model->getError());
         }
     } else {
         $data = array('uid' => is_login(), 'title' => $title, 'content' => $content, 'parse' => 0, 'forum_id' => $forum_id);
         $before = getMyScore();
         $tox_money_before = getMyToxMoney();
         $result = $model->createPost($data);
         $after = getMyScore();
         $tox_money_after = getMyToxMoney();
         if (!$result) {
             $this->error('发表失败:' . $model->getError());
         }
         $post_id = $result;
     }
     //发布帖子成功,发送一条微博消息
     $postUrl = "http://{$_SERVER['HTTP_HOST']}" . U('Forum/Index/detail', array('id' => $post_id));
     $weiboApi = new WeiboApi();
     $weiboApi->resetLastSendTime();
     //实现发布帖子发布图片微博(公共内容)
     $type = 'feed';
     $feed_data = array();
     //解析并成立图片数据
     $arr = array();
     preg_match_all("/<[img|IMG].*?src=[\\'|\"](.*?(?:[\\.gif|\\.jpg|\\.png]))[\\'|\"].*?[\\/]?>/", $data['content'], $arr);
     //匹配所有的图片
     if (!empty($arr[0])) {
         $feed_data['attach_ids'] = '';
         $dm = "http://{$_SERVER['HTTP_HOST']}" . __ROOT__;
         //前缀图片多余截取
         $max = count($arr['1']) > 9 ? 9 : count($arr['1']);
         for ($i = 0; $i < $max; $i++) {
             $tmparray = strpos($arr['1'][$i], $dm);
             if (!is_bool($tmparray)) {
                 $path = mb_substr($arr['1'][$i], strlen($dm), strlen($arr['1'][$i]) - strlen($dm));
                 $result_id = D('Home/Picture')->where(array('path' => $path))->getField('id');
             } else {
                 $path = $arr['1'][$i];
                 $result_id = D('Home/Picture')->where(array('path' => $path))->getField('id');
                 if (!$result_id) {
                     $result_id = D('Home/Picture')->add(array('path' => $path, 'url' => $path, 'status' => 1, 'create_time' => time()));
                 }
             }
             $feed_data['attach_ids'] = $feed_data['attach_ids'] . ',' . $result_id;
         }
         $feed_data['attach_ids'] = substr($feed_data['attach_ids'], 1);
     }
     $feed_data['attach_ids'] != false && ($type = "image");
     //开始发布微博
     if ($isEdit) {
         $weiboApi->sendWeibo("我更新了帖子【" . $title . "】:" . $postUrl, $type, $feed_data);
     } else {
         $weiboApi->sendWeibo("我发表了一个新的帖子【" . $title . "】:" . $postUrl, $type, $feed_data);
     }
     //显示成功消息
     $message = $isEdit ? '编辑成功。' : '发表成功。' . getScoreTip($before, $after) . getToxMoneyTip($tox_money_before, $tox_money_after);
     $this->success($message, U('Forum/Index/detail', array('id' => $post_id)));
 }
Beispiel #4
0
 public function doEdit($post_id = null, $forum_id = 0, $title, $content)
 {
     $post_id = intval($post_id);
     $forum_id = intval($forum_id);
     $title = op_t($title);
     $content = op_h($content);
     //判断是不是编辑模式
     $isEdit = $post_id ? true : false;
     $forum_id = intval($forum_id);
     //如果是编辑模式,确认当前用户能编辑帖子
     if ($isEdit) {
         $this->requireAllowEditPost($post_id);
     }
     //确认当前贴吧能发帖
     $this->requireForumAllowPublish($forum_id);
     if ($title == '') {
         $this->error('请输入标题。');
     }
     if ($forum_id == 0) {
         $this->error('请选择发布的版块。');
     }
     if (strlen($content) < 20) {
         $this->error('发表失败:内容长度不能小于20');
     }
     //写入帖子的内容
     $model = D('ForumPost');
     if ($isEdit) {
         $data = array('id' => intval($post_id), 'title' => $title, 'content' => $content, 'parse' => 0, 'forum_id' => intval($forum_id));
         $result = $model->editPost($data);
         if (!$result) {
             $this->error('编辑失败:' . $model->getError());
         }
     } else {
         $data = array('uid' => is_login(), 'title' => $title, 'content' => $content, 'parse' => 0, 'forum_id' => $forum_id);
         $before = getMyScore();
         $tox_money_before = getMyToxMoney();
         $result = $model->createPost($data);
         $after = getMyScore();
         $tox_money_after = getMyToxMoney();
         if (!$result) {
             $this->error('发表失败:' . $model->getError());
         }
         $post_id = $result;
     }
     //发布帖子成功,发送一条微博消息
     $postUrl = "http://{$_SERVER['HTTP_HOST']}" . U('Forum/Index/detail', array('id' => $post_id));
     $weiboApi = new WeiboApi();
     $weiboApi->resetLastSendTime();
     if ($isEdit) {
         $weiboApi->sendWeibo("我更新了帖子【" . $title . "】:" . $postUrl);
     } else {
         $weiboApi->sendWeibo("我发表了一个新的帖子【" . $title . "】:" . $postUrl);
     }
     //显示成功消息
     $message = $isEdit ? '编辑成功。' : '发表成功。' . getScoreTip($before, $after) . getToxMoneyTip($tox_money_before, $tox_money_after);
     $this->success($message, U('Forum/Index/detail', array('id' => $post_id)));
 }