Version 16.181.2

This commit is contained in:
Antonio Cañas Vargas 2017-04-18 01:25:44 +02:00
parent 49704b32a2
commit ffceaa474f
10 changed files with 578 additions and 534 deletions

View File

@ -214,13 +214,14 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.181.1 (2017-04-17)" #define Log_PLATFORM_VERSION "SWAD 16.181.2 (2017-04-18)"
#define CSS_FILE "swad16.181.css" #define CSS_FILE "swad16.181.css"
#define JS_FILE "swad16.181.js" #define JS_FILE "swad16.181.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.181.2: Apr 18, 2017 Code refactoring in forums. (217590 lines)
Version 16.181.1: Apr 17, 2017 Code refactoring in forums. (217538 lines) Version 16.181.1: Apr 17, 2017 Code refactoring in forums. (217538 lines)
Version 16.181: Apr 17, 2017 Changes in layout of messages. Version 16.181: Apr 17, 2017 Changes in layout of messages.
Changes in layout of some tables. Changes in layout of some tables.

File diff suppressed because it is too large Load Diff

View File

@ -69,6 +69,7 @@ struct Forum
For_ForumType_t Type; // Type of forum For_ForumType_t Type; // Type of forum
long Location; // Code of institution, centre, degree or course long Location; // Code of institution, centre, degree or course
long ThrCod; // Optional thread code long ThrCod; // Optional thread code
long PstCod; // Optional post code
}; };
struct ForumThread struct ForumThread
@ -103,7 +104,7 @@ typedef enum
void For_EnbPst (void); void For_EnbPst (void);
void For_DisPst (void); void For_DisPst (void);
void For_GetForumTypeAndLocationOfAPost (long PstCod,struct Forum *WhichForum); void For_GetForumTypeAndLocationOfAPost (long PstCod,struct Forum *ForumSelected);
unsigned long For_GetNumPostsUsr (long UsrCod); unsigned long For_GetNumPostsUsr (long UsrCod);
void For_RemoveUsrFromReadThrs (long UsrCod); void For_RemoveUsrFromReadThrs (long UsrCod);
@ -112,9 +113,13 @@ void For_GetSummaryAndContentForumPst (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1
char **ContentStr, char **ContentStr,
long PstCod,bool GetContent); long PstCod,bool GetContent);
void For_PutAllHiddenParamsForum (void); void For_PutAllHiddenParamsForum (For_ForumSet_t ForumSet,
For_Order_t Order,
long Location,
long ThrCod,
long PstCod);
void For_SetForumName (struct Forum *WhichForum, void For_SetForumName (struct Forum *ForumSelected,
char ForumName[For_MAX_BYTES_FORUM_NAME + 1], char ForumName[For_MAX_BYTES_FORUM_NAME + 1],
Txt_Language_t Language,bool UseHTMLEntities); Txt_Language_t Language,bool UseHTMLEntities);
@ -128,7 +133,6 @@ unsigned For_GetNumTotalPstsInForumsOfType (For_ForumType_t ForumType,
unsigned *NumUsrsToBeNotifiedByEMail); unsigned *NumUsrsToBeNotifiedByEMail);
void For_ShowThrPsts (void); void For_ShowThrPsts (void);
void For_PutHiddenParamThrCod (long ThrCod);
void For_RecForumPst (void); void For_RecForumPst (void);
void For_DelPst (void); void For_DelPst (void);
void For_ReqDelThr (void); void For_ReqDelThr (void);

View File

@ -407,9 +407,9 @@ void Gbl_InitializeGlobals (void)
/* Forums */ /* Forums */
Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET; Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET;
Gbl.Forum.WhichForum.Type = (For_ForumType_t) 0; Gbl.Forum.ForumSelected.Type = (For_ForumType_t) 0;
Gbl.Forum.WhichForum.Location = -1L; Gbl.Forum.ForumSelected.Location = -1L;
Gbl.Forum.WhichForum.ThrCod = -1L; Gbl.Forum.ForumSelected.ThrCod = -1L;
Gbl.Forum.SelectedOrder = For_DEFAULT_ORDER; Gbl.Forum.SelectedOrder = For_DEFAULT_ORDER;
Gbl.Forum.ThreadToMove = -1L; Gbl.Forum.ThreadToMove = -1L;
// Gbl.Forum.CurrentPageThrs = 1; // TODO: Remove this line // Gbl.Forum.CurrentPageThrs = 1; // TODO: Remove this line

View File

@ -582,7 +582,7 @@ struct Globals
struct struct
{ {
For_ForumSet_t ForumSet; For_ForumSet_t ForumSet;
struct Forum WhichForum; // Forum type and location struct Forum ForumSelected; // Forum type, location, thread and post
int Level; int Level;
For_Order_t SelectedOrder; For_Order_t SelectedOrder;
char PathRelOld[PATH_MAX + 1]; char PathRelOld[PATH_MAX + 1];

View File

@ -450,8 +450,8 @@ void Ntf_ShowMyNotifications (void)
if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE || if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE ||
NotifyEvent == Ntf_EVENT_FORUM_REPLY) NotifyEvent == Ntf_EVENT_FORUM_REPLY)
{ {
For_GetForumTypeAndLocationOfAPost (Cod,&Gbl.Forum.WhichForum); For_GetForumTypeAndLocationOfAPost (Cod,&Gbl.Forum.ForumSelected);
For_SetForumName (&Gbl.Forum.WhichForum, For_SetForumName (&Gbl.Forum.ForumSelected,
ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language
} }
@ -763,8 +763,12 @@ static bool Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent,
break; break;
case Ntf_EVENT_FORUM_POST_COURSE: case Ntf_EVENT_FORUM_POST_COURSE:
case Ntf_EVENT_FORUM_REPLY: case Ntf_EVENT_FORUM_REPLY:
Act_FormStart (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type]); Act_FormStart (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type]);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
Gbl.Forum.ForumSelected.ThrCod,
-1L);
break; break;
case Ntf_EVENT_NOTICE: case Ntf_EVENT_NOTICE:
Act_FormStart (ActSeeOneNot); Act_FormStart (ActSeeOneNot);
@ -1170,7 +1174,7 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
unsigned long NumRow; unsigned long NumRow;
unsigned long NumRows; unsigned long NumRows;
struct UsrData UsrDat; struct UsrData UsrDat;
struct Forum WhichForum; struct Forum ForumSelected;
unsigned NumUsrsToBeNotifiedByEMail = 0; unsigned NumUsrsToBeNotifiedByEMail = 0;
unsigned NotifyEventMask = (1 << NotifyEvent); unsigned NotifyEventMask = (1 << NotifyEvent);
@ -1301,8 +1305,8 @@ unsigned Ntf_StoreNotifyEventsToAllUsrs (Ntf_NotifyEvent_t NotifyEvent,long Cod)
return 0; return 0;
case Ntf_EVENT_FORUM_POST_COURSE: case Ntf_EVENT_FORUM_POST_COURSE:
// Check if forum is for users or for all users in the course // Check if forum is for users or for all users in the course
For_GetForumTypeAndLocationOfAPost (Cod,&WhichForum); For_GetForumTypeAndLocationOfAPost (Cod,&ForumSelected);
switch (WhichForum.Type) switch (ForumSelected.Type)
{ {
case For_FORUM_COURSE_USRS: case For_FORUM_COURSE_USRS:
sprintf (Query,"SELECT UsrCod FROM crs_usr" sprintf (Query,"SELECT UsrCod FROM crs_usr"
@ -1420,23 +1424,23 @@ void Ntf_StoreNotifyEventToOneUser (Ntf_NotifyEvent_t NotifyEvent,
NotifyEvent == Ntf_EVENT_FORUM_REPLY) NotifyEvent == Ntf_EVENT_FORUM_REPLY)
{ {
InsCod = CtrCod = DegCod = CrsCod = -1L; InsCod = CtrCod = DegCod = CrsCod = -1L;
switch (Gbl.Forum.WhichForum.Type) switch (Gbl.Forum.ForumSelected.Type)
{ {
case For_FORUM_INSTIT_USRS: case For_FORUM_INSTIT_USRS:
case For_FORUM_INSTIT_TCHS: case For_FORUM_INSTIT_TCHS:
InsCod = Gbl.Forum.WhichForum.Location; InsCod = Gbl.Forum.ForumSelected.Location;
break; break;
case For_FORUM_CENTRE_USRS: case For_FORUM_CENTRE_USRS:
case For_FORUM_CENTRE_TCHS: case For_FORUM_CENTRE_TCHS:
CtrCod = Gbl.Forum.WhichForum.Location; CtrCod = Gbl.Forum.ForumSelected.Location;
break; break;
case For_FORUM_DEGREE_USRS: case For_FORUM_DEGREE_USRS:
case For_FORUM_DEGREE_TCHS: case For_FORUM_DEGREE_TCHS:
DegCod = Gbl.Forum.WhichForum.Location; DegCod = Gbl.Forum.ForumSelected.Location;
break; break;
case For_FORUM_COURSE_USRS: case For_FORUM_COURSE_USRS:
case For_FORUM_COURSE_TCHS: case For_FORUM_COURSE_TCHS:
CrsCod = Gbl.Forum.WhichForum.Location; CrsCod = Gbl.Forum.ForumSelected.Location;
break; break;
default: default:
break; break;
@ -1571,7 +1575,7 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
struct Degree Deg; struct Degree Deg;
struct Course Crs; struct Course Crs;
long Cod; long Cod;
struct Forum WhichForum; struct Forum ForumSelected;
char ForumName[For_MAX_BYTES_FORUM_NAME + 1]; char ForumName[For_MAX_BYTES_FORUM_NAME + 1];
char Command[2048]; // Command to execute for sending an email char Command[2048]; // Command to execute for sending an email
int ReturnCode; int ReturnCode;
@ -1650,7 +1654,7 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
/* Get forum type */ /* Get forum type */
if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE || if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE ||
NotifyEvent == Ntf_EVENT_FORUM_REPLY) NotifyEvent == Ntf_EVENT_FORUM_REPLY)
For_GetForumTypeAndLocationOfAPost (Cod,&WhichForum); For_GetForumTypeAndLocationOfAPost (Cod,&ForumSelected);
/* Information about the type of this event */ /* Information about the type of this event */
fprintf (Gbl.Msg.FileMail,Txt_NOTIFY_EVENTS_SINGULAR_NO_HTML[NotifyEvent][ToUsrLanguage], fprintf (Gbl.Msg.FileMail,Txt_NOTIFY_EVENTS_SINGULAR_NO_HTML[NotifyEvent][ToUsrLanguage],
@ -1686,7 +1690,7 @@ static void Ntf_SendPendingNotifByEMailToOneUsr (struct UsrData *ToUsrDat,unsign
break; break;
case Ntf_EVENT_FORUM_POST_COURSE: case Ntf_EVENT_FORUM_POST_COURSE:
case Ntf_EVENT_FORUM_REPLY: case Ntf_EVENT_FORUM_REPLY:
For_SetForumName (&WhichForum, For_SetForumName (&ForumSelected,
ForumName,ToUsrLanguage,false); // Set forum name in recipient's language ForumName,ToUsrLanguage,false); // Set forum name in recipient's language
fprintf (Gbl.Msg.FileMail,"%s: %s\n", fprintf (Gbl.Msg.FileMail,"%s: %s\n",
Txt_Forum_NO_HTML[ToUsrLanguage], Txt_Forum_NO_HTML[ToUsrLanguage],

View File

@ -160,17 +160,24 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Grp_PutParamWhichGrps (); Grp_PutParamWhichGrps ();
break; break;
case Pag_THREADS_FORUM: case Pag_THREADS_FORUM:
Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1); Pag_PutHiddenParamPagNum (WhatPaginate,1);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break; break;
case Pag_POSTS_FORUM: case Pag_POSTS_FORUM:
Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1); Pag_PutHiddenParamPagNum (WhatPaginate,1);
For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
For_PutAllHiddenParamsForum (); Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break; break;
case Pag_MESSAGES_RECEIVED: case Pag_MESSAGES_RECEIVED:
Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor);
@ -253,17 +260,24 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Grp_PutParamWhichGrps (); Grp_PutParamWhichGrps ();
break; break;
case Pag_THREADS_FORUM: case Pag_THREADS_FORUM:
Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1); Pag_PutHiddenParamPagNum (WhatPaginate,1);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
break; Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM: case Pag_POSTS_FORUM:
Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1); Pag_PutHiddenParamPagNum (WhatPaginate,1);
For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
For_PutAllHiddenParamsForum (); Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break; break;
case Pag_MESSAGES_RECEIVED: case Pag_MESSAGES_RECEIVED:
Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor);
@ -329,17 +343,24 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Grp_PutParamWhichGrps (); Grp_PutParamWhichGrps ();
break; break;
case Pag_THREADS_FORUM: case Pag_THREADS_FORUM:
Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break; break;
case Pag_POSTS_FORUM: case Pag_POSTS_FORUM:
Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
For_PutAllHiddenParamsForum (); Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break; break;
case Pag_MESSAGES_RECEIVED: case Pag_MESSAGES_RECEIVED:
Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor);
@ -412,17 +433,24 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Grp_PutParamWhichGrps (); Grp_PutParamWhichGrps ();
break; break;
case Pag_THREADS_FORUM: case Pag_THREADS_FORUM:
Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage); Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break; break;
case Pag_POSTS_FORUM: case Pag_POSTS_FORUM:
Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage); Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
For_PutAllHiddenParamsForum (); Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break; break;
case Pag_MESSAGES_RECEIVED: case Pag_MESSAGES_RECEIVED:
Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor);
@ -491,17 +519,24 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Grp_PutParamWhichGrps (); Grp_PutParamWhichGrps ();
break; break;
case Pag_THREADS_FORUM: case Pag_THREADS_FORUM:
Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
break; Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM: case Pag_POSTS_FORUM:
Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
For_PutAllHiddenParamsForum (); Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break; break;
case Pag_MESSAGES_RECEIVED: case Pag_MESSAGES_RECEIVED:
Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor);
@ -567,17 +602,24 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
Grp_PutParamWhichGrps (); Grp_PutParamWhichGrps ();
break; break;
case Pag_THREADS_FORUM: case Pag_THREADS_FORUM:
Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break; break;
case Pag_POSTS_FORUM: case Pag_POSTS_FORUM:
Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.WhichForum.Type], Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor); Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags); Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
For_PutAllHiddenParamsForum (); Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break; break;
case Pag_MESSAGES_RECEIVED: case Pag_MESSAGES_RECEIVED:
Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor);

View File

@ -1375,8 +1375,8 @@ static void Soc_WriteSocialNote (const struct SocialNote *SocNot,
break; break;
case Soc_NOTE_FORUM_POST: case Soc_NOTE_FORUM_POST:
/* Get forum type of the post */ /* Get forum type of the post */
For_GetForumTypeAndLocationOfAPost (SocNot->Cod,&Gbl.Forum.WhichForum); For_GetForumTypeAndLocationOfAPost (SocNot->Cod,&Gbl.Forum.ForumSelected);
For_SetForumName (&Gbl.Forum.WhichForum, For_SetForumName (&Gbl.Forum.ForumSelected,
ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language
break; break;
default: default:
@ -1825,8 +1825,12 @@ static void Soc_PutFormGoToAction (const struct SocialNote *SocNot)
case Soc_NOTE_SOCIAL_POST: // Not applicable case Soc_NOTE_SOCIAL_POST: // Not applicable
return; return;
case Soc_NOTE_FORUM_POST: case Soc_NOTE_FORUM_POST:
Act_FormStartUnique (For_ActionsSeeFor[Gbl.Forum.WhichForum.Type]); Act_FormStartUnique (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type]);
For_PutAllHiddenParamsForum (); For_PutAllHiddenParamsForum (Gbl.Forum.ForumSet,
Gbl.Forum.SelectedOrder,
Gbl.Forum.ForumSelected.Location,
Gbl.Forum.ForumSelected.ThrCod,
-1L);
if (SocNot->HieCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course if (SocNot->HieCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course
Crs_PutParamCrsCod (SocNot->HieCod); // Go to another course Crs_PutParamCrsCod (SocNot->HieCod); // Go to another course
break; break;

View File

@ -751,12 +751,12 @@ const char *Txt_NOTIFY_EVENTS_SINGULAR_NO_HTML[Ntf_NUM_NOTIFY_EVENTS][1 + Txt_NU
{ {
// Ntf_EVENT_FORUM_POST_COURSE // Ntf_EVENT_FORUM_POST_COURSE
"", "",
"Novo missatge en un fòrum", "Novo comentari en un fòrum",
"Neue Nachricht in einem Forum", "Neue Nachricht in einem Forum",
"New post in a forum", "New post in a forum",
"Nuevo mensaje en un foro", "Nuevo comentario en un foro",
"Nouveau message dans un forum", "Nouveau post dans un forum",
"Nuevo mensaje en un foro", // Okoteve traducción "Nuevo comentario en un foro", // Okoteve traducción
"Nuovo post in un forum", "Nuovo post in un forum",
"Nowy post na forum", "Nowy post na forum",
"Novo post em um fórum", "Novo post em um fórum",
@ -8547,27 +8547,6 @@ const char *Txt_Do_not_reload_this_page_because_the_message_will_be_sent_again_
"Do not reload this page because the message would be sent again and would arrive repeated."; // Necessita de tradução "Do not reload this page because the message would be sent again and would arrive repeated."; // Necessita de tradução
#endif #endif
const char *Txt_Do_not_reload_this_page_because_the_post_will_be_sent_again_ =
#if L==1
"No recargue esta p&aacute;gina, pues el mensaje se enviar&iacute;a de nuevo y llegar&iacute;a repetido."; // Necessita traduccio
#elif L==2
"Do not reload this page because the post would be sent again and would arrive repeated."; // Need Übersetzung
#elif L==3
"Do not reload this page because the post would be sent again and would arrive repeated.";
#elif L==4
"No recargue esta p&aacute;gina, pues el mensaje se enviar&iacute;a de nuevo y llegar&iacute;a repetido.";
#elif L==5
"Do not reload this page because the post would be sent again and would arrive repeated."; // Besoin de traduction
#elif L==6
"No recargue esta p&aacute;gina, pues el mensaje se enviar&iacute;a de nuevo y llegar&iacute;a repetido."; // Okoteve traducción
#elif L==7
"Non ricaricare questa pagina perch&egrave; il post sar&agrave; nuovamente inviato.";
#elif L==8
"Nie przeladuj strone, poniewaz post zostanie wyslany ponownie przyjedzie powtarzane.";
#elif L==9
"Do not reload this page because the post would be sent again and would arrive repeated."; // Necessita de tradução
#endif
const char *Txt_Do_not_show_again = const char *Txt_Do_not_show_again =
#if L==1 #if L==1
"No mostrar de nou"; "No mostrar de nou";
@ -9212,17 +9191,17 @@ const char *Txt_Do_you_really_want_to_remove_the_following_comment =
const char *Txt_Do_you_really_want_to_remove_the_following_post = const char *Txt_Do_you_really_want_to_remove_the_following_post =
#if L==1 #if L==1
"De veres voleu eliminar el seg&uuml;ent missatge?"; "De veres voleu eliminar el seg&uuml;ent comentari?";
#elif L==2 #elif L==2
"Wollen Sie wirklich, um die folgende Beitrag zu entfernen?"; "Wollen Sie wirklich, um die folgende Beitrag zu entfernen?";
#elif L==3 #elif L==3
"Do you really want to remove the following post?"; "Do you really want to remove the following post?";
#elif L==4 #elif L==4
"&iquest;Realmente desea eliminar el siguiente mensaje?"; "&iquest;Realmente desea eliminar el siguiente comentario?";
#elif L==5 #elif L==5
"Voulez-vous vraiment supprimer le message suivant?"; "Voulez-vous vraiment supprimer le post suivant?";
#elif L==6 #elif L==6
"&iquest;Realmente desea eliminar el siguiente mensaje?"; // Okoteve traducción "&iquest;Realmente desea eliminar el siguiente comentario?"; // Okoteve traducción
#elif L==7 #elif L==7
"Vuoi realmente rimuovere il seguente post?"; "Vuoi realmente rimuovere il seguente post?";
#elif L==8 #elif L==8
@ -13316,17 +13295,17 @@ const char *Txt_Forum =
const char *Txt_Forum_posts = const char *Txt_Forum_posts =
#if L==1 #if L==1
"Mensajes en foros"; // Necessita traduccio "Comentarios en foros"; // Necessita traduccio
#elif L==2 #elif L==2
"Forum-Beitr&auml;ge"; "Forum-Beitr&auml;ge";
#elif L==3 #elif L==3
"Forum posts"; "Forum posts";
#elif L==4 #elif L==4
"Mensajes en foros"; "Comentarios en foros";
#elif L==5 #elif L==5
"Messages de forum"; "Posts de forum";
#elif L==6 #elif L==6
"Mensajes en foros"; // Okoteve traducción "Comentarios en foros"; // Okoteve traducción
#elif L==7 #elif L==7
"Post del forum"; "Post del forum";
#elif L==8 #elif L==8
@ -24331,13 +24310,13 @@ const char *Txt_New_post =
#if L==1 #if L==1
"Nou comentari"; "Nou comentari";
#elif L==2 #elif L==2
"Neue Kommentar"; "Neue Post";
#elif L==3 #elif L==3
"New post"; "New post";
#elif L==4 #elif L==4
"Nuevo comentario"; "Nuevo comentario";
#elif L==5 #elif L==5
"Nouveau commentaire"; "Nouveau post";
#elif L==6 #elif L==6
"Nuevo comentario"; // Okoteve traducción "Nuevo comentario"; // Okoteve traducción
#elif L==7 #elif L==7
@ -25166,17 +25145,17 @@ const char *Txt_No_BR_msgs =
const char *Txt_No_new_posts = const char *Txt_No_new_posts =
#if L==1 #if L==1
"No hay mensajes nuevos"; // Necessita traduccio "No hay comentarios nuevos"; // Necessita traduccio
#elif L==2 #elif L==2
"Keine neuen Nachrichten"; "Keine neuen Nachrichten";
#elif L==3 #elif L==3
"No new posts"; "No new posts";
#elif L==4 #elif L==4
"No hay mensajes nuevos"; "No hay comentarios nuevos";
#elif L==5 #elif L==5
"Pas de nouveaux messages"; "Pas de nouveaux posts";
#elif L==6 #elif L==6
"No hay mensajes nuevos"; // Okoteve traducción "No hay comentarios nuevos"; // Okoteve traducción
#elif L==7 #elif L==7
"Nessun nuovo post"; "Nessun nuovo post";
#elif L==8 #elif L==8
@ -25355,86 +25334,86 @@ const char *Txt_No_of_BR_lines =
const char *Txt_No_of_posts = const char *Txt_No_of_posts =
#if L==1 #if L==1
"N&ordm; de mensajes"; // Necessita traduccio "N&ordm; de comentarios"; // Necessita traduccio
#elif L==2 #elif L==2
"Anzahl der Nachrichten"; "Anzahl der Nachrichten";
#elif L==3 #elif L==3
"No. of posts"; "No. of posts";
#elif L==4 #elif L==4
"N&ordm; de mensajes"; "N&ordm; de comentarios";
#elif L==5 #elif L==5
"Nombre de messages"; "Nombre de posts";
#elif L==6 #elif L==6
"N&ordm; de mensajes"; // Okoteve traducción "N&ordm; de comentarios"; // Okoteve traducción
#elif L==7 #elif L==7
"Numero di post"; "Numero di post";
#elif L==8 #elif L==8
"Liczba wiadomosci"; "Liczba wiadomosci";
#elif L==9 #elif L==9
"N&ordm; de mensagens"; "N&ordm; de posts";
#endif #endif
const char *Txt_No_of_posts_BR_per_forum = const char *Txt_No_of_posts_BR_per_forum =
#if L==1 #if L==1
"N&ordm; de mensajes<br />por foro"; // Necessita traduccio "N&ordm; de comentarios<br />por foro"; // Necessita traduccio
#elif L==2 #elif L==2
"Anzahl der Nachrichten<br />pro Forum"; "Anzahl der Nachrichten<br />pro Forum";
#elif L==3 #elif L==3
"No. of posts<br />per forum"; "No. of posts<br />per forum";
#elif L==4 #elif L==4
"N&ordm; de mensajes<br />por foro"; "N&ordm; de comentarios<br />por foro";
#elif L==5 #elif L==5
"Nombre de messages<br />par forum"; "Nombre de posts<br />par forum";
#elif L==6 #elif L==6
"N&ordm; de mensajes<br />por foro"; // Okoteve traducción "N&ordm; de comentarios<br />por foro"; // Okoteve traducción
#elif L==7 #elif L==7
"Numero di post<br />per forum"; "Numero di post<br />per forum";
#elif L==8 #elif L==8
"Liczba wiadomosci<br />per forum"; "Liczba wiadomosci<br />per forum";
#elif L==9 #elif L==9
"N&ordm; de mensagens<br />por f&oacute;rum"; "N&ordm; de posts<br />por f&oacute;rum";
#endif #endif
const char *Txt_No_of_posts_BR_per_user = const char *Txt_No_of_posts_BR_per_user =
#if L==1 #if L==1
"N&ordm; de mensajes<br />por usuari"; // Necessita traduccio "N&ordm; de comentarios<br />por usuari"; // Necessita traduccio
#elif L==2 #elif L==2
"Anzahl der Nachrichten<br />pro Benutzer"; "Anzahl der Nachrichten<br />pro Benutzer";
#elif L==3 #elif L==3
"No. of posts<br />per user"; "No. of posts<br />per user";
#elif L==4 #elif L==4
"N&ordm; de mensajes<br />por usuario"; "N&ordm; de comentarios<br />por usuario";
#elif L==5 #elif L==5
"Nombre de messages<br />par utilisateur"; "Nombre de posts<br />par utilisateur";
#elif L==6 #elif L==6
"N&ordm; de mensajes<br />por puruh&aacute;ra"; // Okoteve traducción "N&ordm; de comentarios<br />por puruh&aacute;ra"; // Okoteve traducción
#elif L==7 #elif L==7
"Numero di post<br />per utente"; "Numero di post<br />per utente";
#elif L==8 #elif L==8
"Liczba wiadomosci<br />per u&zdot;ytkownik"; "Liczba wiadomosci<br />per u&zdot;ytkownik";
#elif L==9 #elif L==9
"N&ordm; de mensagens<br />por utilizador"; "N&ordm; de posts<br />por utilizador";
#endif #endif
const char *Txt_No_of_posts_BR_per_thread = const char *Txt_No_of_posts_BR_per_thread =
#if L==1 #if L==1
"N&ordm; de mensajes<br />por discusi&oacute;n"; // Necessita traduccio "N&ordm; de comentarios<br />por discusi&oacute;n"; // Necessita traduccio
#elif L==2 #elif L==2
"Anzahl der Nachrichten<br />pro Thread"; "Anzahl der Nachrichten<br />pro Thread";
#elif L==3 #elif L==3
"No. of posts<br />per thread"; "No. of posts<br />per thread";
#elif L==4 #elif L==4
"N&ordm; de mensajes<br />por usuario"; "N&ordm; de comentarios<br />por usuario";
#elif L==5 #elif L==5
"Nombre de messages<br />par fil"; "Nombre de posts<br />par fil";
#elif L==6 #elif L==6
"N&ordm; de mensajes<br />por discusi&oacute;n"; // Okoteve traducción "N&ordm; de comentarios<br />por discusi&oacute;n"; // Okoteve traducción
#elif L==7 #elif L==7
"Numero di post<br />per discussione"; "Numero di post<br />per discussione";
#elif L==8 #elif L==8
"Liczba wiadomosci<br />per watku"; "Liczba wiadomosci<br />per watku";
#elif L==9 #elif L==9
"N&ordm; de mensagens<br />por thread"; "N&ordm; de posts<br />por thread";
#endif #endif
const char *Txt_No_of_private_files = const char *Txt_No_of_private_files =
@ -26843,7 +26822,7 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] =
#elif L==8 #elif L==8
"Nowe komentarze do moich post spo&lstrok;ecznej" "Nowe komentarze do moich post spo&lstrok;ecznej"
#elif L==9 #elif L==9
"Novos coment&aacute;rio &agrave;s minhos post sociais" "Novos coment&aacute;rio &agrave;s minhos posts sociais"
#endif #endif
, ,
#if L==1 // Ntf_EVENT_TIMELINE_FAV #if L==1 // Ntf_EVENT_TIMELINE_FAV
@ -26863,7 +26842,7 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] =
#elif L==8 #elif L==8
"Nowe ulubiony do moich post spo&lstrok;ecznej" "Nowe ulubiony do moich post spo&lstrok;ecznej"
#elif L==9 #elif L==9
"Novos favoritos &agrave;s minhos post sociais" "Novos favoritos &agrave;s minhos posts sociais"
#endif #endif
, ,
#if L==1 // Ntf_EVENT_TIMELINE_SHARE #if L==1 // Ntf_EVENT_TIMELINE_SHARE
@ -26883,7 +26862,7 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] =
#elif L==8 #elif L==8
"Nowe podzial moich post spo&lstrok;ecznej" "Nowe podzial moich post spo&lstrok;ecznej"
#elif L==9 #elif L==9
"Novas partilhas de minhos post sociais" "Novas partilhas de minhos posts sociais"
#endif #endif
, ,
#if L==1 // Ntf_EVENT_TIMELINE_MENTION #if L==1 // Ntf_EVENT_TIMELINE_MENTION
@ -26927,17 +26906,17 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] =
#endif #endif
, ,
#if L==1 // Ntf_EVENT_FORUM_POST_COURSE #if L==1 // Ntf_EVENT_FORUM_POST_COURSE
"Novos missatges en f&ograve;rums" "Novos comentaris en f&ograve;rums"
#elif L==2 #elif L==2
"Neue Beitr&auml;ge in den Foren" "Neue Beitr&auml;ge in den Foren"
#elif L==3 #elif L==3
"New posts in course forums" "New posts in course forums"
#elif L==4 #elif L==4
"Nuevos mensajes en foros de asignaturas" "Nuevos comentarios en foros de asignaturas"
#elif L==5 #elif L==5
"Nouveaux messages dans les forums" "Nouveaux posts dans les forums"
#elif L==6 #elif L==6
"Nuevos mensajes en foros de asignaturas" // Okoteve traducción "Nuevos comentarios en foros de asignaturas" // Okoteve traducción
#elif L==7 #elif L==7
"Nuovi post nei forum" "Nuovi post nei forum"
#elif L==8 #elif L==8
@ -26947,17 +26926,17 @@ const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS] =
#endif #endif
, ,
#if L==1 // Ntf_EVENT_FORUM_REPLY #if L==1 // Ntf_EVENT_FORUM_REPLY
"Noves respostes als meus missatges en f&ograve;rums" "Noves respostes als meus comentaris en f&ograve;rums"
#elif L==2 #elif L==2
"Neue Antworten auf meine Beitr&auml;ge in den Foren" "Neue Antworten auf meine Beitr&auml;ge in den Foren"
#elif L==3 #elif L==3
"New replies to my posts in forums" "New replies to my posts in forums"
#elif L==4 #elif L==4
"Nuevas respuestas a mis mensajes en foros" "Nuevas respuestas a mis comentarios en foros"
#elif L==5 #elif L==5
"Nouvelles r&eacute;ponses &agrave; mes messages dans les forums" "Nouvelles r&eacute;ponses &agrave; mes posts dans les forums"
#elif L==6 #elif L==6
"Nuevas respuestas a mis mensajes en foros" // Okoteve traducción "Nuevas respuestas a mis comentarios en foros" // Okoteve traducción
#elif L==7 #elif L==7
"Nuove risposte ai miei post nei forum" "Nuove risposte ai miei post nei forum"
#elif L==8 #elif L==8
@ -27330,17 +27309,17 @@ const char *Txt_NOTIFY_EVENTS_SINGULAR[Ntf_NUM_NOTIFY_EVENTS] =
#endif #endif
, ,
#if L==1 // Ntf_EVENT_FORUM_POST_COURSE #if L==1 // Ntf_EVENT_FORUM_POST_COURSE
"Missatge en un f&ograve;rum" "Comentari en un f&ograve;rum"
#elif L==2 #elif L==2
"Beitr&auml;ge in einem Forum" "Beitr&auml;ge in einem Forum"
#elif L==3 #elif L==3
"Post in a forum" "Post in a forum"
#elif L==4 #elif L==4
"Mensaje en un foro" "Comentario en un foro"
#elif L==5 #elif L==5
"Message dans un forum" "Post dans un forum"
#elif L==6 #elif L==6
"Mensaje en un foro" // Okoteve traducción "Comentario en un foro" // Okoteve traducción
#elif L==7 #elif L==7
"Post in un forum" "Post in un forum"
#elif L==8 #elif L==8
@ -29535,17 +29514,17 @@ const char *Txt_Possibly_duplicate_users =
const char *Txt_Post_X_allowed = // Warning: it is very important to include %u in the following sentences const char *Txt_Post_X_allowed = // Warning: it is very important to include %u in the following sentences
#if L==1 #if L==1
"Mensaje %u permitido."; // Necessita traduccio "Comentario %u permitido."; // Necessita traduccio
#elif L==2 #elif L==2
"Post %u allowed."; // Need Übersetzung "Post %u allowed."; // Need Übersetzung
#elif L==3 #elif L==3
"Post %u allowed."; "Post %u allowed.";
#elif L==4 #elif L==4
"Mensaje %u permitido."; "Comentario %u permitido.";
#elif L==5 #elif L==5
"Post %u allowed."; // Besoin de traduction "Post %u allowed."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje %u permitido."; // Okoteve traducción "Comentario %u permitido."; // Okoteve traducción
#elif L==7 #elif L==7
"Post %u autorizzato."; "Post %u autorizzato.";
#elif L==8 #elif L==8
@ -29556,38 +29535,38 @@ const char *Txt_Post_X_allowed = // Warning: it is very important to include %u
const char *Txt_Post_X_allowed_Click_to_ban_it = // Warning: it is very important to include %u in the following sentences const char *Txt_Post_X_allowed_Click_to_ban_it = // Warning: it is very important to include %u in the following sentences
#if L==1 #if L==1
"Mensaje %u permitido. Pulse para censurarlo."; // Necessita traduccio "Comentario %u permitido. Pulse para censurarlo."; // Necessita traduccio
#elif L==2 #elif L==2
"Post %u allowed. Click to ban it."; // Need Übersetzung "Post %u allowed. Click to ban it."; // Need Übersetzung
#elif L==3 #elif L==3
"Post %u allowed. Click to ban it."; "Post %u allowed. Click to ban it.";
#elif L==4 #elif L==4
"Mensaje %u permitido. Pulse para censurarlo."; "Comentario %u permitido. Pulse para censurarlo.";
#elif L==5 #elif L==5
"Post %u allowed. Click to ban it."; // Besoin de traduction "Post %u allowed. Click to ban it."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje %u permitido. Pulse para censurarlo."; // Okoteve traducción "Comentario %u permitido. Pulse para censurarlo."; // Okoteve traducción
#elif L==7 #elif L==7
"Post %u autorizzato. Clicca per censurarlo."; "Post %u autorizzato. Clicca per censurarlo.";
#elif L==8 #elif L==8
"Post% u dozwolone. Kliknij, aby to zakazac."; "Post% u dozwolone. Kliknij, aby to zakazac.";
#elif L==9 #elif L==9
"Post %u allowed. Click to ban it."; // Necessita de tradução "Post %u allowed. Click to ban it."; // Necessita de tradução
#endif #endif
const char *Txt_Post_and_thread_removed = const char *Txt_Post_and_thread_removed =
#if L==1 #if L==1
"Mensaje y discusi&oacute;n eliminados."; // Necessita traduccio "Comentario y discusi&oacute;n eliminados."; // Necessita traduccio
#elif L==2 #elif L==2
"Nachricht und Faden entfernt."; "Nachricht und Faden entfernt.";
#elif L==3 #elif L==3
"Post and thread removed."; "Post and thread removed.";
#elif L==4 #elif L==4
"Mensaje y discusi&oacute;n eliminados."; "Comentario y discusi&oacute;n eliminados.";
#elif L==5 #elif L==5
"Post and thread removed."; // Besoin de traduction "Post and thread removed."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje y discusi&oacute;n eliminados."; // Okoteve traducción "Comentario y discusi&oacute;n eliminados."; // Okoteve traducción
#elif L==7 #elif L==7
"Post e discussione rimossi."; "Post e discussione rimossi.";
#elif L==8 #elif L==8
@ -29598,17 +29577,17 @@ const char *Txt_Post_and_thread_removed =
const char *Txt_Post_banned = const char *Txt_Post_banned =
#if L==1 #if L==1
"Mensaje no permitido"; // Necessita traduccio "Comentario no permitido"; // Necessita traduccio
#elif L==2 #elif L==2
"Post banned."; // Need Übersetzung "Post banned."; // Need Übersetzung
#elif L==3 #elif L==3
"Post banned."; "Post banned.";
#elif L==4 #elif L==4
"Mensaje no permitido"; "Comentario no permitido";
#elif L==5 #elif L==5
"Post banned."; // Besoin de traduction "Post banned."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje no permitido"; // Okoteve traducción "Comentario no permitido"; // Okoteve traducción
#elif L==7 #elif L==7
"Post censurato."; "Post censurato.";
#elif L==8 #elif L==8
@ -29619,17 +29598,17 @@ const char *Txt_Post_banned =
const char *Txt_Post_X_banned = // Warning: it is very important to include %u in the following sentences const char *Txt_Post_X_banned = // Warning: it is very important to include %u in the following sentences
#if L==1 #if L==1
"Mensaje %u no permitido"; // Necessita traduccio "Comentario %u no permitido"; // Necessita traduccio
#elif L==2 #elif L==2
"Post %u banned."; // Need Übersetzung "Post %u banned."; // Need Übersetzung
#elif L==3 #elif L==3
"Post %u banned."; "Post %u banned.";
#elif L==4 #elif L==4
"Mensaje %u no permitido"; "Comentario %u no permitido";
#elif L==5 #elif L==5
"Post %u banned."; // Besoin de traduction "Post %u banned."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje %u no permitido"; // Okoteve traducción "Comentario %u no permitido"; // Okoteve traducción
#elif L==7 #elif L==7
"Post %u censurato."; "Post %u censurato.";
#elif L==8 #elif L==8
@ -29640,17 +29619,17 @@ const char *Txt_Post_X_banned = // Warning: it is very important to include %u i
const char *Txt_Post_X_banned_Click_to_unban_it = // Warning: it is very important to include %u in the following sentences const char *Txt_Post_X_banned_Click_to_unban_it = // Warning: it is very important to include %u in the following sentences
#if L==1 #if L==1
"Mensaje %u no permitido. Pulse para permitirlo."; // Necessita traduccio "Comentario %u no permitido. Pulse para permitirlo."; // Necessita traduccio
#elif L==2 #elif L==2
"Post %u banned. Click to unban it."; // Need Übersetzung "Post %u banned. Click to unban it."; // Need Übersetzung
#elif L==3 #elif L==3
"Post %u banned. Click to unban it."; "Post %u banned. Click to unban it.";
#elif L==4 #elif L==4
"Mensaje %u no permitido. Pulse para permitirlo."; "Comentario %u no permitido. Pulse para permitirlo.";
#elif L==5 #elif L==5
"Post %u banned. Click to unban it."; // Besoin de traduction "Post %u banned. Click to unban it."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje %u no permitido. Pulse para permitirlo."; // Okoteve traducción "Comentario %u no permitido. Pulse para permitirlo."; // Okoteve traducción
#elif L==7 #elif L==7
"Post %u censurato. Clicca per autorizzarlo."; "Post %u censurato. Clicca per autorizzarlo.";
#elif L==8 #elif L==8
@ -29661,17 +29640,17 @@ const char *Txt_Post_X_banned_Click_to_unban_it = // Warning: it is very importa
const char *Txt_Post_sent = const char *Txt_Post_sent =
#if L==1 #if L==1
"Mensaje enviado."; // Necessita traduccio "Comentario enviado."; // Necessita traduccio
#elif L==2 #elif L==2
"Post sent."; // Need Übersetzung "Post sent."; // Need Übersetzung
#elif L==3 #elif L==3
"Post sent."; "Post sent.";
#elif L==4 #elif L==4
"Mensaje enviado."; "Comentario enviado.";
#elif L==5 #elif L==5
"Post sent."; // Besoin de traduction "Post sent."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje enviado."; // Okoteve traducción "Comentario enviado."; // Okoteve traducción
#elif L==7 #elif L==7
"Post inviato."; "Post inviato.";
#elif L==8 #elif L==8
@ -29682,17 +29661,17 @@ const char *Txt_Post_sent =
const char *Txt_Post_removed = const char *Txt_Post_removed =
#if L==1 #if L==1
"Missatge eliminat."; "Comentari eliminat.";
#elif L==2 #elif L==2
"Nachricht entfernt."; "Nachricht entfernt.";
#elif L==3 #elif L==3
"Post removed."; "Post removed.";
#elif L==4 #elif L==4
"Mensaje eliminado."; "Comentario eliminado.";
#elif L==5 #elif L==5
"Message supprim&eacute;."; "Message supprim&eacute;.";
#elif L==6 #elif L==6
"Mensaje eliminado."; // Okoteve traducción "Comentario eliminado."; // Okoteve traducción
#elif L==7 #elif L==7
"Post rimosso."; "Post rimosso.";
#elif L==8 #elif L==8
@ -29703,17 +29682,17 @@ const char *Txt_Post_removed =
const char *Txt_Post_unbanned = const char *Txt_Post_unbanned =
#if L==1 #if L==1
"Mensaje permitido"; // Necessita traduccio "Comentario permitido"; // Necessita traduccio
#elif L==2 #elif L==2
"Post unbanned."; // Need Übersetzung "Post unbanned."; // Need Übersetzung
#elif L==3 #elif L==3
"Post unbanned"; "Post unbanned";
#elif L==4 #elif L==4
"Mensaje permitido"; "Comentario permitido";
#elif L==5 #elif L==5
"Post unbanned."; // Besoin de traduction "Post unbanned."; // Besoin de traduction
#elif L==6 #elif L==6
"Mensaje permitido"; // Okoteve traducción "Comentario permitido"; // Okoteve traducción
#elif L==7 #elif L==7
"Post autorizzato."; "Post autorizzato.";
#elif L==8 #elif L==8
@ -29974,15 +29953,15 @@ const char *Txt_Post = // Publish (verb)
const char *Txt_post = const char *Txt_post =
#if L==1 #if L==1
"missatge"; "comentari";
#elif L==2 #elif L==2
"Nachricht"; "Nachricht";
#elif L==3 #elif L==3
"post"; "post";
#elif L==4 #elif L==4
"mensaje"; "comentario";
#elif L==5 #elif L==5
"message"; "post";
#elif L==6 #elif L==6
"marandu"; "marandu";
#elif L==7 #elif L==7
@ -29995,15 +29974,15 @@ const char *Txt_post =
const char *Txt_posts = const char *Txt_posts =
#if L==1 #if L==1
"missatges"; "comentaris";
#elif L==2 #elif L==2
"Nachrichten"; "Nachrichten";
#elif L==3 #elif L==3
"posts"; "posts";
#elif L==4 #elif L==4
"mensajes"; "comentarios";
#elif L==5 #elif L==5
"messages"; "posts";
#elif L==6 #elif L==6
"marandu"; "marandu";
#elif L==7 #elif L==7
@ -37930,17 +37909,17 @@ const char *Txt_SOCIAL_NOTE[Soc_NUM_NOTE_TYPES] =
#endif #endif
, ,
#if L==1 // Soc_NOTE_FORUM_POST #if L==1 // Soc_NOTE_FORUM_POST
"Missatge en un f&ograve;rum" "Comentari en un f&ograve;rum"
#elif L==2 #elif L==2
"Beitr&auml;ge in einem Forum" "Beitr&auml;ge in einem Forum"
#elif L==3 #elif L==3
"Post in a forum" "Post in a forum"
#elif L==4 #elif L==4
"Mensaje en un foro" "Comentario en un foro"
#elif L==5 #elif L==5
"Message dans un forum" "Post dans un forum"
#elif L==6 #elif L==6
"Mensaje en un foro" // Okoteve traducción "Comentario en un foro" // Okoteve traducción
#elif L==7 #elif L==7
"Post in un forum" "Post in un forum"
#elif L==8 #elif L==8
@ -47290,7 +47269,7 @@ const char *Txt_This_link_will_remain_active_as_long_as_your_user_s_account_exis
const char *Txt_This_post_has_been_banned_probably_for_not_satisfy_the_rules_of_the_forums = const char *Txt_This_post_has_been_banned_probably_for_not_satisfy_the_rules_of_the_forums =
#if L==1 #if L==1
"Este mensaje ha sido censurado," "Este comentario ha sido censurado,"
" probablemente por no cumplir las normas de los foros."; // Necessita traduccio " probablemente por no cumplir las normas de los foros."; // Necessita traduccio
#elif L==2 #elif L==2
"This post has been banned," "This post has been banned,"
@ -47299,13 +47278,13 @@ const char *Txt_This_post_has_been_banned_probably_for_not_satisfy_the_rules_of_
"This post has been banned," "This post has been banned,"
" probably for not satisfy the rules of the forums."; " probably for not satisfy the rules of the forums.";
#elif L==4 #elif L==4
"Este mensaje ha sido censurado," "Este comentario ha sido censurado,"
" probablemente por no cumplir las normas de los foros."; " probablemente por no cumplir las normas de los foros.";
#elif L==5 #elif L==5
"This post has been banned," "This post has been banned,"
" probably for not satisfy the rules of the forums."; // Besoin de traduction " probably for not satisfy the rules of the forums."; // Besoin de traduction
#elif L==6 #elif L==6
"Este mensaje ha sido censurado," "Este comentario ha sido censurado,"
" probablemente por no cumplir las normas de los foros."; // Okoteve traducción " probablemente por no cumplir las normas de los foros."; // Okoteve traducción
#elif L==7 #elif L==7
"Questo post &egrave; stato censurato," "Questo post &egrave; stato censurato,"
@ -47509,17 +47488,17 @@ const char *Txt_Thread_X_removed = // Warning: it is very important to include %
const char *Txt_Thread_with_posts_from_you = const char *Txt_Thread_with_posts_from_you =
#if L==1 #if L==1
"Discusi&oacute;n con mensajes de usted."; // Necessita traduccio "Discusi&oacute;n con comentarios de usted."; // Necessita traduccio
#elif L==2 #elif L==2
"Thread with posts from you."; // Need Übersetzung "Thread with posts from you."; // Need Übersetzung
#elif L==3 #elif L==3
"Thread with posts from you."; "Thread with posts from you.";
#elif L==4 #elif L==4
"Discusi&oacute;n con mensajes de usted."; "Discusi&oacute;n con comentarios de usted.";
#elif L==5 #elif L==5
"Thread with posts from you."; // Besoin de traduction "Thread with posts from you."; // Besoin de traduction
#elif L==6 #elif L==6
"Discusi&oacute;n con mensajes de usted."; // Okoteve traducción "Discusi&oacute;n con comentarios de usted."; // Okoteve traducción
#elif L==7 #elif L==7
"Discussione con post per te."; "Discussione con post per te.";
#elif L==8 #elif L==8
@ -51293,17 +51272,17 @@ const char *Txt_With_institutions =
const char *Txt_with_new_posts = const char *Txt_with_new_posts =
#if L==1 #if L==1
"con mensajes nuevos"; // Necessita traduccio "con comentarios nuevos"; // Necessita traduccio
#elif L==2 #elif L==2
"mit neuen Beitr&auml;ge"; "mit neuen Beitr&auml;ge";
#elif L==3 #elif L==3
"with new posts"; "with new posts";
#elif L==4 #elif L==4
"con mensajes nuevos"; "con comentarios nuevos";
#elif L==5 #elif L==5
"avec de nouveaux messages"; "avec de nouveaux posts";
#elif L==6 #elif L==6
"con mensajes nuevos"; // Okoteve traducción "con comentarios nuevos"; // Okoteve traducción
#elif L==7 #elif L==7
"con nuovi post"; "con nuovi post";
#elif L==8 #elif L==8
@ -53628,17 +53607,17 @@ const char *Txt_You_have_to_register_compulsorily_in_one_group_of_type_X = // Wa
const char *Txt_You_have_written_1_post_in_this_thread = const char *Txt_You_have_written_1_post_in_this_thread =
#if L==1 #if L==1
"Usted ha escrito 1 mensaje en esta discusi&oacute;n"; // Necessita traduccio "Usted ha escrito 1 comentario en esta discusi&oacute;n"; // Necessita traduccio
#elif L==2 #elif L==2
"Sie haben 1 Nachricht in diesem Thread"; "Sie haben 1 Nachricht in diesem Thread";
#elif L==3 #elif L==3
"You have written 1 post in this thread"; "You have written 1 post in this thread";
#elif L==4 #elif L==4
"Usted ha escrito 1 mensaje en esta discusi&oacute;n"; "Usted ha escrito 1 comentario en esta discusi&oacute;n";
#elif L==5 #elif L==5
"Vous avez &eacute;crit 1 message dans ce fil"; "Vous avez &eacute;crit 1 post dans ce fil";
#elif L==6 #elif L==6
"Usted ha escrito 1 mensaje en esta discusi&oacute;n"; // Okoteve traducción "Usted ha escrito 1 comentario en esta discusi&oacute;n"; // Okoteve traducción
#elif L==7 #elif L==7
"Hai scritto 1 post in questa discussione"; "Hai scritto 1 post in questa discussione";
#elif L==8 #elif L==8
@ -53649,17 +53628,17 @@ const char *Txt_You_have_written_1_post_in_this_thread =
const char *Txt_You_have_written_X_posts_in_this_thread = // Warning: it is very important to include %u in the following sentences const char *Txt_You_have_written_X_posts_in_this_thread = // Warning: it is very important to include %u in the following sentences
#if L==1 #if L==1
"Usted ha escrito %u mensajes en esta discusi&oacute;n"; // Necessita traduccio "Usted ha escrito %u comentarios en esta discusi&oacute;n"; // Necessita traduccio
#elif L==2 #elif L==2
"Sie haben %u Nachrichten in diesem Thread"; "Sie haben %u Nachrichten in diesem Thread";
#elif L==3 #elif L==3
"You have written %u posts in this thread"; "You have written %u posts in this thread";
#elif L==4 #elif L==4
"Usted ha escrito %u mensajes en esta discusi&oacute;n"; "Usted ha escrito %u comentarios en esta discusi&oacute;n";
#elif L==5 #elif L==5
"Vous avez &eacute;crit %u messages dans ce fil"; "Vous avez &eacute;crit %u posts dans ce fil";
#elif L==6 #elif L==6
"Usted ha escrito %u mensajes en esta discusi&oacute;n"; // Okoteve traducción "Usted ha escrito %u comentarios en esta discusi&oacute;n"; // Okoteve traducción
#elif L==7 #elif L==7
"Hai scritto %u post in questa discussione"; "Hai scritto %u post in questa discussione";
#elif L==8 #elif L==8

View File

@ -2813,7 +2813,7 @@ int swad__getNotifications (struct soap *soap,
struct Degree Deg; struct Degree Deg;
struct Course Crs; struct Course Crs;
long Cod; long Cod;
struct Forum WhichForum; struct Forum ForumSelected;
char ForumName[For_MAX_BYTES_FORUM_NAME + 1]; char ForumName[For_MAX_BYTES_FORUM_NAME + 1];
char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1]; char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1];
char *ContentStr; char *ContentStr;
@ -2948,8 +2948,8 @@ int swad__getNotifications (struct soap *soap,
if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE || if (NotifyEvent == Ntf_EVENT_FORUM_POST_COURSE ||
NotifyEvent == Ntf_EVENT_FORUM_REPLY) NotifyEvent == Ntf_EVENT_FORUM_REPLY)
{ {
For_GetForumTypeAndLocationOfAPost (Cod,&WhichForum); For_GetForumTypeAndLocationOfAPost (Cod,&ForumSelected);
For_SetForumName (&WhichForum, For_SetForumName (&ForumSelected,
ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language
sprintf (getNotificationsOut->notificationsArray.__ptr[NumNotif].location,"%s: %s", sprintf (getNotificationsOut->notificationsArray.__ptr[NumNotif].location,"%s: %s",
Txt_Forum,ForumName); Txt_Forum,ForumName);