spacecp_doing.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: spacecp_doing.php 33714 2013-08-07 01:42:26Z andyzheng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. $doid = empty($_GET['doid'])?0:intval($_GET['doid']);
  12. $id = empty($_GET['id'])?0:intval($_GET['id']);
  13. if(helper_access::check_module('doing')) {
  14. if(submitcheck('addsubmit')) {
  15. if(!checkperm('allowdoing')) {
  16. showmessage('no_privilege_doing');
  17. }
  18. cknewuser();
  19. $waittime = interval_check('post');
  20. if($waittime > 0) {
  21. showmessage('operating_too_fast', '', array('waittime' => $waittime));
  22. }
  23. $message = getstr($_POST['message'], 200, 0, 0, 1);
  24. $message = preg_replace("/\<br.*?\>/i", ' ', $message);
  25. if(strlen($message) < 1) {
  26. showmessage('should_write_that');
  27. }
  28. $message = censor($message, NULL, TRUE);
  29. if(is_array($message) && $message['message']) {
  30. showmessage('do_success', dreferer(), array('message'=>$message['message']));
  31. }
  32. if(censormod($message) || $_G['group']['allowdoingmod']) {
  33. $doing_status = 1;
  34. } else {
  35. $doing_status = 0;
  36. }
  37. $setarr = array(
  38. 'uid' => $_G['uid'],
  39. 'username' => $_G['username'],
  40. 'dateline' => $_G['timestamp'],
  41. 'message' => $message,
  42. 'ip' => $_G['clientip'],
  43. 'port' => $_G['remoteport'],
  44. 'status' => $doing_status,
  45. );
  46. $newdoid = C::t('home_doing')->insert($setarr, 1);
  47. $setarr = array('recentnote'=>$message, 'spacenote'=>$message);
  48. $credit = $experience = 0;
  49. $extrasql = array('doings' => 1);
  50. updatecreditbyaction('doing', 0, $extrasql);
  51. C::t('common_member_field_home')->update($_G['uid'], $setarr);
  52. if($_POST['to_signhtml'] && $_G['group']['maxsigsize']) {
  53. if($_G['group']['maxsigsize'] < 200) {
  54. $signhtml = getstr($_POST['message'], $_G['group']['maxsigsize'], 0, 0, 1);
  55. $signhtml = preg_replace("/\<br.*?\>/i", ' ', $signhtml);
  56. } else {
  57. $signhtml = $message;
  58. }
  59. C::t('common_member_field_forum')->update($_G['uid'], array('sightml'=>$signhtml));
  60. }
  61. if(helper_access::check_module('feed') && ckprivacy('doing', 'feed') && $doing_status == '0') {
  62. $feedarr = array(
  63. 'appid' => '',
  64. 'icon' => 'doing',
  65. 'uid' => $_G['uid'],
  66. 'username' => $_G['username'],
  67. 'dateline' => $_G['timestamp'],
  68. 'title_template' => lang('feed', 'feed_doing_title'),
  69. 'title_data' => serialize(array('message'=>$message)),
  70. 'body_template' => '',
  71. 'body_data' => '',
  72. 'id' => $newdoid,
  73. 'idtype' => 'doid'
  74. );
  75. C::t('home_feed')->insert($feedarr);
  76. }
  77. if($doing_status == '1') {
  78. updatemoderate('doid', $newdoid);
  79. manage_addnotify('verifydoing');
  80. }
  81. require_once libfile('function/stat');
  82. updatestat('doing');
  83. C::t('common_member_status')->update($_G['uid'], array('lastpost' => TIMESTAMP), 'UNBUFFERED');
  84. if(!empty($_GET['fromcard'])) {
  85. showmessage($message.lang('spacecp','card_update_doing'));
  86. } else {
  87. showmessage('do_success', dreferer(), array('doid' => $newdoid), $_GET['spacenote'] ? array('showmsg' => false):array('header' => true));
  88. }
  89. } elseif (submitcheck('commentsubmit')) {
  90. if(!checkperm('allowdoing')) {
  91. showmessage('no_privilege_doing_comment');
  92. }
  93. cknewuser();
  94. $waittime = interval_check('post');
  95. if($waittime > 0) {
  96. showmessage('operating_too_fast', '', array('waittime' => $waittime));
  97. }
  98. $message = getstr($_POST['message'], 200, 0, 0, 1);
  99. $message = preg_replace("/\<br.*?\>/i", ' ', $message);
  100. if(strlen($message) < 1) {
  101. showmessage('should_write_that');
  102. }
  103. $message = censor($message);
  104. $updo = array();
  105. if($id) {
  106. $updo = C::t('home_docomment')->fetch($id);
  107. }
  108. if(empty($updo) && $doid) {
  109. $updo = C::t('home_doing')->fetch($doid);
  110. }
  111. if(empty($updo)) {
  112. showmessage('docomment_error');
  113. } else {
  114. if(isblacklist($updo['uid'])) {
  115. showmessage('is_blacklist');
  116. }
  117. }
  118. $updo['id'] = intval($updo['id']);
  119. $updo['grade'] = intval($updo['grade']);
  120. $setarr = array(
  121. 'doid' => $updo['doid'],
  122. 'upid' => $updo['id'],
  123. 'uid' => $_G['uid'],
  124. 'username' => $_G['username'],
  125. 'dateline' => $_G['timestamp'],
  126. 'message' => $message,
  127. 'ip' => $_G['clientip'],
  128. 'grade' => $updo['grade']+1
  129. );
  130. if($updo['grade'] >= 3) {
  131. $setarr['upid'] = $updo['upid'];
  132. }
  133. $newid = C::t('home_docomment')->insert($setarr, true);
  134. C::t('home_doing')->update_replynum_by_doid(1, $updo['doid']);
  135. if($updo['uid'] != $_G['uid']) {
  136. notification_add($updo['uid'], 'comment', 'doing_reply', array(
  137. 'url'=>"home.php?mod=space&uid=$updo[uid]&do=doing&view=me&doid=$updo[doid]&highlight=$newid",
  138. 'from_id'=>$updo['doid'],
  139. 'from_idtype'=>'doid'));
  140. updatecreditbyaction('comment', 0, array(), 'doing'.$updo['doid']);
  141. }
  142. include_once libfile('function/stat');
  143. updatestat('docomment');
  144. C::t('common_member_status')->update($_G['uid'], array('lastpost' => TIMESTAMP), 'UNBUFFERED');
  145. showmessage('do_success', dreferer(), array('doid' => $updo['doid']));
  146. }
  147. }
  148. if($_GET['op'] == 'delete') {
  149. if(submitcheck('deletesubmit')) {
  150. if($id) {
  151. $allowmanage = checkperm('managedoing');
  152. if($value = C::t('home_docomment')->fetch($id)) {
  153. $home_doing = C::t('home_doing')->fetch($value['doid']);
  154. $value['duid'] = $home_doing['uid'];
  155. if($allowmanage || $value['uid'] == $_G['uid'] || $value['duid'] == $_G['uid'] ) {
  156. C::t('home_docomment')->update($id, array('uid' => 0, 'username' => '', 'message' => ''));
  157. if($value['uid'] != $_G['uid'] && $value['duid'] != $_G['uid']) {
  158. batchupdatecredit('comment', $value['uid'], array(), -1);
  159. }
  160. C::t('home_doing')->update_replynum_by_doid(-1, $updo['doid']);
  161. }
  162. }
  163. } else {
  164. require_once libfile('function/delete');
  165. deletedoings(array($doid));
  166. }
  167. dheader('location: '.dreferer());
  168. exit();
  169. }
  170. } elseif ($_GET['op'] == 'getcomment') {
  171. include_once(DISCUZ_ROOT.'./source/class/lib/lib_tree.php');
  172. $tree = new lib_tree();
  173. $list = array();
  174. $highlight = 0;
  175. $count = 0;
  176. if(empty($_GET['close'])) {
  177. foreach(C::t('home_docomment')->fetch_all_by_doid($doid) as $value) {
  178. $tree->setNode($value['id'], $value['upid'], $value);
  179. $count++;
  180. if($value['authorid'] == $space['uid']) $highlight = $value['id'];
  181. }
  182. }
  183. if($count) {
  184. $values = $tree->getChilds();
  185. foreach ($values as $key => $vid) {
  186. $one = $tree->getValue($vid);
  187. $one['layer'] = $tree->getLayer($vid) * 2;
  188. $one['style'] = "padding-left:{$one['layer']}em;";
  189. if($one['layer'] > 0){
  190. if($one['layer']%3 == 2) {
  191. $one['class'] = ' dtls';
  192. } else {
  193. $one['class'] = ' dtll';
  194. }
  195. }
  196. if($one['id'] == $highlight && $one['uid'] == $space['uid']) {
  197. $one['style'] .= 'color:#F60;';
  198. }
  199. $list[] = $one;
  200. }
  201. }
  202. } elseif ($_GET['op'] == 'spacenote') {
  203. space_merge($space, 'field_home');
  204. }
  205. include template('home/spacecp_doing');
  206. ?>