/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqEtThank = MbqMain::$oClk->newObj('MbqEtThank'); $oMbqEtThank->key->setOriValue($in->postId); $oMbqRdEtForumPost = MbqMain::$oClk->newObj('MbqRdEtForumPost'); if ($oMbqEtForumPost = $oMbqRdEtForumPost->initOMbqEtForumPost($oMbqEtThank->key->oriValue, array('case' => 'byPostId'))) { $oMbqAclEtForumPost = MbqMain::$oClk->newObj('MbqAclEtForumPost'); $aclResult = $oMbqAclEtForumPost->canAclThankPost($oMbqEtForumPost); if ($aclResult === true) { //acl judge $oMbqWrEtForumPost = MbqMain::$oClk->newObj('MbqWrEtForumPost'); $oMbqEtThank->userId->setOriValue(MbqMain::$oCurMbqEtUser->userId->oriValue); $oMbqWrEtForumPost->thankPost($oMbqEtForumPost, $oMbqEtThank); $this->data['result'] = true; $oTapatalkPush = new TapatalkPush(); $oTapatalkPush->callMethod('doInternalPushThank', array('oMbqEtForumPost' => $oMbqEtForumPost, 'oMbqEtThank' => $oMbqEtThank)); } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid post id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtForumPost = MbqMain::$oClk->newObj('MbqRdEtForumPost'); if ($oMbqEtForumPost = $oMbqRdEtForumPost->initOMbqEtForumPost($in->postId, array('case' => 'byPostId'))) { $oMbqAclEtForumPost = MbqMain::$oClk->newObj('MbqAclEtForumPost'); $aclResult = $oMbqAclEtForumPost->canAclReportPost($oMbqEtForumPost); if ($aclResult === true) { //acl judge $oMbqWrEtForumPost = MbqMain::$oClk->newObj('MbqWrEtForumPost'); $result = $oMbqWrEtForumPost->reportPost($oMbqEtForumPost, $in->reason); if ($result === true) { $this->data['result'] = true; $this->data['result_text'] = 'Post reported'; } else { $this->data['result'] = false; $this->data['result_text'] = $result; } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid post id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); if ($oMbqEtForumTopic = $oMbqRdEtForumTopic->initOMbqEtForumTopic($in->topicId, array('case' => 'byTopicId'))) { $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); $aclResult = $oMbqAclEtForumTopic->canAclMRenameTopic($oMbqEtForumTopic); if ($aclResult === true) { //acl judge $oMbqWrEtForumTopic = MbqMain::$oClk->newObj('MbqWrEtForumTopic'); $result = $oMbqWrEtForumTopic->mRenameTopic($oMbqEtForumTopic, $in->title); if ($result === true) { $this->data['result'] = true; } else { if ($result === false) { $this->data['result'] = false; $this->data['is_login_mod'] = true; $this->data['result_text'] = 'You need to authenticate again to do the action'; } else { $this->data['result'] = false; $this->data['result_text'] = $result; } } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid topic id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $forumId = MbqMain::$input['get']['fid']; $content = MbqMain::$input['get']['content'] ? MbqMain::$input['get']['content'] : 'both'; $page = (int) MbqMain::$input['get']['page']; $perpage = (int) MbqMain::$input['get']['perpage']; $type = MbqMain::$input['get']['type'] ? MbqMain::$input['get']['type'] : 'normal'; $prefix = MbqMain::$input['get']['prefix']; $oMbqDataPage = MbqMain::$oClk->newObj('MbqDataPage'); $oMbqDataPage->initByPageAndPerPage($page, $perpage); $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum'); $objsMbqEtForum = $oMbqRdEtForum->getObjsMbqEtForum(array($forumId), array('case' => 'byForumIds')); if ($objsMbqEtForum && ($oMbqEtForum = $objsMbqEtForum[0])) { if ($content == 'sub' || $content == 'both') { MbqError::alert('', "Not support content type {$content}!", '', MBQ_ERR_APP); } elseif ($content == 'topic') { $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); if ($oMbqAclEtForumTopic->canAclGetTopic($oMbqEtForum)) { //acl judge switch ($type) { case 'sticky': /* returns sticky topics. */ $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); $oMbqDataPage = $oMbqRdEtForumTopic->getObjsMbqEtForumTopic($oMbqEtForum, array('case' => 'byForum', 'oMbqDataPage' => $oMbqDataPage, 'top' => true)); $this->data['total'] = (int) $oMbqDataPage->totalNum; //!!! must $this->data['forum'] = $oMbqRdEtForum->returnApiDataForum($oMbqEtForum); $this->data['forums'] = array(); $this->data['topics'] = $oMbqRdEtForumTopic->returnApiArrDataForumTopic($oMbqDataPage->datas); break; case 'normal': /* returns standard topics */ $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); $oMbqDataPage = $oMbqRdEtForumTopic->getObjsMbqEtForumTopic($oMbqEtForum, array('case' => 'byForum', 'oMbqDataPage' => $oMbqDataPage, 'notIncludeTop' => true)); $this->data['total'] = (int) $oMbqDataPage->totalNum; //!!! must $this->data['forum'] = $oMbqRdEtForum->returnApiDataForum($oMbqEtForum); $this->data['forums'] = array(); $this->data['topics'] = $oMbqRdEtForumTopic->returnApiArrDataForumTopic($oMbqDataPage->datas); break; case 'all': MbqError::alert('', "Not supported topic type filter:{$type}.", '', MBQ_ERR_APP); break; default: MbqError::alert('', "Unknown topic type filter:{$type}.", '', MBQ_ERR_APP); break; } } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid content type!", '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid forum id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $startNum = (int) MbqMain::$input[0]; $lastNum = (int) MbqMain::$input[1]; $oMbqDataPage = MbqMain::$oClk->newObj('MbqDataPage'); $oMbqDataPage->initByStartAndLast($startNum, $lastNum); $filter = array('searchid' => MbqMain::$input[2], 'page' => $oMbqDataPage->curPage, 'perpage' => $oMbqDataPage->numPerPage); if (MbqMain::$input[3] && is_array(MbqMain::$input[3])) { $filter = array_merge($filter, MbqMain::$input[3]); } $filter['showposts'] = 0; $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); if ($oMbqAclEtForumTopic->canAclGetUnreadTopic()) { //acl judge $oMbqRdForumSearch = MbqMain::$oClk->newObj('MbqRdForumSearch'); $oMbqDataPage = $oMbqRdForumSearch->forumAdvancedSearch($filter, $oMbqDataPage, array('case' => 'getUnreadTopic', 'unread' => true)); $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); $this->data['result'] = true; $this->data['total_topic_num'] = (int) $oMbqDataPage->totalNum; $this->data['topics'] = $oMbqRdEtForumTopic->returnApiArrDataForumTopic($oMbqDataPage->datas); } else { MbqError::alert('', '', '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $topicId = MbqMain::$input[0]; $forumId = MbqMain::$input[1]; $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum'); $oMbqEtForumTopic = $oMbqRdEtForumTopic->initOMbqEtForumTopic($topicId, array('case' => 'byTopicId')); $objsMbqEtForum = $oMbqRdEtForum->getObjsMbqEtForum(array($forumId), array('case' => 'byForumIds')); if ($oMbqEtForumTopic && $objsMbqEtForum && ($oMbqEtForum = $objsMbqEtForum[0])) { $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); if ($oMbqAclEtForumTopic->canAclMMoveTopic($oMbqEtForumTopic, $oMbqEtForum)) { //acl judge $oMbqWrEtForumTopic = MbqMain::$oClk->newObj('MbqWrEtForumTopic'); $oMbqWrEtForumTopic->mMoveTopic($oMbqEtForumTopic, $oMbqEtForum); $this->data['result'] = true; } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid topic id or forum id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $postId = MbqMain::$input[0]; $mode = (int) MbqMain::$input[1]; if ($mode != 1 && $mode != 2) { MbqError::alert('', "Need valid mode!", '', MBQ_ERR_APP); } if ($mode == 2) { MbqError::alert('', "Sorry!Not support hard-delete a post!", '', MBQ_ERR_APP); } $oMbqRdEtForumPost = MbqMain::$oClk->newObj('MbqRdEtForumPost'); if ($oMbqEtForumPost = $oMbqRdEtForumPost->initOMbqEtForumPost($postId, array('case' => 'byPostId'))) { $oMbqAclEtForumPost = MbqMain::$oClk->newObj('MbqAclEtForumPost'); if ($oMbqAclEtForumPost->canAclMDeletePost($oMbqEtForumPost, $mode)) { //acl judge $oMbqWrEtForumPost = MbqMain::$oClk->newObj('MbqWrEtForumPost'); $oMbqWrEtForumPost->mDeletePost($oMbqEtForumPost, $mode); $this->data['result'] = true; } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid post id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('subscribe')) { MbqError::alert('', "Not support module subscribe!", '', MBQ_ERR_NOT_SUPPORT); } if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum'); if ($oMbqEtForum = $oMbqRdEtForum->initOMbqEtForum($in->forumId, array('case' => 'byForumId'))) { $oMbqAclEtForum = MbqMain::$oClk->newObj('MbqAclEtForum'); $aclResult = $oMbqAclEtForum->canAclUnsubscribeForum($oMbqEtForum); if ($aclResult === true) { //acl judge $oMbqWrEtForum = MbqMain::$oClk->newObj('MbqWrEtForum'); $result = $oMbqWrEtForum->unsubscribeForum($oMbqEtForum); if ($result === true) { $this->data['result'] = true; } else { $this->data['result'] = false; $this->data['result_text'] = $result; } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid forum id!", '', MBQ_ERR_APP); } }
/** * upload an attachment * * @param Integer $forumId * @param String $groupId * @return Object $oMbqEtAtt */ public function uploadAttachment($oMbqEtForum, $groupId = null) { //ref wcf\action\AJAXUploadAction,wcf\action\AJAXProxyAction,wcf\data\attachment\AttachmentAction $parameters['objectType'] = 'com.woltlab.wbb.post'; $parameters['objectID'] = 0; $parameters['tmpHash'] = $groupId ? $groupId : StringUtil::getRandomID(); $parameters['parentObjectID'] = $oMbqEtForum->forumId->oriValue; $parameters['__files'] = UploadHandler::getUploadHandler('attachment'); //ref AJAXUploadAction::readParameters() $oAttachmentAction = new AttachmentAction(array(), 'upload', $parameters); //ref AJAXProxyAction::invoke() $oAttachmentAction->validateAction(); //todo:catch exception $ret = $oAttachmentAction->executeAction(); //todo:catch exception if ($ret['returnValues']['attachments']) { $r = array_shift($ret['returnValues']['attachments']); $oMbqEtAtt = MbqMain::$oClk->newObj('MbqEtAtt'); $oMbqEtAtt->attId->setOriValue($r['attachmentID']); $oMbqEtAtt->groupId->setOriValue($parameters['tmpHash']); $oMbqEtAtt->filtersSize->setOriValue($r['filesize']); $oMbqEtAtt->uploadFileName->setOriValue($r['filename']); return $oMbqEtAtt; } else { MbqError::alert('', "Upload attachment failed!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('user')) { MbqError::alert('', "Not support module user!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtUser = MbqMain::$oClk->newObj('MbqRdEtUser'); if ($oMbqEtUser = $oMbqRdEtUser->initOMbqEtUser($in->userId, array('case' => 'byUserId'))) { $oMbqAclEtUser = MbqMain::$oClk->newObj('MbqAclEtUser'); $aclResult = $oMbqAclEtUser->canAclIgnoreUser($oMbqEtUser, $in->mode); if ($aclResult === true) { //acl judge $oMbqWrEtUser = MbqMain::$oClk->newObj('MbqWrEtUser'); $result = $oMbqWrEtUser->ignoreUser($oMbqEtUser, $in->mode); if ($result === true) { $this->data['result'] = true; } else { $this->data['result'] = false; $this->data['result_text'] = $result; } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "User not found!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('user')) { MbqError::alert('', "Not support module user!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtUser = MbqMain::$oClk->newObj('MbqRdEtUser'); if ($oMbqEtUser = $oMbqRdEtUser->initOMbqEtUser($in->username, array('case' => 'byLoginName'))) { $oMbqAclEtUser = MbqMain::$oClk->newObj('MbqAclEtUser'); $aclResult = $oMbqAclEtUser->canAclMBanUser($oMbqEtUser, $in->mode); if ($aclResult === true) { //acl judge $oMbqWrEtUser = MbqMain::$oClk->newObj('MbqWrEtUser'); $result = $oMbqWrEtUser->mBanUser($oMbqEtUser, $in->mode, $in->reason, $in->expires); if ($result === true) { $this->data['result'] = true; } else { if ($result === false) { $this->data['result'] = false; $this->data['is_login_mod'] = true; $this->data['result_text'] = 'You need to authenticate again to do the action'; } else { $this->data['result'] = false; $this->data['result_text'] = $result; } } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "User not found!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('subscribe')) { MbqError::alert('', "Not support module subscribe!", '', MBQ_ERR_NOT_SUPPORT); } if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); if ($oMbqEtForumTopic = $oMbqRdEtForumTopic->initOMbqEtForumTopic($in->topicId, array('case' => 'byTopicId'))) { $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); if ($oMbqEtForumTopic->isSubscribed->oriValue) { $this->data['result'] = true; return; } $aclResult = $oMbqAclEtForumTopic->canAclSubscribeTopic($oMbqEtForumTopic); if ($aclResult === true) { //acl judge $oMbqWrEtForumTopic = MbqMain::$oClk->newObj('MbqWrEtForumTopic'); $result = $oMbqWrEtForumTopic->subscribeTopic($oMbqEtForumTopic); if ($result === true) { $this->data['result'] = true; $oTapatalkPush = new TapatalkPush(); $oTapatalkPush->callMethod('doInternalPushNewSubscription', array('oMbqEtForumTopic' => $oMbqEtForumTopic)); } else { $this->data['result'] = false; $this->data['result_text'] = $result; } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid topic id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); if ($oMbqEtForumTopic = $oMbqRdEtForumTopic->initOMbqEtForumTopic($in->topicId, array('case' => 'byTopicId'))) { $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); $aclResult = $oMbqAclEtForumTopic->canAclGetThread($oMbqEtForumTopic); if ($aclResult === true) { //acl judge $oMbqRdEtForumPost = MbqMain::$oClk->newObj('MbqRdEtForumPost'); $in->oMbqDataPage = $oMbqRdEtForumPost->getObjsMbqEtForumPost($oMbqEtForumTopic, array('case' => 'byTopic', 'oMbqDataPage' => $in->oMbqDataPage)); $this->data = $oMbqRdEtForumTopic->returnApiDataForumTopic($oMbqEtForumTopic); $this->data['forum_name'] = (string) $oMbqEtForumTopic->oMbqEtForum->forumName->oriValue; $this->data['can_upload'] = (bool) $oMbqEtForumTopic->oMbqEtForum->canUpload->oriValue; $this->data['posts'] = $oMbqRdEtForumPost->returnApiArrDataForumPost($in->oMbqDataPage->datas, $in->returnHtml); $oMbqWrEtForumTopic = MbqMain::$oClk->newObj('MbqWrEtForumTopic'); /* add forum topic view num */ $oMbqWrEtForumTopic->addForumTopicViewNum($oMbqEtForumTopic); /* mark forum topic read */ $oMbqWrEtForumTopic->markForumTopicRead($oMbqEtForumTopic); /* reset forum topic subscription */ $oMbqWrEtForumTopic->resetForumTopicSubscription($oMbqEtForumTopic); } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid topic id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (MbqMain::$oMbqConfig->moduleIsEnable('pm')) { $oMbqEtPm = MbqMain::$oClk->newObj('MbqEtPm'); $oMbqEtPm->userNames->setOriValue($in->usernames); $oMbqEtPm->msgTitle->setOriValue($in->subject); $oMbqEtPm->msgContent->setOriValue($in->body); if ($in->action == 1) { $oMbqEtPm->isReply->setOriValue(true); $oMbqEtPm->toMsgId->setOriValue($in->messageId); } else { if ($in->action == 2) { $oMbqEtPm->isForward->setOriValue(true); $oMbqEtPm->toMsgId->setOriValue($in->messageId); } } $oMbqAclEtPm = MbqMain::$oClk->newObj('MbqAclEtPm'); $aclResult = $oMbqAclEtPm->canAclCreateMessage(); if ($aclResult === true) { $oMbqWrEtPm = MbqMain::$oClk->newObj('MbqWrEtPm'); $oMbqWrEtPm->addMbqEtPm($oMbqEtPm); $this->data['result'] = true; $this->data['msg_id'] = (string) $oMbqEtPm->msgId->oriValue; $oTapatalkPush = new TapatalkPush(); $oTapatalkPush->callMethod('doInternalPushNewMessage', array('oMbqEtPm' => $oMbqEtPm)); } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Not support module private message!", '', MBQ_ERR_NOT_SUPPORT); } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $startNum = (int) MbqMain::$input[1]; $lastNum = (int) MbqMain::$input[2]; $oMbqDataPage = MbqMain::$oClk->newObj('MbqDataPage'); $oMbqDataPage->initByStartAndLast($startNum, $lastNum); $filter = array('keywords' => MbqMain::$input[0], 'searchid' => MbqMain::$input[3], 'page' => $oMbqDataPage->curPage, 'perpage' => $oMbqDataPage->numPerPage); $filter['showposts'] = 1; if (strlen(MbqMain::$input[0]) < MbqBaseFdt::getFdt('MbqFdtConfig.forum.min_search_length.default')) { MbqError::alert('', "Search words too short!", '', MBQ_ERR_APP); } $oMbqAclEtForumPost = MbqMain::$oClk->newObj('MbqAclEtForumPost'); if ($oMbqAclEtForumPost->canAclSearchPost()) { //acl judge $oMbqRdForumSearch = MbqMain::$oClk->newObj('MbqRdForumSearch'); $oMbqDataPage = $oMbqRdForumSearch->forumAdvancedSearch($filter, $oMbqDataPage, array('case' => 'searchPost')); $oMbqRdEtForumPost = MbqMain::$oClk->newObj('MbqRdEtForumPost'); $this->data['total_post_num'] = (int) $oMbqDataPage->totalNum; $this->data['posts'] = $oMbqRdEtForumPost->returnApiArrDataForumPost($oMbqDataPage->datas); } else { MbqError::alert('', '', '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { $cfg = MbqMain::$oMbqConfig->getAllCfg(); foreach ($cfg as $moduleName => $module) { foreach ($module as $k => $v) { if ($k !== 'module_name' && $k != 'module_version' && $k != 'module_enable') { if (isset($this->data[$k])) { MbqError::alert('', "Find repeat config {$k}!"); } else { if (!$v->isAdvCfgValueType()) { if ($v->hasSetOriValue()) { if ($k == 'is_open' || $k == 'guest_okay' || $k == 'min_search_length') { $this->data[$k] = $v->oriValue; } else { $this->data[$k] = (string) $v->oriValue; } } else { MbqError::alert('', "Need set config {$k}!"); } } } } } } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $forumId = MbqMain::$input['forum_id']; $groupId = MbqMain::$input['group_id'] ? MbqMain::$input['group_id'] : mt_rand(2000000000, 2100000000); $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum'); $objsMbqEtForum = $oMbqRdEtForum->getObjsMbqEtForum(array($forumId), array('case' => 'byForumIds')); if ($objsMbqEtForum && ($oMbqEtForum = $objsMbqEtForum[0])) { $oMbqAclEtAtt = MbqMain::$oClk->newObj('MbqAclEtAtt'); if ($oMbqAclEtAtt->canAclUploadAttach($oMbqEtForum)) { //acl judge $oMbqWrEtAtt = MbqMain::$oClk->newObj('MbqWrEtAtt'); $oMbqEtAtt = $oMbqWrEtAtt->uploadAttachment($forumId, $groupId); $oMbqRdEtAtt = MbqMain::$oClk->newObj('MbqRdEtAtt'); $this->data['result'] = true; $data1 = $oMbqRdEtAtt->returnApiDataAttachment($oMbqEtAtt); MbqMain::$oMbqCm->mergeApiData($this->data, $data1); } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid forum id!", '', MBQ_ERR_APP); } }
/** * Get request protocol based on Content-Type * * @return string default as xmlrpc */ protected function init() { if (defined('MBQ_PROTOCOL')) { $protocol = MBQ_PROTOCOL; } else { //would be removed $contentType = MbqMain::$oMbqCm->getRequestHeader('Content-Type'); switch ($contentType) { case 'text/xml': $protocol = 'xmlrpc'; break; case 'application/json': $protocol = 'json'; break; default: $protocol = 'xmlrpc'; } } //$ioHandleClass = 'MbqIoHandle'.ucfirst($protocol); if ($protocol == 'xmlrpc') { $ioHandleClass = 'MbqIoHandleXmlrpc'; } elseif ($protocol == 'json') { $ioHandleClass = 'MbqIoHandleAdvJson'; } else { MbqError::alert('', __METHOD__ . ',line:' . __LINE__ . '.Unknown protocol.', '', MBQ_ERR_TOP_NOIO); } $this->protocol = $protocol; $this->oHandle = MbqMain::$oClk->newObj($ioHandleClass); $this->cmd = $this->oHandle->getCmd(); $this->input = $this->oHandle->getInput(); }
/** * action implement */ public function actionImplement() { if (MbqMain::$oMbqConfig->moduleIsEnable('pc') && MbqMain::$oMbqConfig->getCfg('pc.conversation')->oriValue == MbqBaseFdt::getFdt('MbqFdtConfig.pc.conversation.range.support')) { } else { MbqError::alert('', "Not support module private conversation!", '', MBQ_ERR_NOT_SUPPORT); } $convId = MbqMain::$input[0]; $msgId = MbqMain::$input[1]; $oMbqRdEtPc = MbqMain::$oClk->newObj('MbqRdEtPc'); if ($objsMbqEtPc = $oMbqRdEtPc->getObjsMbqEtPc(array($convId), array('case' => 'byConvIds'))) { $oMbqEtPc = array_shift($objsMbqEtPc); $oMbqRdEtPcMsg = MbqMain::$oClk->newObj('MbqRdEtPcMsg'); if ($objsMbqEtPcMsg = $oMbqRdEtPcMsg->getObjsMbqEtPcMsg(array($msgId), array('case' => 'byMsgIds'))) { $oMbqEtPcMsg = array_shift($objsMbqEtPcMsg); $oMbqAclEtPcMsg = MbqMain::$oClk->newObj('MbqAclEtPcMsg'); if ($oMbqAclEtPcMsg->canAclGetQuoteConversation($oMbqEtPcMsg, $oMbqEtPc)) { $this->data['text_body'] = (string) $oMbqRdEtPcMsg->getQuoteConversation($oMbqEtPcMsg); } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid conversation message id!", '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid conversation id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('user')) { MbqError::alert('', "Not support module user!", '', MBQ_ERR_NOT_SUPPORT); } $userName = MbqMain::$input[0]; $mode = MbqMain::$input[1]; $reasonText = MbqMain::$input[2]; $oMbqRdEtUser = MbqMain::$oClk->newObj('MbqRdEtUser'); if ($mode != 1 && $mode != 2) { MbqError::alert('', "Need valid mode!", '', MBQ_ERR_APP); } if ($oMbqEtUser = $oMbqRdEtUser->initOMbqEtUser($userName, array('case' => 'byLoginName'))) { $oMbqAclEtUser = MbqMain::$oClk->newObj('MbqAclEtUser'); if ($oMbqAclEtUser->canAclMBanUser($oMbqEtUser, $mode)) { //acl judge $oMbqWrEtUser = MbqMain::$oClk->newObj('MbqWrEtUser'); $oMbqWrEtUser->mBanUser($oMbqEtUser, $mode, $reasonText); $this->data['result'] = true; } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "User not found!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $filter = array('keywords' => $in->keywords, 'searchid' => $in->searchId, 'page' => $in->oMbqDataPage->curPage, 'perpage' => $in->oMbqDataPage->numPerPage); $filter['showposts'] = 0; $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); $aclResult = $oMbqAclEtForumTopic->canAclSearchTopic(); if ($aclResult === true) { //acl judge $oMbqRdForumSearch = MbqMain::$oClk->newObj('MbqRdForumSearch'); $result = $oMbqRdForumSearch->forumAdvancedSearch($filter, $in->oMbqDataPage, array('case' => 'searchTopic')); if (is_a($result, 'MbqDataPage')) { $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); $this->data['search_id'] = $result->searchId; $this->data['total_topic_num'] = (int) $result->totalNum; $this->data['topics'] = $oMbqRdEtForumTopic->returnApiArrDataForumTopic($result->datas); } else { $this->data['total_topic_num'] = 0; $this->data['result_text'] = $result; } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqAclEtForum = MbqMain::$oClk->newObj('MbqAclEtForum'); $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum'); $oMbqWrEtForum = MbqMain::$oClk->newObj('MbqWrEtForum'); if (isset($in->forumId) && !empty($in->forumId)) { if ($oMbqEtForum = $oMbqRdEtForum->initOMbqEtForum($in->forumId, array('case' => 'byForumId'))) { $aclResult = $oMbqAclEtForum->canAclMarkAllAsRead($oMbqEtForum); if ($aclResult === true) { $oMbqWrEtForum->markForumRead($oMbqEtForum); } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } } else { if ($oMbqAclEtForum->canAclMarkAllAsRead(null)) { $oMbqWrEtForum->markForumRead(null); } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } $this->data['result'] = true; }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $topicId = MbqMain::$input[0]; $mode = (int) MbqMain::$input[1]; if ($mode != 1 && $mode != 2) { MbqError::alert('', "Need valid mode!", '', MBQ_ERR_APP); } $oMbqRdEtForumTopic = MbqMain::$oClk->newObj('MbqRdEtForumTopic'); if ($oMbqEtForumTopic = $oMbqRdEtForumTopic->initOMbqEtForumTopic($topicId, array('case' => 'byTopicId'))) { $oMbqAclEtForumTopic = MbqMain::$oClk->newObj('MbqAclEtForumTopic'); if ($oMbqAclEtForumTopic->canAclMApproveTopic($oMbqEtForumTopic, $mode)) { //acl judge $oMbqWrEtForumTopic = MbqMain::$oClk->newObj('MbqWrEtForumTopic'); $oMbqWrEtForumTopic->mApproveTopic($oMbqEtForumTopic, $mode); $this->data['result'] = true; } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid topic id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $postId = MbqMain::$input[0]; $oMbqRdEtForumPost = MbqMain::$oClk->newObj('MbqRdEtForumPost'); if ($oMbqEtForumPost = $oMbqRdEtForumPost->initOMbqEtForumPost($postId, array('case' => 'byPostId'))) { $oMbqAclEtForumPost = MbqMain::$oClk->newObj('MbqAclEtForumPost'); if ($oMbqAclEtForumPost->canAclSaveRawPost($oMbqEtForumPost)) { //acl judge $oMbqEtForumPost->postTitle->setOriValue(MbqMain::$input[1]); $oMbqEtForumPost->postContent->setOriValue(MbqMain::$input[2]); $returnHtml = (bool) MbqMain::$input[3]; $prefixId = MbqMain::$input[4]; $oMbqWrEtForumPost = MbqMain::$oClk->newObj('MbqWrEtForumPost'); $oMbqWrEtForumPost->mdfMbqEtForumPost($oMbqEtForumPost, array('case' => 'edit')); $state = $oMbqEtForumPost->state->oriValue; //reload post if ($oMbqEtForumPost = $oMbqRdEtForumPost->initOMbqEtForumPost($oMbqEtForumPost->postId->oriValue, array('case' => 'byPostId'))) { $this->data['result'] = true; $data1 = $oMbqRdEtForumPost->returnApiDataForumPost($oMbqEtForumPost, $returnHtml); MbqMain::$oMbqCm->mergeApiData($this->data, $data1); $this->data['state'] = $state; } else { MbqError::alert('', "Can not load modified post!", '', MBQ_ERR_APP); } } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid post id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (MbqMain::$oMbqConfig->moduleIsEnable('pc') && MbqMain::$oMbqConfig->getCfg('pc.conversation')->oriValue == MbqBaseFdt::getFdt('MbqFdtConfig.pc.conversation.range.support')) { } else { MbqError::alert('', "Not support module private conversation!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqEtPcInviteParticipant = MbqMain::$oClk->newObj('MbqEtPcInviteParticipant'); $oMbqEtPcInviteParticipant->userNames->setOriValue($in->usernames); $oMbqEtPcInviteParticipant->convId->setOriValue($in->conversationId); $oMbqEtPcInviteParticipant->inviteReasonText->setOriValue($in->reason); $oMbqRdEtPc = MbqMain::$oClk->newObj('MbqRdEtPc'); if ($oMbqEtPcInviteParticipant->oMbqEtPc = $oMbqRdEtPc->initOMbqEtPc($oMbqEtPcInviteParticipant->convId->oriValue, array('case' => 'byConvId'))) { $oMbqRdEtUser = MbqMain::$oClk->newObj('MbqRdEtUser'); foreach ($oMbqEtPcInviteParticipant->userNames->oriValue as $userName) { if ($oMbqEtUser = $oMbqRdEtUser->initOMbqEtUser($userName, array('case' => 'byLoginName'))) { $oMbqEtPcInviteParticipant->objsMbqEtUser[] = $oMbqEtUser; } } $oMbqAclEtPc = MbqMain::$oClk->newObj('MbqAclEtPc'); $aclResult = $oMbqAclEtPc->canAclInviteParticipant($oMbqEtPcInviteParticipant); if ($aclResult === true) { //acl judge $oMbqWrEtPc = MbqMain::$oClk->newObj('MbqWrEtPc'); $oMbqWrEtPc->inviteParticipant($oMbqEtPcInviteParticipant); $this->data['result'] = true; } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid conversation id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (MbqMain::$oMbqConfig->moduleIsEnable('pc') && MbqMain::$oMbqConfig->getCfg('pc.conversation')->oriValue == MbqBaseFdt::getFdt('MbqFdtConfig.pc.conversation.range.support')) { } else { MbqError::alert('', "Not support module private conversation!", '', MBQ_ERR_NOT_SUPPORT); } $convId = MbqMain::$input[0]; $startNum = (int) MbqMain::$input[1]; $lastNum = (int) MbqMain::$input[2]; $returnHtml = (bool) MbqMain::$input[3]; $oMbqDataPage = MbqMain::$oClk->newObj('MbqDataPage'); $oMbqDataPage->initByStartAndLast($startNum, $lastNum); $oMbqRdEtPc = MbqMain::$oClk->newObj('MbqRdEtPc'); if ($objsMbqEtPc = $oMbqRdEtPc->getObjsMbqEtPc(array($convId), array('case' => 'byConvIds'))) { $oMbqEtPc = $objsMbqEtPc[0]; $oMbqAclEtPc = MbqMain::$oClk->newObj('MbqAclEtPc'); if ($oMbqAclEtPc->canAclGetConversation($oMbqEtPc)) { //acl judge $oMbqRdEtPcMsg = MbqMain::$oClk->newObj('MbqRdEtPcMsg'); $oMbqDataPage = $oMbqRdEtPcMsg->getObjsMbqEtPcMsg($oMbqEtPc, array('case' => 'byPc', 'oMbqDataPage' => $oMbqDataPage)); $this->data = $oMbqRdEtPc->returnApiDataPc($oMbqEtPc); $this->data['list'] = $oMbqRdEtPcMsg->returnApiArrDataPcMsg($oMbqDataPage->datas, $returnHtml); $oMbqWrEtPc = MbqMain::$oClk->newObj('MbqWrEtPc'); /* mark pc read */ $oMbqWrEtPc->markPcRead($oMbqEtPc); } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid conversation id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('forum')) { MbqError::alert('', "Not support module forum!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtAtt = MbqMain::$oClk->newObj('MbqRdEtAtt'); $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum'); $oMbqEtForum = $oMbqRdEtForum->initOMbqEtForum($in->forumId, array('case' => 'byForumId')); if (($oMbqEtAtt = $oMbqRdEtAtt->initOMbqEtAtt($in->attId, array('case' => 'byAttId'))) && $oMbqEtForum) { $oMbqEtAtt->groupId->setOriValue($in->groupId); $oMbqAclEtAtt = MbqMain::$oClk->newObj('MbqAclEtAtt'); $aclResult = $oMbqAclEtAtt->canAclRemoveAttachment($oMbqEtAtt, $oMbqEtForum); if ($aclResult === true) { //acl judge $oMbqWrEtAtt = MbqMain::$oClk->newObj('MbqWrEtAtt'); $groupId = $oMbqWrEtAtt->deleteAttachment($oMbqEtAtt, $oMbqEtForum); $this->data['result'] = true; if (isset($groupId)) { $this->data['group_id'] = $groupId; } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid attachment id or forum id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (MbqMain::$oMbqConfig->moduleIsEnable('pc') && MbqMain::$oMbqConfig->getCfg('pc.conversation')->oriValue == MbqBaseFdt::getFdt('MbqFdtConfig.pc.conversation.range.support')) { } else { MbqError::alert('', "Not support module private conversation!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqEtPc = MbqMain::$oClk->newObj('MbqEtPc'); $oMbqEtPc->userNames->setOriValue($in->usernames); $oMbqEtPc->convTitle->setOriValue($in->subject); $oMbqEtPc->convContent->setOriValue($in->body); if (isset($in->attachmentIds)) { $oMbqEtPc->attachmentIdArray->setOriValue($in->attachmentIds); } if (isset($in->groupId)) { $oMbqEtPc->groupId->setOriValue($in->groupId); } $oMbqAclEtPc = MbqMain::$oClk->newObj('MbqAclEtPc'); $aclResult = $oMbqAclEtPc->canAclNewConversation($oMbqEtPc); if ($aclResult === true) { //acl judge $oMbqWrEtPc = MbqMain::$oClk->newObj('MbqWrEtPc'); $oMbqEtPc = $oMbqWrEtPc->addMbqEtPc($oMbqEtPc); $this->data['result'] = true; $this->data['conv_id'] = (string) $oMbqEtPc->convId->oriValue; $oMbqRdEtPcMsg = MbqMain::$oClk->newObj('MbqRdEtPcMsg'); $oMbqEtPcMsg = $oMbqRdEtPcMsg->initOMbqEtPcMsg($oMbqEtPc, array('case' => 'byPcMsgId', 'pcMsgId' => $oMbqEtPc->firstMsgId->oriValue)); $oTapatalkPush = new TapatalkPush(); $oTapatalkPush->callMethod('doInternalPushNewConversation', array('oMbqEtPc' => $oMbqEtPc, 'oMbqEtPcMsg' => $oMbqEtPcMsg)); } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement($in) { if (!MbqMain::$oMbqConfig->moduleIsEnable('pm')) { MbqError::alert('', "Not support module private message!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqRdEtPm = MbqMain::$oClk->newObj('MbqRdEtPm'); if ($oMbqEtPm = $oMbqRdEtPm->initOMbqEtPm($in->messageId, array('case' => 'byMsgId'))) { $oMbqAclEtPm = MbqMain::$oClk->newObj('MbqAclEtPm'); $aclResult = $oMbqAclEtPm->canAclMarkPmUnread($oMbqEtPm); if ($aclResult === true) { //acl judge $oMbqWrEtPm = MbqMain::$oClk->newObj('MbqWrEtPm'); $result = $oMbqWrEtPm->markPmUnread($oMbqEtPm); if ($result === true) { $this->data['result'] = true; } else { $this->data['result'] = false; $this->data['result_text'] = $result; } } else { MbqError::alert('', $aclResult, '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid private message id!", '', MBQ_ERR_APP); } }
/** * action implement */ protected function actionImplement() { if (MbqMain::$oMbqConfig->moduleIsEnable('pc') && MbqMain::$oMbqConfig->getCfg('pc.conversation')->oriValue == MbqBaseFdt::getFdt('MbqFdtConfig.pc.conversation.range.support')) { } else { MbqError::alert('', "Not support module private conversation!", '', MBQ_ERR_NOT_SUPPORT); } $oMbqEtPcMsg = MbqMain::$oClk->newObj('MbqEtPcMsg'); $oMbqEtPcMsg->convId->setOriValue(MbqMain::$input[0]); $oMbqEtPcMsg->msgContent->setOriValue(MbqMain::$input[1]); $oMbqEtPcMsg->msgTitle->setOriValue(MbqMain::$input[2]); $oMbqRdEtPc = MbqMain::$oClk->newObj('MbqRdEtPc'); if ($objsMbqEtPc = $oMbqRdEtPc->getObjsMbqEtPc(array($oMbqEtPcMsg->convId->oriValue), array('case' => 'byConvIds'))) { $oMbqEtPc = $objsMbqEtPc[0]; $oMbqAclEtPcMsg = MbqMain::$oClk->newObj('MbqAclEtPcMsg'); if ($oMbqAclEtPcMsg->canAclReplyConversation($oMbqEtPcMsg, $oMbqEtPc)) { $oMbqWrEtPcMsg = MbqMain::$oClk->newObj('MbqWrEtPcMsg'); $oMbqWrEtPcMsg->addMbqEtPcMsg($oMbqEtPcMsg, $oMbqEtPc); $this->data['result'] = true; $this->data['msg_id'] = (string) $oMbqEtPcMsg->msgId->oriValue; } else { MbqError::alert('', '', '', MBQ_ERR_APP); } } else { MbqError::alert('', "Need valid conversation id!", '', MBQ_ERR_APP); } }