Exemplo n.º 1
0
 /**
  * judge can reply_conversation
  *
  * @param  Object  $oMbqEtPcMsg
  * @param  Obejct  $oMbqEtPc
  * @return  Boolean
  */
 public function canAclReplyConversation($oMbqEtPcMsg, $oMbqEtPc)
 {
     if (MbqMain::hasLogin() && strlen(trim($oMbqEtPcMsg->msgContent->oriValue)) > 0 && $oMbqEtPcMsg->convId->oriValue == $oMbqEtPc->convId->oriValue && !$oMbqEtPc->mbqBind['oViewableConversation']->getDecoratedObject()->isClosed && $oMbqEtPc->mbqBind['oViewableConversation']->getDecoratedObject()->canRead()) {
         return true;
     }
     return false;
 }
Exemplo n.º 2
0
 /**
  * calculate the final config of $this->cfg through $this->cfg default value and MbqMain::$customConfig and MbqMain::$oMbqAppEnv and the plugin support degree
  */
 public function calCfg()
 {
     $url = WCF::getPath();
     MbqMain::$oMbqAppEnv->siteRootUrl = substr($url, 0, strlen($url) - 4);
     //init user
     $oUser = DefaultUserAuthentication::getInstance()->loginAutomatically(true);
     if ($oUser && $oUser->userID) {
         MbqMain::$oMbqAppEnv->oCurrentUser = $oUser;
         $oMbqRdEtUser = MbqMain::$oClk->newObj('MbqRdEtUser');
         $oMbqRdEtUser->initOCurMbqEtUser();
     }
     if (MbqMain::hasLogin()) {
         //!!!
         header('Mobiquo_is_login: true');
     } else {
         header('Mobiquo_is_login: false');
     }
     $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum');
     MbqMain::$oMbqAppEnv->exttForumTree = $oMbqRdEtForum->getForumTree();
     //!!!
     parent::calCfg();
     /* calculate the final config */
     $this->cfg['base']['sys_version']->setOriValue(PACKAGE_VERSION);
     if (OFFLINE) {
         $this->cfg['base']['is_open']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.base.is_open.range.no'));
     } else {
         $this->cfg['base']['is_open']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.base.is_open.range.yes'));
     }
     if (!MODULE_CONVERSATION || !WCF::getSession()->getPermission('user.conversation.canUseConversation')) {
         $this->cfg['pc']['module_enable']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.pc.module_enable.range.disable'));
         $this->cfg['pc']['conversation']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.pc.conversation.range.notSupport'));
     }
 }
Exemplo n.º 3
0
 /**
  * get unread private conversations number
  *
  * @return  Integer
  */
 public function getUnreadPcNum()
 {
     if (MbqMain::hasLogin()) {
         //ref __userPanelConversationDropdown.tpl,wcf\system\WCF
         return WCF::getConversationHandler()->getUnreadConversationCount();
     } else {
         MbqError::alert('', __METHOD__ . ',line:' . __LINE__ . '.' . 'Need login!');
     }
 }
Exemplo n.º 4
0
 /**
  * judge can get online users
  *
  * @return  Boolean
  */
 public function canAclGetOnlineUsers()
 {
     if (MbqMain::hasLogin()) {
         return true;
     } else {
         if (MbqMain::$oMbqConfig->getCfg('user.guest_whosonline')->oriValue == MbqBaseFdt::getFdt('MbqFdtConfig.user.guest_whosonline.range.support')) {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 5
0
 /**
  * calculate the final config of $this->cfg through $this->cfg default value and MbqMain::$customConfig and MbqMain::$oMbqAppEnv and the plugin support degree
  */
 public function calCfg()
 {
     $url = WCF::getPath();
     MbqMain::$oMbqAppEnv->siteRootUrl = substr($url, 0, strlen($url) - 4);
     //init current user
     //$oUser = DefaultUserAuthentication::getInstance()->loginAutomatically(true);
     //$oUser =  WCF::getSession()->getUser();
     $oUser = WCF::getUser();
     if ($oUser && $oUser->userID) {
         MbqMain::$oMbqAppEnv->oCurrentUser = $oUser;
         $oMbqRdEtUser = MbqMain::$oClk->newObj('MbqRdEtUser');
         $oMbqRdEtUser->initOCurMbqEtUser($oUser->userID);
     }
     if (MbqMain::hasLogin()) {
         //!!!
         header('Mobiquo_is_login: true');
     } else {
         header('Mobiquo_is_login: false');
     }
     $oMbqRdEtForum = MbqMain::$oClk->newObj('MbqRdEtForum');
     MbqMain::$oMbqAppEnv->exttForumTree = $oMbqRdEtForum->getForumTree();
     //!!!
     MbqMain::$oMbqAppEnv->accessibleBoardIds = Board::getAccessibleBoardIDs(array('canViewBoard', 'canEnterBoard', 'canReadThread'));
     parent::calCfg();
     /* calculate the final config */
     $this->cfg['base']['sys_version']->setOriValue(PACKAGE_VERSION);
     if (OFFLINE) {
         $this->cfg['base']['is_open']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.base.is_open.range.no'));
     } else {
         $this->cfg['base']['is_open']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.base.is_open.range.yes'));
     }
     //if (!MODULE_CONVERSATION || !WCF::getSession()->getPermission('user.conversation.canUseConversation')) {
     if (!MODULE_CONVERSATION) {
         $this->cfg['pc']['module_enable']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.pc.module_enable.range.disable'));
         $this->cfg['pc']['conversation']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.pc.conversation.range.notSupport'));
     }
     if (!MbqMain::$oMbqAppEnv->accessibleBoardIds) {
         $this->cfg['user']['guest_okay']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.user.guest_okay.range.notSupport'));
         $this->cfg['forum']['guest_search']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.forum.guest_search.range.notSupport'));
     }
     if ($this->getCfg('base.push')->oriValue == MbqBaseFdt::getFdt('MbqFdtConfig.base.push.range.support') && !OFFLINE && (@ini_get('allow_url_fopen') || function_exists('curl_init'))) {
         $this->cfg['base']['push']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.base.push.range.support'));
     } else {
         $this->cfg['base']['push']->setOriValue(MbqBaseFdt::getFdt('MbqFdtConfig.base.push.range.notSupport'));
     }
 }
Exemplo n.º 6
0
 /**
  * judge can unsubscribe_topic
  *
  * @param  Object  $oMbqEtForumTopic
  * @return  Boolean
  */
 public function canAclUnsubscribeTopic($oMbqEtForumTopic = null)
 {
     if (MbqMain::hasLogin() && $oMbqEtForumTopic->isSubscribed->oriValue) {
         return true;
     }
     return false;
 }
Exemplo n.º 7
0
 /**
  * judge can save_raw_post
  *
  * @param  Object  $oMbqEtForumPost
  * @return  Boolean
  */
 public function canAclSaveRawPost($oMbqEtForumPost)
 {
     //ref threadPostList.tpl,wbb\form\PostEditForm
     if (MbqMain::hasLogin() && $oMbqEtForumPost->oMbqEtForumTopic && $oMbqEtForumPost->mbqBind['oViewablePost'] && $oMbqEtForumPost->oMbqEtForumTopic->mbqBind['oViewableThread']) {
         $oThread = $oMbqEtForumPost->oMbqEtForumTopic->mbqBind['oViewableThread']->getDecoratedObject();
         $oPost = $oMbqEtForumPost->mbqBind['oViewablePost']->getDecoratedObject();
         if ($oThread->canEditPost($oPost)) {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 8
0
 /**
  * judge can report post
  *
  * @param  Object  $oMbqEtForumPost
  * @return  Mixed
  */
 public function canAclReportPost($oMbqEtForumPost = null)
 {
     if (empty($oMbqEtForumPost) || !MbqMain::hasLogin()) {
         return false;
     }
     try {
         $reportAction = new ModerationQueueReportAction(array(), 'prepareReport', array('objectID' => $oMbqEtForumPost->postId->oriValue, 'objectType' => 'com.woltlab.wbb.post'));
         $reportAction->validateAction();
         $reportAction->executeAction();
         $returnValues = $reportAction->getReturnValues();
     } catch (\Exception $e) {
         return $e->getMessage();
     }
     if ($returnValues['returnValues']['alreadyReported'] == 1) {
         return WCF::getLanguage()->get('wcf.moderation.report.alreadyReported');
     }
     return true;
 }
Exemplo n.º 9
0
 /**
  * judge can delete_conversation
  *
  * @param  Object  $oMbqEtPc
  * @param  Integer  $mode  
  * @return  Boolean
  */
 public function canAclDeleteConversation($oMbqEtPc, $mode)
 {
     if (MbqMain::hasLogin() && ($mode == 1 || $mode == 2)) {
         //ref wcf\data\conversation\ConversationAction::validateHideConversation()
         // validate participation
         if (Conversation::isParticipant(array($oMbqEtPc->convId->oriValue))) {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 10
0
 /**
  * init one forum topic by condition
  *
  * @param  Mixed  $var
  * @param  Array  $mbqOpt
  * $mbqOpt['case'] = 'oViewableThread' means init forum topic by oViewableThread
  * $mbqOpt['case'] = 'byTopicId' means init forum topic by topic id
  * @return  Mixed
  */
 public function initOMbqEtForumTopic($var = null, $mbqOpt = array())
 {
     if ($mbqOpt['case'] == 'oViewableThread') {
         $oThread = $var->getDecoratedObject();
         $oMbqEtForumTopic = MbqMain::$oClk->newObj('MbqEtForumTopic');
         $oMbqEtForumTopic->totalPostNum->setOriValue($oThread->replies + 1);
         $oMbqEtForumTopic->topicId->setOriValue($oThread->threadID);
         $oMbqEtForumTopic->forumId->setOriValue($oThread->boardID);
         $oMbqEtForumTopic->firstPostId->setOriValue($oThread->firstPostID);
         $oMbqEtForumTopic->topicTitle->setOriValue($oThread->getTitle());
         $oMbqEtForumTopic->topicAuthorId->setOriValue($oThread->userID);
         $oMbqEtForumTopic->lastReplyAuthorId->setOriValue($oThread->lastPosterID);
         $oMbqEtForumTopic->postTime->setOriValue($oThread->lastPostTime);
         $oMbqEtForumTopic->lastReplyTime->setOriValue($oThread->lastPostTime);
         $oMbqEtForumTopic->replyNumber->setOriValue($oThread->replies);
         if (MbqMain::hasLogin()) {
             if ($var->isNew()) {
                 //!!!
                 $oMbqEtForumTopic->newPost->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.newPost.range.yes'));
             } else {
                 $oMbqEtForumTopic->newPost->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.newPost.range.no'));
             }
         } else {
             $oMbqEtForumTopic->newPost->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.newPost.range.no'));
         }
         $oMbqEtForumTopic->viewNumber->setOriValue($oThread->views);
         if ($oThread->isDisabled) {
             $oMbqEtForumTopic->state->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.state.range.postOkNeedModeration'));
         } else {
             $oMbqEtForumTopic->state->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.state.range.postOk'));
         }
         if ($oThread->isSubscribed()) {
             $oMbqEtForumTopic->isSubscribed->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isSubscribed.range.yes'));
         } else {
             $oMbqEtForumTopic->isSubscribed->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isSubscribed.range.no'));
         }
         if (MbqMain::hasLogin()) {
             $oMbqEtForumTopic->canSubscribe->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.canSubscribe.range.yes'));
         } else {
             $oMbqEtForumTopic->canSubscribe->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.canSubscribe.range.no'));
         }
         if ($oThread->isSticky) {
             $oMbqEtForumTopic->isSticky->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isSticky.range.yes'));
         } else {
             $oMbqEtForumTopic->isSticky->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isSticky.range.no'));
         }
         if ($oThread->isClosed) {
             $oMbqEtForumTopic->isClosed->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isClosed.range.yes'));
         } else {
             $oMbqEtForumTopic->isClosed->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isClosed.range.no'));
         }
         if ($oThread->isDisabled) {
             $oMbqEtForumTopic->isApproved->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isApproved.range.no'));
         } else {
             $oMbqEtForumTopic->isApproved->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isApproved.range.yes'));
         }
         if ($oThread->movedThreadID) {
             $oMbqEtForumTopic->isMoved->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isMoved.range.yes'));
             $oMbqEtForumTopic->realTopicId->setOriValue($oThread->movedThreadID);
         } else {
             $oMbqEtForumTopic->isMoved->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isMoved.range.no'));
         }
         if (MbqMain::hasLogin()) {
             $objectList = new ThreadPostList($oThread);
             $conditionBuilder = clone $objectList->getConditionBuilder();
             $conditionBuilder->add('time <= ?', array($var->getVisitTime()));
             $sql = "SELECT\t\tcount(post.threadID) AS position\r\n\t\t\t        FROM\t\twbb" . WCF_N . "_post post\r\n\t\t\t        " . $conditionBuilder . "\r\n                    GROUP BY post.threadID\r\n\t\t\t        ORDER BY\ttime ASC";
             $statement = WCF::getDB()->prepareStatement($sql);
             $statement->execute($conditionBuilder->getParameters());
             $row = $statement->fetchArray();
             if ($row !== false) {
                 $oMbqEtForumTopic->firstUnreadPosition->setOriValue($row['position']);
             } else {
                 $oMbqEtForumTopic->firstUnreadPosition->setOriValue($oThread->replies + 1);
             }
         }
         $oMbqEtForumTopic->mbqBind['oViewableThread'] = $var;
         return $oMbqEtForumTopic;
     } elseif ($mbqOpt['case'] == 'byTopicId') {
         $topicId = $var;
         if ($objsMbqEtForumTopic = $this->getObjsMbqEtForumTopic(array($topicId), array('case' => 'byTopicIds'))) {
             return $objsMbqEtForumTopic[0];
         }
         return false;
     }
     MbqError::alert('', __METHOD__ . ',line:' . __LINE__ . '.' . MBQ_ERR_INFO_UNKNOWN_CASE);
 }
Exemplo n.º 11
0
 /**
  * init one forum topic by condition
  *
  * @param  Mixed  $var
  * @param  Array  $mbqOpt
  * $mbqOpt['case'] = 'oViewableThread' means init forum topic by oViewableThread
  * $mbqOpt['case'] = 'byTopicId' means init forum topic by topic id
  * @return  Mixed
  */
 public function initOMbqEtForumTopic($var, $mbqOpt)
 {
     if ($mbqOpt['case'] == 'oViewableThread') {
         $oThread = $var->getDecoratedObject();
         $oMbqEtForumTopic = MbqMain::$oClk->newObj('MbqEtForumTopic');
         $oMbqEtForumTopic->totalPostNum->setOriValue($oThread->replies + 1);
         $oMbqEtForumTopic->topicId->setOriValue($oThread->threadID);
         $oMbqEtForumTopic->forumId->setOriValue($oThread->boardID);
         $oMbqEtForumTopic->firstPostId->setOriValue($oThread->firstPostID);
         $oMbqEtForumTopic->topicTitle->setOriValue($oThread->getTitle());
         $oMbqEtForumTopic->topicAuthorId->setOriValue($oThread->userID);
         $oMbqEtForumTopic->lastReplyAuthorId->setOriValue($oThread->lastPosterID);
         $oMbqEtForumTopic->postTime->setOriValue($oThread->lastPostTime);
         $oMbqEtForumTopic->lastReplyTime->setOriValue($oThread->lastPostTime);
         $oMbqEtForumTopic->replyNumber->setOriValue($oThread->replies);
         if (MbqMain::hasLogin()) {
             if ($var->isNew()) {
                 //!!!
                 $oMbqEtForumTopic->newPost->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.newPost.range.yes'));
             } else {
                 $oMbqEtForumTopic->newPost->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.newPost.range.no'));
             }
         } else {
             $oMbqEtForumTopic->newPost->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.newPost.range.no'));
         }
         $oMbqEtForumTopic->viewNumber->setOriValue($oThread->views);
         if ($oThread->isDisabled) {
             $oMbqEtForumTopic->state->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.state.range.postOkNeedModeration'));
         } else {
             $oMbqEtForumTopic->state->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.state.range.postOk'));
         }
         if ($oThread->isSubscribed()) {
             $oMbqEtForumTopic->isSubscribed->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isSubscribed.range.yes'));
         } else {
             $oMbqEtForumTopic->isSubscribed->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.isSubscribed.range.no'));
         }
         if (MbqMain::hasLogin()) {
             $oMbqEtForumTopic->canSubscribe->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.canSubscribe.range.yes'));
         } else {
             $oMbqEtForumTopic->canSubscribe->setOriValue(MbqBaseFdt::getFdt('MbqFdtForum.MbqEtForumTopic.canSubscribe.range.no'));
         }
         $oMbqEtForumTopic->mbqBind['oViewableThread'] = $var;
         return $oMbqEtForumTopic;
     } elseif ($mbqOpt['case'] == 'byTopicId') {
         $topicId = $var;
         if ($objsMbqEtForumTopic = $this->getObjsMbqEtForumTopic(array($topicId), array('case' => 'byTopicIds'))) {
             return $objsMbqEtForumTopic[0];
         }
         return false;
     }
     MbqError::alert('', __METHOD__ . ',line:' . __LINE__ . '.' . MBQ_ERR_INFO_UNKNOWN_CASE);
 }
Exemplo n.º 12
0
 /**
  * judge getalert
  *
  * @return  Boolean
  */
 public function canAclGetAlert()
 {
     if (MbqMain::hasLogin()) {
         return true;
     }
 }
Exemplo n.º 13
0
 /**
  * judge can delete_conversation
  *
  * @param  Object  $oMbqEtPc
  * @param  Integer  $mode  
  * @return  Boolean
  */
 public function canAclDeleteConversation($oMbqEtPc = null, $mode = null)
 {
     if (!WCF::getSession()->getPermission('user.conversation.canUseConversation')) {
         return false;
     }
     if (MbqMain::hasLogin() && ($mode == 1 || $mode == 2)) {
         //ref wcf\data\conversation\ConversationAction::validateHideConversation()
         // validate participation
         if (Conversation::isParticipant(array($oMbqEtPc->convId->oriValue))) {
             return true;
         }
     }
     return false;
 }