123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- <?php
- defined('IN_PHPCMS') or exit('No permission resources.');
- pc_base::load_app_class('admin','admin',0);
- class badword extends admin {
- function __construct() {
- $admin_username = param::get_cookie('admin_username');
- $userid = $_SESSION['userid'];
- $this->db = pc_base::load_model('badword_model');
- parent::__construct();
- }
-
- function init () {
- $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;
- $infos = $pages = '';
- $infos = $this->db->listinfo($where = '',$order = 'badid DESC',$page, $pages = '13');
- $pages = $this->db->pages;
- $level = array(1=>L('general'),2=>L('danger'));
- $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=admin&c=badword&a=add\', title:\''.L('badword_add').'\', width:\'450\', height:\'180\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('badword_add'));
- include $this->admin_tpl('badword_list');
- }
-
-
- /**
- * 敏感词添加
- */
- function add() {
- if(isset($_POST['dosubmit'])){
- $_POST['info']['lastusetime'] = SYS_TIME;
- $_POST['info']['replaceword'] = str_replace(" ","",trim($_POST['replaceword']));
- $_POST['info']['badword'] = str_replace(" ","",trim($_POST['badword']));
- if(empty($_POST['info']['badword'])) {
- showmessage(L('enter_word'),'?m=admin&c=badword&a=add');
- }
- $this->db->insert($_POST['info']);
- $this->public_cache_file();//更新缓存
- showmessage(L('operation_success'),'?m=admin&c=badword&a=add','', 'add');
- }else{
- $show_validator = $show_scroll = $show_header = true;
- include $this->admin_tpl('badword_add');
- }
- }
-
- public function public_name() {
- $badword = isset($_GET['badword']) && trim($_GET['badword']) ? (pc_base::load_config('system', 'charset') == 'gbk' ? iconv('utf-8', 'gbk', trim($_GET['badword'])) : trim($_GET['badword'])) : exit('0');
- $badid = isset($_GET['badid']) && intval($_GET['badid']) ? intval($_GET['badid']) : '';
- $data = array();
- if ($badid) {
- $data = $this->db->get_one(array('badid'=>$badid), 'badword');
- if (!empty($data) && $data['badword'] == $badword) {
- exit('1');
- }
- }
- if ($this->db->get_one(array('badword'=>$badword), 'badid')) {
- exit('0');
- } else {
- exit('1');
- }
- }
-
- /**
- * 敏感词排序
- */
- function listorder() {
- if(!is_array($_POST['listorders'])) return false;
- foreach($_POST['listorders'] as $badid => $listorder) {
- $this->db->update(array('listorder'=>$listorder),array('badid'=>$badid));
- }
- showmessage(L('operation_success'),'?m=admin&c=badword');
- }
-
- /**
- * 敏感词修改
- */
- function edit() {
- if(isset($_POST['dosubmit'])){
- $badid = intval($_GET['badid']);
- $_POST['info']['replaceword'] = str_replace(" ","",trim($_POST['replaceword']));
- $_POST['info']['badword'] = str_replace(" ","",trim($_POST['badword']));
- $this->db->update($_POST['info'],array('badid'=>$badid));
- $this->public_cache_file();//更新缓存
- showmessage(L('operation_success'),'?m=admin&c=badword&a=edit','', 'edit');
- }else{
- $show_validator = $show_scroll = $show_header = true;
- $info = array();
- $info = $this->db->get_one(array('badid'=>$_GET['badid']));
- if(!$info) showmessage(L('keywords_no_exist'));
- extract($info);
- include $this->admin_tpl('badword_edit');
- }
- }
- /**
- * 关键词删除 包含批量删除 单个删除
- */
- function delete() {
- if(is_array($_POST['badid'])){
- foreach($_POST['badid'] as $badid_arr) {
- $this->db->delete(array('badid'=>$badid_arr));
- }
- $this->public_cache_file();//更新缓存
- showmessage(L('operation_success'),'?m=admin&c=badword');
- }else{
- $badid = intval($_GET['badid']);
- if($badid < 1) return false;
- $result = $this->db->delete(array('badid'=>$badid));
- if($result){
- $this->public_cache_file();//更新缓存
- showmessage(L('operation_success'),'?m=admin&c=badword');
- }else {
- showmessage(L("operation_failure"),'?m=admin&c=badword');
- }
- }
- }
-
- /**
- * 导出敏感词为文本 一行一条记录
- */
- function export() {
- $result = $s = '';
- $result = $this->db->select($where = '', $data = '*', $limit = '', $order = 'badid DESC', $group = '');
- if(!is_array($result) || empty($result)){
- showmessage('暂无敏感词设置,正在返回!','?m=admin&c=badword');
- }
- foreach($result as $s){
- extract($s);
- $str .= $badword.','.$replaceword.','.$level."\n";
- }
- $filename = L('export');
- header('Content-Type: text/x-sql');
- header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- header('Content-Disposition: attachment; filename="' . $filename . '"');
- $is_ie = 'IE';
- if ($is_ie == 'IE') {
- header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
- header('Pragma: public');
- } else {
- header('Pragma: no-cache');
- header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
- }
- echo $str;
- exit();
- }
-
- /**
- * 从文本中导入敏感词, 一行一条记录
- */
- function import(){
- if(isset($_POST['dosubmit'])){
- $arr = $s = $str = $level_arr = '';
- $s = trim($_POST['info']);
- if(empty($s)) showmessage(L('not_information'),'?m=admin&c=badword&a=import');
- $arr = explode("\n",$s);
- if(!is_array($arr) || empty($arr)) return false;
- foreach($arr as $s){
- $level_arr = array("1","2");
- $str = explode(",",$s);
- $sql_str = array();
- $sql_str['badword'] = $str[0];
- $sql_str['replaceword'] = $str[1];
- $sql_str['level'] = $str[2];
- $sql_str['lastusetime'] = SYS_TIME;
- if(!in_array($sql_str['level'],$level_arr)) $sql_str['level'] = '1';
- if(empty($sql_str['badword'])){
- continue;
- }else{
- $check_badword = $this->db->get_one(array('badword'=>$sql_str['badword']), $data = '*', $order = '', $group = '');
- if($check_badword){
- continue;
- }
- $this->db->insert($sql_str);
- }
-
- unset($sql_str,$check_badword);
- }
- showmessage(L('operation_success'),'?m=admin&c=badword');
- }else{
- include $this->admin_tpl('badword_import');
- }
- }
-
- /**
- * 生成缓存
- */
- function public_cache_file() {
- $infos = $this->db->select('','badid,badword,replaceword,level','','badid ASC');
- setcache('badword', $infos, 'commons');
- return true;
- }
-
- }
- ?>
|