/[LeafOK_CVS]/lbbs/src/user_list_display.c
ViewVC logotype

Diff of /lbbs/src/user_list_display.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.5 by sysadm, Wed Oct 22 07:39:02 2025 UTC Revision 1.11 by sysadm, Thu Oct 23 05:54:16 2025 UTC
# Line 16  Line 16 
16    
17  #include "common.h"  #include "common.h"
18  #include "io.h"  #include "io.h"
19    #include "lml.h"
20  #include "log.h"  #include "log.h"
21  #include "login.h"  #include "login.h"
22  #include "screen.h"  #include "screen.h"
# Line 36  enum select_cmd_t Line 37  enum select_cmd_t
37          SHOW_HELP,          SHOW_HELP,
38  };  };
39    
40    static int display_user_intro_key_handler(int *p_key, DISPLAY_CTX *p_ctx)
41    {
42            return 0;
43    }
44    
45  static int user_list_draw_screen(int online_user)  static int user_list_draw_screen(int online_user)
46  {  {
47          clearscr();          clearscr();
# Line 343  int user_list_display(int online_user) Line 349  int user_list_display(int online_user)
349          char page_info_str[LINE_BUFFER_LEN];          char page_info_str[LINE_BUFFER_LEN];
350          USER_INFO users[BBS_user_limit_per_page];          USER_INFO users[BBS_user_limit_per_page];
351          USER_ONLINE_INFO online_users[BBS_user_limit_per_page];          USER_ONLINE_INFO online_users[BBS_user_limit_per_page];
352          int user_count;          int user_count = 0;
353          int page_count;          int page_count = 0;
354          int page_id = 0;          int page_id = 0;
355          int selected_index = 0;          int selected_index = 0;
356          int ret;          int ret = 0;
357    
358          user_list_draw_screen(online_user);          user_list_draw_screen(online_user);
359    
# Line 446  int user_list_display(int online_user) Line 452  int user_list_display(int online_user)
452                          break;                          break;
453                  case VIEW_USER:                  case VIEW_USER:
454                          clearscr();                          clearscr();
455                          prints("已选中用户 [%s]\n", online_user                          if (online_user)
456                                                                                          ? online_users[selected_index].user_info.username                          {
457                                                                                          : users[selected_index].username);                                  USER_ONLINE_INFO users[5];
458                                    int user_cnt = 5;
459                                    ret = query_user_online_info_by_uid(online_users[selected_index].user_info.uid, users, &user_cnt, 0);
460                                    if (ret <= 0)
461                                    {
462                                            log_error("query_user_online_info_by_uid(uid=%d, cnt=%d) error: %d\n",
463                                                              online_users[selected_index].user_info.uid, user_cnt, ret);
464                                    }
465                                    else
466                                    {
467                                            moveto(1, 1);
468                                            prints("已选中用户 [%s] 会话 %d", online_users[selected_index].user_info.username, online_users[selected_index].id);
469    
470                                            for (int i = 0; i < user_cnt; i++)
471                                            {
472                                                    moveto(2 + i, 1);
473                                                    prints("会话%d", users[i].id);
474                                            }
475                                    }
476                            }
477                            else
478                            {
479                                    char intro_f[BBS_user_intro_max_len];
480                                    char profile_f[BUFSIZ];
481                                    long line_offsets[BBS_user_intro_max_line + 1];
482                                    long lines;
483    
484                                    lml_render(users[selected_index].intro, intro_f, sizeof(intro_f), 0);
485    
486                                    snprintf(profile_f, sizeof(profile_f),
487                                                     "已选中用户 [%s]\n发帖数:%d\n\n%s\n",
488                                                     users[selected_index].username,
489                                                     get_user_article_cnt(users[selected_index].uid),
490                                                     intro_f);
491    
492                                    lines = split_data_lines(profile_f, SCREEN_COLS, line_offsets, BBS_user_intro_max_line + 4, 1, NULL);
493                                    display_data(profile_f, lines, line_offsets, 2, display_user_intro_key_handler, DATA_READ_HELP);
494                            }
495                          press_any_key();                          press_any_key();
496                          user_list_draw_screen(online_user);                          user_list_draw_screen(online_user);
497                          break;                          break;


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1