workflow.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. pc_base::load_app_class('admin','admin',0);
  4. pc_base::load_sys_class('form','',0);
  5. class workflow extends admin {
  6. private $db,$admin_db;
  7. public $siteid;
  8. function __construct() {
  9. parent::__construct();
  10. $this->db = pc_base::load_model('workflow_model');
  11. $this->admin_db = pc_base::load_model('admin_model');
  12. $this->siteid = $this->get_siteid();
  13. }
  14. public function init () {
  15. $datas = array();
  16. $result_datas = $this->db->listinfo(array('siteid'=>$this->siteid));
  17. foreach($result_datas as $r) {
  18. $datas[] = $r;
  19. }
  20. $this->cache();
  21. include $this->admin_tpl('workflow_list');
  22. }
  23. public function add() {
  24. if(isset($_POST['dosubmit'])) {
  25. $_POST['info']['siteid'] = $this->siteid;
  26. $_POST['info']['workname'] = safe_replace($_POST['info']['workname']);
  27. $setting[1] = $_POST['checkadmin1'];
  28. $setting[2] = $_POST['checkadmin2'];
  29. $setting[3] = $_POST['checkadmin3'];
  30. $setting[4] = $_POST['checkadmin4'];
  31. $setting['nocheck_users'] = $_POST['nocheck_users'];
  32. $setting = array2string($setting);
  33. $_POST['info']['setting'] = $setting;
  34. $this->db->insert($_POST['info']);
  35. $this->cache();
  36. showmessage(L('add_success'));
  37. } else {
  38. $show_validator = '';
  39. $admin_data = array();
  40. $result = $this->admin_db->select();
  41. foreach($result as $_value) {
  42. if($_value['roleid']==1) continue;
  43. $admin_data[$_value['username']] = $_value['username'];
  44. }
  45. include $this->admin_tpl('workflow_add');
  46. }
  47. }
  48. public function edit() {
  49. if(isset($_POST['dosubmit'])) {
  50. $workflowid = intval($_POST['workflowid']);
  51. $_POST['info']['workname'] = safe_replace($_POST['info']['workname']);
  52. $setting[1] = $_POST['checkadmin1'];
  53. $setting[2] = $_POST['checkadmin2'];
  54. $setting[3] = $_POST['checkadmin3'];
  55. $setting[4] = $_POST['checkadmin4'];
  56. $setting['nocheck_users'] = $_POST['nocheck_users'];
  57. $setting = array2string($setting);
  58. $_POST['info']['setting'] = $setting;
  59. $this->db->update($_POST['info'],array('workflowid'=>$workflowid));
  60. $this->cache();
  61. showmessage(L('update_success'), '', '', 'edit');
  62. } else {
  63. $show_header = $show_validator = '';
  64. $workflowid = intval($_GET['workflowid']);
  65. $admin_data = array();
  66. $result = $this->admin_db->select();
  67. foreach($result as $_value) {
  68. if($_value['roleid']==1) continue;
  69. $admin_data[$_value['username']] = $_value['username'];
  70. }
  71. $r = $this->db->get_one(array('workflowid'=>$workflowid));
  72. extract($r);
  73. $setting = string2array($setting);
  74. $checkadmin1 = $this->implode_ids($setting[1]);
  75. $checkadmin2 = $this->implode_ids($setting[2]);
  76. $checkadmin3 = $this->implode_ids($setting[3]);
  77. $checkadmin4 = $this->implode_ids($setting[4]);
  78. $nocheck_users = $this->implode_ids($setting['nocheck_users']);
  79. include $this->admin_tpl('workflow_edit');
  80. }
  81. }
  82. public function view() {
  83. $show_header = '';
  84. $workflowid = intval($_GET['workflowid']);
  85. $admin_data = array();
  86. $result = $this->admin_db->select();
  87. foreach($result as $_value) {
  88. if($_value['roleid']==1) continue;
  89. $admin_data[$_value['username']] = $_value['username'];
  90. }
  91. $r = $this->db->get_one(array('workflowid'=>$workflowid));
  92. extract($r);
  93. $setting = string2array($setting);
  94. $checkadmin1 = $this->implode_ids($setting[1],'、');
  95. $checkadmin2 = $this->implode_ids($setting[2],'、');
  96. $checkadmin3 = $this->implode_ids($setting[3],'、');
  97. $checkadmin4 = $this->implode_ids($setting[4],'、');
  98. include $this->admin_tpl('workflow_view');
  99. }
  100. public function delete() {
  101. $_GET['workflowid'] = intval($_GET['workflowid']);
  102. $this->db->delete(array('workflowid'=>$_GET['workflowid']));
  103. $this->cache();
  104. exit('1');
  105. }
  106. public function cache() {
  107. $datas = array();
  108. $workflow_datas = $this->db->select(array('siteid'=>$this->siteid),'*',1000);
  109. foreach($workflow_datas as $_k=>$_v) {
  110. $datas[$_v['workflowid']] = $_v;
  111. }
  112. setcache('workflow_'.$this->siteid,$datas,'commons');
  113. return true;
  114. }
  115. /**
  116. * 用逗号分隔数组
  117. */
  118. private function implode_ids($array, $flags = ',') {
  119. if(empty($array)) return true;
  120. $length = strlen($flags);
  121. $string = '';
  122. foreach($array as $_v) {
  123. $string .= $_v.$flags;
  124. }
  125. return substr($string,0,-$length);
  126. }
  127. }
  128. ?>