国内流行的内容管理系统(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.

226 lines
8.0KB

  1. <?php
  2. /**
  3. * 自定义表单列表
  4. *
  5. * @version $Id: diy_list.php 1 18:31 2010年7月12日Z tianya $
  6. * @package DedeCMS.Administrator
  7. * @copyright Copyright (c) 2007 - 2019, DesDev, Inc.
  8. * @license http://help.dedecms.com/usersguide/license.html
  9. * @link http://www.dedecms.com
  10. */
  11. require_once(dirname(__FILE__)."/config.php");
  12. CheckPurview('c_New');
  13. $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0;
  14. $action = isset($action) && in_array($action, array('post', 'list', 'edit', 'check', 'delete')) ? $action : '';
  15. if(empty($diyid))
  16. {
  17. showMsg("非法操作!", 'javascript:;');
  18. exit();
  19. }
  20. require_once DEDEINC.'/diyform.cls.php';
  21. $diy = new diyform($diyid);
  22. if($action == 'post')
  23. {
  24. if(empty($do))
  25. {
  26. $postform = $diy->getForm('post','','admin');
  27. include DEDEADMIN.'/templets/diy_post.htm';
  28. }
  29. else if($do == 2)
  30. {
  31. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
  32. $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
  33. if(!empty($dede_fields))
  34. {
  35. if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode))
  36. {
  37. showMsg("数据校验不对,程序返回", '-1');
  38. exit();
  39. }
  40. }
  41. $diyform = $dsql->getOne("SELECT * FROM #@__diyforms WHERE diyid=$diyid");
  42. if(!is_array($diyform))
  43. {
  44. showmsg("自定义表单不存在", '-1');
  45. exit();
  46. }
  47. $addvar = $addvalue = '';
  48. if(!empty($dede_fields))
  49. {
  50. $fieldarr = explode(';', $dede_fields);
  51. if(is_array($fieldarr))
  52. {
  53. foreach($fieldarr as $field)
  54. {
  55. if($field == '')
  56. {
  57. continue;
  58. }
  59. $fieldinfo = explode(',', $field);
  60. if($fieldinfo[1] == 'htmltext' || $fieldinfo[1] == 'textdata')
  61. {
  62. ${$fieldinfo[0]} = filterscript(stripslashes(${$fieldinfo[0]}));
  63. ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
  64. ${$fieldinfo[0]} = getFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','member');
  65. }
  66. else
  67. {
  68. ${$fieldinfo[0]} = getFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','member');
  69. }
  70. $addvar .= ', `'.$fieldinfo[0].'`';
  71. $addvalue .= ", '".${$fieldinfo[0]}."'";
  72. }
  73. }
  74. }
  75. $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue)";
  76. if($dsql->ExecuteNoneQuery($query))
  77. {
  78. $goto = "diy_list.php?action=list&diyid={$diy->diyid}";
  79. showmsg('发布成功', $goto);
  80. }
  81. else
  82. {
  83. showmsg('对不起,发布不成功', '-1');
  84. }
  85. }
  86. } else if ($action == 'list')
  87. {
  88. include_once DEDEINC.'/datalistcp.class.php';
  89. $query = "SELECT * FROM {$diy->table} ORDER BY id DESC";
  90. $datalist = new DataListCP();
  91. $datalist->pageSize = 10;
  92. $datalist->SetParameter('action', 'list');
  93. $datalist->SetParameter('diyid', $diyid);
  94. $datalist->SetTemplate(DEDEADMIN.'/templets/diy_list.htm');
  95. $datalist->SetSource($query);
  96. $fieldlist = $diy->getFieldList();
  97. $datalist->Display();
  98. } else if ($action == 'edit')
  99. {
  100. if(empty($do))
  101. {
  102. $id = isset($id) && is_numeric($id) ? $id : 0;
  103. if(empty($id))
  104. {
  105. showMsg('非法操作!未指定id', 'javascript:;');
  106. exit();
  107. }
  108. $query = "SELECT * FROM {$diy->table} WHERE id=$id";
  109. $row = $dsql->GetOne($query);
  110. if(!is_array($row))
  111. {
  112. showmsg("你访问的记录不存在或未经审核", '-1');
  113. exit();
  114. }
  115. $postform = $diy->getForm('edit', $row, 'admin');
  116. $fieldlist = $diy->getFieldList();
  117. $c1 = $row['ifcheck'] == 1 ? 'checked' : '';
  118. $c2 = $row['ifcheck'] == 0 ? 'checked' : '';
  119. include DEDEADMIN.'/templets/diy_edit_content.htm';
  120. }
  121. else if($do == 2)
  122. {
  123. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
  124. $diyform = $dsql->GetOne("SELECT * FROM #@__diyforms WHERE diyid=$diyid");
  125. $diyco = $dsql->GetOne("SELECT * FROM `$diy->table` WHERE id='$id'");
  126. if(!is_array($diyform))
  127. {
  128. showmsg("自定义表单不存在", '-1');
  129. exit();
  130. }
  131. $addsql = '';
  132. if(!empty($dede_fields))
  133. {
  134. $fieldarr = explode(';', $dede_fields);
  135. if(is_array($fieldarr))
  136. {
  137. foreach($fieldarr as $field)
  138. {
  139. if($field == '')
  140. {
  141. continue;
  142. }
  143. $fieldinfo = explode(',', $field);
  144. if($fieldinfo[1] == 'htmltext' || $fieldinfo[1] == 'textdata')
  145. {
  146. ${$fieldinfo[0]} = filterscript(stripslashes(${$fieldinfo[0]}));
  147. ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
  148. ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','member');
  149. ${$fieldinfo[0]} = empty(${$fieldinfo[0]}) ? $diyco[$fieldinfo[0]] : ${$fieldinfo[0]};
  150. }
  151. else
  152. {
  153. ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);
  154. ${$fieldinfo[0]} = empty(${$fieldinfo[0]}) ? $diyco[$fieldinfo[0]] : ${$fieldinfo[0]};
  155. }
  156. $addsql .= !empty($addsql)?',`'.$fieldinfo[0]."`='".${$fieldinfo[0]}."'" : '`'.$fieldinfo[0]."`='".${$fieldinfo[0]}."'";
  157. }
  158. }
  159. }
  160. $query = "UPDATE `$diy->table` SET $addsql WHERE id=$id";
  161. if($dsql->ExecuteNoneQuery($query))
  162. {
  163. $goto = "diy_list.php?action=list&diyid={$diy->diyid}";
  164. showmsg('编辑成功', $goto);
  165. }
  166. else
  167. {
  168. showmsg('编辑成功', '-1');
  169. }
  170. }
  171. }elseif($action == 'check')
  172. {
  173. if(is_array($id))
  174. {
  175. $ids = implode(',', $id);
  176. }
  177. else
  178. {
  179. showmsg('未选中要操作的内容', '-1');
  180. exit();
  181. }
  182. $query = "UPDATE `$diy->table` SET ifcheck=1 WHERE id IN ($ids)";
  183. if($dsql->ExecuteNoneQuery($query))
  184. {
  185. showmsg('审核成功', "diy_list.php?action=list&diyid={$diy->diyid}");
  186. }
  187. else
  188. {
  189. showmsg('审核失败', "diy_list.php?action=list&diyid={$diy->diyid}");
  190. }
  191. }elseif($action == 'delete')
  192. {
  193. if(empty($do))
  194. {
  195. if(is_array($id))
  196. {
  197. $ids = implode(',', $id);
  198. }else
  199. {
  200. showmsg('未选中要操作的内容', '-1');
  201. exit();
  202. }
  203. $query = "DELETE FROM `$diy->table` WHERE id IN ($ids)";
  204. if($dsql->ExecuteNoneQuery($query))
  205. {
  206. showmsg('删除成功', "diy_list.php?action=list&diyid={$diy->diyid}");
  207. }
  208. else
  209. {
  210. showmsg('删除失败', "diy_list.php?action=list&diyid={$diy->diyid}");
  211. }
  212. } else if($do=1){
  213. $row = $dsql->GetOne("SELECT * FROM `$diy->table` WHERE id='$id'");
  214. if(file_exists($cfg_basedir.$row[$name])){
  215. unlink($cfg_basedir.$row[$name]);
  216. $dsql->ExecuteNoneQuery("UPDATE `$diy->table` SET $name='' WHERE id='$id'");
  217. showmsg('文件删除成功',"diy_list.php?action=list&diyid={$diy->diyid}");
  218. }else{
  219. showmsg('文件不存在','-1');
  220. }
  221. }
  222. }else
  223. {
  224. showmsg('未定义操作', "-1");
  225. }