api.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /**
  3. * 圈子api
  4. *
  5. *
  6. *********************************/
  7. defined('InShopNC') or exit('Access Invalid!');
  8. class apiControl extends BaseCircleControl{
  9. private $data_type = 'html';
  10. public function __construct() {
  11. parent::__construct();
  12. if(!empty($_GET['data_type']) && $_GET['data_type'] === 'json') {
  13. $this->data_type = 'json';
  14. }
  15. }
  16. // 推荐话题
  17. public function get_theme_listOp() {
  18. $result = '';
  19. $data_count = intval($_GET['data_count']);
  20. if($data_count <= 0) {
  21. $data_count = 2;
  22. }
  23. $model = Model();
  24. $theme_list = $model->table('circle_theme')->field('*, is_recommend*rand()*10000 + has_affix*rand() as rand')->where(array('circle_status'=>1, 'is_closed'=>0))->where(array('has_affix'=>1))->order('rand desc')->limit($data_count)->select();
  25. if(!empty($theme_list)){
  26. $theme_list = array_under_reset($theme_list, 'theme_id'); $themeid_array = array_keys($theme_list);
  27. // 附件
  28. $affix_list = $model->table('circle_affix')->where(array('theme_id'=>array('in', $themeid_array), 'affix_type'=>1))->group('theme_id')->select();
  29. if(!empty($affix_list)) $affix_list = array_under_reset($affix_list, 'theme_id');
  30. foreach ($theme_list as $key=>$val){
  31. if(isset($affix_list[$val['theme_id']])) $theme_list[$key]['affix'] = themeImageUrl($affix_list[$val['theme_id']]['affix_filethumb']);
  32. }
  33. }
  34. if($this->data_type === 'json') {
  35. $result = json_encode($theme_list);
  36. } else {
  37. Tpl::output('theme_list', $theme_list);
  38. ob_start();
  39. Tpl::showpage('api_theme_list', 'null_layout');
  40. $result = ob_get_clean();
  41. }
  42. $this->return_result($result);
  43. }
  44. // 人气主题
  45. public function get_reply_themelistOp() {
  46. $result = '';
  47. $data_count = intval($_GET['data_count']);
  48. if($data_count <= 0) {
  49. $data_count = 3;
  50. }
  51. $model = Model();
  52. $reply_themelist = $model->table('circle_theme')->where(array('is_closed'=>0))->order('theme_commentcount desc')->limit($data_count)->select();
  53. if($this->data_type === 'json') {
  54. $result = json_encode($reply_themelist);
  55. } else {
  56. Tpl::output('reply_themelist', $reply_themelist);
  57. ob_start();
  58. Tpl::showpage('api_reply_themelist', 'null_layout');
  59. $result = ob_get_clean();
  60. }
  61. $this->return_result($result);
  62. }
  63. // 优秀成员
  64. public function get_more_memberthemeOp(){
  65. $result = '';
  66. $data_count = intval($_GET['data_count']);
  67. if($data_count <= 0) {
  68. $data_count = 4;
  69. }
  70. $model = Model();
  71. $more_membertheme = $model->table('circle_member,circle_theme')->field('circle_member.*,circle_theme.*, circle_member.is_recommend*10000*rand()+(circle_member.cm_thcount)/10000 as rand')
  72. ->order('rand desc')
  73. ->join('inner')->on('circle_member.member_id = circle_theme.member_id and circle_member.circle_id = circle_theme.circle_id')
  74. ->group('circle_member.member_id,circle_member.circle_id')->limit($data_count)->select();
  75. if($this->data_type === 'json') {
  76. $result = json_encode($more_membertheme);
  77. } else {
  78. Tpl::output("more_membertheme", $more_membertheme);
  79. ob_start();
  80. Tpl::showpage('api_more_membertheme', 'null_layout');
  81. $result = ob_get_clean();
  82. $this->return_result($result);
  83. }
  84. }
  85. private function return_result($result) {
  86. $result = str_replace("\n", "", $result);
  87. $result = str_replace("\r", "", $result);
  88. echo empty($_GET['callback']) ? $result : $_GET['callback']."('".$result."')";
  89. }
  90. }