_pre = 'vodplayer'; } public function index() { $list = config($this->_pre); $this->assign('list',$list); $this->assign('title',lang('admin/vodplayer/title')); return $this->fetch('admin@vodplayer/index'); } public function info() { $param = input(); $list = config($this->_pre); if (Request()->isPost()) { $validate = \think\Loader::validate('Token'); if(!$validate->check($param)){ return $this->error($validate->getError()); } unset($param['__token__']); unset($param['flag']); $code = $param['code']; unset($param['code']); if(is_numeric($param['from'])){ $param['from'] .='_'; } if (strpos($param['from'], '.') !== false || strpos($param['from'], '/') !== false || strpos($param['from'], '\\') !== false) { $this->error(lang('param_err')); return; } $list[$param['from']] = $param; $sort=[]; foreach ($list as $k=>&$v){ $sort[] = $v['sort']; } array_multisort($sort, SORT_DESC, SORT_FLAG_CASE , $list); $res = mac_arr2file( APP_PATH .'extra/'.$this->_pre.'.php', $list); if($res===false){ return $this->error(lang('write_err_config')); } $res = fwrite(fopen('./static/player/' . $param['from'].'.js','wb'),$code); if($res===false){ return $this->error(lang('wirte_err_codefile')); } cache('cache_data','1'); return $this->success(lang('save_ok')); } $info = $list[$param['id']]; if(!empty($info)){ $code = file_get_contents('./static/player/' . $param['id'].'.js'); $info['code'] = $code; } $this->assign('info',$info); $this->assign('title',lang('admin/vodplayer/title')); return $this->fetch('admin@vodplayer/info'); } public function del() { $param = input(); $list = config($this->_pre); unset($list[$param['ids']]); $res = mac_arr2file(APP_PATH. 'extra/'.$this->_pre.'.php', $list); if($res===false){ return $this->error(lang('del_err')); } cache('cache_data','1'); return $this->success(lang('del_ok')); } public function field() { $param = input(); $ids = $param['ids']; $col = $param['col']; $val = $param['val']; if(!empty($ids) && in_array($col,['ps','status'])){ $list = config($this->_pre); $ids = explode(',',$ids); foreach($list as $k=>&$v){ if(in_array($k,$ids)){ $v[$col] = $val; } } $res = mac_arr2file(APP_PATH. 'extra/'.$this->_pre.'.php', $list); if($res===false){ return $this->error(lang('save_err')); } return $this->success(lang('save_ok')); } return $this->error(lang('param_err')); } public function export() { $param = input(); $list = config($this->_pre); $info = $list[$param['id']]; if(!empty($info)){ $code = file_get_contents('./static/player/' . $param['id'].'.js'); $info['code'] = $code; } header("Content-type: application/octet-stream"); if(strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { header("Content-Disposition: attachment; filename=mac_" . urlencode($info['from']) . '.txt'); } else{ header("Content-Disposition: attachment; filename=mac_" . $info['from'] . '.txt'); } echo base64_encode(json_encode($info)); } public function import() { if (request()->isPost()) { $param = input(); $validate = \think\Loader::validate('Token'); if(!$validate->check($param)){ return $this->error($validate->getError()); } unset($param['__token__']); $file = $this->request->file('file'); $info = $file->rule('uniqid')->validate(['size' => 10240000, 'ext' => 'txt']); if ($info) { $data = json_decode(base64_decode(file_get_contents($info->getpathName())), true); @unlink($info->getpathName()); if ($data) { if (empty($data['status']) || empty($data['from']) || empty($data['sort'])) { return $this->error(lang('format_err')); } if (strpos($data['from'], '.') !== false || strpos($data['from'], '/') !== false || strpos($data['from'], '\\') !== false) { $this->error(lang('param_err')); return; } $code = $data['code']; unset($data['code']); $list = config($this->_pre); $list[$data['from']] = $data; $res = mac_arr2file(APP_PATH . 'extra/' . $this->_pre . '.php', $list); if ($res === false) { return $this->error(lang('write_err_config')); } $res = fwrite(fopen('./static/player/' . $data['from'] . '.js', 'wb'), $code); if ($res === false) { return $this->error(lang('wirte_err_codefile')); } } return $this->success(lang('import_ok')); } else { return $this->error($file->getError()); } } else{ return $this->fetch('admin@vodplayer/import'); } } }