Ejemplo n.º 1
0
 /**
  * 设置房间服务器列表
  */
 private function _setServer()
 {
     $this->_modelGameSerList = $this->_getGlobalData('Model_GameSerList', 'object');
     if ($this->_isPost()) {
         if (!count($_POST['server_list'])) {
             $this->_utilMsg->showMsg(false);
         }
         $selectedList = implode(',', $_POST['server_list']);
         if ($this->_modelGameSerList->update(array('room_id' => $_POST['room_id']), "Id in ({$selectedList})")) {
             $this->_modelGameSerList->createToCache();
             $this->_utilMsg->showMsg(Tools::getLang('UPDATE_SUCCESS', 'Common'));
         } else {
             $this->_utilMsg->showMsg(Tools::getLang('UPDATE_ERROR', 'Common'), -2);
         }
     } else {
         $alreadyServerList = $this->_modelGameSerList->findByRoomId($_GET['Id'], false);
         $dataList = $this->_modelGameSerList->findNoRoomId();
         $gameTypeList = $this->_getGlobalData('game_type');
         $gameTypeList = Model::getTtwoArrConvertOneArr($gameTypeList, 'Id', 'name');
         $operatorList = $this->_getGlobalData('operator_list');
         $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name');
         if ($alreadyServerList) {
             //如果该房间设置了服务器列表
             $roomServerList = array();
             foreach ($alreadyServerList as $serList) {
                 $roomServerList[$serList['Id']] = "{$serList['server_name']}({$operatorList[$serList['operator_id']]})[{$gameTypeList[$serList['game_type_id']]}]";
             }
             $this->_view->assign('roomServerList', $roomServerList);
         }
         if ($dataList) {
             //如果还有没设置的服务器将转换出来显示
             $serverList = array();
             foreach ($gameTypeList as $key => $value) {
                 foreach ($dataList as $list) {
                     $list['full_name'] = "{$list['server_name']}({$operatorList[$list['operator_id']]})";
                     if ($list['game_type_id'] == $key) {
                         $serverList[$key][$list['Id']] = $list['full_name'];
                     }
                 }
             }
             $this->_view->assign('serverList', $serverList);
         }
         $this->_view->assign('roomId', $_GET['Id']);
         $this->_view->assign('gameTypeList', $gameTypeList);
         $this->_view->set_tpl(array('body' => 'Group/SetServer.html'));
         $this->_utilMsg->createNavBar();
         $this->_view->display();
     }
 }