diff --git a/swad_changelog.h b/swad_changelog.h index 58ff379fc..32af3f5eb 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -212,13 +212,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.174.1 (2017-04-10)" +#define Log_PLATFORM_VERSION "SWAD 16.175 (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.175: Apr 11, 2017 Code refactoring in forums. (217669 lines) Version 16.174.1: Apr 10, 2017 Change in layout of frames (white boxes). New '+' icon in list of forum threads to add a new thread. (217591 lines) Version 16.174: Apr 07, 2017 Suffix .en added to help URLs in English. (217568 lines) diff --git a/swad_forum.c b/swad_forum.c index 41c940506..497794d62 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -309,9 +309,14 @@ static long For_WriteLinksToDegForums (long DegCod,bool IsLastDeg, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]); static long For_WriteLinksToCrsForums (long CrsCod,bool IsLastCrs, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]); -static void For_WriteLinkToAForum (For_ForumType_t ForumType,bool ShowNumOfPosts, - unsigned Level,bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]); -static void For_WriteLinkToForum (For_ForumType_t ForumType,Act_Action_t NextAct,const char *Icon,const char *ForumName,bool ShowNumOfPosts, +static void For_WriteLinkToAForum (For_ForumType_t ForumType,long Cod, + bool Highlight,bool ShowNumOfPosts, + unsigned Level, + bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]); +static void For_WriteLinkToForum (For_ForumType_t ForumType,long Cod, + Act_Action_t NextAct, + const char *Icon,const char *ForumName, + bool Highlight,bool ShowNumOfPosts, unsigned Level,bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]); static unsigned For_GetNumOfThreadsInForumNewerThan (For_ForumType_t ForumType,const char *Time); static unsigned For_GetNumOfUnreadPostsInThr (long ThrCod,unsigned NumPostsInThr); @@ -1009,7 +1014,8 @@ static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJ /* Write a link to current forum */ IsLastItemInLevel[1] = true; - For_WriteLinkToAForum (Gbl.Forum.ForumType,true,1,IsLastItemInLevel); + For_WriteLinkToAForum (Gbl.Forum.Type,Gbl.Forum.Cod, + true,true,1,IsLastItemInLevel); /* Write thread title */ fprintf (Gbl.F.Out,"
  • "); @@ -1048,7 +1054,7 @@ static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJ if (NumPsts) // If there are posts... { /***** Check if I can moderate posts in forum *****/ - switch (Gbl.Forum.ForumType) + switch (Gbl.Forum.Type) { case For_FORUM_SWAD_USRS: case For_FORUM_SWAD_TCHS: case For_FORUM_GLOBAL_USRS: case For_FORUM_GLOBAL_TCHS: @@ -1110,7 +1116,7 @@ static void For_ShowThreadPosts (long ThrCod,char LastSubject[Cns_MAX_BYTES_SUBJ NewPst,ICanModerateForum); /* Mark possible notification as seen */ - switch (Gbl.Forum.ForumType) + switch (Gbl.Forum.Type) { case For_FORUM_COURSE_TCHS: case For_FORUM_COURSE_USRS: @@ -1272,7 +1278,7 @@ static void For_ShowAForumPost (struct ForumThread *Thr,unsigned PstNum,long Pst if (LastPst && Gbl.Usrs.Me.UsrDat.UsrCod == UsrDat.UsrCod) // Post can be removed if post is the last (without answers) and it's mine { - Act_FormStart (For_ActionsDelPstFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsDelPstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); For_PutHiddenParamPstCod (PstCod); For_PutAllHiddenParamsForum (); @@ -1286,8 +1292,8 @@ static void For_ShowAForumPost (struct ForumThread *Thr,unsigned PstNum,long Pst { if (ICanModerateForum) { - Act_FormStart (Enabled ? For_ActionsDisPstFor[Gbl.Forum.ForumType] : - For_ActionsEnbPstFor[Gbl.Forum.ForumType]); + Act_FormStart (Enabled ? For_ActionsDisPstFor[Gbl.Forum.Type] : + For_ActionsEnbPstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); For_PutHiddenParamPstCod (PstCod); For_PutAllHiddenParamsForum (); @@ -1340,7 +1346,7 @@ static void For_ShowAForumPost (struct ForumThread *Thr,unsigned PstNum,long Pst { /* Write number of posts from this user */ fprintf (Gbl.F.Out,""); - For_WriteNumberOfPosts (Gbl.Forum.ForumType,UsrDat.UsrCod); + For_WriteNumberOfPosts (Gbl.Forum.Type,UsrDat.UsrCod); fprintf (Gbl.F.Out,""); } @@ -1573,21 +1579,18 @@ static void For_PutParamForumOrder (void) static void For_PutParamsForumInsDegCrs (void) { - /***** Put a hidden parameter with the institution of the forum *****/ - if (Gbl.Forum.Ins.InsCod > 0) - Par_PutHiddenParamLong ("ForInsCod",Gbl.Forum.Ins.InsCod); - - /***** Put a hidden parameter with the centre of the forum *****/ - if (Gbl.Forum.Ctr.CtrCod > 0) - Par_PutHiddenParamLong ("ForCtrCod",Gbl.Forum.Ctr.CtrCod); - - /***** Put a hidden parameter with the degree of the forum *****/ - if (Gbl.Forum.Deg.DegCod > 0) - Par_PutHiddenParamLong ("ForDegCod",Gbl.Forum.Deg.DegCod); - - /***** Put a hidden parameter with the course of the forum *****/ if (Gbl.Forum.Crs.CrsCod > 0) + /***** Put a hidden parameter with the course of the forum *****/ Par_PutHiddenParamLong ("ForCrsCod",Gbl.Forum.Crs.CrsCod); + else if (Gbl.Forum.Deg.DegCod > 0) + /***** Put a hidden parameter with the degree of the forum *****/ + Par_PutHiddenParamLong ("ForDegCod",Gbl.Forum.Deg.DegCod); + else if (Gbl.Forum.Ctr.CtrCod > 0) + /***** Put a hidden parameter with the centre of the forum *****/ + Par_PutHiddenParamLong ("ForCtrCod",Gbl.Forum.Ctr.CtrCod); + else if (Gbl.Forum.Ins.InsCod > 0) + /***** Put a hidden parameter with the institution of the forum *****/ + Par_PutHiddenParamLong ("ForInsCod",Gbl.Forum.Ins.InsCod); } /*****************************************************************************/ @@ -1607,7 +1610,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForSWAUsr: case ActPasThrForSWAUsr: case ActDelPstForSWAUsr: case ActEnbPstForSWAUsr: case ActDisPstForSWAUsr: - Gbl.Forum.ForumType = For_FORUM_SWAD_USRS; + Gbl.Forum.Type = For_FORUM_SWAD_USRS; Gbl.Forum.Level = 1; break; case ActSeeForSWATch: case ActSeePstForSWATch: @@ -1616,7 +1619,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForSWATch: case ActPasThrForSWATch: case ActDelPstForSWATch: case ActEnbPstForSWATch: case ActDisPstForSWATch: - Gbl.Forum.ForumType = For_FORUM_SWAD_TCHS; + Gbl.Forum.Type = For_FORUM_SWAD_TCHS; Gbl.Forum.Level = 1; break; case ActSeeForGenUsr: case ActSeePstForGenUsr: @@ -1625,7 +1628,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForGenUsr: case ActPasThrForGenUsr: case ActDelPstForGenUsr: case ActEnbPstForGenUsr: case ActDisPstForGenUsr: - Gbl.Forum.ForumType = For_FORUM_GLOBAL_USRS; + Gbl.Forum.Type = For_FORUM_GLOBAL_USRS; Gbl.Forum.Level = 1; break; case ActSeeForGenTch: case ActSeePstForGenTch: @@ -1634,7 +1637,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForGenTch: case ActPasThrForGenTch: case ActDelPstForGenTch: case ActEnbPstForGenTch: case ActDisPstForGenTch: - Gbl.Forum.ForumType = For_FORUM_GLOBAL_TCHS; + Gbl.Forum.Type = For_FORUM_GLOBAL_TCHS; Gbl.Forum.Level = 1; break; case ActSeeForInsUsr: case ActSeePstForInsUsr: @@ -1643,7 +1646,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForInsUsr: case ActPasThrForInsUsr: case ActDelPstForInsUsr: case ActEnbPstForInsUsr: case ActDisPstForInsUsr: - Gbl.Forum.ForumType = For_FORUM_INSTIT_USRS; + Gbl.Forum.Type = For_FORUM_INSTIT_USRS; Gbl.Forum.Level = 1; break; case ActSeeForInsTch: case ActSeePstForInsTch: @@ -1652,7 +1655,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForInsTch: case ActPasThrForInsTch: case ActDelPstForInsTch: case ActEnbPstForInsTch: case ActDisPstForInsTch: - Gbl.Forum.ForumType = For_FORUM_INSTIT_TCHS; + Gbl.Forum.Type = For_FORUM_INSTIT_TCHS; Gbl.Forum.Level = 1; break; case ActSeeForCtrUsr: case ActSeePstForCtrUsr: @@ -1661,7 +1664,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForCtrUsr: case ActPasThrForCtrUsr: case ActDelPstForCtrUsr: case ActEnbPstForCtrUsr: case ActDisPstForCtrUsr: - Gbl.Forum.ForumType = For_FORUM_CENTRE_USRS; + Gbl.Forum.Type = For_FORUM_CENTRE_USRS; Gbl.Forum.Level = 1; break; case ActSeeForCtrTch: case ActSeePstForCtrTch: @@ -1670,7 +1673,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForCtrTch: case ActPasThrForCtrTch: case ActDelPstForCtrTch: case ActEnbPstForCtrTch: case ActDisPstForCtrTch: - Gbl.Forum.ForumType = For_FORUM_CENTRE_TCHS; + Gbl.Forum.Type = For_FORUM_CENTRE_TCHS; Gbl.Forum.Level = 1; break; case ActSeeForDegUsr: case ActSeePstForDegUsr: @@ -1679,7 +1682,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForDegUsr: case ActPasThrForDegUsr: case ActDelPstForDegUsr: case ActEnbPstForDegUsr: case ActDisPstForDegUsr: - Gbl.Forum.ForumType = For_FORUM_DEGREE_USRS; + Gbl.Forum.Type = For_FORUM_DEGREE_USRS; Gbl.Forum.Level = 2; break; case ActSeeForDegTch: case ActSeePstForDegTch: @@ -1688,7 +1691,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForDegTch: case ActPasThrForDegTch: case ActDelPstForDegTch: case ActEnbPstForDegTch: case ActDisPstForDegTch: - Gbl.Forum.ForumType = For_FORUM_DEGREE_TCHS; + Gbl.Forum.Type = For_FORUM_DEGREE_TCHS; Gbl.Forum.Level = 2; break; case ActSeeForCrsUsr: case ActSeePstForCrsUsr: @@ -1697,7 +1700,7 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForCrsUsr: case ActPasThrForCrsUsr: case ActDelPstForCrsUsr: case ActEnbPstForCrsUsr: case ActDisPstForCrsUsr: - Gbl.Forum.ForumType = For_FORUM_COURSE_USRS; + Gbl.Forum.Type = For_FORUM_COURSE_USRS; Gbl.Forum.Level = 3; break; case ActSeeForCrsTch: case ActSeePstForCrsTch: @@ -1706,13 +1709,13 @@ void For_SetForumTypeAndRestrictAccess (void) case ActCutThrForCrsTch: case ActPasThrForCrsTch: case ActDelPstForCrsTch: case ActEnbPstForCrsTch: case ActDisPstForCrsTch: - Gbl.Forum.ForumType = For_FORUM_COURSE_TCHS; + Gbl.Forum.Type = For_FORUM_COURSE_TCHS; Gbl.Forum.Level = 3; break; } /***** Restrict access *****/ - switch (Gbl.Forum.ForumType) + switch (Gbl.Forum.Type) { case For_FORUM_COURSE_USRS: ICanSeeForum = (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM || @@ -1793,7 +1796,8 @@ void For_ShowForumList (void) Usr_GetMyInstits (); /***** Table start *****/ - Lay_StartRoundFrame (NULL,Txt_Forums,For_PutIconsForums,Hlp_SOCIAL_Forums); + Lay_StartRoundFrame ("100%",Txt_Forums,For_PutIconsForums, + Hlp_SOCIAL_Forums); /***** Put a form to select which forums *****/ For_PutFormWhichForums (); @@ -1991,16 +1995,22 @@ static void For_WriteLinkToTopLevelOfForums (void) static void For_WriteLinksToGblForums (bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { + bool Highlight; + /***** Link to forum global *****/ + Highlight = (Gbl.Forum.Type == For_FORUM_GLOBAL_USRS); IsLastItemInLevel[1] = false; - For_WriteLinkToAForum (For_FORUM_GLOBAL_USRS,false,1,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_GLOBAL_USRS,-1L, + Highlight,false,1,IsLastItemInLevel); /***** Link to forum of teachers global *****/ Rol_GetRolesInAllCrssIfNotYetGot (&Gbl.Usrs.Me.UsrDat); if (Gbl.Usrs.Me.UsrDat.Roles >= (1 << Rol_TEACHER)) { + Highlight = (Gbl.Forum.Type == For_FORUM_GLOBAL_TCHS); IsLastItemInLevel[1] = false; - For_WriteLinkToAForum (For_FORUM_GLOBAL_TCHS,false,1,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_GLOBAL_TCHS,-1L, + Highlight,false,1,IsLastItemInLevel); } } @@ -2011,6 +2021,7 @@ static void For_WriteLinksToGblForums (bool IsLastItemInLevel[1 + For_FORUM_MAX_ static void For_WriteLinksToPlatformForums (bool IsLastForum, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { + bool Highlight; bool ICanSeeTeacherForum; /***** Can I see teachers's forums? *****/ @@ -2019,14 +2030,18 @@ static void For_WriteLinksToPlatformForums (bool IsLastForum, Gbl.Usrs.Me.UsrDat.Roles >= (1 << Rol_TEACHER)); /***** Link to forum of users about the platform *****/ + Highlight = (Gbl.Forum.Type == For_FORUM_SWAD_USRS); IsLastItemInLevel[1] = (IsLastForum && !ICanSeeTeacherForum); - For_WriteLinkToAForum (For_FORUM_SWAD_USRS,false,1,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_SWAD_USRS,-1L, + Highlight,false,1,IsLastItemInLevel); /***** Link to forum of teachers about the platform *****/ if (ICanSeeTeacherForum) { + Highlight = (Gbl.Forum.Type == For_FORUM_SWAD_TCHS); IsLastItemInLevel[1] = IsLastForum; - For_WriteLinkToAForum (For_FORUM_SWAD_TCHS,false,1,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_SWAD_TCHS,-1L, + Highlight,false,1,IsLastItemInLevel); } } @@ -2038,6 +2053,7 @@ static void For_WriteLinksToPlatformForums (bool IsLastForum, static long For_WriteLinksToInsForums (long InsCod,bool IsLastIns, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { + bool Highlight; bool ICanSeeTeacherForum; if (InsCod > 0) @@ -2051,14 +2067,20 @@ static long For_WriteLinksToInsForums (long InsCod,bool IsLastIns, Lay_ShowErrorAndExit ("Institution not found."); /***** Link to the forum of users from this institution *****/ + Highlight = (Gbl.Forum.Type == For_FORUM_INSTIT_USRS && + Gbl.Forum.Cod == InsCod); IsLastItemInLevel[1] = (IsLastIns && !ICanSeeTeacherForum); - For_WriteLinkToAForum (For_FORUM_INSTIT_USRS,false,1,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_INSTIT_USRS,InsCod, + Highlight,false,1,IsLastItemInLevel); /***** Link to forum of teachers from this institution *****/ if (ICanSeeTeacherForum) { + Highlight = (Gbl.Forum.Type == For_FORUM_INSTIT_TCHS && + Gbl.Forum.Cod == InsCod); IsLastItemInLevel[1] = IsLastIns; - For_WriteLinkToAForum (For_FORUM_INSTIT_TCHS,false,1,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_INSTIT_TCHS,InsCod, + Highlight,false,1,IsLastItemInLevel); } } return InsCod; @@ -2072,6 +2094,7 @@ static long For_WriteLinksToInsForums (long InsCod,bool IsLastIns, static long For_WriteLinksToCtrForums (long CtrCod,bool IsLastCtr, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { + bool Highlight; bool ICanSeeTeacherForum; if (CtrCod > 0) @@ -2085,14 +2108,20 @@ static long For_WriteLinksToCtrForums (long CtrCod,bool IsLastCtr, Lay_ShowErrorAndExit ("Centre not found."); /***** Link to the forum of users from this centre *****/ + Highlight = (Gbl.Forum.Type == For_FORUM_CENTRE_USRS && + Gbl.Forum.Cod == CtrCod); IsLastItemInLevel[2] = (IsLastCtr && !ICanSeeTeacherForum); - For_WriteLinkToAForum (For_FORUM_CENTRE_USRS,false,2,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_CENTRE_USRS,CtrCod, + Highlight,false,2,IsLastItemInLevel); /***** Link to forum of teachers from this centre *****/ if (ICanSeeTeacherForum) { + Highlight = (Gbl.Forum.Type == For_FORUM_CENTRE_TCHS && + Gbl.Forum.Cod == CtrCod); IsLastItemInLevel[2] = IsLastCtr; - For_WriteLinkToAForum (For_FORUM_CENTRE_TCHS,false,2,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_CENTRE_TCHS,CtrCod, + Highlight,false,2,IsLastItemInLevel); } } return CtrCod; @@ -2106,6 +2135,7 @@ static long For_WriteLinksToCtrForums (long CtrCod,bool IsLastCtr, static long For_WriteLinksToDegForums (long DegCod,bool IsLastDeg, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { + bool Highlight; bool ICanSeeTeacherForum; if (DegCod > 0) @@ -2119,14 +2149,20 @@ static long For_WriteLinksToDegForums (long DegCod,bool IsLastDeg, Lay_ShowErrorAndExit ("Degree not found."); /***** Link to the forum of users from this degree *****/ + Highlight = (Gbl.Forum.Type == For_FORUM_DEGREE_USRS && + Gbl.Forum.Cod == DegCod); IsLastItemInLevel[3] = (IsLastDeg && !ICanSeeTeacherForum); - For_WriteLinkToAForum (For_FORUM_DEGREE_USRS,false,3,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_DEGREE_USRS,DegCod, + Highlight,false,3,IsLastItemInLevel); /***** Link to forum of teachers from this degree *****/ if (ICanSeeTeacherForum) { - IsLastItemInLevel[3] = IsLastDeg; - For_WriteLinkToAForum (For_FORUM_DEGREE_TCHS,false,3,IsLastItemInLevel); + Highlight = (Gbl.Forum.Type == For_FORUM_DEGREE_TCHS && + Gbl.Forum.Cod == DegCod); + IsLastItemInLevel[3] = IsLastDeg; + For_WriteLinkToAForum (For_FORUM_DEGREE_TCHS,DegCod, + Highlight,false,3,IsLastItemInLevel); } } return DegCod; @@ -2140,6 +2176,7 @@ static long For_WriteLinksToDegForums (long DegCod,bool IsLastDeg, static long For_WriteLinksToCrsForums (long CrsCod,bool IsLastCrs, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { + bool Highlight; bool ICanSeeTeacherForum; if (CrsCod > 0) @@ -2153,14 +2190,20 @@ static long For_WriteLinksToCrsForums (long CrsCod,bool IsLastCrs, Lay_ShowErrorAndExit ("Course not found."); /***** Link to the forum of users from this course *****/ + Highlight = (Gbl.Forum.Type == For_FORUM_COURSE_USRS && + Gbl.Forum.Cod == CrsCod); IsLastItemInLevel[4] = (IsLastCrs && !ICanSeeTeacherForum); - For_WriteLinkToAForum (For_FORUM_COURSE_USRS,false,4,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_COURSE_USRS,CrsCod, + Highlight,false,4,IsLastItemInLevel); /***** Link to forum of teachers from this course *****/ if (ICanSeeTeacherForum) { + Highlight = (Gbl.Forum.Type == For_FORUM_COURSE_TCHS && + Gbl.Forum.Cod == CrsCod); IsLastItemInLevel[4] = IsLastCrs; - For_WriteLinkToAForum (For_FORUM_COURSE_TCHS,false,4,IsLastItemInLevel); + For_WriteLinkToAForum (For_FORUM_COURSE_TCHS,CrsCod, + Highlight,false,4,IsLastItemInLevel); } } return CrsCod; @@ -2170,7 +2213,8 @@ static long For_WriteLinksToCrsForums (long CrsCod,bool IsLastCrs, /********************** Write title and link to a forum **********************/ /*****************************************************************************/ -static void For_WriteLinkToAForum (For_ForumType_t ForumType,bool ShowNumOfPosts, +static void For_WriteLinkToAForum (For_ForumType_t ForumType,long Cod, + bool Highlight,bool ShowNumOfPosts, unsigned Level, bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { @@ -2219,7 +2263,9 @@ static void For_WriteLinkToAForum (For_ForumType_t ForumType,bool ShowNumOfPosts break; } - For_WriteLinkToForum (ForumType,For_ActionsSeeFor[ForumType],Icon,ForumName,ShowNumOfPosts, + For_WriteLinkToForum (ForumType,Cod, + For_ActionsSeeFor[ForumType],Icon,ForumName, + Highlight,ShowNumOfPosts, Level,IsLastItemInLevel); } @@ -2306,11 +2352,15 @@ void For_SetForumName (For_ForumType_t ForumType, /*********************** Write title and link to a forum *********************/ /*****************************************************************************/ -static void For_WriteLinkToForum (For_ForumType_t ForumType,Act_Action_t NextAct,const char *Icon,const char *ForumName,bool ShowNumOfPosts, +static void For_WriteLinkToForum (For_ForumType_t ForumType,long Cod, + Act_Action_t NextAct, + const char *Icon,const char *ForumName, + bool Highlight,bool ShowNumOfPosts, unsigned Level,bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS]; extern const char *The_ClassForm[The_NUM_THEMES]; + extern const char *The_ClassFormDark[The_NUM_THEMES]; extern const char *The_ClassFormBold[The_NUM_THEMES]; extern const char *Txt_Copy_not_allowed; extern const char *Txt_Paste_thread; @@ -2319,6 +2369,11 @@ static void For_WriteLinkToForum (For_ForumType_t ForumType,Act_Action_t NextAct unsigned NumPosts; const char *Style; char ActTxt[Act_MAX_BYTES_ACTION_TXT + 1]; + const char *ClassNormal; + char ClassHighlight[64]; + + ClassNormal = The_ClassForm[Gbl.Prefs.Theme]; + sprintf (ClassHighlight,"%s LIGHT_BLUE",The_ClassFormDark[Gbl.Prefs.Theme]); /***** Get number of threads and number of posts *****/ NumThrs = For_GetNumThrsInForum (ForumType); @@ -2327,7 +2382,9 @@ static void For_WriteLinkToForum (For_ForumType_t ForumType,Act_Action_t NextAct The_ClassForm[Gbl.Prefs.Theme]); /***** Start row *****/ - fprintf (Gbl.F.Out,"
  • "); + fprintf (Gbl.F.Out,"
  • ", + Highlight ? ClassHighlight : + ClassNormal); /***** Indent forum title *****/ Lay_IndentDependingOnLevel (Level,IsLastItemInLevel); @@ -2360,7 +2417,29 @@ static void For_WriteLinkToForum (For_ForumType_t ForumType,Act_Action_t NextAct /***** Write link to forum *****/ Act_FormStart (NextAct); - For_PutAllHiddenParamsForum (); + For_PutParamWhichForum (); + For_PutParamForumOrder (); + switch (ForumType) + { + case For_FORUM_INSTIT_USRS: + case For_FORUM_INSTIT_TCHS: + Par_PutHiddenParamLong ("ForInsCod",Cod); + break; + case For_FORUM_CENTRE_USRS: + case For_FORUM_CENTRE_TCHS: + Par_PutHiddenParamLong ("ForCtrCod",Cod); + break; + case For_FORUM_DEGREE_USRS: + case For_FORUM_DEGREE_TCHS: + Par_PutHiddenParamLong ("ForDegCod",Cod); + break; + case For_FORUM_COURSE_USRS: + case For_FORUM_COURSE_TCHS: + Par_PutHiddenParamLong ("ForCrsCod",Cod); + break; + default: + break; + } Act_LinkFormSubmit (Act_GetActionTextFromDB (Act_Actions[NextAct].ActCod,ActTxt),Style,NULL); switch (ForumType) { @@ -2557,7 +2636,6 @@ static unsigned For_GetNumOfPostsInThrNewerThan (long ThrCod,const char *Time) void For_ShowForumThrs (void) { extern const char *Hlp_SOCIAL_Forums; - extern const char *Txt_Forum; extern const char *Txt_Threads; extern const char *Txt_MSG_Subject; extern const char *Txt_FORUM_THREAD_HELP_ORDER[2]; @@ -2566,12 +2644,12 @@ void For_ShowForumThrs (void) extern const char *Txt_Unread_BR_msgs; extern const char *Txt_WriBRters; extern const char *Txt_ReaBRders; - bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]; char SubQuery[256]; char Query[2048]; MYSQL_RES *mysql_res; MYSQL_ROW row; - unsigned NumThr,NumThrs; + unsigned NumThr; + unsigned NumThrs; unsigned NumThrInScreen; // From 0 to Pag_ITEMS_PER_PAGE-1 For_Order_t Order; long ThrCods[Pag_ITEMS_PER_PAGE]; @@ -2588,11 +2666,14 @@ void For_ShowForumThrs (void) /***** Set forum type *****/ For_SetForumTypeAndRestrictAccess (); + /***** Show list of available forums *****/ + For_ShowForumList (); + /***** Get page number *****/ Pag_GetParamPagNum (Pag_THREADS_FORUM); /***** Get threads of a forum from database *****/ - switch (Gbl.Forum.ForumType) + switch (Gbl.Forum.Type) { case For_FORUM_INSTIT_USRS: case For_FORUM_INSTIT_TCHS: @@ -2626,7 +2707,7 @@ void For_ShowForumThrs (void) " WHERE forum_thread.ForumType=%u%s" " AND forum_thread.FirstPstCod=forum_post.PstCod" " ORDER BY forum_post.CreatTime DESC", - (unsigned) Gbl.Forum.ForumType,SubQuery); + (unsigned) Gbl.Forum.Type,SubQuery); break; case For_LAST_MSG: sprintf (Query,"SELECT forum_thread.ThrCod" @@ -2634,7 +2715,7 @@ void For_ShowForumThrs (void) " WHERE forum_thread.ForumType=%u%s" " AND forum_thread.LastPstCod=forum_post.PstCod" " ORDER BY forum_post.CreatTime DESC", - (unsigned) Gbl.Forum.ForumType,SubQuery); + (unsigned) Gbl.Forum.Type,SubQuery); break; } NumThrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get thread of a forum"); @@ -2661,25 +2742,6 @@ void For_ShowForumThrs (void) /***** Free structure that stores the query result *****/ DB_FreeMySQLResult (&mysql_res); - /***** Header whith the name of this forum, the number of threads, and the total number of posts *****/ - /* Table start */ - Lay_StartRoundFrame (NULL,Txt_Forum,For_PutIconsForums,Hlp_SOCIAL_Forums); - - /* Put a form to select which forums */ - For_PutFormWhichForums (); - - /* Write a link to top level of forums */ - fprintf (Gbl.F.Out,""); - Lay_EndRoundFrame (); - /***** List the threads *****/ if (NumThrs) { @@ -2708,7 +2770,7 @@ void For_ShowForumThrs (void) Order++) { fprintf (Gbl.F.Out,""); - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (PaginationThrs.CurrentPage); For_PutParamWhichForum (); For_PutParamsForumInsDegCrs (); @@ -3489,12 +3551,12 @@ void For_ListForumThrs (long ThrCods[Pag_ITEMS_PER_PAGE],struct Pagination *Pagi Txt_No_new_posts, Thr.NumUnreadPosts ? Txt_There_are_new_posts : Txt_No_new_posts); - if (PermissionThreadDeletion[Gbl.Forum.ForumType] & + if (PermissionThreadDeletion[Gbl.Forum.Type] & (1 << Gbl.Usrs.Me.LoggedRole)) // If I have permission to remove thread in this forum... { /* Put button to remove the thread */ fprintf (Gbl.F.Out,"
    "); - Act_FormStart (For_ActionsReqDelThr[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsReqDelThr[Gbl.Forum.Type]); For_PutAllHiddenParamsForum (); For_PutHiddenParamThrCod (Thr.ThrCod); Lay_PutIconRemove (); @@ -3505,7 +3567,7 @@ void For_ListForumThrs (long ThrCods[Pag_ITEMS_PER_PAGE],struct Pagination *Pagi { /* Put button to cut the thread for moving it to another forum */ fprintf (Gbl.F.Out,"
    "); - Act_FormStart (For_ActionsCutThrFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsCutThrFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); For_PutAllHiddenParamsForum (); For_PutHiddenParamThrCod (Thr.ThrCod); @@ -3775,18 +3837,26 @@ static void For_GetParamsForum (void) /***** Get parameter with code of institution *****/ Gbl.Forum.Ins.InsCod = Par_GetParToLong ("ForInsCod"); Ins_GetDataOfInstitutionByCod (&Gbl.Forum.Ins,Ins_GET_BASIC_DATA); + if (Gbl.Forum.Ins.InsCod > 0) + Gbl.Forum.Cod = Gbl.Forum.Ins.InsCod; /***** Get parameter with code of institution *****/ Gbl.Forum.Ctr.CtrCod = Par_GetParToLong ("ForCtrCod"); Ctr_GetDataOfCentreByCod (&Gbl.Forum.Ctr); + if (Gbl.Forum.Ctr.CtrCod > 0) + Gbl.Forum.Cod = Gbl.Forum.Ctr.CtrCod; /***** Get parameter with code of degree *****/ Gbl.Forum.Deg.DegCod = Par_GetParToLong ("ForDegCod"); Deg_GetDataOfDegreeByCod (&Gbl.Forum.Deg); + if (Gbl.Forum.Deg.DegCod > 0) + Gbl.Forum.Cod = Gbl.Forum.Deg.DegCod; /***** Get parameter with code of course *****/ Gbl.Forum.Crs.CrsCod = Par_GetParToLong ("ForCrsCod"); Crs_GetDataOfCourseByCod (&Gbl.Forum.Crs); + if (Gbl.Forum.Crs.CrsCod > 0) + Gbl.Forum.Cod = Gbl.Forum.Crs.CrsCod; } /*****************************************************************************/ @@ -3881,12 +3951,12 @@ static void For_WriteFormForumPst (bool IsReply,long ThrCod,const char *Subject) /***** Start form *****/ if (IsReply) // Form to write a reply to a message of an existing thread { - Act_FormStart (For_ActionsRecRepFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsRecRepFor[Gbl.Forum.Type]); For_PutHiddenParamThrCod (ThrCod); Pag_PutHiddenParamPagNum (0); } else // Form to write the first message of a new thread - Act_FormStart (For_ActionsRecThrFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsRecThrFor[Gbl.Forum.Type]); For_PutAllHiddenParamsForum (); /***** Subject and content *****/ @@ -4010,7 +4080,7 @@ void For_RecForumPst (void) else // This post is the first of a new thread { /***** Create new thread with unknown first and last message codes *****/ - ThrCod = For_InsertForumThread (Gbl.Forum.ForumType,-1L); + ThrCod = For_InsertForumThread (Gbl.Forum.Type,-1L); /***** Create first (and last) message of the thread *****/ PstCod = For_InsertForumPst (ThrCod,Gbl.Usrs.Me.UsrDat.UsrCod, @@ -4031,7 +4101,7 @@ void For_RecForumPst (void) Lay_ShowAlert (Lay_INFO,Txt_Do_not_reload_this_page_because_the_post_will_be_sent_again_); /***** Notify the new post to users in course *****/ - switch (Gbl.Forum.ForumType) + switch (Gbl.Forum.Type) { case For_FORUM_COURSE_USRS: case For_FORUM_COURSE_TCHS: @@ -4052,7 +4122,7 @@ void For_RecForumPst (void) } /***** Insert forum post into public social activity *****/ - switch (Gbl.Forum.ForumType) // Only if forum is public for any logged user + switch (Gbl.Forum.Type) // Only if forum is public for any logged user { case For_FORUM_GLOBAL_USRS: case For_FORUM_SWAD_USRS: @@ -4141,7 +4211,7 @@ void For_DelPst (void) Ntf_MarkNotifAsRemoved (Ntf_EVENT_FORUM_REPLY,PstCod); /***** Mark possible social note as unavailable *****/ - switch (Gbl.Forum.ForumType) // Only if forum is public for any logged user + switch (Gbl.Forum.Type) // Only if forum is public for any logged user { case For_FORUM_GLOBAL_USRS: case For_FORUM_SWAD_USRS: @@ -4199,7 +4269,7 @@ void For_ReqDelThr (void) sprintf (Gbl.Message,"%s",Txt_Do_you_really_want_to_remove_the_entire_thread); Lay_ShowAlert (Lay_WARNING,Gbl.Message); - Act_FormStart (For_ActionsDelThrFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsDelThrFor[Gbl.Forum.Type]); For_PutAllHiddenParamsForum (); For_PutHiddenParamThrCod (ThrCod); Lay_PutRemoveButton (Txt_Remove_thread); @@ -4223,7 +4293,7 @@ void For_DelThr (void) /***** Set forum type *****/ For_SetForumTypeAndRestrictAccess (); - if (PermissionThreadDeletion[Gbl.Forum.ForumType] & (1 << Gbl.Usrs.Me.LoggedRole)) // If I have permission to remove thread in this forum... + if (PermissionThreadDeletion[Gbl.Forum.Type] & (1 << Gbl.Usrs.Me.LoggedRole)) // If I have permission to remove thread in this forum... { /***** Get code of thread to delete *****/ ThrCod = For_GetParamThrCod (); @@ -4315,7 +4385,7 @@ void For_PasteThr (void) For_GetThrSubject (ThrCod,Subject); /***** Paste (move) the thread to current forum *****/ - if (For_CheckIfThrBelongsToForum (ThrCod,Gbl.Forum.ForumType)) + if (For_CheckIfThrBelongsToForum (ThrCod,Gbl.Forum.Type)) { if (Subject[0]) sprintf (Gbl.Message,Txt_The_thread_X_is_already_in_this_forum, @@ -4413,38 +4483,38 @@ void For_MoveThrToCurrentForum (long ThrCod) char Query[512]; /***** Move a thread to current forum *****/ - switch (Gbl.Forum.ForumType) + switch (Gbl.Forum.Type) { case For_FORUM_SWAD_USRS: case For_FORUM_SWAD_TCHS: case For_FORUM_GLOBAL_USRS: case For_FORUM_GLOBAL_TCHS: sprintf (Query,"UPDATE forum_thread" " SET ForumType=%u,Location=-1" " WHERE ThrCod=%ld", - (unsigned) Gbl.Forum.ForumType,ThrCod); + (unsigned) Gbl.Forum.Type,ThrCod); break; case For_FORUM_INSTIT_USRS: case For_FORUM_INSTIT_TCHS: sprintf (Query,"UPDATE forum_thread" " SET ForumType=%u,Location=%ld" " WHERE ThrCod=%ld", - (unsigned) Gbl.Forum.ForumType,Gbl.Forum.Ins.InsCod,ThrCod); + (unsigned) Gbl.Forum.Type,Gbl.Forum.Ins.InsCod,ThrCod); break; case For_FORUM_CENTRE_USRS: case For_FORUM_CENTRE_TCHS: sprintf (Query,"UPDATE forum_thread" " SET ForumType=%u,Location=%ld" " WHERE ThrCod=%ld", - (unsigned) Gbl.Forum.ForumType,Gbl.Forum.Ctr.CtrCod,ThrCod); + (unsigned) Gbl.Forum.Type,Gbl.Forum.Ctr.CtrCod,ThrCod); break; case For_FORUM_DEGREE_USRS: case For_FORUM_DEGREE_TCHS: sprintf (Query,"UPDATE forum_thread" " SET ForumType=%u,Location=%ld" " WHERE ThrCod=%ld", - (unsigned) Gbl.Forum.ForumType,Gbl.Forum.Deg.DegCod,ThrCod); + (unsigned) Gbl.Forum.Type,Gbl.Forum.Deg.DegCod,ThrCod); break; case For_FORUM_COURSE_USRS: case For_FORUM_COURSE_TCHS: sprintf (Query,"UPDATE forum_thread" " SET ForumType=%u,Location=%ld" " WHERE ThrCod=%ld", - (unsigned) Gbl.Forum.ForumType,Gbl.Forum.Crs.CrsCod,ThrCod); + (unsigned) Gbl.Forum.Type,Gbl.Forum.Crs.CrsCod,ThrCod); break; } DB_QueryUPDATE (Query,"can not move a thread to current forum"); diff --git a/swad_global.c b/swad_global.c index fa4f1e0d8..0415dbe14 100644 --- a/swad_global.c +++ b/swad_global.c @@ -408,8 +408,9 @@ void Gbl_InitializeGlobals (void) Gbl.Social.WhichUsrs = Soc_DEFAULT_WHICH_USRS; /* Forums */ - Gbl.Forum.ForumType = (For_ForumType_t) 0; Gbl.Forum.WhichForums = For_DEFAULT_WHICH_FORUMS; + Gbl.Forum.Type = (For_ForumType_t) 0; + Gbl.Forum.Cod = -1L; Gbl.Forum.SelectedOrder = For_DEFAULT_ORDER; Gbl.Forum.ThreadToMove = -1L; diff --git a/swad_global.h b/swad_global.h index 1b1870fe9..b6fca9890 100644 --- a/swad_global.h +++ b/swad_global.h @@ -579,7 +579,8 @@ struct Globals struct { For_WhichForums_t WhichForums; - For_ForumType_t ForumType; + For_ForumType_t Type; + long Cod; // Institution, centre, degree or course code of the selected forum struct Instit Ins; struct Centre Ctr; struct Degree Deg; diff --git a/swad_notification.c b/swad_notification.c index eef642fde..a56db11fd 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -450,8 +450,8 @@ void Ntf_ShowMyNotifications (void) if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE || NotifyEvent == Ntf_EVENT_FORUM_REPLY) { - Gbl.Forum.ForumType = For_GetForumTypeOfAPost (Cod); - For_SetForumName (Gbl.Forum.ForumType, + Gbl.Forum.Type = For_GetForumTypeOfAPost (Cod); + For_SetForumName (Gbl.Forum.Type, &Ins, &Ctr, &Deg, @@ -771,7 +771,7 @@ static bool Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, break; case Ntf_EVENT_FORUM_POST_COURSE: case Ntf_EVENT_FORUM_REPLY: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); For_PutAllHiddenParamsForum (); break; case Ntf_EVENT_NOTICE: diff --git a/swad_pagination.c b/swad_pagination.c index 26b38f0fd..c26a13130 100644 --- a/swad_pagination.c +++ b/swad_pagination.c @@ -148,12 +148,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (1); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (1); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); @@ -240,12 +240,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (1); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (1); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); @@ -315,12 +315,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Pagination->LeftPage); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Pagination->LeftPage); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); @@ -397,12 +397,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (NumPage); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (NumPage); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); @@ -475,12 +475,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Pagination->RightPage); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Pagination->RightPage); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); @@ -550,12 +550,12 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Pagination->NumPags); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.ForumType]); + Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); Pag_PutHiddenParamPagNum (Pagination->NumPags); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); diff --git a/swad_social.c b/swad_social.c index 047af1931..ce9049d22 100644 --- a/swad_social.c +++ b/swad_social.c @@ -1375,8 +1375,8 @@ static void Soc_WriteSocialNote (const struct SocialNote *SocNot, break; case Soc_NOTE_FORUM_POST: /* Get forum type of the post */ - Gbl.Forum.ForumType = For_GetForumTypeOfAPost (SocNot->Cod); - For_SetForumName (Gbl.Forum.ForumType, + Gbl.Forum.Type = For_GetForumTypeOfAPost (SocNot->Cod); + For_SetForumName (Gbl.Forum.Type, &Ins, &Ctr, &Deg, @@ -1833,7 +1833,7 @@ static void Soc_PutFormGoToAction (const struct SocialNote *SocNot) case Soc_NOTE_SOCIAL_POST: // Not applicable return; case Soc_NOTE_FORUM_POST: - Act_FormStartUnique (For_ActionsSeeFor[Gbl.Forum.ForumType]); + Act_FormStartUnique (For_ActionsSeeFor[Gbl.Forum.Type]); For_PutAllHiddenParamsForum (); if (SocNot->HieCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course Crs_PutParamCrsCod (SocNot->HieCod); // Go to another course