tpl_group_home.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: huangdong
  5. * Date: 2018/8/9
  6. * Time: 下午5:04
  7. */
  8. namespace room;
  9. require_once(BASE_ROOT_PATH . '/helper/room/factory.php');
  10. require_once(BASE_ROOT_PATH . '/helper/url_helper.php');
  11. require_once(BASE_ROOT_PATH . '/helper/util_helper.php');
  12. require_once (BASE_ROOT_PATH . '/helper/relation_helper.php');
  13. require_once (BASE_ROOT_PATH . '/helper/session_helper.php');
  14. require_once (BASE_ROOT_PATH . '/helper/schema_helper.php');
  15. use relation\mem_relation;
  16. use Exception;
  17. use author_url;
  18. use session_helper;
  19. use schema_helper;
  20. class tpl_group_home
  21. {
  22. private $mod_room = null;
  23. private $room_info = null;
  24. private $cur_user = 0;
  25. private $room_id = 0;
  26. private $participants = [];
  27. private $relay_id = null;
  28. private $is_room_member = 0;
  29. public function __construct($user, $room_id,$relay_id=0)
  30. {
  31. if ($room_id <= 0) {
  32. throw new Exception("聊天参数有误");
  33. }
  34. $this->mod_room = Model('room');
  35. $this->room_id = $room_id;
  36. $this->cur_user = intval($user);
  37. $this->relay_id = intval($relay_id);
  38. $room = $this->mod_room->getRoom($room_id);
  39. if(empty($room)) throw new Exception("房间不存在");
  40. $this->room_info = new room_info($room);
  41. if(empty($this->room_info)) throw new Exception("聊天参数有误");
  42. $this->participants = factory::participants($this->room_id);
  43. $this->is_room_member = isset($this->participants[$this->cur_user]);
  44. }
  45. public function show()
  46. {
  47. $this->show_cover();
  48. echo "<div class=\"group_top\">";
  49. $this->show_header();
  50. if($this->is_room_member) {
  51. $this->show_activity();
  52. }
  53. if($this->is_room_member) {
  54. $this->show_members();
  55. } else {
  56. $this->show_inviter();
  57. }
  58. if(!$this->is_room_member) {
  59. $this->show_apply_room();
  60. }
  61. echo "</div>";
  62. if($this->is_room_member) {
  63. $this->show_settings_room();
  64. }
  65. if($this->is_room_member && session_helper::isapp()) {
  66. $this->show_settings_local();
  67. }
  68. if($this->is_room_member) {
  69. $this->show_leave_room();
  70. }
  71. $this->show_qrcode();
  72. if($this->is_room_member && !session_helper::isapp()) {
  73. $this->show_download();
  74. }
  75. }
  76. public function show_open()
  77. {
  78. $this->show_cover();
  79. echo "<div class=\"group_top\">";
  80. $this->show_header();
  81. $this->show_inviter();
  82. $this->enter_room();
  83. $this->show_qrcode();
  84. echo "</div>";
  85. }
  86. public function show_allmembers()
  87. {
  88. echo "<div class=\"group_top\">";
  89. $this->show_members(-1);
  90. echo "<div id=\"callback\"></div>";
  91. echo "</div>";
  92. if($this->is_room_member && !session_helper::isapp()) {
  93. $this->show_download();
  94. }
  95. }
  96. public function show_cover()
  97. {
  98. $html = "";
  99. $url = RESOURCE_SITE_URL. "/mobile/talk/images/cover.png";
  100. $html.="<div class=\"cover\">
  101. <img src=\" {$url} \" alt=\"cover\">
  102. </div>";
  103. echo $html;
  104. }
  105. private function show_header()
  106. {
  107. echo "<div class=\"group_info\">";
  108. $this->show_group_header();
  109. $this->show_qrcode_btn();
  110. echo "</div>";
  111. }
  112. public function get_room_info(){
  113. return $this->room_info;
  114. }
  115. public function show_group_header()
  116. {
  117. if($this->room_info->has_name()){
  118. $name = $this->room_info->name();
  119. }else{
  120. $name = "未命名";
  121. }
  122. $avartar = $this->room_info->avatar();
  123. $desc = $this->room_info->room_desc();
  124. $html ="<div class=\"group_avatar\">
  125. <img src=\"{$avartar}\" class='g_avatar' alt=\"group_avatar\">
  126. </div>
  127. <div class=\"group_name\">
  128. <h3>
  129. {$name}";
  130. if($this->room_info->level() > 0) {
  131. $html.= "<span class='certification_logo'></span>
  132. </h3><p class='mt4'>{$desc}</p>
  133. </div>";
  134. }else{
  135. $html.= "
  136. </h3><p class='mt4'>未认证</p>
  137. </div>";
  138. }
  139. echo $html;
  140. }
  141. public function show_qrcode_btn()
  142. {
  143. echo "<div class='qrcode_btn'></div>";
  144. }
  145. public function show_group_notice()
  146. {
  147. $html = "";
  148. $notice = $this->room_info->notice();
  149. if(empty($notice))
  150. {
  151. $html.= "<div class=\"group_notice_board\">
  152. <p class=\"text_overflow\">【公告】</p>
  153. </div>";
  154. }
  155. else
  156. {
  157. $html.= "<div class=\"group_notice_board\">
  158. <p class=\"text_overflow\">【公告】{$notice}</p>
  159. </div>";
  160. }
  161. echo $html;
  162. }
  163. public function show_activity()
  164. {
  165. $html = "<div class=\"group_handle weui-flex\">";
  166. $isManager = $this->isManager($this->cur_user) ? 1 : 0;
  167. $notice = empty($this->room_info->notice()) ? 0 : 1;
  168. if(session_helper::isapp()) {
  169. $share_bonus_schema = schema_helper::openurl("共享基金",BASE_SITE_URL."/mobile/index.php?act=member_talk&op=share_bonus&room_id={$this->room_id}");
  170. $group_notice_schema = schema_helper::openurl("群公告" ,BASE_SITE_URL."/mobile/index.php?act=member_talk&op=message_board&type=3&isManager={$isManager}&talk_id={$this->room_id}");
  171. $group_goods_schema = schema_helper::openurl("群商品" ,BASE_SITE_URL."/mobile/index.php?act=member_talk&op=room_goods&talk_id={$this->room_id}");
  172. $group_sport_schema = schema_helper::openurl("群运动" ,BASE_SITE_URL."/mobile/index.php?act=member_talk&op=steps_home&talk_id={$this->room_id}");
  173. } else {
  174. $share_bonus_schema = BASE_SITE_URL."/mobile/index.php?act=member_talk&op=share_bonus&room_id={$this->room_id}";
  175. $group_notice_schema = BASE_SITE_URL."/mobile/index.php?act=member_talk&op=message_board&type=3&isManager={$isManager}&talk_id={$this->room_id}";
  176. $group_goods_schema = BASE_SITE_URL."/mobile/index.php?act=member_talk&op=room_goods&talk_id={$this->room_id}";
  177. $group_sport_schema = BASE_SITE_URL."/mobile/index.php?act=member_talk&op=steps_home&talk_id={$this->room_id}";
  178. }
  179. $html .= "<div class=\"weui-flex__item group_bonus\">
  180. <a href=\"{$share_bonus_schema}\">
  181. <img src=\"" . RESOURCE_SITE_URL . "/mobile/talk/images/group_bonus.png\" alt=\"\">
  182. </a>
  183. </div>
  184. <div class=\"weui-flex__item group_notice\">
  185. <a id=\"view-group-notice\" data-has-notice={$notice} data-isManager={$isManager} data-schema=\"{$group_notice_schema}\" href=\"javascript:void(0);\">
  186. <img src=\"" . RESOURCE_SITE_URL . "/mobile/talk/images/group_notice.png\" alt=\"\">
  187. </a>
  188. </div>
  189. <div class=\"weui-flex__item group_goods\">
  190. <a href=\"{$group_goods_schema}\">
  191. <img src=\"" . RESOURCE_SITE_URL . "/mobile/talk/images/group_goods.png\" alt=\"\">
  192. </a>
  193. </div>
  194. <div class=\"weui-flex__item group_sport\">
  195. <a href=\"{$group_sport_schema}\">
  196. <img src=\"" . RESOURCE_SITE_URL . "/mobile/talk/images/group_sport.png\" alt=\"\">
  197. </a>
  198. </div>";
  199. $html .= "</div>";
  200. echo $html;
  201. }
  202. private function isManager($user)
  203. {
  204. return intval($user) === $this->room_info->owner();
  205. }
  206. private function isFromQr(){
  207. return ($this->relay_id > 0 && isset($this->participants[$this->relay_id]));
  208. }
  209. public function show_members($limit = 25)
  210. {
  211. $html = '';
  212. $uids = [];
  213. $owner = $this->room_info->owner();
  214. $uids[] = $owner;
  215. $room_users = count($this->participants);
  216. if($limit < 0) {
  217. $limit = $room_users;
  218. }
  219. else
  220. {
  221. if(session_helper::isapp())
  222. {
  223. if($this->cur_user == $owner) {
  224. $limit = $limit - 2;
  225. } else {
  226. $limit = $limit - 1;
  227. }
  228. }
  229. }
  230. $show_cnt = 1;
  231. foreach ($this->participants as $key => $val) {
  232. if($key == $owner) continue;
  233. $uids[] = $key;
  234. if(++$show_cnt >= $limit) break;
  235. }
  236. $i = 1;
  237. foreach ($uids as $uid)
  238. {
  239. $member = $this->participants[$uid];
  240. if(session_helper::isapp()) {
  241. $member_schema = schema_helper::openurl("来自聊天",BASE_SITE_URL."/mobile/index.php?act=user_index&op=detail&member_id={$member['userid']}&room_id={$this->room_id}");
  242. } else {
  243. $member_schema = BASE_SITE_URL."/mobile/index.php?act=user_index&op=detail&member_id={$member['userid']}&room_id={$this->room_id}";
  244. }
  245. if ($i <= $limit) {
  246. $div_head = "<div class=\"weui-flex__item member-detail\" data-schema=\"{$member_schema}\" data-member-id={$member['userid']}>";
  247. } else {
  248. $div_head = "<div class=\"weui-flex__item member-detail\" data-schema=\"{$member_schema}\" data-member-id={$member['userid']} data-last='true'> ";
  249. }
  250. $i++;
  251. if($this->isManager($uid))
  252. {
  253. $head = "<img src=\"{$member['avatar']}\" alt=\"\">
  254. <p>{$member['nickname']}</p>
  255. <span class=\"admin\">管理员</span>
  256. </div>";
  257. $html = $div_head . $head . $html;
  258. }
  259. else
  260. {
  261. $html .= $div_head;
  262. $html .= "
  263. <img src=\"{$member['avatar']}\" alt=\"\">
  264. <p>{$member['nickname']}</p>
  265. </div>";
  266. }
  267. }
  268. if ($this->is_room_member) {
  269. $html .= "<div class=\"weui-flex__item app_inshow\">
  270. <img src=\"" . RESOURCE_SITE_URL . "/mobile/talk/images/add_member.png\" id=\"add_member\" alt=\"\">
  271. </div>";
  272. }
  273. if ($this->isManager($this->cur_user)) {
  274. $html .= "<div class=\"weui-flex__item app_inshow\">
  275. <img src=\"" . RESOURCE_SITE_URL . "/mobile/talk/images/del_member.png\" id=\"del_member\" alt=\"\">
  276. </div>";
  277. }
  278. $html = "<div class=\"group_members weui-flex\">".$html."</div>";
  279. if($room_users > $show_cnt)
  280. {
  281. if(session_helper::isapp()) {
  282. $all_members_schema = schema_helper::openurl("群成员" ,BASE_SITE_URL.'/mobile/index.php?act=member_talk&op=room_members&room_id='.$this->room_id);
  283. } else {
  284. $all_members_schema = BASE_SITE_URL.'/mobile/index.php?act=member_talk&op=room_members&room_id='.$this->room_id;
  285. }
  286. $html .= "<div id='more_members' data-page='{$all_members_schema}' style='font-size: 13px;text-align: center;padding-bottom: 10px;color: #666;'>查看全部群成员</div>";
  287. }
  288. echo $html;
  289. }
  290. public function show_settings_room()
  291. {
  292. $html = "";
  293. $avartar = $this->room_info->avatar();
  294. $name = $this->room_info->has_name() ? $this->room_info->name() : "未命名";
  295. $click = false;
  296. $level = "已认证";
  297. if($this->room_info->level() == 0) {
  298. $certs = $this->mod_room->findCert(["room_id"=>$this->room_id]);
  299. if(!empty($certs)) {
  300. if($certs['cstatus'] == 0) {
  301. $level = "待审核";
  302. }elseif($certs['cstatus'] == 2 || $certs['cstatus'] == 3){
  303. $click = true;
  304. $level = "待修改";
  305. }
  306. }else{
  307. $click = true;
  308. $level = "未认证";
  309. }
  310. }
  311. $html.= "<div class=\"weui-cells\">";
  312. $html.= $this->room_name_btn($click,$name);
  313. $html.= $this->room_avatar_btn($avartar);
  314. $html.= $this->room_nickname_btn();
  315. $html.= "</div>";
  316. if ($this->isManager($this->cur_user)) {
  317. $html .= "<div class=\"weui-cells\">";
  318. $html.= $this->room_cert_btn($click,$level);
  319. $html.="</div>";
  320. }
  321. echo $html;
  322. }
  323. private function room_name_btn($click,$name)
  324. {
  325. if($click){
  326. $html = "<div class=\"weui-cell weui-cell_access\" id='edit_group_name'>
  327. <div class=\"weui-cell__bd\">
  328. <p>群名称</p>
  329. </div>
  330. <div class=\"weui-cell__ft\">{$name}</div>
  331. </div>";
  332. } else {
  333. $html = "<div class=\"weui-cell\">
  334. <div class=\"weui-cell__bd\">
  335. <p>群名称</p>
  336. </div>
  337. <div class=\"weui-cell__ft\">{$name}</div>
  338. </div>";
  339. }
  340. return $html;
  341. }
  342. private function room_avatar_btn($avartar){
  343. if($this->room_info->level() > 0 && !$this->isManager($this->cur_user)) {
  344. $html = "<div class=\"weui-cell\">
  345. <div class=\"weui-cell__bd\">
  346. <p>群头像</p>
  347. </div>
  348. <div class=\"weui-cell__ft\">
  349. <img src='{$avartar}' class='g_avatar n_g_avatar' alt=''>
  350. <input type='file' name='file' enctype='multipart/form-data' id='uploader' style=\"display: none;\">
  351. </div>
  352. </div>";
  353. }else{
  354. $html = "<div class=\"weui-cell weui-cell_access app_inshow\" id=\"edit_group_avatar\" onclick='return false;uploader.click();'>
  355. <div class=\"weui-cell__bd\">
  356. <p>群头像</p>
  357. </div>
  358. <div class=\"weui-cell__ft\">
  359. <img src='{$avartar}' class='g_avatar n_g_avatar' alt=''>
  360. <input type='file' name='file' enctype='multipart/form-data' id='uploader' style=\"display: none;\">
  361. </div>
  362. </div>";
  363. }
  364. return $html;
  365. }
  366. private function room_cert_btn($click,$level)
  367. {
  368. if($click){
  369. $html = "<div class=\"weui-cell weui-cell_access\" id=\"group_AC\">
  370. <div class=\"weui-cell__bd\">
  371. <p>群认证</p>
  372. </div>
  373. <div class=\"weui-cell__ft\">{$level}</div>
  374. </div>";
  375. }else{
  376. $html = "<div class=\"weui-cell\">
  377. <div class=\"weui-cell__bd\">
  378. <p>群认证</p>
  379. </div>
  380. <div class=\"weui-cell__ft\">{$level}</div>
  381. </div>";
  382. }
  383. return $html;
  384. }
  385. private function room_notice_btn($notice){
  386. $html = "<div class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id=\"edit_room_notice\">
  387. <div class=\"weui-cell__bd\">
  388. <p>群公告</p>
  389. </div>
  390. <div class=\"weui-cell__ft\" id=\"room-notice-btn\">{$notice}</div>
  391. </div>";
  392. return $html;
  393. }
  394. private function room_desc_btn($desc){
  395. $html = "<div class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id=\"edit_room_desc\">
  396. <div class=\"weui-cell__bd\">
  397. <p>群介绍</p>
  398. </div>
  399. <div class=\"weui-cell__ft\" id=\"room-desc-btn\">{$desc}</div>
  400. </div>";
  401. return $html;
  402. }
  403. private function room_apply_btn($apply,$cnt)
  404. {
  405. if ($cnt > 0)
  406. {
  407. $html ="
  408. <div class=\"weui-cell weui-cell_access\">
  409. <div class=\"weui-cell__bd\">
  410. <p>入群申请</p>
  411. </div>
  412. <div class=\"weui-cell__ft\" id=\"room-apply-btn\" style=\"color: #FF4E4E\">{$apply}</div>
  413. </div>";
  414. }
  415. else
  416. {
  417. $html ="
  418. <div class=\"weui-cell weui-cell_access\">
  419. <div class=\"weui-cell__bd\">
  420. <p>入群申请</p>
  421. </div>
  422. <div class=\"weui-cell__ft\">{$apply}</div>
  423. </div>";
  424. }
  425. return $html;
  426. }
  427. private function room_nickname_btn()
  428. {
  429. $html = "
  430. <div class=\"weui-cells\">
  431. <div class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id='edit_nickname'>
  432. <div class=\"weui-cell__bd\">
  433. <p>我在本群的昵称</p>
  434. </div>
  435. <div class=\"weui-cell__ft group-nickname\">{$this->participants[$this->cur_user]['nickname']}</div>
  436. </div>
  437. </div>";
  438. return $html;
  439. }
  440. public function change_manager_btn()
  441. {
  442. $html = "";
  443. if ($this->isManager($this->cur_user)) {
  444. $html .= "<div class=\"weui-cells\">
  445. <div class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id='change_owner' >
  446. <div class=\"weui-cell__bd\">
  447. <p>转让管理员</p>
  448. </div>
  449. </div>
  450. </div>";
  451. }
  452. echo $html;
  453. }
  454. public function show_settings_local()
  455. {
  456. $html ="<div class=\"weui-cells\">";
  457. if(session_helper::isapp()) {
  458. $html.= $this->room_share_btn();
  459. }
  460. if ($this->isManager($this->cur_user))
  461. {
  462. $pwd = $this->room_info->passwd();
  463. if($pwd)
  464. {
  465. $html .= "<div class=\"weui-cell weui-cell_switch\" href=\"javascript:;\">
  466. <div class=\"weui-cell__bd\">
  467. <p>群密码</p>
  468. </div>
  469. <div class=\"weui-cell__ft\">
  470. <label for=\"group_pwd\" class=\"weui-switch-cp\">
  471. <input id=\"group_pwd\" class=\"weui-switch-cp__input\" type=\"checkbox\" checked>
  472. <div class=\"weui-switch-cp__box\"></div>
  473. </label>
  474. </div>
  475. </div>";
  476. }
  477. else
  478. {
  479. $html .= "<div class=\"weui-cell weui-cell_switch\" href=\"javascript:;\">
  480. <div class=\"weui-cell__bd\">
  481. <p>群密码</p>
  482. </div>
  483. <div class=\"weui-cell__ft\">
  484. <label for=\"group_pwd\" class=\"weui-switch-cp\">
  485. <input id=\"group_pwd\" class=\"weui-switch-cp__input\" type=\"checkbox\">
  486. <div class=\"weui-switch-cp__box\"></div>
  487. </label>
  488. </div>
  489. </div>";
  490. }
  491. }
  492. $html .="<div class=\"weui-cell weui-cell_switch app_inshow\" href=\"javascript:;\">
  493. <div class=\"weui-cell__bd\">
  494. <p>置顶聊天</p>
  495. </div>
  496. <div class=\"weui-cell__ft\">
  497. <label for=\"talk_top\" class=\"weui-switch-cp\">
  498. <input id=\"talk_top\" class=\"weui-switch-cp__input\" type=\"checkbox\">
  499. <div class=\"weui-switch-cp__box\"></div>
  500. </label>
  501. </div>
  502. </div>
  503. <div class=\"weui-cell weui-cell_switch app_inshow\" href=\"javascript:;\">
  504. <div class=\"weui-cell__bd\">
  505. <p>消息免打扰</p>
  506. </div>
  507. <div class=\"weui-cell__ft\">
  508. <label for=\"no_disturb\" class=\"weui-switch-cp\">
  509. <input id=\"no_disturb\" class=\"weui-switch-cp__input\" type=\"checkbox\">
  510. <div class=\"weui-switch-cp__box\"></div>
  511. </label>
  512. </div>
  513. </div>
  514. </div>";
  515. $html.="<div class=\"weui-cells app_inshow\">
  516. <a class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id=\"hide_msg\">
  517. <div class=\"weui-cell__bd\">
  518. <p>清空聊天记录</p>
  519. </div>
  520. </a>
  521. </div>";
  522. echo $html;
  523. }
  524. private function room_share_btn(){
  525. $html = "<div class=\"weui-cell\" id='room_share_btn'>
  526. <div class=\"weui-cell__bd\">
  527. <p>邀请入群(微信、QQ)</p>
  528. </div>
  529. </div>";
  530. return $html;
  531. }
  532. public function show_leave_room()
  533. {
  534. $html = "";
  535. if($this->isManager($this->cur_user))
  536. {
  537. //todo 解散群按钮
  538. }
  539. else
  540. {
  541. $html .= "
  542. <div class=\"quit\" id=\"quit_group\">
  543. <a href=\"javascript:;\" class=\"weui-btn weui-btn_primary\">删除并退出</a>
  544. </div>";
  545. }
  546. echo $html;
  547. }
  548. public function show_apply_room()
  549. {
  550. $html = "<div id=\"callback\"></div>";
  551. $pwd = $this->room_info->passwd();
  552. $from_qr = $this->isFromQr();
  553. if($pwd && !$from_qr)
  554. {
  555. $html .= "<div class=\"join_item_btn\" style='margin-top: 40px;'>
  556. <div class=\"quit\" id=\"add_group_pwd\">
  557. <a href=\"javascript:;\" class=\"weui-btn weui-btn_primary\">密码入群</a>
  558. </div>
  559. <div class=\"quit\" id=\"add_group_apply\">
  560. <a href=\"javascript:void(0)\" class=\"weui-btn weui-btn_primary\">申请加群</a>
  561. </div>
  562. </div>";
  563. }
  564. else
  565. {
  566. $html .= "<div class=\"join_item_btn\" style='margin-top: 40px;'>
  567. <div class=\"quit\" id=\"add_group\">
  568. <a href=\"javascript:;\" class=\"weui-btn weui-btn_primary\" data-relay-id='{$this->relay_id}'>立即入群</a>
  569. </div>
  570. </div>";
  571. }
  572. echo $html;
  573. }
  574. private function enter_room()
  575. {
  576. $html = "<div id=\"callback\"></div>";
  577. if (!$this->is_room_member)
  578. {
  579. $pwd = $this->room_info->passwd();
  580. $from_qr = $this->isFromQr();
  581. if($pwd && !$from_qr){
  582. $html .= "<div class=\"join_item_btn\" style='margin-top: 40px;'>
  583. <div class=\"quit\" id=\"add_group_pwd\">
  584. <a href=\"javascript:;\" class=\"weui-btn weui-btn_primary\">密码入群</a>
  585. </div>
  586. <div class=\"quit\" id=\"add_group_apply\">
  587. <a href=\"javascript:void(0)\" class=\"weui-btn weui-btn_primary\">申请加群</a>
  588. </div>
  589. </div>";
  590. }
  591. else
  592. {
  593. $html .= "<div class=\"join_item_btn\" style='margin-top: 40px;'>
  594. <div class=\"quit\" id=\"add_group\">
  595. <a href=\"javascript:;\" class=\"weui-btn weui-btn_primary\" data-relay-id='{$this->relay_id}'>立即入群</a>
  596. </div>
  597. </div>";
  598. }
  599. }
  600. else
  601. {
  602. $html .= "<div class=\"join_item_btn\" style='margin-top: 40px;'>
  603. <div class=\"quit\" id=\"open_talk\">
  604. <a href=\"javascript:;\" class=\"weui-btn weui-btn_primary\">进入聊天</a>
  605. </div>
  606. </div>";
  607. }
  608. echo $html;
  609. }
  610. public function show_qrcode()
  611. {
  612. $name = $this->room_info->name();
  613. if(strlen($name) > 18) $name =mb_substr($name,0,6,'utf8')."...";
  614. $avatar = $this->room_info->avatar();
  615. $desc = $this->room_info->room_desc();
  616. $url = author_url::room_detail_url('room',$this->room_id,$this->cur_user);
  617. $html = "
  618. <div class=\"pop\">
  619. <div class=\"qrcode\">
  620. <div class=\"qrcode_info\">
  621. <img src=\"$avatar\" class=\"qrcode_avatar_img\" alt=\"\">
  622. <div class=\"group_name\">
  623. <h3>$name</h3>
  624. <p>$desc</p>
  625. </div>
  626. </div>
  627. <div class=\"group_qrcode\" id='show-qrcode' data-qrcode-url=\"{$url}\"></div>
  628. <p class=\"prompt\">
  629. 扫一扫上面的二维码图案。加入群聊
  630. </p>
  631. <span class=\"close_btn\"></span>
  632. </div>
  633. </div>
  634. </div>";
  635. echo $html;
  636. }
  637. public function show_download()
  638. {
  639. echo "<div class=\"fixed_bottom\">
  640. <span class=\"flex_logo\"></span>
  641. <div class=\"label\">
  642. <p>熊猫美妆</p>
  643. <p>下载APP即可参与群聊</p>
  644. </div>
  645. <a href=\"#\" class=\"download_app_btn\" id=\"link\">打开APP</a>
  646. </div>";
  647. }
  648. private function show_inviter()
  649. {
  650. $html = '';
  651. $inviter = $this->participants[$this->relay_id];
  652. if (!empty($inviter))
  653. {
  654. $member = $inviter;
  655. if ($this->relay_id == $this->cur_user)
  656. {
  657. $html .= " <div class=\"admin_info\">
  658. <div class=\"avatar\">
  659. <img src=\"{$member['avatar']}\" alt=\"\">
  660. </div>
  661. <div class=\"name\">
  662. <p>{$member['nickname']}</p>
  663. <span class=\"admin_label no_bac\">邀请者</span>
  664. </div>
  665. <div>
  666. </div>
  667. </div>";
  668. }
  669. else
  670. {
  671. $relateion = new mem_relation($this->cur_user);
  672. $isfriend = $relateion->is_friends($this->relay_id);
  673. if ($isfriend) {
  674. $html .= " <div class=\"admin_info\">
  675. <div class=\"avatar\">
  676. <img src=\"{$member['avatar']}\" alt=\"\">
  677. </div>
  678. <div class=\"name\">
  679. <p>{$member['nickname']}</p>
  680. <span class=\"admin_label no_bac\">邀请者</span>
  681. </div>
  682. <div>
  683. <a href='javascript:void(0)' id='talk-member-btn' class=\"add\" data-member-id={$member['userid']} data-member-nickname='{$member['nickname']}'>
  684. 发消息
  685. </a>
  686. </div>
  687. </div>";
  688. } else {
  689. $html .= " <div class=\"admin_info\">
  690. <div class=\"avatar\">
  691. <img src=\"{$member['avatar']}\" alt=\"\">
  692. </div>
  693. <div class=\"name\">
  694. <p>{$member['nickname']}</p>
  695. <span class=\"admin_label no_bac\">邀请者</span>
  696. </div>
  697. <div>
  698. <a href='javascript:void(0)' id='add-member-btn' class=\"add\" data-member-id={$member['userid']}>
  699. +好友
  700. </a>
  701. </div>
  702. </div>";
  703. }
  704. }
  705. }
  706. else
  707. {
  708. $owner_id = $this->room_info->owner();
  709. $member = $this->participants[$owner_id];
  710. if ($this->cur_user == $member['userid'])
  711. {
  712. $html .= " <div class=\"admin_info\">
  713. <div class=\"avatar\">
  714. <img src=\"{$member['avatar']}\" alt=\"\">
  715. </div>
  716. <div class=\"name\">
  717. <p>{$member['nickname']}</p>
  718. <span class=\"admin_label no_bac\">管理员</span>
  719. </div>
  720. <div>
  721. </div>
  722. </div>";
  723. }
  724. else
  725. {
  726. $relateion = new mem_relation($this->cur_user);
  727. $isfriend = $relateion->is_friends($member['userid']);
  728. if ($isfriend) {
  729. $html .= " <div class=\"admin_info\">
  730. <div class=\"avatar\">
  731. <img src=\"{$member['avatar']}\" alt=\"\">
  732. </div>
  733. <div class=\"name\">
  734. <p>{$member['nickname']}</p>
  735. <span class=\"admin_label no_bac\">管理员</span>
  736. </div>
  737. <div>
  738. <a href='javascript:void(0)' id='talk-member-btn' class=\"add\" data-member-id={$member['userid']} data-member-nickname='{$member['nickname']}'>
  739. 发消息
  740. </a>
  741. </div>
  742. </div>";
  743. } else {
  744. $html .= " <div class=\"admin_info\">
  745. <div class=\"avatar\">
  746. <img src=\"{$member['avatar']}\" alt=\"\">
  747. </div>
  748. <div class=\"name\">
  749. <p>{$member['nickname']}</p>
  750. <span class=\"admin_label no_bac\">管理员</span>
  751. </div>
  752. <div>
  753. <a href='javascript:void(0)' id='add-member-btn' class=\"add\" data-member-id={$member['userid']}>
  754. +好友
  755. </a>
  756. </div>
  757. </div>";
  758. }
  759. }
  760. }
  761. echo $html;
  762. }
  763. }