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

133 lines
4.6KB

  1. <?php
  2. /**
  3. *
  4. * 自定义表单
  5. *
  6. * @version $Id: diy.php$
  7. * @package DedeBIZ.Site
  8. * @copyright Copyright (c) 2020, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license
  10. * @link https://www.dedebiz.com
  11. */
  12. require_once(dirname(__FILE__) . "/../include/common.inc.php");
  13. $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0;
  14. $action = isset($action) && in_array($action, array('post', 'list', 'view')) ? $action : 'post';
  15. $id = isset($id) && is_numeric($id) ? $id : 0;
  16. if (empty($diyid)) {
  17. showMsg('非法操作!', 'javascript:;');
  18. exit();
  19. }
  20. require_once DEDEINC . '/diyform.cls.php';
  21. $diy = new diyform($diyid);
  22. /*----------------------------
  23. function Post(){ }
  24. ---------------------------*/
  25. if ($action == 'post') {
  26. if (empty($do)) {
  27. $postform = $diy->getForm(true);
  28. include DEDEROOT . "/templets/plus/{$diy->postTemplate}";
  29. exit();
  30. } elseif ($do == 2) {
  31. $dede_fields = empty($dede_fields) ? '' : trim($dede_fields);
  32. $dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);
  33. if (!empty($dede_fields)) {
  34. if ($dede_fieldshash != md5($dede_fields . $cfg_cookie_encode)) {
  35. showMsg('数据校验不对,程序返回', '-1');
  36. exit();
  37. }
  38. }
  39. $diyform = $dsql->getOne("SELECT * from `#@__diyforms` WHERE diyid='$diyid' ");
  40. if (!is_array($diyform)) {
  41. showmsg('自定义表单不存在', '-1');
  42. exit();
  43. }
  44. $addvar = $addvalue = '';
  45. if (!empty($dede_fields)) {
  46. $fieldarr = explode(';', $dede_fields);
  47. if (is_array($fieldarr)) {
  48. foreach ($fieldarr as $field) {
  49. if ($field == '') continue;
  50. $fieldinfo = explode(',', $field);
  51. if ($fieldinfo[1] == 'textdata') {
  52. ${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
  53. ${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
  54. } else {
  55. ${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1], 0, 'add', '', 'diy', $fieldinfo[0]);
  56. }
  57. $addvar .= ', `' . $fieldinfo[0] . '`';
  58. $addvalue .= ", '" . ${$fieldinfo[0]} . "'";
  59. }
  60. }
  61. }
  62. $query = "INSERT INTO `{$diy->table}` (`id`, `ifcheck` $addvar) VALUES (NULL, 0 $addvalue); ";
  63. if ($dsql->ExecuteNoneQuery($query)) {
  64. $id = $dsql->GetLastID();
  65. if ($diy->public == 2) {
  66. //diy.php?action=view&diyid={$diy->diyid}&id=$id
  67. $goto = "diy.php?action=list&diyid={$diy->diyid}";
  68. $bkmsg = '发布成功,现在转向表单列表页...';
  69. } else {
  70. $goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';
  71. $bkmsg = '发布成功,请等待管理员处理...';
  72. }
  73. ShowMsg($bkmsg, $goto);
  74. }
  75. }
  76. }
  77. /*----------------------------
  78. function list(){ }
  79. ---------------------------*/ else if ($action == 'list') {
  80. if (empty($diy->public)) {
  81. ShowMsg('后台关闭前台浏览', 'javascript:;');
  82. exit();
  83. }
  84. include_once DEDEINC . '/datalistcp.class.php';
  85. if ($diy->public == 2)
  86. $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";
  87. else
  88. $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";
  89. $datalist = new DataListCP();
  90. $datalist->pageSize = 10;
  91. $datalist->SetParameter('action', 'list');
  92. $datalist->SetParameter('diyid', $diyid);
  93. $datalist->SetTemplate(DEDEINC . "/../templets/plus/{$diy->listTemplate}");
  94. $datalist->SetSource($query);
  95. $fieldlist = $diy->getFieldList();
  96. $datalist->Display();
  97. } else if ($action == 'view') {
  98. if (empty($diy->public)) {
  99. showMsg('后台关闭前台浏览', 'javascript:;');
  100. exit();
  101. }
  102. if (empty($id)) {
  103. showMsg('非法操作!未指定id', 'javascript:;');
  104. exit();
  105. }
  106. if ($diy->public == 2) {
  107. $query = "SELECT * FROM `{$diy->table}` WHERE id='$id' ";
  108. } else {
  109. $query = "SELECT * FROM `{$diy->table}` WHERE id='$id' AND ifcheck=1";
  110. }
  111. $row = $dsql->GetOne($query);
  112. if (!is_array($row)) {
  113. showmsg('你访问的记录不存在或未经审核', '-1');
  114. exit();
  115. }
  116. $fieldlist = $diy->getFieldList();
  117. include DEDEROOT . "/templets/plus/{$diy->viewTemplate}";
  118. }