/** * searchFAQ */ public function actionSearch() { $this->_loadCore('Help_SqlSearch'); $this->_helpSqlSearch = new Help_SqlSearch(); $this->_modelPlayerFaq = $this->_getGlobalData('Model_PlayerFaq', 'object'); $gameTypeId = abs(intval($_REQUEST['game_id'])); $keyWords = $_REQUEST['keywords']; $page = abs(intval($_REQUEST['p'])); if (!$page) { $page = 1; } $pageSize = abs(intval($_REQUEST['ps'])); if (!$pageSize) { $pageSize = 8; } $this->_helpSqlSearch->set_tableName($this->_modelPlayerFaq->tName()); $this->_helpSqlSearch->set_field('Id,ratio,game_type_id,kind_id,question'); $this->_helpSqlSearch->set_conditions("game_type_id={$gameTypeId}"); $this->_helpSqlSearch->set_conditions("question like '%{$keyWords}%'"); $this->_helpSqlSearch->setPageLimit($page, $pageSize); $conditions = $this->_helpSqlSearch->get_conditions(); $sql = $this->_helpSqlSearch->createSql(); $dataList = $this->_modelPlayerFaq->select($sql); if (!$dataList) { $this->_returnAjaxJson(array('status' => 0, 'info' => 'NO_FIND', 'data' => null)); } //无数据返回出错. $count = $this->_modelPlayerFaq->findCount($conditions); $toalPgae = ceil($count / $pageSize); $this->_returnAjaxJson(array('status' => 1, 'info' => null, 'data' => array('page' => array('total' => $count, 'total_page' => $toalPgae, 'page' => $page, 'page_size' => $pageSize), 'list' => $dataList))); }
/** * 分页 * @param array $conditions sql条件 * @param int $page 第几页 */ public function findPage($conditions, $page = 0) { $this->_modelPlayerFaq = $this->_getGlobalData('Model_PlayerFaq', 'object'); $thisTableName = $this->tName(); $faqTableName = $this->_modelPlayerFaq->tName(); $sql = "select {$thisTableName}.*,{$faqTableName}.lang_id,{$faqTableName}.kind_id,{$faqTableName}.ratio,{$faqTableName}.question from {$thisTableName} left join {$faqTableName} on {$thisTableName}.player_faq_id={$faqTableName}.Id where 1 "; $where = ''; if ($conditions['faq_id']) { $where .= " and {$thisTableName}.player_faq_id={$conditions['faq_id']} "; } else { if ($conditions['whether'] != '') { $where .= " and {$thisTableName}.faq_whether={$conditions['whether']}"; } if ($conditions['game_type_id']) { $where .= " and {$thisTableName}.game_type_id={$conditions['game_type_id']}"; } if ($conditions['faq_opinion'] != '') { $where .= " and {$thisTableName}.faq_opinion={$conditions['faq_opinion']}"; } if ($conditions['source']) { $where .= " and {$thisTableName}.source={$conditions['source']}"; } if ($conditions['time']['start'] && $conditions['time']['end']) { $where .= " and date_create between " . strtotime($conditions['time']['start']) . " and " . strtotime($conditions['time']['end']); } if ($conditions['lang']) { $where .= " and {$thisTableName}.lang_id = {$conditions['lang']}"; } } $sql .= $where; $sql .= ' order by Id desc'; if ($page != 0) { $page--; } $begin = $page * PAGE_SIZE; $sql .= " limit {$begin}," . PAGE_SIZE; $dataList = $this->select($sql); $total = $this->findCount(substr($where, 5)); return array('dataList' => $dataList, 'total' => $total); }
/** * 玩家faq管理 */ public function actionPlayerIndex() { switch ($_GET['doaction']) { case 'ratioedit': //编辑点击率 $this->_modelPlayerFaq = $this->_getGlobalData('Model_PlayerFaq', 'object'); $data = $this->_modelPlayerFaq->ratioEdit($_POST); $this->_utilMsg->showMsg($data['msg'], $data['status'], $data['href']); break; case 'ratio': //点击率 $this->_modelPlayerFaq = $this->_getGlobalData('Model_PlayerFaq', 'object'); $this->_loadCore('Help_SqlSearch'); $helpSqlSearch = new Help_SqlSearch(); $helpSqlSearch->set_tableName($this->_modelPlayerFaq->tName()); if ($_GET['game_type_id'] != '') { $helpSqlSearch->set_conditions("game_type_id={$_GET['game_type_id']}"); $this->_view->assign('selectedGameTypeId', $_GET['game_type_id']); } $conditions = $helpSqlSearch->get_conditions(); $helpSqlSearch->set_orderBy('ratio desc'); $helpSqlSearch->setPageLimit($_GET['page']); $sql = $helpSqlSearch->createSql(); $dataList = $this->_modelPlayerFaq->select($sql); if ($dataList) { foreach ($dataList as &$list) { $list['word_game_type_id'] = $this->_faqKind[$list['game_type_id']]; $list['question'] = strip_tags($list['question']); $list['answer'] = strip_tags($list['answer']); } $this->_view->assign('dataList', $dataList); $this->_loadCore('Help_Page'); $helpPage = new Help_Page(array('total' => $this->_modelPlayerFaq->findCount($conditions), 'perpage' => PAGE_SIZE)); $this->_view->assign('pageBox', $helpPage->show()); } $this->_view->assign('game_type', $this->_faqKind); $this->_view->assign('gameTypeKind', $this->_faqKind); $this->_utilMsg->createNavBar(); $this->_view->set_tpl(array('body' => 'Faq/PlayerFaqRatio.html')); $this->_view->display(); break; default: //显示主页 $this->_view->assign('gameTypeKind', $this->_faqKind); $this->_view->assign('css', $this->_view->get_curCss()); $this->_view->assign('js', $this->_view->get_curJs()); $this->_utilMsg->createNavBar(); $this->_view->display(); } }
/** * faq详细 */ public function actionDetail() { $id = abs(intval($_GET['id'])); $this->_modelPlayerFaq = $this->_getGlobalData('Model_PlayerFaq', 'object'); $data = $this->_modelPlayerFaq->findById($id); $data['answer'] = $data['answer_g']; unset($data['answer_g'], $data['answer_s']); if (empty($data['answer'])) { unset($data['answer']); } if ($data) { $this->_modelStatsFaq = $this->_getGlobalData('Model_StatsFaq', 'object'); $statArr = array('game_type_id' => $data['game_type_id'], 'source' => 2, 'kind_id' => $data['kind_id'], 'lang_id' => $data['lang_id']); $this->_modelStatsFaq->add($statArr); //增加统计量 $this->_modelPlayerFaq->execute("update {$this->_modelPlayerFaq->tName()} set `ratio`=ratio+1 where Id={$id}"); //增加点击率 $this->_returnAjaxJson(array('status' => 1, 'info' => 'InterfaceFaq_Detail', 'data' => $data)); } else { $this->_returnAjaxJson(array('status' => 0, 'info' => 'NO_FIND', 'data' => null)); //无数据返回出错 } }
/** * faq显示页面 */ public function actionPlayerIndex() { $this->_lang = $this->_getGlobalData('lang'); //多语言 $this->_faqKind[''] = Tools::getLang('ALL', 'Common'); $this->_modelPlayerFaq = $this->_getGlobalData('Model_PlayerFaq', 'object'); $this->_loadCore('Help_SqlSearch'); $helpSqlSearch = new Help_SqlSearch(); $helpSqlSearch->set_tableName($this->_modelPlayerFaq->tName()); $_GET['lang'] = $_GET['lang'] ? $_GET['lang'] : 1; //默认简体:1 $helpSqlSearch->set_conditions("lang_id='{$_GET['lang']}'"); //默认语言 $this->_view->assign('selectedLang', $_GET['lang']); if ($_GET['game_type_id'] != '') { $helpSqlSearch->set_conditions("game_type_id={$_GET['game_type_id']}"); $this->_view->assign('selectedGameTypeId', $_GET['game_type_id']); $faqKind = $this->_modelPlayerKindFaq->findByGameTypeId($_GET['game_type_id'], $_GET['lang']); $kindList = array(); foreach ($faqKind as $value) { $kindList[$value['Id']] = $value['name'] . "({$value['count']})"; } $kindList[''] = Tools::getLang('ALL', 'Common'); $this->_view->assign('kindList', $kindList); if ($_GET['kind_id']) { $helpSqlSearch->set_conditions("kind_id={$_GET['kind_id']}"); $this->_view->assign('selectedkindId', $_GET['kind_id']); } } if ($_GET['status'] != '') { $helpSqlSearch->set_conditions("status={$_GET['status']}"); $this->_view->assign('selectedFaqStatus', $_GET['status']); } if ($_GET['question'] != '') { $helpSqlSearch->set_conditions("question like '%{$_GET['question']}%'"); $this->_view->assign('selectedQuestion', $_GET['question']); } if ($_GET['answer'] != '') { $helpSqlSearch->set_conditions("(answer_g like '%{$_GET['answer']}%' or answer_s like '%{$_GET['answer']}%')"); $this->_view->assign('selectedAnswer', $_GET['answer']); } if ($_GET['starttime'] != '') { $helpSqlSearch->set_conditions("(time>" . strtotime($_GET['starttime']) . ")"); $this->_view->assign('selectedstarttime', $_GET['starttime']); } if ($_GET['endtime'] != '') { $helpSqlSearch->set_conditions("(time<" . strtotime($_GET['endtime']) . ")"); $this->_view->assign('selectedendtime', $_GET['endtime']); } $faqStatus = $this->_modelPlayerFaq->getFaqStatus(); $conditions = $helpSqlSearch->get_conditions(); $by = $_GET['by'] == 'asc' ? 'desc' : 'asc'; $this->_view->assign('curBy', $by); if (in_array($_GET['order'], array('ratio', 'time'))) { $helpSqlSearch->set_orderBy("{$_GET['order']} {$by}"); } $helpSqlSearch->setPageLimit($_GET['page']); $sql = $helpSqlSearch->createSql(); //print_r($sql); $dataList = $this->_modelPlayerFaq->select($sql); if ($dataList) { $users = $this->_getGlobalData('user'); foreach ($dataList as &$list) { $list['word_game_type_id'] = $this->_faqKind[$list['game_type_id']]; $list['question'] = strip_tags($list['question']); $list['answer_s'] = strip_tags($list['answer_s']); if ($list["check_status"] != 0) { $list["check_status"] = date("Y-m-d H:i:s", $list["check_status"]); } $list['answer_g'] = strip_tags($list['answer_g']); $list['word_status'] = $faqStatus[$list['status']]; $list['word_user_id'] = $users[$list['user_id']]['nick_name']; $list['time'] = date('Y-m-d H:i:s', $list['time']); $list['url_edit'] = Tools::url(CONTROL, 'Player', array('doaction' => 'edit', 'lang' => $_REQUEST['lang'], 'game_type_id' => $list['game_type_id'], 'kind_id' => $list['kind_id'], 'Id' => $list['Id'])); $list['url_del'] = Tools::url(CONTROL, 'Player', array('doaction' => 'del', 'lang' => $_REQUEST['lang'], 'game_type_id' => $list['game_type_id'], 'kind_id' => $list['kind_id'], 'Id' => $list['Id'])); } //print_r($dataList["0"]); $this->_view->assign('dataList', $dataList); $this->_loadCore('Help_Page'); $helpPage = new Help_Page(array('total' => $this->_modelPlayerFaq->findCount($conditions), 'perpage' => PAGE_SIZE)); $this->_view->assign('pageBox', $helpPage->show()); } $this->_view->assign("ajaxurl", Tools::url(CONTROL, 'checkfaq')); // print_r($this->_lang); $this->_view->assign('lang', $this->_lang); $this->_view->assign('faqStatus', $this->_modelPlayerFaq->getFaqStatus()); $this->_view->assign('game_type', $this->_faqKind); $this->_view->assign('gameTypeKind', $this->_faqKind); $this->_utilMsg->createNavBar(); $this->_view->display(); }