国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

247 lines
8.5KB

  1. <?php
  2. /**
  3. * 文件管理器
  4. *
  5. * @version $Id: tpl.php 1 23:44 2010年7月20日Z tianya $
  6. * @package DedeBIZ.Administrator
  7. * @copyright Copyright (c) 2020, DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__) . "/config.php");
  12. CheckPurview('plus_文件管理器');
  13. $action = isset($action) ? trim($action) : '';
  14. if (empty($acdir)) $acdir = $cfg_df_style;
  15. $templetdir = $cfg_basedir . $cfg_templets_dir;
  16. $templetdird = $templetdir . '/' . $acdir;
  17. $templeturld = $cfg_templeturl . '/' . $acdir;
  18. if (empty($filename)) $filename = '';
  19. $filename = preg_replace("#[\/\\\\]#", '', $filename);
  20. if (preg_match("#\.#", $acdir)) {
  21. ShowMsg('Not Allow dir ' . $acdir . '!', '-1');
  22. exit();
  23. }
  24. /*
  25. function edit_new_tpl() { }
  26. 编辑模板
  27. */
  28. if ($action == 'edit' || $action == 'newfile') {
  29. if ($filename == '' && $action == 'edit') {
  30. ShowMsg('未指定要编辑的文件', '-1');
  31. exit();
  32. }
  33. if (!file_exists($templetdird . '/' . $filename) && $action == 'edit') {
  34. $action = 'newfile';
  35. }
  36. //读取文件内容
  37. //$content = dede_htmlspecialchars(trim(file_get_contents($truePath.$filename)));
  38. if ($action == 'edit') {
  39. $fp = fopen($templetdird . '/' . $filename, 'r');
  40. $content = fread($fp, filesize($templetdird . '/' . $filename));
  41. fclose($fp);
  42. $content = preg_replace("#<textarea#i", "##textarea", $content);
  43. $content = preg_replace("#</textarea#i", "##/textarea", $content);
  44. $content = preg_replace("#<form#i", "##form", $content);
  45. $content = preg_replace("#</form#i", "##/form", $content);
  46. } else {
  47. if (empty($filename)) $filename = 'newtpl.htm';
  48. $content = '';
  49. }
  50. //获取标签帮助信息
  51. $helps = $dtags = array();
  52. $tagHelpDir = DEDEINC . '/taglib/help/';
  53. $dir = dir($tagHelpDir);
  54. while (false !== ($entry = $dir->read())) {
  55. if ($entry != '.' && $entry != '..' && !is_dir($tagHelpDir . $entry)) {
  56. $dtags[] = str_replace('.txt', '', $entry);
  57. }
  58. }
  59. $dir->close();
  60. foreach ($dtags as $tag) {
  61. //$helpContent = file_get_contents($tagHelpDir.$tag.'.txt');
  62. $fp = fopen($tagHelpDir . $tag . '.txt', 'r');
  63. $helpContent = fread($fp, filesize($tagHelpDir . $tag . '.txt'));
  64. fclose($fp);
  65. $helps[$tag] = explode('>>dede>>', $helpContent);
  66. }
  67. make_hash();
  68. include DEDEADMIN . '/templets/tpl_edit.htm';
  69. exit();
  70. }
  71. /*---------------------------
  72. function save_tpl() { }
  73. 保存编辑模板
  74. --------------------------*/ else if ($action == 'saveedit') {
  75. CheckCSRF();
  76. if ($filename == '') {
  77. ShowMsg('未指定要编辑的文件或文件名不合法', '-1');
  78. exit();
  79. }
  80. if (!preg_match("#\.htm$#", $filename)) {
  81. ShowMsg('DEDE模板文件,文件名必须用.htm结尾!', '-1');
  82. exit();
  83. }
  84. $content = stripslashes($content);
  85. $content = preg_replace("/##textarea/i", "<textarea", $content);
  86. $content = preg_replace("/##\/textarea/i", "</textarea", $content);
  87. $content = preg_replace("/##form/i", "<form", $content);
  88. $content = preg_replace("/##\/form/i", "</form", $content);
  89. $truefile = $templetdird . '/' . $filename;
  90. $fp = fopen($truefile, 'w');
  91. fwrite($fp, $content);
  92. fclose($fp);
  93. ShowMsg('成功修改或新建文件', 'templets_main.php?acdir=' . $acdir);
  94. exit();
  95. }
  96. /*---------------------------
  97. function del_tpl() { }
  98. 删除模板
  99. --------------------------*/ else if ($action == 'del') {
  100. $truefile = $templetdird . '/' . $filename;
  101. if (unlink($truefile)) {
  102. ShowMsg('删除文件成功', 'templets_main.php?acdir=' . $acdir);
  103. exit();
  104. } else {
  105. ShowMsg('删除文件失败', '-1');
  106. exit();
  107. }
  108. }
  109. /*----------------------
  110. function _upload() {}
  111. 上传新模板
  112. -----------------------*/ else if ($action == 'upload') {
  113. require_once(dirname(__FILE__) . '/../include/oxwindow.class.php');
  114. $acdir = str_replace('.', '', $acdir);
  115. $win = new OxWindow();
  116. make_hash();
  117. $win->Init("tpl.php", "js/blank.js", "POST' enctype='multipart/form-data' ");
  118. $win->mainTitle = "模块管理";
  119. $wecome_info = "<a href='templets_main.php'>模板管理</a> &gt;&gt; 上传模板";
  120. $win->AddTitle('请选择要上传的文件:');
  121. $win->AddHidden("action", 'uploadok');
  122. $msg = "
  123. <table width='600' border='0' cellspacing='0' cellpadding='0'>
  124. <tr>
  125. <td width='96' height='60'>请选择文件:</td>
  126. <td width='504'>
  127. <input name='acdir' type='hidden' value='$acdir' />
  128. <input name='token' type='hidden' value='{$_SESSION['token']}' />
  129. <input name='upfile' type='file' id='upfile' style='width:380px' />
  130. </td>
  131. </tr>
  132. </table>
  133. ";
  134. $win->AddMsgItem("<div style='padding-left:20px;line-height:150%'>$msg</div>");
  135. $winform = $win->GetWindow('ok', '');
  136. $win->Display();
  137. exit();
  138. }
  139. /*----------------------
  140. function _upload() {}
  141. 上传新模板
  142. -----------------------*/ else if ($action == 'uploadok') {
  143. CheckCSRF();
  144. if (!is_uploaded_file($upfile)) {
  145. ShowMsg("貌似你什么都没有上传哦!", "javascript:;");
  146. exit();
  147. } else {
  148. if (!preg_match("#\.(htm|html)$#", $upfile_name)) {
  149. ShowMsg("DedeCMSV6模板只能用 .htm 或 .html扩展名!", "-1");
  150. exit();
  151. }
  152. if (preg_match("#[\\\\\/]#", $upfile_name)) {
  153. ShowMsg("模板文件名有非法字符,禁止上传!", "-1");
  154. exit();
  155. }
  156. move_uploaded_file($upfile, $templetdird . '/' . $upfile_name);
  157. @unlink($upfile);
  158. ShowMsg("成功上传一个模板!", "templets_main.php?acdir=$acdir");
  159. exit();
  160. }
  161. exit();
  162. }
  163. /*---------------------------
  164. function edittag() { }
  165. 修改标签碎片
  166. --------------------------*/ else if ($action == 'edittag' || $action == 'addnewtag') {
  167. if ($action == 'addnewtag') {
  168. $democode = '<' . "?php
  169. if(!defined('DEDEINC'))
  170. {
  171. exit(\"Request Error!\");
  172. }
  173. function lib_demotag(&\$ctag,&\$refObj)
  174. {
  175. global \$dsql,\$envs;
  176. //属性处理
  177. \$attlist=\"row|12,titlelen|24\";
  178. FillAttsDefault(\$ctag->CAttribute->Items,\$attlist);
  179. extract(\$ctag->CAttribute->Items, EXTR_SKIP);
  180. \$revalue = '';
  181. //你需编写的代码,不能用echo之类语法,把最终返回值传给\$revalue
  182. //------------------------------------------------------
  183. \$revalue = 'Hello Word!';
  184. //------------------------------------------------------
  185. return \$revalue;
  186. }
  187. ?" . '>';
  188. $filename = "demotag.lib.php";
  189. $title = "新建标签";
  190. } else {
  191. if (!preg_match("#^[a-z0-9_-]{1,}\.lib\.php$#i", $filename)) {
  192. ShowMsg('文件不是标准的标签碎片文件,不允许在此编辑!', '-1');
  193. exit();
  194. }
  195. $fp = fopen(DEDEINC . '/taglib/' . $filename, 'r');
  196. $democode = fread($fp, filesize(DEDEINC . '/taglib/' . $filename));
  197. fclose($fp);
  198. $title = "修改标签";
  199. }
  200. make_hash();
  201. include DEDEADMIN . '/templets/tpl_edit_tag.htm';
  202. exit();
  203. }
  204. /*---------------------------
  205. function savetagfile() { }
  206. 保存标签碎片修改
  207. --------------------------*/ else if ($action == 'savetagfile') {
  208. CheckCSRF();
  209. if (!preg_match("#^[a-z0-9_-]{1,}\.lib\.php$#i", $filename)) {
  210. ShowMsg('文件名不合法,不允许进行操作!', '-1');
  211. exit();
  212. }
  213. require_once(DEDEINC . '/oxwindow.class.php');
  214. $tagname = preg_replace("#\.lib\.php$#i", "", $filename);
  215. $content = stripslashes($content);
  216. $truefile = DEDEINC . '/taglib/' . $filename;
  217. $fp = fopen($truefile, 'w');
  218. fwrite($fp, $content);
  219. fclose($fp);
  220. $msg = "
  221. <form name='form1' action='tag_test_action.php' target='blank' method='post'>
  222. <input type='hidden' name='dopost' value='make' />
  223. <b>测试标签:</b>(需要使用环境变量的不能在此测试)<br/>
  224. <textarea name='partcode' cols='150' rows='6' style='width:90%;'>{dede:{$tagname} }{/dede:{$tagname}}</textarea><br />
  225. <input name='imageField1' type='image' class='np' src='images/button_ok.gif' width='60' height='22' border='0' />
  226. </form>
  227. ";
  228. $wintitle = "成功修改/创建文件!";
  229. $wecome_info = "<a href='templets_tagsource.php'>标签源码碎片管理</a> &gt;&gt; 修改/新建标签";
  230. $win = new OxWindow();
  231. $win->AddTitle("修改/新建标签:");
  232. $win->AddMsgItem($msg);
  233. $winform = $win->GetWindow("hand", "&nbsp;", false);
  234. $win->Display();
  235. exit();
  236. }