public function save_comment_action() { if (!($article_info = $this->model('article')->get_article_info_by_id($_POST['article_id']))) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('指定文章不存在'))); } if ($article_info['lock'] and !($this->user_info['permission']['is_administortar'] or $this->user_info['permission']['is_moderator'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('已经锁定的文章不能回复'))); } $message = trim($_POST['message'], "\r\n\t"); if (!$message) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请输入回复内容'))); } if (strlen($message) < get_setting('answer_length_lower')) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('回复内容字数不得少于 %s 字节', get_setting('answer_length_lower')))); } if (!$this->user_info['permission']['publish_url'] and FORMAT::outside_url_exists($message)) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('你所在的用户组不允许发布站外链接'))); } if (human_valid('answer_valid_hour') and !AWS_APP::captcha()->is_validate($_POST['seccode_verify'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请填写正确的验证码'))); } // !注: 来路检测后面不能再放报错提示 if (!valid_post_hash($_POST['post_hash'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面'))); } if ($this->publish_approval_valid()) { $this->model('publish')->publish_approval('article_comment', array('article_id' => intval($_POST['article_id']), 'message' => $message, 'at_uid' => intval($_POST['at_uid'])), $this->user_id); H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/publish/wait_approval/article_id-' . intval($_POST['article_id']) . '__is_mobile-' . $_POST['_is_mobile'])), 1, null)); } else { $comment_id = $this->model('publish')->publish_article_comment($_POST['article_id'], $message, $this->user_id, $_POST['at_uid']); $url = get_js_url('/article/' . intval($_POST['article_id']) . '?item_id=' . $comment_id); H::ajax_json_output(AWS_APP::RSM(array('url' => $url), 1, null)); } }
public function send_action() { if (trim($_POST['message']) == '') { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请输入私信内容'))); } if (!($recipient_user = $this->model('account')->get_user_info_by_username($_POST['recipient']))) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('接收私信的用户不存在'))); } if ($recipient_user['uid'] == $this->user_id) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('不能给自己发私信'))); } if ($recipient_user['inbox_recv']) { if (!$this->model('message')->check_permission($recipient_user['uid'], $this->user_id)) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('对方设置了只有 Ta 关注的人才能给 Ta 发送私信'))); } } // !注: 来路检测后面不能再放报错提示 if (!valid_post_hash($_POST['post_hash'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面'))); } $this->model('message')->send_message($this->user_id, $recipient_user['uid'], $_POST['message']); if ($_POST['return_url']) { $rsm = array('url' => get_js_url(strip_tags($_POST['return_url']))); } else { $rsm = array('url' => get_js_url('/inbox/')); } H::ajax_json_output(AWS_APP::RSM($rsm, 1, null)); }
public function publish_action() { if (!$this->user_info['permission']['publish_ticket']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('你没有权限发布工单'))); } $_POST['title'] = trim($_POST['title']); if (!$_POST['title']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请输入工单标题'))); } if (human_valid('question_valid_hour') and !AWS_APP::captcha()->is_validate($_POST['seccode_verify'])) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请填写正确的验证码'))); } if (!$this->model('publish')->insert_attach_is_self_upload($_POST['message'], $_POST['attach_ids'])) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('只允许插入当前页面上传的附件'))); } // !注: 来路检测后面不能再放报错提示 if (!valid_post_hash($_POST['post_hash'])) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面'))); } $ticket_id = $this->model('ticket')->save_ticket($_POST['title'], $_POST['message'], $this->user_id, $_POST['attach_access_key']); if (!$ticket_id) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('发布失败'))); } $this->model('draft')->delete_draft(1, 'ticket', $this->user_id); H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/ticket/' . $ticket_id)), 1, null)); }
public function modify_article_action() { if (!($article_info = $this->model('article')->get_article_info_by_id($_POST['article_id']))) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('文章不存在'))); } if ($article_info['lock'] and !($this->user_info['permission']['is_administortar'] or $this->user_info['permission']['is_moderator'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('文章已锁定, 不能编辑'))); } if (!$this->user_info['permission']['is_administortar'] and !$this->user_info['permission']['is_moderator'] and !$this->user_info['permission']['edit_article']) { if ($article_info['uid'] != $this->user_id) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('你没有权限编辑这个文章'))); } } if (!$_POST['title']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请输入文章标题'))); } if (get_setting('category_enable') == 'N') { $_POST['category_id'] = 1; } if (!$_POST['category_id']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请选择文章分类'))); } if (get_setting('question_title_limit') > 0 and cjk_strlen($_POST['title']) > get_setting('question_title_limit')) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('文章标题字数不得大于') . ' ' . get_setting('question_title_limit') . ' ' . AWS_APP::lang()->_t('字节'))); } if (!$this->user_info['permission']['publish_url'] and FORMAT::outside_url_exists($_POST['message'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('你所在的用户组不允许发布站外链接'))); } if (human_valid('question_valid_hour') and !AWS_APP::captcha()->is_validate($_POST['seccode_verify'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请填写正确的验证码'))); } if (!$this->model('publish')->insert_attach_is_self_upload($_POST['message'], $_POST['attach_ids'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('只允许插入当前页面上传的附件'))); } // !注: 来路检测后面不能再放报错提示 if (!valid_post_hash($_POST['post_hash'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面'))); } $this->model('draft')->delete_draft(1, 'article', $this->user_id); if ($_POST['do_delete'] and !$this->user_info['permission']['is_administortar'] and !$this->user_info['permission']['is_moderator']) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('对不起, 你没有删除文章的权限'))); } if ($_POST['do_delete']) { if ($this->user_id != $article_info['uid']) { $this->model('account')->send_delete_message($article_info['uid'], $article_info['title'], $article_info['message']); } $this->model('article')->remove_article($article_info['id']); H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/home/explore/')), 1, null)); } $this->model('article')->update_article($article_info['id'], $_POST['title'], $_POST['message'], $_POST['topics'], $_POST['category_id'], $this->user_info['permission']['create_topic']); if ($_POST['attach_access_key']) { $this->model('publish')->update_attach('article', $article_info['id'], $_POST['attach_access_key']); } H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/article/' . $article_info['id'])), 1, null)); }
public function save_answer_action() { if ($this->user_info['integral'] < 0 and get_setting('integral_system_enabled') == 'Y') { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('你的剩余积分已经不足以进行此操作'))); } if (!($question_info = $this->model('question')->get_question_info_by_id($_POST['question_id']))) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('问题不存在'))); } if ($question_info['lock'] and !($this->user_info['permission']['is_administortar'] or $this->user_info['permission']['is_moderator'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('已经锁定的问题不能回复'))); } $answer_content = trim($_POST['answer_content'], "\r\n\t"); if (!$answer_content) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请输入回复内容'))); } // 判断是否是问题发起者 if (get_setting('answer_self_question') == 'N' and $question_info['published_uid'] == $this->user_id) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('不能回复自己发布的问题,你可以修改问题内容'))); } // 判断是否已回复过问题 if (get_setting('answer_unique') == 'Y' and $this->model('answer')->has_answer_by_uid($question_info['question_id'], $this->user_id)) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('一个问题只能回复一次,你可以编辑回复过的回复'))); } if (strlen($answer_content) < get_setting('answer_length_lower')) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('回复内容字数不得少于 %s 字节', get_setting('answer_length_lower')))); } if (!$this->user_info['permission']['publish_url'] and FORMAT::outside_url_exists($answer_content)) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('你所在的用户组不允许发布站外链接'))); } if (!$this->model('publish')->insert_attach_is_self_upload($answer_content, $_POST['attach_ids'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('只允许插入当前页面上传的附件'))); } if (human_valid('answer_valid_hour') and !AWS_APP::captcha()->is_validate($_POST['seccode_verify'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请填写正确的验证码'))); } // !注: 来路检测后面不能再放报错提示 if (!valid_post_hash($_POST['post_hash'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面'))); } $this->model('draft')->delete_draft($question_info['question_id'], 'answer', $this->user_id); if ($this->publish_approval_valid($answer_content)) { $this->model('publish')->publish_approval('answer', array('question_id' => $question_info['question_id'], 'answer_content' => $answer_content, 'anonymous' => $_POST['anonymous'], 'attach_access_key' => $_POST['attach_access_key'], 'auto_focus' => $_POST['auto_focus']), $this->user_id, $_POST['attach_access_key']); H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/publish/wait_approval/question_id-' . $question_info['question_id'] . '__is_mobile-' . $_POST['_is_mobile'])), 1, null)); } else { $answer_id = $this->model('publish')->publish_answer($question_info['question_id'], $answer_content, $this->user_id, $_POST['anonymous'], $_POST['attach_access_key'], $_POST['auto_focus']); if ($_POST['_is_mobile']) { //$url = get_js_url('/m/question/id-' . $question_info['question_id'] . '__item_id-' . $answer_id . '__rf-false'); $this->model('answer')->set_answer_publish_source($answer_id, 'mobile'); } else { //$url = get_js_url('/question/' . $question_info['question_id'] . '?item_id=' . $answer_id . '&rf=false'); } $answer_info = $this->model('answer')->get_answer_by_id($answer_id); if ($answer_info['has_attach']) { $answer_info['attachs'] = $this->model('publish')->get_attach('answer', $answer_id, 'min'); $answer_info['insert_attach_ids'] = FORMAT::parse_attachs($answer_info['answer_content'], true); } $answer_info['user_info'] = $this->user_info; $answer_info['answer_content'] = $this->model('question')->parse_at_user(FORMAT::parse_attachs(nl2br(FORMAT::parse_bbcode($answer_info['answer_content'])))); TPL::assign('answer_info', $answer_info); if (is_mobile()) { H::ajax_json_output(AWS_APP::RSM(array('ajax_html' => TPL::output('m/ajax/question_answer', false)), 1, null)); } else { H::ajax_json_output(AWS_APP::RSM(array('ajax_html' => TPL::output('question/ajax/answer', false)), 1, null)); } } }
public function update_project_action() { if (!($project_info = $this->model('project')->get_project_info_by_id($_POST['project_id']))) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('项目不存在'))); } if (!$this->user_info['permission']['is_administortar'] and !$this->user_info['permission']['is_moderator']) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('你没有权限编辑这个项目'))); } if (get_setting('category_enable') == 'N') { $_POST['category_id'] = 1; } if (!$_POST['category_id']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请选择项目分类'))); } if (!is_digits($_POST['start_time']) or !is_digits($_POST['end_time'])) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('活动时间错误'))); } if (date('Ymd', $_POST['start_time']) < date('Ymd', time())) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('活动开始时间不能小于当前日期'))); } if ($_POST['end_time'] <= $_POST['start_time']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('活动结束时间必须大于开始时间'))); } if ($_POST['video_link']) { if (!load_class('Services_VideoUrlParser')->parse($_POST['video_link'])) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('视频链接无效,如果没有视频请留空'))); } } if ($_FILES['cover']['name']) { AWS_APP::upload()->initialize(array('allowed_types' => 'jpg,jpeg,png', 'upload_path' => get_setting('upload_dir') . '/project', 'is_image' => TRUE))->do_upload('cover'); if (AWS_APP::upload()->get_error()) { switch (AWS_APP::upload()->get_error()) { default: H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('错误代码') . ': ' . AWS_APP::upload()->get_error())); break; case 'upload_invalid_filetype': H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('文件类型无效'))); break; } } if (!($upload_data = AWS_APP::upload()->data())) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('上传失败, 请与管理员联系'))); } } // !注: 来路检测后面不能再放报错提示 if (!valid_post_hash($_POST['post_hash'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面'))); } $this->model('project')->update_project($_POST['project_id'], $_POST['title'], $_POST['category_id'], $_POST['country'], $_POST['province'], $_POST['city'], $_POST['summary'], $_POST['description'], $_POST['amount'], $_POST['attach_access_key'], $_POST['topics'], $_POST['video_link'], $_POST['start_time'], $_POST['end_time']); if ($_POST['project_product']) { foreach ($_POST['project_product'] as $key => $val) { if (!$val['stock']) { $val['stock'] = -99; } $this->model('project')->add_product($_POST['project_id'], $val['title'], $val['amount'], $val['stock'], $val['description']); } } if ($upload_data) { AWS_APP::image()->initialize(array('quality' => 90, 'source_image' => $upload_data['full_path'], 'new_image' => $upload_data['file_path'] . intval($_POST['project_id']) . '_thumb.jpg', 'width' => 223, 'height' => 165))->resize(); AWS_APP::image()->initialize(array('quality' => 90, 'source_image' => $upload_data['full_path'], 'new_image' => $upload_data['file_path'] . intval($_POST['project_id']) . '_main.jpg', 'width' => 600, 'height' => 450))->resize(); unlink($upload_data['full_path']); } H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/project/' . intval($_POST['project_id']))), 1, null)); }