Template.php 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\controller\Base;
  4. use think\Request;
  5. use think\facade\Session;
  6. use think\Db;
  7. use think\facade\Env;
  8. class Template extends base
  9. {
  10. //模板列表
  11. public function index()
  12. {
  13. //获取正在使用的模板名
  14. $system = Db::name("system")->field("home_temp,member_temp")->find(1);
  15. //获取模板数量
  16. $home = $this->getTempfiles("template/home_temp");
  17. $member = $this->getTempfiles("template/member_temp");
  18. //循环列出配置文件内容
  19. $path = [];
  20. $userpath = [];
  21. for($i=0;$i<count($home);$i++){
  22. if(is_dir(config('app.temp_path')."/home_temp/".$home[$i])){
  23. if(is_file(config('app.temp_path')."/home_temp/".$home[$i]."/config.php")){
  24. $path[] = include("./template/home_temp/".$home[$i]."/config.php");
  25. }else{
  26. continue;
  27. }
  28. }else{
  29. continue;
  30. }
  31. }
  32. foreach($path as $key=>$val){
  33. if(is_file(config('app.temp_path')."/home_temp/".$val['tempname']."/suoluetu.png")){
  34. $path[$key]["sltpic"] = "/template/home_temp/".$val['tempname']."/suoluetu.png";
  35. }else{
  36. $path[$key]["sltpic"] = '/public/images/tempic.png';
  37. }
  38. }
  39. for($i=0;$i<count($member);$i++){
  40. if(is_dir(config('app.temp_path')."/member_temp/".$member[$i])){
  41. if(is_file(config('app.temp_path')."/member_temp/".$member[$i]."/config.php")){
  42. $userpath[] = include("./template/member_temp/".$member[$i]."/config.php");
  43. }else{
  44. continue;
  45. }
  46. }else{
  47. continue;
  48. }
  49. }
  50. foreach($userpath as $key=>$va){
  51. if(is_file(config('app.temp_path')."/member_temp/".$va['tempname']."/suoluetu.png")){
  52. $userpath[$key]["sltpic"] = "/template/member_temp/".$va['tempname']."/suoluetu.png";
  53. }else{
  54. $userpath[$key]["sltpic"] = '/public/images/tempic.png';
  55. }
  56. }
  57. //模板赋值
  58. $this->view->assign(['system'=>$system,'path'=>$path,'uesrpath'=>$userpath]);
  59. return view("index");
  60. }
  61. //模板本地上传
  62. public function tempup(Request $request){
  63. //接收上传的文件
  64. $file = request()->file('template');
  65. $tempurl = $request->param('temp');
  66. if(empty($tempurl)){
  67. return jsonmsg(0,"缺少必要参数");
  68. }
  69. if($file){
  70. $fileinfo = $file->getInfo();
  71. $res = unzip(config('app.temp_path').$tempurl,$fileinfo['tmp_name']);
  72. if($res){
  73. //return json(['code'=>1,'msg'=>'上传成功!']);
  74. return jsonmsg(1,'上传成功');
  75. }else{
  76. //return json(['code'=>0,'msg'=>'上传失败!']);
  77. return jsonmsg(0,"上传失败!");
  78. }
  79. }
  80. }
  81. //模板启用
  82. public function tempstart(Request $request)
  83. {
  84. $temp = $request->param('tp');
  85. $mod = $request->param('sts');
  86. $res = Db::name('system')->where('id', 1)->update([$mod=>$temp]);
  87. if($res){
  88. $this -> success("启用成功!",'Template/index');
  89. }else{
  90. $this -> error("启用失败!");
  91. }
  92. }
  93. //模板文件删除操作
  94. public function tempdel(Request $request){
  95. $mod = $request->param('temn');
  96. $dir = $_SERVER['DOCUMENT_ROOT']."/template/".$mod.$request ->param('tp');
  97. $res = rmdirr($dir);
  98. if($res){
  99. $this->success('删除成功!','Template/index');
  100. }else{
  101. $this->error('删除失败!');
  102. }
  103. }
  104. //模板在线编辑
  105. public function tempEdit(Request $request)
  106. {
  107. $admin = Db::name('admin')->where('id',Session::get('Adminuser.id'))->field('name')->find();
  108. $_SESSION["poc_username"] = $admin['name'];
  109. //删除编辑器历史用户信息
  110. delete_dir_file($_SERVER['DOCUMENT_ROOT'].'/editor/Cache/User');
  111. $_SESSION["root"] = Session::get('Adminuser');
  112. $domain = $request->domain();
  113. $url = $domain.'/editor/index.php';
  114. header("Location:".$url);
  115. }
  116. /*
  117. *自定义单页
  118. */
  119. public function customform(Request $request){
  120. $cutpath = Db::name("custform")->select()->toArray();
  121. foreach($cutpath as $key=>$val){
  122. $aduser = Db::name("admin")->field("name")->find($val["admid"]);
  123. $cutpath[$key]["admid"] = $aduser["name"];
  124. }
  125. return view('cusform',['cutpath'=>$cutpath]);
  126. }
  127. /*
  128. *添加页面渲染
  129. */
  130. public function cutformadd(Request $request){
  131. if($request->isAjax()){
  132. $data = $request->param();
  133. if(empty($data) || empty($data["fielname"]) || empty($data["path"]) || empty($data["finame"]) || empty($data["content"])){
  134. return jsonmsg(0,"参数错误!");
  135. }
  136. if(isset($data['upfile'])){
  137. unset($data['upfile']);
  138. }
  139. $fieln = explode(".",$data["fielname"]);
  140. $suffix = ["text","html","php","xml","css","js"];
  141. if(!in_array($fieln[1],$suffix)){
  142. return jsonmsg(0,"文件后缀名不合法!");
  143. }
  144. if(!is_dir($data["path"])){
  145. @mkdir($data["path"],true);
  146. }
  147. $data["path"] = $data["path"]."/".$data["fielname"];
  148. $data["content"]=stripslashes($data['content']);
  149. if(file_put_contents($data["path"],htmlspecialchars_decode($data["content"]))){
  150. $info = ["path"=>$data["path"],"finame"=>$data["finame"],"fielname"=>$data["fielname"],"admid"=>Session::get('Adminuser.id'),"create_time"=>time(),"update_time"=>time()];
  151. if(Db::name("custform")->where("fielname",$data["fielname"])->find() == NULL){
  152. Db::name("custform")->insert($info);
  153. }
  154. $this ->logs("新建单页".$data["finame"]."[".$data["fielname"]."]"."成功",Session::get('Adminuser.name'));
  155. return jsonmsg(1,"新建成功");
  156. }else{
  157. $this ->logs("新建单页".$data["finame"]."[".$data["fielname"]."]"."失败",Session::get('Adminuser.name'));
  158. return jsonmsg(0,"新建失败");
  159. }
  160. }
  161. return $this->fetch("form_add");
  162. }
  163. /*
  164. *编辑页面渲染
  165. */
  166. public function cutformedit(Request $request){
  167. if($request->isAjax()){
  168. $data = $request->param();
  169. if(empty($data) || empty($data["fielname"]) || empty($data["finame"]) || empty($data["content"])){
  170. return jsonmsg(0,"参数错误!");
  171. }
  172. if(isset($data['upfile'])){
  173. unset($data['upfile']);
  174. }
  175. $fieln = explode(".",$data["fielname"]);
  176. $suffix = ["text","html","php","xml","css","js"];
  177. if(!in_array($fieln[1],$suffix)){
  178. return jsonmsg(0,"文件后缀名不合法!");
  179. }
  180. $data["content"]=stripslashes($data['content']);
  181. if(file_put_contents($data["path"],htmlspecialchars_decode($data["content"]))){
  182. unset($data["content"]);
  183. $data['update_time'] = time();
  184. Db::name("custform")->update($data);
  185. $this ->logs("编辑单页".$data["finame"]."[".$data["fielname"]."]"."成功",Session::get('Adminuser.name'));
  186. return jsonmsg(1,"编辑成功");
  187. }else{
  188. $this ->logs("编辑单页".$data["finame"]."[".$data["fielname"]."]"."失败",Session::get('Adminuser.name'));
  189. return jsonmsg(0,"编辑失败");
  190. }
  191. }
  192. $forminfo = Db::name("custform")->find($request->param('formid'));
  193. $html = fopen($forminfo["path"], "r");
  194. $forminfo["content"] = fread($html, filesize ($forminfo["path"]));
  195. fclose($html);
  196. return view("form_edit",['forminfo'=>$forminfo]);
  197. }
  198. /*
  199. *单页文件删除
  200. *
  201. */
  202. public function cutformedel(Request $request){
  203. $data = $request->param();
  204. if(empty($data)){
  205. return jsonmsg(0,"参数错误!");
  206. }
  207. if(isset($data["all"])){
  208. if(isset($data["all"]{3})){
  209. $fielid = explode(",",$data["all"]);
  210. }else{
  211. $fielid = array($data["all"]);
  212. }
  213. $status = 1;
  214. $stfiel = "/";
  215. $stfiels = "/";
  216. foreach($fielid as $vs){
  217. $fiel = Db::name("custform")->field("fielname,path")->find($vs);
  218. $res = unlink($fiel["path"]);
  219. if($res){
  220. Db::name("custform")->delete($vs);
  221. $stfiel .= $fiel["fielname"]."/";
  222. }else{
  223. $status .= 01;
  224. $stfiels .= $fiel["fielname"]."/";
  225. }
  226. }
  227. if($status == 1){
  228. if(empty($stfiel)){
  229. $stfiel = substr($stfiel,0,-1);
  230. }
  231. $msg = "";
  232. if(empty($stfiels)){
  233. $stfiels = substr($stfiels,0,-1);
  234. $msg = "-删除[".$stfiels."]失败";
  235. }
  236. return jsonmsg(1,"删除[".$stfiel."]成功".$msg);
  237. }else{
  238. if(empty($stfiels)){
  239. $stfiels = substr($stfiels,0,-1);
  240. }
  241. $msg = "";
  242. if(empty($stfiel)){
  243. $stfiel = substr($stfiel,0,-1);
  244. $msg = "-删除[".$stfiel."]成功";
  245. }
  246. return jsonmsg(0,"删除[".$stfiels."]失败".$msg);
  247. }
  248. }else{
  249. $fiel = Db::name("custform")->field("fielname,path")->find($data["formid"]);
  250. $res = unlink($fiel["path"]);
  251. if($res){
  252. Db::name("custform")->delete($data["formid"]);
  253. return jsonmsg(1,"删除[".$fiel["fielname"]."]成功");
  254. }else{
  255. return jsonmsg(0,"删除[".$fiel["fielname"]."]失败");
  256. }
  257. }
  258. }
  259. public function selectdir(){
  260. $dir = json_encode(myscandir(Env::get('root_path'),JSON_UNESCAPED_SLASHES));
  261. return $this->fetch("form_select",['dir'=>$dir]);
  262. }
  263. }