国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

212 řádky
8.5KB

  1. <?php
  2. /**
  3. * 自定义表单列表
  4. *
  5. * @version $id:diy_list.php 18:31 2010年7月12日 tianya $
  6. * @package DedeBIZ.Administrator
  7. * @copyright Copyright (c) 2022 DedeBIZ.COM
  8. * @license GNU GPL v2 (https://www.dedebiz.com/license)
  9. * @link https://www.dedebiz.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', 'excel')) ? $action : '';
  15. if (empty($diyid)) {
  16. showMsg('操作失败', '-1');
  17. exit();
  18. }
  19. require_once DEDEINC.'/diyform.class.php';
  20. $diy = new diyform($diyid);
  21. if ($action == 'post') {
  22. if (empty($do)) {
  23. $postform = $diy->getForm('post', '', 'admin');
  24. include DEDEADMIN.'/templets/diy_post.htm';
  25. } else if ($do == 2) {
  26. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
  27. $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
  28. if (!empty($dede_fields)) {
  29. if ($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode)) {
  30. showMsg('数据校验不对', '-1');
  31. exit();
  32. }
  33. }
  34. $diyform = $dsql->GetOne("SELECT * FROM `#@__diyforms` WHERE diyid=$diyid");
  35. if (!is_array($diyform)) {
  36. showmsg('表单不存在', '-1');
  37. exit();
  38. }
  39. $addvar = $addvalue = '';
  40. if (!empty($dede_fields)) {
  41. $fieldarr = explode(';', $dede_fields);
  42. if (is_array($fieldarr)) {
  43. foreach ($fieldarr as $field) {
  44. if ($field == '') {
  45. continue;
  46. }
  47. $fieldinfo = explode(',', $field);
  48. if ($fieldinfo[1] == 'htmltext' || $fieldinfo[1] == 'textdata') {
  49. ${$fieldinfo[0]} = HtmlReplace(stripslashes(${$fieldinfo[0]}),1);
  50. ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
  51. ${$fieldinfo[0]} = getFieldValue(${$fieldinfo[0]}, $fieldinfo[1], 0, 'add', '', 'member');
  52. } else {
  53. ${$fieldinfo[0]} = getFieldValue(${$fieldinfo[0]}, $fieldinfo[1], 0, 'add', '', 'member');
  54. }
  55. $addvar .= ', `'.$fieldinfo[0].'`';
  56. $addvalue .= ", '".${$fieldinfo[0]}."'";
  57. }
  58. }
  59. }
  60. $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue)";
  61. if ($dsql->ExecuteNoneQuery($query)) {
  62. $goto = "diy_list.php?action=list&diyid={$diy->diyid}";
  63. showmsg('发布成功', $goto);
  64. } else {
  65. showmsg('发布失败', '-1');
  66. }
  67. }
  68. } else if ($action == 'list') {
  69. include_once DEDEINC.'/datalistcp.class.php';
  70. if (empty($keyword)) {
  71. $keyword = '';
  72. $addquery = '';
  73. } else {
  74. $addquery = " WHERE {$field} LIKE '%".trim($keyword)."%' ";
  75. }
  76. $query = "SELECT * FROM {$diy->table} $addquery ORDER BY id DESC";
  77. $datalist = new DataListCP();
  78. $datalist->pagesize = 30;
  79. $datalist->SetParameter('action', 'list');
  80. $datalist->SetParameter('diyid', $diyid);
  81. $datalist->SetParameter('keyword', $keyword);
  82. $datalist->SetParameter('field', $field);
  83. $datalist->SetTemplate(DEDEADMIN.'/templets/diy_list.htm');
  84. $datalist->SetSource($query);
  85. $fieldlist = $diy->getFieldList();
  86. $datalist->Display();
  87. } else if ($action == 'edit') {
  88. if (empty($do)) {
  89. $id = isset($id) && is_numeric($id) ? $id : 0;
  90. if (empty($id)) {
  91. showMsg('操作失败,未指定id', '-1');
  92. exit();
  93. }
  94. $query = "SELECT * FROM {$diy->table} WHERE id=$id";
  95. $row = $dsql->GetOne($query);
  96. if (!is_array($row)) {
  97. showmsg('您浏览的记录不存在或待审核', '-1');
  98. exit();
  99. }
  100. $postform = $diy->getForm('edit', $row, 'admin');
  101. $fieldlist = $diy->getFieldList();
  102. $c1 = $row['ifcheck'] == 1 ? 'checked' : '';
  103. $c2 = $row['ifcheck'] == 0 ? 'checked' : '';
  104. include DEDEADMIN.'/templets/diy_edit_content.htm';
  105. } else if ($do == 2) {
  106. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
  107. $diyform = $dsql->GetOne("SELECT * FROM `#@__diyforms` WHERE diyid=$diyid");
  108. $diyco = $dsql->GetOne("SELECT * FROM `$diy->table` WHERE id='$id'");
  109. if (!is_array($diyform)) {
  110. showmsg("表单不存在", '-1');
  111. exit();
  112. }
  113. $addsql = '';
  114. if (!empty($dede_fields)) {
  115. $fieldarr = explode(';', $dede_fields);
  116. if (is_array($fieldarr)) {
  117. foreach ($fieldarr as $field) {
  118. if ($field == '') {
  119. continue;
  120. }
  121. $fieldinfo = explode(',', $field);
  122. if ($fieldinfo[1] == 'htmltext' || $fieldinfo[1] == 'textdata') {
  123. ${$fieldinfo[0]} = HtmlReplace(stripslashes(${$fieldinfo[0]}),1);
  124. ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
  125. ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1], 0, 'add', '', 'member');
  126. ${$fieldinfo[0]} = empty(${$fieldinfo[0]}) ? $diyco[$fieldinfo[0]] : ${$fieldinfo[0]};
  127. } else {
  128. ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1], 0, 'add', '', 'diy', $fieldinfo[0]);
  129. ${$fieldinfo[0]} = empty(${$fieldinfo[0]}) ? $diyco[$fieldinfo[0]] : ${$fieldinfo[0]};
  130. }
  131. $addsql .= !empty($addsql) ? ',`'.$fieldinfo[0]."`='".${$fieldinfo[0]}."'" : '`'.$fieldinfo[0]."`='".${$fieldinfo[0]}."'";
  132. }
  133. }
  134. }
  135. $query = "UPDATE `$diy->table` SET $addsql WHERE id=$id";
  136. if ($dsql->ExecuteNoneQuery($query)) {
  137. $goto = "diy_list.php?action=list&diyid={$diy->diyid}";
  138. showmsg('修改成功', $goto);
  139. } else {
  140. showmsg('修改成功', '-1');
  141. }
  142. }
  143. } elseif ($action == 'check') {
  144. if (is_array($id) && is_all_numeric($id)) {
  145. $ids = implode(',', $id);
  146. } else {
  147. showmsg('未选中要操作的表单', '-1');
  148. exit();
  149. }
  150. $query = "UPDATE `$diy->table` SET ifcheck=1 WHERE id IN ($ids)";
  151. if ($dsql->ExecuteNoneQuery($query)) {
  152. showmsg('审核成功', "diy_list.php?action=list&diyid={$diy->diyid}");
  153. } else {
  154. showmsg('审核失败', "diy_list.php?action=list&diyid={$diy->diyid}");
  155. }
  156. } elseif ($action == 'delete') {
  157. if (empty($do)) {
  158. if (is_array($id)) {
  159. $ids = implode(',', $id);
  160. } else {
  161. showmsg('未选中要操作的表单', '-1');
  162. exit();
  163. }
  164. $query = "DELETE FROM `$diy->table` WHERE id IN ($ids)";
  165. if ($dsql->ExecuteNoneQuery($query)) {
  166. showmsg('删除成功', "diy_list.php?action=list&diyid={$diy->diyid}");
  167. } else {
  168. showmsg('删除失败', "diy_list.php?action=list&diyid={$diy->diyid}");
  169. }
  170. } else if ($do = 1) {
  171. $row = $dsql->GetOne("SELECT * FROM `$diy->table` WHERE id='$id'");
  172. if (file_exists($cfg_basedir.$row[$name])) {
  173. unlink($cfg_basedir.$row[$name]);
  174. $dsql->ExecuteNoneQuery("UPDATE `$diy->table` SET $name='' WHERE id='$id'");
  175. showmsg('删除成功', "diy_list.php?action=list&diyid={$diy->diyid}");
  176. } else {
  177. showmsg('删除失败', '-1');
  178. }
  179. }
  180. } elseif ($action == 'excel') {
  181. ob_end_clean();//清除缓冲区,避免乱码
  182. header("Content-type:application/vnd.ms-excel");
  183. header("Content-Disposition:attachment;filename={$diy->name}".date("Y-m-d").".xls");
  184. print(chr(0xEF).chr(0xBB).chr(0xBF));//清除bom
  185. $fieldlist = (array)$diy->getFieldList();
  186. echo "<table><tr>";
  187. foreach($fieldlist as $field=>$fielddata)
  188. {
  189. echo "<th>{$fielddata[0]}</th>";
  190. }
  191. echo "<th>状态</th>";
  192. echo "</tr>";
  193. $sql = "SELECT * FROM {$diy->table} ORDER BY id DESC";
  194. $dsql->SetQuery($sql);
  195. $dsql->Execute('t');
  196. while($arr = $dsql->GetArray('t'))
  197. {
  198. echo "<tr>";
  199. foreach($fieldlist as $key => $field)
  200. {
  201. echo "<td>".$arr[$key]."</td>";
  202. }
  203. $status = $arr['ifcheck'] == 1 ? '已审核' : '待审核';
  204. echo "<td>".$status."</td>";
  205. echo "</tr>";
  206. }
  207. echo "</table>";
  208. } else {
  209. showmsg('未定义操作', '-1');
  210. }
  211. ?>