| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- +-----------------------------------------------------------------------------------------------
- * GouGuOPEN [ 左手研发,右手开源,未来可期!]
- +-----------------------------------------------------------------------------------------------
- * @Copyright (c) 2021~2024 http://www.gouguoa.com All rights reserved.
- +-----------------------------------------------------------------------------------------------
- * @Licensed 勾股OA,开源且可免费使用,但并不是自由软件,未经授权许可不能去除勾股OA的相关版权信息
- +-----------------------------------------------------------------------------------------------
- * @Author 勾股工作室 <hdm58@qq.com>
- +-----------------------------------------------------------------------------------------------
- */
- declare (strict_types = 1);
- namespace app\api\controller;
- use app\api\BaseController;
- use think\facade\Db;
- use Firebase\JWT\JWT;
- class Office extends BaseController
- {
- public function view($id=0,$mode='edit')
- {
- $file = Db::name('File')->where('id',$id)->find();
- if(empty($file)){
- return view('../../base/view/common/filetemplate');
- }
- $path = $file['filepath'];
- $title = $file['name'];
- $extension = pathinfo($path, PATHINFO_EXTENSION);
- $filename = pathinfo($path, PATHINFO_FILENAME);
- $office_config = get_system_config('other');
- $office_config['token'] = 'secret_8JFhzy';
- //$directory = substr($path, 0, 16);
- //$key = set_salt(10).str_replace("/", "T", $directory).$filename.'.'.$extension;
- $key = "key".$file['audit_time']."T".$id;
- $domain = $_SERVER['HTTP_HOST'];
- $url = "http://".$domain.$path;
- $callbackUrl = "http://".$domain."/office.php";
- $admin = Db::name('Admin')->where('id',$this->uid)->find();
- $config = [
- "document" => [
- "url" => $url,
- "key" => $key,
- "permissions" => [
- "chat"=> true,
- "comment"=> true,
- "copy"=> true,
- "deleteCommentAuthorOnly"=> false,
- "download"=> true,
- "edit"=> true,
- "editCommentAuthorOnly"=> false,
- "fillForms"=> true,
- "modifyContentControl"=> true,
- "modifyFilter"=> true,
- "print"=>true,
- "protect"=> true,
- "review"=> true
- ]
- ],
- "editorConfig"=>[
- "mode" => $mode,//view,edit
- "forcesave"=>true,
- "lang"=>"zh-CN",
- "createUrl" => '',
- "customization"=>[
- "autosave"=>true,//是否自动保存
- "comments"=>false,
- "help"=>false
- ],
- "user" => [
- "id" => $admin['id'],
- "name" => $admin['name']
- ],
- "callbackUrl"=>$callbackUrl
- ]
- ];
- $token = JWT::encode($config, $office_config['token'], 'HS256'); //输出Token 默认'HS256'
- return View('',['token'=>$token,'key'=>$key,'office'=>$office_config,'mode'=>$mode,'domain'=>$domain,'url'=>$url,'title'=>$title,'callbackUrl'=>$callbackUrl,'admin'=>$admin]);
- }
-
- public function officeapps($id=0,$mode='edit')
- {
- $file = Db::name('File')->where('id',$id)->find();
- if(empty($file)){
- return view('../../base/view/common/filetemplate');
- }
- $path = $file['filepath'];
- $domain = $_SERVER['HTTP_HOST'];
- $url = "//".$domain.$path;
- return View('',['url'=>$url]);
- }
- }
|