From c20cf1ccacd2cd3a7cead13c1faab949cadd3359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Tue, 11 Apr 2017 19:05:15 +0200 Subject: [PATCH] Version 16.176.1 --- swad_changelog.h | 3 +- swad_forum.c | 91 +++++++++++++++++++++++++++--------------------- 2 files changed, 54 insertions(+), 40 deletions(-) diff --git a/swad_changelog.h b/swad_changelog.h index bebaadfec..3e21e90d1 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -212,13 +212,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.176 (2017-04-11)" +#define Log_PLATFORM_VERSION "SWAD 16.176.1 (2017-04-11)" #define CSS_FILE "swad16.174.1.css" #define JS_FILE "swad16.144.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 /* + Version 16.176.1: Apr 11, 2017 Changes in layout of forums. (217699 lines) Version 16.176: Apr 11, 2017 Code refactoring in pagination. Changes in layout of forums. (217680 lines) Version 16.175.1: Apr 11, 2017 Changes in layout of forums. (217667 lines) diff --git a/swad_forum.c b/swad_forum.c index f8a330f1a..3df5fa1f4 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -280,12 +280,12 @@ static unsigned For_GetNumOfWritersInThr (long ThrCod); static unsigned For_GetNumPstsInThr (long ThrCod); static unsigned For_GetNumMyPstInThr (long ThrCod); static time_t For_GetThrReadTime (long ThrCod); -static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJECT + 1]); +static void For_ShowThreadPosts (long ThrCod); static void For_PutIconsForums (void); static void For_PutIconNewThread (void); -static void For_WriteNumPsts (unsigned NumPsts); +// static void For_WriteNumPsts (unsigned NumPsts); static void For_ShowAForumPost (struct ForumThread *Thr,unsigned PstNum,long PstCod, bool LastPst,char LastSubject[Cns_MAX_BYTES_SUBJECT + 1], bool NewPst,bool ICanModerateForum); @@ -329,7 +329,7 @@ static void For_WriteFormForumPst (bool IsReply,long ThrCod,const char *Subject) static void For_UpdateNumUsrsNotifiedByEMailAboutPost (long PstCod,unsigned NumUsrsToBeNotifiedByEMail); static void For_WriteNumberOfThrs (unsigned NumThrs,unsigned NumThrsWithNewPosts); static void For_WriteNumThrsAndPsts (unsigned NumThrs,unsigned NumThrsWithNewPosts,unsigned NumPosts); -static void For_WriteThrSubject (long ThrCod); +// static void For_WriteThrSubject (long ThrCod); static void For_GetParamsForum (void); static long For_GetParamThrCod (void); static void For_PutHiddenParamPstCod (long PstCod); @@ -965,15 +965,17 @@ void For_RemoveUsrFromReadThrs (long UsrCod) /****************************** Show forum posts *****************************/ /*****************************************************************************/ -static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJECT + 1]) +static void For_ShowThreadPosts (long ThrCod) { extern const char *Hlp_SOCIAL_Forums; extern const char *Txt_Thread; - extern const char *Txt_There_are_new_posts; - extern const char *Txt_No_new_posts; - extern const char *Txt_Posts; - bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]; + // extern const char *Txt_There_are_new_posts; + // extern const char *Txt_No_new_posts; + // extern const char *Txt_Posts; + // bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]; struct ForumThread Thr; + char LastSubject[Cns_MAX_BYTES_SUBJECT + 1]; + char FrameTitle[128 + Cns_MAX_BYTES_SUBJECT]; char Query[256]; MYSQL_RES *mysql_res; MYSQL_ROW row; @@ -1004,22 +1006,27 @@ static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJ /* Get thread read time for the current user */ ReadTimeUTC = For_GetThrReadTime (ThrCod); - /* Table start */ + /***** Start frame *****/ + sprintf (FrameTitle,"%s: %s",Txt_Thread,Thr.Subject); + Lay_StartRoundFrame (NULL,FrameTitle,NULL,Hlp_SOCIAL_Forums); + +/* + * Table start * Lay_StartRoundFrame (NULL,Txt_Thread,For_PutIconsForums,Hlp_SOCIAL_Forums); - /* Put a form to select which forums */ + * Put a form to select which forums * For_PutFormWhichForums (); - /* Write a link to top level of forums */ + * Write a link to top level of forums * fprintf (Gbl.F.Out,""); Lay_EndRoundFrame (); - +*/ LastSubject[0] = '\0'; if (NumPsts) // If there are posts... { @@ -1088,9 +1095,10 @@ static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJ if (Pagination.MoreThanOnePage) Pag_WriteLinksToPagesCentered (Pag_POSTS_FORUM,ThrCod,&Pagination); - /***** Show posts from this page, the author and the date of last reply *****/ - Lay_StartRoundFrameTable (NULL,Txt_Posts,NULL,Hlp_SOCIAL_Forums,2); + /***** Start table *****/ + fprintf (Gbl.F.Out,""); + /***** Show posts from this page, the author and the date of last reply *****/ mysql_data_seek (mysql_res,(my_ulonglong) (Pagination.FirstItemVisible - 1)); for (NumRow = Pagination.FirstItemVisible; NumRow <= Pagination.LastItemVisible; @@ -1135,7 +1143,8 @@ static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJ Gbl.Usrs.Me.UsrDat.UsrCod); } - Lay_EndRoundFrameTable (); + /***** End table *****/ + fprintf (Gbl.F.Out,"
"); /***** Write again links to pages *****/ if (Pagination.MoreThanOnePage) @@ -1144,6 +1153,12 @@ static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJ /***** Free structure that stores the query result *****/ DB_FreeMySQLResult (&mysql_res); + + /***** Form to write a new message in the thread *****/ + For_WriteFormForumPst (true,ThrCod,LastSubject); + + /***** End frame *****/ + Lay_EndRoundFrame (); } /*****************************************************************************/ @@ -1174,7 +1189,7 @@ static void For_PutIconNewThread (void) /*****************************************************************************/ /*************************** Write number of posts ***************************/ /*****************************************************************************/ - +/* static void For_WriteNumPsts (unsigned NumPsts) { extern const char *Txt_post; @@ -1182,7 +1197,7 @@ static void For_WriteNumPsts (unsigned NumPsts) fprintf (Gbl.F.Out,"["); - /***** Write total number of posts *****/ + ***** Write total number of posts ***** if (NumPsts == 1) fprintf (Gbl.F.Out,"1 %s",Txt_post); else @@ -1190,7 +1205,7 @@ static void For_WriteNumPsts (unsigned NumPsts) fprintf (Gbl.F.Out,"]"); } - +*/ /*****************************************************************************/ /**************************** Show a post from forum *************************/ /*****************************************************************************/ @@ -1798,7 +1813,7 @@ void For_ShowForumList (void) Usr_GetMyInstits (); /***** Table start *****/ - Lay_StartRoundFrame ("100%",Txt_Forums,For_PutIconsForums, + Lay_StartRoundFrame (NULL,Txt_Forums,For_PutIconsForums, Hlp_SOCIAL_Forums); /***** Put a form to select which forums *****/ @@ -3773,7 +3788,7 @@ void For_GetThrData (struct ForumThread *Thr) /*****************************************************************************/ /************* Write the subject of the first message of a thread ************/ /*****************************************************************************/ - +/* static void For_WriteThrSubject (long ThrCod) { extern const char *Txt_no_subject; @@ -3784,7 +3799,7 @@ static void For_WriteThrSubject (long ThrCod) unsigned long NumRows; long FirstPstCod; - /***** Get subject of a thread from database *****/ + ***** Get subject of a thread from database ***** sprintf (Query,"SELECT forum_post.PstCod,forum_post.Subject" " FROM forum_thread,forum_post" " WHERE forum_thread.ThrCod=%ld" @@ -3792,16 +3807,16 @@ static void For_WriteThrSubject (long ThrCod) ThrCod); NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get the subject of a thread"); - /***** The result of the query should have only one row *****/ + ***** The result of the query should have only one row ***** if (NumRows != 1) Lay_ShowErrorAndExit ("Error when getting the subject of a thread."); row = mysql_fetch_row (mysql_res); - /***** Get message code *****/ + ***** Get message code ***** if (sscanf (row[0],"%ld",&FirstPstCod) != 1) Lay_ShowErrorAndExit ("Error when getting the subject of a thread."); - /***** Write the subject of the thread *****/ + ***** Write the subject of the thread ***** if (For_GetIfPstIsEnabled (FirstPstCod)) { if (row[1][0]) @@ -3812,10 +3827,10 @@ static void For_WriteThrSubject (long ThrCod) else fprintf (Gbl.F.Out,"[%s]",Txt_first_message_not_allowed); - /***** Free the structure that stores the query result *****/ + ***** Free the structure that stores the query result ***** DB_FreeMySQLResult (&mysql_res); } - +*/ /*****************************************************************************/ /**************** Show posts of a thread in a discussion forum ***************/ /*****************************************************************************/ @@ -3933,19 +3948,17 @@ static long For_GetParamPstCod (void) void For_ShowForumLevel2 (long ThrCod) { - char Subject[Cns_MAX_BYTES_SUBJECT + 1]; - /***** Get order type, degree and course of the forum *****/ - For_GetParamsForum (); + // For_GetParamsForum (); /***** Set forum type *****/ - For_SetForumTypeAndRestrictAccess (); + // For_SetForumTypeAndRestrictAccess (); + + /***** Show forums and threads *****/ + For_ShowForumThrs (); /***** Show the posts of this thread *****/ - For_ShowThreadPosts (ThrCod,Subject); - - /***** Form to write a new message in the thread *****/ - For_WriteFormForumPst (true,ThrCod,Subject); + For_ShowThreadPosts (ThrCod); } /*****************************************************************************/