block_doing.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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: block_doing.php 25525 2011-11-14 04:39:11Z zhangguosheng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class block_doing extends discuz_block {
  12. var $setting = array();
  13. function block_doing() {
  14. $this->setting = array(
  15. 'uids' => array(
  16. 'title' => 'doinglist_uids',
  17. 'type' => 'text',
  18. 'value' => ''
  19. ),
  20. 'titlelength' => array(
  21. 'title' => 'doinglist_titlelength',
  22. 'type' => 'text',
  23. 'default' => 40
  24. ),
  25. 'orderby' => array(
  26. 'title' => 'doinglist_orderby',
  27. 'type' => 'mradio',
  28. 'value' => array(
  29. array('dateline', 'doinglist_orderby_dateline'),
  30. array('replynum', 'doinglist_orderby_replynum')
  31. ),
  32. 'default' => 'dateline'
  33. ),
  34. 'startrow' => array(
  35. 'title' => 'doinglist_startrow',
  36. 'type' => 'text',
  37. 'default' => 0
  38. ),
  39. );
  40. }
  41. function name() {
  42. return lang('blockclass', 'blockclass_doing_script_doing');
  43. }
  44. function blockclass() {
  45. return array('doing', lang('blockclass', 'blockclass_space_doing'));
  46. }
  47. function fields() {
  48. return array(
  49. 'id' => array('name' => lang('blockclass', 'blockclass_field_id'), 'formtype' => 'text', 'datatype' => 'int'),
  50. 'url' => array('name' => lang('blockclass', 'blockclass_doing_field_url'), 'formtype' => 'text', 'datatype' => 'string'),
  51. 'title' => array('name' => lang('blockclass', 'blockclass_doing_field_title'), 'formtype' => 'title', 'datatype' => 'title'),
  52. 'uid' => array('name' => lang('blockclass', 'blockclass_doing_field_uid'), 'formtype' => 'text', 'datatype' => 'pic'),
  53. 'username' => array('name' => lang('blockclass', 'blockclass_doing_field_username'), 'formtype' => 'text', 'datatype' => 'string'),
  54. 'avatar' => array('name' => lang('blockclass', 'blockclass_doing_field_avatar'), 'formtype' => 'text', 'datatype' => 'string'),
  55. 'avatar_middle' => array('name' => lang('blockclass', 'blockclass_doing_field_avatar_middle'), 'formtype' => 'text', 'datatype' => 'string'),
  56. 'avatar_big' => array('name' => lang('blockclass', 'blockclass_doing_field_avatar_big'), 'formtype' => 'text', 'datatype' => 'string'),
  57. 'dateline' => array('name' => lang('blockclass', 'blockclass_doing_field_dateline'), 'formtype' => 'date', 'datatype' => 'date'),
  58. 'replynum' => array('name' => lang('blockclass', 'blockclass_doing_field_replynum'), 'formtype' => 'text', 'datatype' => 'int'),
  59. );
  60. }
  61. function getsetting() {
  62. global $_G;
  63. $settings = $this->setting;
  64. return $settings;
  65. }
  66. function getdata($style, $parameter) {
  67. global $_G;
  68. $parameter = $this->cookparameter($parameter);
  69. $uids = isset($parameter['uids']) && !in_array(0, (array)$parameter['uids']) ? $parameter['uids'] : '';
  70. $startrow = isset($parameter['startrow']) ? intval($parameter['startrow']) : 0;
  71. $items = isset($parameter['items']) ? intval($parameter['items']) : 10;
  72. $titlelength = intval($parameter['titlelength']);
  73. $bannedids = !empty($parameter['bannedids']) ? explode(',', $parameter['bannedids']) : array();
  74. $datalist = $list = array();
  75. $query = C::t('home_doing')->fetch_all_by_uid_doid($uids, $bannedids, $parameter['orderby'], $startrow, $items, true, true);
  76. foreach($query as $data) {
  77. $datalist = array(
  78. 'id' => $data['doid'],
  79. 'idtype' => 'doid',
  80. 'title' => cutstr(strip_tags($data['message']), $titlelength, ''),
  81. 'url' => 'home.php?mod=space&uid='.$data['uid'].'&do=doing&doid='.$data['doid'],
  82. 'pic' => '',
  83. 'summary' => '',
  84. 'fields' => array(
  85. 'fulltitle' => strip_tags($data['message']),
  86. 'uid' => $data['uid'],
  87. 'username' => $data['username'],
  88. 'avatar' => avatar($data['uid'], 'small', true, false, false, $_G['setting']['ucenterurl']),
  89. 'avatar_middle' => avatar($data['uid'], 'middle', true, false, false, $_G['setting']['ucenterurl']),
  90. 'avatar_big' => avatar($data['uid'], 'big', true, false, false, $_G['setting']['ucenterurl']),
  91. 'dateline'=>$data['dateline'],
  92. 'replynum'=>$data['replynum'],
  93. )
  94. );
  95. if($titlelength) {
  96. $datalist['title'] = cutstr(strip_tags($data['message']), $titlelength);
  97. } else {
  98. $datalist['title'] = strip_tags($data['message'], '<img>');
  99. }
  100. $list[] = $datalist;
  101. }
  102. return array('html' => '', 'data' => $list);
  103. }
  104. }
  105. ?>