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

Diff of /lbbs/src/article_post.c

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

Revision 1.28 by sysadm, Fri Oct 10 01:55:06 2025 UTC Revision 1.30 by sysadm, Fri Oct 10 04:33:40 2025 UTC
# Line 52  int article_post(const SECTION_LIST *p_s Line 52  int article_post(const SECTION_LIST *p_s
52          int content_display_length;          int content_display_length;
53          char nickname_f[BBS_nickname_max_len * 2 + 1];          char nickname_f[BBS_nickname_max_len * 2 + 1];
54          int sign_id = 0;          int sign_id = 0;
55            int reply_note = 1;
56          long len;          long len;
57          int ch;          int ch;
58          char *p, *q;          char *p, *q;
# Line 89  int article_post(const SECTION_LIST *p_s Line 90  int article_post(const SECTION_LIST *p_s
90          {          {
91                  clearscr();                  clearscr();
92                  moveto(21, 1);                  moveto(21, 1);
93                  prints("发表文章于 %s[%s] 讨论区,类型: %s", p_section->stitle, p_section->sname, (p_article_new->transship ? "转载" : "原创"));                  prints("发表文章于 %s[%s] 讨论区,类型: %s,通知:%s",
94                               p_section->stitle, p_section->sname,
95                               (p_article_new->transship ? "转载" : "原创"),
96                               (reply_note ? "开启" : "关闭"));
97                  moveto(22, 1);                  moveto(22, 1);
98                  prints("标题: %s", (p_article_new->title[0] == '\0' ? "[无]" : p_article_new->title));                  prints("标题: %s", (p_article_new->title[0] == '\0' ? "[无]" : p_article_new->title));
99                  moveto(23, 1);                  moveto(23, 1);
# Line 100  int article_post(const SECTION_LIST *p_s Line 104  int article_post(const SECTION_LIST *p_s
104                          prints("    按0~3选签名档(0表示不使用)");                          prints("    按0~3选签名档(0表示不使用)");
105    
106                          moveto(24, 1);                          moveto(24, 1);
107                          prints("T改标题, C取消, Z设为转载, Y设为原创, Enter继续: ");                          prints("T改标题, C取消, Z设为%s, N%s, Enter继续: ",
108                                       (p_article_new->transship ? "原创" : "转载"),
109                                       (reply_note ? "通知关闭" : "通知开启"));
110                          iflush();                          iflush();
111                          ch = 0;                          ch = 0;
112                  }                  }
# Line 116  int article_post(const SECTION_LIST *p_s Line 122  int article_post(const SECTION_LIST *p_s
122                                  igetch_reset();                                  igetch_reset();
123                                  break;                                  break;
124                          case 'T':                          case 'T':
                                 moveto(24, 1);  
                                 clrtoeol();  
125                                  len = get_data(24, 1, "标题: ", title_input, sizeof(title_input), TITLE_INPUT_MAX_LEN);                                  len = get_data(24, 1, "标题: ", title_input, sizeof(title_input), TITLE_INPUT_MAX_LEN);
126                                  for (p = title_input; *p == ' '; p++)                                  for (p = title_input; *p == ' '; p++)
127                                          ;                                          ;
# Line 138  int article_post(const SECTION_LIST *p_s Line 142  int article_post(const SECTION_LIST *p_s
142                                  prints("取消...");                                  prints("取消...");
143                                  press_any_key();                                  press_any_key();
144                                  goto cleanup;                                  goto cleanup;
                         case 'Y':  
                                 p_article_new->transship = 0;  
                                 break;  
145                          case 'Z':                          case 'Z':
146                                  p_article_new->transship = 1;                                  p_article_new->transship = (p_article_new->transship ? 0 : 1);
147                                    break;
148                            case 'N':
149                                    reply_note = (reply_note ? 0 : 1);
150                                  break;                                  break;
151                          case '0':                          case '0':
152                          case '1':                          case '1':
# Line 330  int article_post(const SECTION_LIST *p_s Line 334  int article_post(const SECTION_LIST *p_s
334          snprintf(sql, sizeof(sql),          snprintf(sql, sizeof(sql),
335                           "INSERT INTO bbs(SID, TID, UID, username, nickname, title, CID, transship, "                           "INSERT INTO bbs(SID, TID, UID, username, nickname, title, CID, transship, "
336                           "sub_dt, sub_ip, reply_note, exp, last_reply_dt, icon, length) "                           "sub_dt, sub_ip, reply_note, exp, last_reply_dt, icon, length) "
337                           "VALUES(%d, 0, %d, '%s', '%s', '%s', %d, %d, NOW(), '%s', 1, %d, NOW(), 1, %d)",                           "VALUES(%d, 0, %d, '%s', '%s', '%s', %d, %d, NOW(), '%s', %d, %d, NOW(), 1, %d)",
338                           p_section->sid, BBS_priv.uid, BBS_username, nickname_f, title_f,                           p_section->sid, BBS_priv.uid, BBS_username, nickname_f, title_f,
339                           p_article_new->cid, p_article_new->transship, hostaddr_client, BBS_user_exp, content_display_length);                           p_article_new->cid, p_article_new->transship, hostaddr_client,
340                             reply_note, BBS_user_exp, content_display_length);
341    
342          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
343          {          {
# Line 424  int article_modify(const SECTION_LIST *p Line 429  int article_modify(const SECTION_LIST *p
429          char *content_f = NULL;          char *content_f = NULL;
430          long len_content;          long len_content;
431          int content_display_length;          int content_display_length;
432            int reply_note = 1;
433          int ch;          int ch;
434          long ret = 0;          long ret = 0;
435          time_t now;          time_t now;
# Line 456  int article_modify(const SECTION_LIST *p Line 462  int article_modify(const SECTION_LIST *p
462          }          }
463    
464          snprintf(sql, sizeof(sql),          snprintf(sql, sizeof(sql),
465                           "SELECT bbs_content.CID, bbs_content.content "                           "SELECT bbs_content.CID, bbs_content.content, reply_note "
466                           "FROM bbs INNER JOIN bbs_content ON bbs.CID = bbs_content.CID "                           "FROM bbs INNER JOIN bbs_content ON bbs.CID = bbs_content.CID "
467                           "WHERE bbs.AID = %d",                           "WHERE bbs.AID = %d",
468                           p_article->aid);                           p_article->aid);
# Line 500  int article_modify(const SECTION_LIST *p Line 506  int article_modify(const SECTION_LIST *p
506    
507                  free(content);                  free(content);
508                  content = NULL;                  content = NULL;
509    
510                    reply_note = atoi(row[2]);
511          }          }
512          mysql_free_result(rs);          mysql_free_result(rs);
513          rs = NULL;          rs = NULL;
# Line 511  int article_modify(const SECTION_LIST *p Line 519  int article_modify(const SECTION_LIST *p
519          {          {
520                  editor_display(p_editor_data);                  editor_display(p_editor_data);
521    
522                  clearscr();                  while (!SYS_server_exit)
                 moveto(1, 1);  
                 prints("(S)保存, (C)取消 or (E)再编辑? [S]: ");  
                 iflush();  
   
                 for (ch = 0; !SYS_server_exit; ch = igetch_t(MAX_DELAY_TIME))  
523                  {                  {
524                            clearscr();
525                            moveto(1, 1);
526                            prints("(S)保存, (C)取消, (N)通知%s or (E)再编辑? [S]: ",
527                                       (reply_note ? "关闭" : "开启"));
528                            iflush();
529    
530                            ch = igetch_t(MAX_DELAY_TIME);
531                          switch (toupper(ch))                          switch (toupper(ch))
532                          {                          {
533                          case KEY_NULL:                          case KEY_NULL:
# Line 533  int article_modify(const SECTION_LIST *p Line 543  int article_modify(const SECTION_LIST *p
543                                  prints("取消...");                                  prints("取消...");
544                                  press_any_key();                                  press_any_key();
545                                  goto cleanup;                                  goto cleanup;
546                            case 'N':
547                                    reply_note = (reply_note ? 0 : 1);
548                                    continue;
549                          case 'E':                          case 'E':
550                                  break;                                  break;
551                          default: // Invalid selection                          default: // Invalid selection
# Line 643  int article_modify(const SECTION_LIST *p Line 656  int article_modify(const SECTION_LIST *p
656    
657          // Update article          // Update article
658          snprintf(sql, sizeof(sql),          snprintf(sql, sizeof(sql),
659                           "UPDATE bbs SET CID = %d, length = %d, excerption = 0 WHERE AID = %d", // Set excerption = 0 explictly in case of rare condition                           "UPDATE bbs SET CID = %d, length = %d, reply_note = %d, excerption = 0 WHERE AID = %d", // Set excerption = 0 explictly in case of rare condition
660                           p_article_new->cid, content_display_length, p_article->aid);                           p_article_new->cid, content_display_length, reply_note, p_article->aid);
661    
662          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
663          {          {
# Line 721  int article_reply(const SECTION_LIST *p_ Line 734  int article_reply(const SECTION_LIST *p_
734          int content_display_length;          int content_display_length;
735          char nickname_f[BBS_nickname_max_len * 2 + 1];          char nickname_f[BBS_nickname_max_len * 2 + 1];
736          int sign_id = 0;          int sign_id = 0;
737            int reply_note = 0;
738          long len;          long len;
739          int ch;          int ch;
740          char *p, *q;          char *p, *q;
# Line 895  int article_reply(const SECTION_LIST *p_ Line 909  int article_reply(const SECTION_LIST *p_
909          {          {
910                  clearscr();                  clearscr();
911                  moveto(21, 1);                  moveto(21, 1);
912                  prints("回复文章于 %s[%s] 讨论区", p_section->stitle, p_section->sname);                  prints("回复文章于 %s[%s] 讨论区,通知:%s", p_section->stitle, p_section->sname, (reply_note ? "开启" : "关闭"));
913                  moveto(22, 1);                  moveto(22, 1);
914                  prints("标题: %s", (p_article_new->title[0] == '\0' ? "[无]" : p_article_new->title));                  prints("标题: %s", (p_article_new->title[0] == '\0' ? "[无]" : p_article_new->title));
915                  moveto(23, 1);                  moveto(23, 1);
# Line 906  int article_reply(const SECTION_LIST *p_ Line 920  int article_reply(const SECTION_LIST *p_
920                          prints("    按0~3选签名档(0表示不使用)");                          prints("    按0~3选签名档(0表示不使用)");
921    
922                          moveto(24, 1);                          moveto(24, 1);
923                          prints("T改标题, C取消, Enter继续: ");                          prints("T改标题, C取消, N%s, Enter继续: ",
924                                       (reply_note ? "通知关闭" : "通知开启"));
925                          iflush();                          iflush();
926                          ch = 0;                          ch = 0;
927                  }                  }
# Line 922  int article_reply(const SECTION_LIST *p_ Line 937  int article_reply(const SECTION_LIST *p_
937                                  igetch_reset();                                  igetch_reset();
938                                  break;                                  break;
939                          case 'T':                          case 'T':
                                 moveto(24, 1);  
                                 clrtoeol();  
940                                  len = get_data(24, 1, "标题: ", title_input, sizeof(title_input), TITLE_INPUT_MAX_LEN);                                  len = get_data(24, 1, "标题: ", title_input, sizeof(title_input), TITLE_INPUT_MAX_LEN);
941                                  for (p = title_input; *p == ' '; p++)                                  for (p = title_input; *p == ' '; p++)
942                                          ;                                          ;
# Line 944  int article_reply(const SECTION_LIST *p_ Line 957  int article_reply(const SECTION_LIST *p_
957                                  prints("取消...");                                  prints("取消...");
958                                  press_any_key();                                  press_any_key();
959                                  goto cleanup;                                  goto cleanup;
960                            case 'N':
961                                    reply_note = (reply_note ? 0 : 1);
962                                    break;
963                          case '0':                          case '0':
964                          case '1':                          case '1':
965                          case '2':                          case '2':
# Line 1130  int article_reply(const SECTION_LIST *p_ Line 1146  int article_reply(const SECTION_LIST *p_
1146          snprintf(sql, sizeof(sql),          snprintf(sql, sizeof(sql),
1147                           "INSERT INTO bbs(SID, TID, UID, username, nickname, title, CID, transship, "                           "INSERT INTO bbs(SID, TID, UID, username, nickname, title, CID, transship, "
1148                           "sub_dt, sub_ip, reply_note, exp, last_reply_dt, icon, length) "                           "sub_dt, sub_ip, reply_note, exp, last_reply_dt, icon, length) "
1149                           "VALUES(%d, %d, %d, '%s', '%s', '%s', %d, 0, NOW(), '%s', 1, %d, NOW(), 1, %d)",                           "VALUES(%d, %d, %d, '%s', '%s', '%s', %d, 0, NOW(), '%s', %d, %d, NOW(), 1, %d)",
1150                           p_section->sid, (p_article->tid == 0 ? p_article->aid : p_article->tid),                           p_section->sid, (p_article->tid == 0 ? p_article->aid : p_article->tid),
1151                           BBS_priv.uid, BBS_username, nickname_f, title_f,                           BBS_priv.uid, BBS_username, nickname_f, title_f,
1152                           p_article_new->cid, hostaddr_client, BBS_user_exp, content_display_length);                           p_article_new->cid, hostaddr_client,
1153                             reply_note, BBS_user_exp, content_display_length);
1154    
1155          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
1156          {          {


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

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