Version 20.68.7: Apr 29, 2021 Code refactoring in timeline.

This commit is contained in:
acanas 2021-04-29 23:35:21 +02:00
parent 7dfcd428eb
commit 573bcd95b3
6 changed files with 101 additions and 89 deletions

View File

@ -600,13 +600,14 @@ TODO: Salvador Romero Cort
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria. TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
*/ */
#define Log_PLATFORM_VERSION "SWAD 20.68.6 (2021-04-29)" #define Log_PLATFORM_VERSION "SWAD 20.68.7 (2021-04-29)"
#define CSS_FILE "swad20.45.css" #define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.6.2.js" #define JS_FILE "swad20.6.2.js"
/* /*
TODO: Rename CENTRE to CENTER in help wiki. TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
Version 20.68.7: Apr 29, 2021 Code refactoring in timeline. (309749 lines)
Version 20.68.6: Apr 29, 2021 Code refactoring in timeline. (309738 lines) Version 20.68.6: Apr 29, 2021 Code refactoring in timeline. (309738 lines)
Version 20.68.5: Apr 29, 2021 Fixed bug in matches. Reported by Jesús Garrido Alcázar. (309746 lines) Version 20.68.5: Apr 29, 2021 Fixed bug in matches. Reported by Jesús Garrido Alcázar. (309746 lines)
Version 20.68.4: Apr 27, 2021 Fixed bug in question tags. Reported by Julio Ortega Lopera. (309802 lines) Version 20.68.4: Apr 27, 2021 Fixed bug in question tags. Reported by Julio Ortega Lopera. (309802 lines)

View File

@ -388,8 +388,8 @@ static unsigned Tml_Com_WriteHiddenComms (struct Tml_Timeline *Timeline,
/***** Get comments of this note from database *****/ /***** Get comments of this note from database *****/
NumInitialCommsGot = Tml_DB_GetInitialComms (NotCod, NumInitialCommsGot = Tml_DB_GetInitialComms (NotCod,
NumInitialCommsToGet, NumInitialCommsToGet,
&mysql_res); &mysql_res);
/***** List comments *****/ /***** List comments *****/
HTM_UL_Begin ("id=\"com_%s\" class=\"TL_LIST\"",IdComms); HTM_UL_Begin ("id=\"com_%s\" class=\"TL_LIST\"",IdComms);
@ -478,7 +478,7 @@ static void Tml_Com_LinkToShowComms (Tml_Com_ContractExpand_t ConExp,
/* Icon and text */ /* Icon and text */
Tml_Com_PutIconToToggleComms (IdComms,Icon[ConExp], Tml_Com_PutIconToToggleComms (IdComms,Icon[ConExp],
Str_BuildStringLong (Text[ConExp],(long) NumComms)); Str_BuildStringLong (Text[ConExp],(long) NumComms));
Str_FreeString (); Str_FreeString ();
/* End container */ /* End container */
@ -661,13 +661,12 @@ static void Tml_Com_WriteButtons (const struct Tml_Timeline *Timeline,
Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM, Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM,
Com->PubCod,Com->UsrCod,Com->NumFavs, Com->PubCod,Com->UsrCod,Com->NumFavs,
Tml_Usr_SHOW_FEW_USRS); Tml_Usr_SHOW_FEW_USRS);
HTM_DIV_End (); HTM_DIV_End ();
/***** Foot column 2: icon to remove this comment *****/ /***** Foot column 2: icon to remove this comment *****/
HTM_DIV_Begin ("class=\"TL_REM\""); HTM_DIV_Begin ("class=\"TL_REM\"");
if (Usr_ItsMe (UsrDat->UsrCod)) // I am the author if (Usr_ItsMe (UsrDat->UsrCod)) // I am the author
Tml_Com_PutFormToRemoveComm (Timeline,Com->PubCod); Tml_Com_PutFormToRemoveComm (Timeline,Com->PubCod);
HTM_DIV_End (); HTM_DIV_End ();
/***** End buttons container *****/ /***** End buttons container *****/
@ -957,6 +956,7 @@ void Tml_Com_RemoveComGbl (void)
static void Tml_Com_RemoveComm (void) static void Tml_Com_RemoveComm (void)
{ {
extern const char *Txt_The_post_no_longer_exists; extern const char *Txt_The_post_no_longer_exists;
extern const char *Txt_You_dont_have_permission_to_perform_this_action;
extern const char *Txt_Comment_removed; extern const char *Txt_Comment_removed;
struct Tml_Com_Comment Com; struct Tml_Com_Comment Com;
@ -979,7 +979,7 @@ static void Tml_Com_RemoveComm (void)
if (!Usr_ItsMe (Com.UsrCod)) if (!Usr_ItsMe (Com.UsrCod))
{ {
Med_MediaDestructor (&Com.Content.Media); Med_MediaDestructor (&Com.Content.Media);
Ale_ShowAlert (Ale_ERROR,"You are not the author."); Ale_ShowAlert (Ale_ERROR,Txt_You_dont_have_permission_to_perform_this_action);
return; return;
} }

View File

@ -84,8 +84,8 @@ void Tml_Fav_ShowAllFaversNoteGbl (void)
/***** Write HTML inside DIV with form to fav/unfav *****/ /***** Write HTML inside DIV with form to fav/unfav *****/
Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_NOTE, Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_NOTE,
Not.NotCod,Not.UsrCod,Not.NumFavs, Not.NotCod,Not.UsrCod,Not.NumFavs,
Tml_Usr_SHOW_ALL_USRS); Tml_Usr_SHOW_ALL_USRS);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -110,8 +110,8 @@ void Tml_Fav_FavNoteGbl (void)
/***** Write HTML inside DIV with form to unfav *****/ /***** Write HTML inside DIV with form to unfav *****/
Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_NOTE, Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_NOTE,
Not.NotCod,Not.UsrCod,Not.NumFavs, Not.NotCod,Not.UsrCod,Not.NumFavs,
Tml_Usr_SHOW_FEW_USRS); Tml_Usr_SHOW_FEW_USRS);
} }
void Tml_Fav_UnfNoteUsr (void) void Tml_Fav_UnfNoteUsr (void)
@ -132,8 +132,8 @@ void Tml_Fav_UnfNoteGbl (void)
/***** Write HTML inside DIV with form to fav *****/ /***** Write HTML inside DIV with form to fav *****/
Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_NOTE, Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_NOTE,
Not.NotCod,Not.UsrCod,Not.NumFavs, Not.NotCod,Not.UsrCod,Not.NumFavs,
Tml_Usr_SHOW_FEW_USRS); Tml_Usr_SHOW_FEW_USRS);
} }
static void Tml_Fav_FavNote (struct Tml_Not_Note *Not) static void Tml_Fav_FavNote (struct Tml_Not_Note *Not)
@ -150,7 +150,7 @@ static void Tml_Fav_FavNote (struct Tml_Not_Note *Not)
/***** Trivial check: Have I faved this note? *****/ /***** Trivial check: Have I faved this note? *****/
if (Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_NOTE,Not->NotCod, if (Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_NOTE,Not->NotCod,
Gbl.Usrs.Me.UsrDat.UsrCod)) Gbl.Usrs.Me.UsrDat.UsrCod))
return; return;
/***** Mark note as favourite in database *****/ /***** Mark note as favourite in database *****/
@ -158,7 +158,7 @@ static void Tml_Fav_FavNote (struct Tml_Not_Note *Not)
/***** Update number of times this note is favourited *****/ /***** Update number of times this note is favourited *****/
Not->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_NOTE, Not->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_NOTE,
Not->NotCod,Not->UsrCod); Not->NotCod,Not->UsrCod);
/***** Create notification about favourite post /***** Create notification about favourite post
for the author of the post *****/ for the author of the post *****/
@ -181,7 +181,7 @@ static void Tml_Fav_UnfNote (struct Tml_Not_Note *Not)
/***** Trivial check: Have I faved this note? *****/ /***** Trivial check: Have I faved this note? *****/
if (!Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_NOTE,Not->NotCod, if (!Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_NOTE,Not->NotCod,
Gbl.Usrs.Me.UsrDat.UsrCod)) Gbl.Usrs.Me.UsrDat.UsrCod))
return; return;
/***** Delete the mark as favourite from database *****/ /***** Delete the mark as favourite from database *****/
@ -189,7 +189,7 @@ static void Tml_Fav_UnfNote (struct Tml_Not_Note *Not)
/***** Update number of times this note is favourited *****/ /***** Update number of times this note is favourited *****/
Not->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_NOTE, Not->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_NOTE,
Not->NotCod,Not->UsrCod); Not->NotCod,Not->UsrCod);
/***** Mark possible notifications on this note as removed *****/ /***** Mark possible notifications on this note as removed *****/
OriginalPubCod = Tml_DB_GetPubCodOfOriginalNote (Not->NotCod); OriginalPubCod = Tml_DB_GetPubCodOfOriginalNote (Not->NotCod);
@ -222,8 +222,8 @@ void Tml_Fav_ShowAllFaversComGbl (void)
/***** Write HTML inside DIV with form to fav/unfav *****/ /***** Write HTML inside DIV with form to fav/unfav *****/
Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM, Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM,
Com.PubCod,Com.UsrCod,Com.NumFavs, Com.PubCod,Com.UsrCod,Com.NumFavs,
Tml_Usr_SHOW_ALL_USRS); Tml_Usr_SHOW_ALL_USRS);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -248,8 +248,8 @@ void Tml_Fav_FavCommGbl (void)
/***** Write HTML inside DIV with form to unfav *****/ /***** Write HTML inside DIV with form to unfav *****/
Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM, Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM,
Com.PubCod,Com.UsrCod,Com.NumFavs, Com.PubCod,Com.UsrCod,Com.NumFavs,
Tml_Usr_SHOW_FEW_USRS); Tml_Usr_SHOW_FEW_USRS);
} }
void Tml_Fav_UnfCommUsr (void) void Tml_Fav_UnfCommUsr (void)
@ -270,8 +270,8 @@ void Tml_Fav_UnfCommGbl (void)
/***** Write HTML inside DIV with form to fav *****/ /***** Write HTML inside DIV with form to fav *****/
Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM, Tml_Usr_PutIconFavSha (Tml_Usr_FAV_UNF_COMM,
Com.PubCod,Com.UsrCod,Com.NumFavs, Com.PubCod,Com.UsrCod,Com.NumFavs,
Tml_Usr_SHOW_FEW_USRS); Tml_Usr_SHOW_FEW_USRS);
} }
static void Tml_Fav_FavComm (struct Tml_Com_Comment *Com) static void Tml_Fav_FavComm (struct Tml_Com_Comment *Com)
@ -292,7 +292,7 @@ static void Tml_Fav_FavComm (struct Tml_Com_Comment *Com)
/***** Trivial check: Have I faved this comment? *****/ /***** Trivial check: Have I faved this comment? *****/
if (Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_COMM,Com->PubCod, if (Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_COMM,Com->PubCod,
Gbl.Usrs.Me.UsrDat.UsrCod)) Gbl.Usrs.Me.UsrDat.UsrCod))
{ {
Med_MediaDestructor (&Com->Content.Media); Med_MediaDestructor (&Com->Content.Media);
return; return;
@ -303,7 +303,7 @@ static void Tml_Fav_FavComm (struct Tml_Com_Comment *Com)
/***** Update number of times this comment is favourited *****/ /***** Update number of times this comment is favourited *****/
Com->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_COMM, Com->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_COMM,
Com->PubCod,Com->UsrCod); Com->PubCod,Com->UsrCod);
/***** Create notification about favourite post /***** Create notification about favourite post
for the author of the post *****/ for the author of the post *****/
@ -331,7 +331,7 @@ static void Tml_Fav_UnfComm (struct Tml_Com_Comment *Com)
/***** Trivial check: Have I faved this comment? *****/ /***** Trivial check: Have I faved this comment? *****/
if (!Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_COMM,Com->PubCod, if (!Tml_Usr_CheckIfFavedSharedByUsr (Tml_Usr_FAV_UNF_COMM,Com->PubCod,
Gbl.Usrs.Me.UsrDat.UsrCod)) Gbl.Usrs.Me.UsrDat.UsrCod))
{ {
Med_MediaDestructor (&Com->Content.Media); Med_MediaDestructor (&Com->Content.Media);
return; return;
@ -342,7 +342,7 @@ static void Tml_Fav_UnfComm (struct Tml_Com_Comment *Com)
/***** Update number of times this comment is favourited *****/ /***** Update number of times this comment is favourited *****/
Com->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_COMM, Com->NumFavs = Tml_DB_GetNumFavers (Tml_Usr_FAV_UNF_COMM,
Com->PubCod,Com->UsrCod); Com->PubCod,Com->UsrCod);
/***** Mark possible notifications on this comment as removed *****/ /***** Mark possible notifications on this comment as removed *****/
Ntf_MarkNotifAsRemoved (Ntf_EVENT_TL_FAV,Com->PubCod); Ntf_MarkNotifAsRemoved (Ntf_EVENT_TL_FAV,Com->PubCod);

View File

@ -182,7 +182,8 @@ void Tml_Frm_PutFormToFavUnfShaUns (Tml_Usr_FavSha_t FavSha,long Cod)
/***************** Begin a form in global or user timeline *******************/ /***************** Begin a form in global or user timeline *******************/
/*****************************************************************************/ /*****************************************************************************/
void Tml_Frm_BeginForm (const struct Tml_Timeline *Timeline,Tml_Frm_Action_t Action) void Tml_Frm_BeginForm (const struct Tml_Timeline *Timeline,
Tml_Frm_Action_t Action)
{ {
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0) if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
{ {
@ -208,8 +209,8 @@ void Tml_Frm_EndForm (void)
/*****************************************************************************/ /*****************************************************************************/
void Tml_Frm_PutFormToSeeAllFaversSharers (Tml_Frm_Action_t Action, void Tml_Frm_PutFormToSeeAllFaversSharers (Tml_Frm_Action_t Action,
const char *ParamFormat,long ParamCod, const char *ParamFormat,long ParamCod,
Tml_Usr_HowManyUsrs_t HowManyUsrs) Tml_Usr_HowManyUsrs_t HowManyUsrs)
{ {
extern const char *Txt_View_all_USERS; extern const char *Txt_View_all_USERS;
struct TL_Form Form = struct TL_Form Form =
@ -298,8 +299,8 @@ void Tml_Frm_FormFavSha (const struct TL_Form *Form)
/*****************************************************************************/ /*****************************************************************************/
void Tml_Frm_FormToShowHiddenComms (long NotCod, void Tml_Frm_FormToShowHiddenComms (long NotCod,
char IdComms[Frm_MAX_BYTES_ID + 1], char IdComms[Frm_MAX_BYTES_ID + 1],
unsigned NumInitialComms) unsigned NumInitialComms)
{ {
extern const char *The_ClassFormLinkInBox[The_NUM_THEMES]; extern const char *The_ClassFormLinkInBox[The_NUM_THEMES];
extern const char *Txt_See_the_previous_X_COMMENTS; extern const char *Txt_See_the_previous_X_COMMENTS;
@ -376,8 +377,9 @@ void Tml_Frm_BeginAlertRemove (const char *QuestionTxt)
Ale_ShowAlertAndButton1 (Ale_QUESTION,QuestionTxt); Ale_ShowAlertAndButton1 (Ale_QUESTION,QuestionTxt);
} }
void Tml_Frm_EndAlertRemove (struct Tml_Timeline *Timeline,Tml_Frm_Action_t Action, void Tml_Frm_EndAlertRemove (struct Tml_Timeline *Timeline,
void (*FuncParams) (void *Args)) Tml_Frm_Action_t Action,
void (*FuncParams) (void *Args))
{ {
extern const char *Txt_Remove; extern const char *Txt_Remove;

View File

@ -79,20 +79,22 @@ struct TL_Form
void Tml_Frm_PutFormToFavUnfShaUns (Tml_Usr_FavSha_t FavSha,long Cod); void Tml_Frm_PutFormToFavUnfShaUns (Tml_Usr_FavSha_t FavSha,long Cod);
void Tml_Frm_BeginForm (const struct Tml_Timeline *Timeline,Tml_Frm_Action_t Action); void Tml_Frm_BeginForm (const struct Tml_Timeline *Timeline,
Tml_Frm_Action_t Action);
void Tml_Frm_EndForm (void); void Tml_Frm_EndForm (void);
void Tml_Frm_PutFormToSeeAllFaversSharers (Tml_Frm_Action_t Action, void Tml_Frm_PutFormToSeeAllFaversSharers (Tml_Frm_Action_t Action,
const char *ParamFormat,long ParamCod, const char *ParamFormat,long ParamCod,
Tml_Usr_HowManyUsrs_t HowManyUsrs); Tml_Usr_HowManyUsrs_t HowManyUsrs);
void Tml_Frm_FormFavSha (const struct TL_Form *Form); void Tml_Frm_FormFavSha (const struct TL_Form *Form);
void Tml_Frm_FormToShowHiddenComms (long NotCod, void Tml_Frm_FormToShowHiddenComms (long NotCod,
char IdComms[Frm_MAX_BYTES_ID + 1], char IdComms[Frm_MAX_BYTES_ID + 1],
unsigned NumInitialComms); unsigned NumInitialComms);
void Tml_Frm_BeginAlertRemove (const char *QuestionTxt); void Tml_Frm_BeginAlertRemove (const char *QuestionTxt);
void Tml_Frm_EndAlertRemove (struct Tml_Timeline *Timeline,Tml_Frm_Action_t Action, void Tml_Frm_EndAlertRemove (struct Tml_Timeline *Timeline,
void (*FuncParams) (void *Args)); Tml_Frm_Action_t Action,
void (*FuncParams) (void *Args));
#endif #endif

View File

@ -180,8 +180,8 @@ void Tml_Not_ShowHighlightedNote (struct Tml_Timeline *Timeline,
/* Check and write note with top message */ /* Check and write note with top message */
Tml_Not_CheckAndWriteNoteWithTopMsg (Timeline,Not, Tml_Not_CheckAndWriteNoteWithTopMsg (Timeline,Not,
TopMessages[NotifyEvent], TopMessages[NotifyEvent],
PublisherDat.UsrCod); PublisherDat.UsrCod);
/* End container */ /* End container */
HTM_DIV_End (); HTM_DIV_End ();
@ -485,53 +485,60 @@ static void Tml_Not_WriteLocationInHierarchy (const struct Tml_Not_Note *Not,
const struct Hie_Hierarchy *Hie, const struct Hie_Hierarchy *Hie,
const char ForumName[For_MAX_BYTES_FORUM_NAME + 1]) const char ForumName[For_MAX_BYTES_FORUM_NAME + 1])
{ {
extern const char *Txt_Forum;
extern const char *Txt_Course;
extern const char *Txt_Degree;
extern const char *Txt_Center;
extern const char *Txt_Institution; extern const char *Txt_Institution;
extern const char *Txt_Center;
extern const char *Txt_Degree;
extern const char *Txt_Course;
extern const char *Txt_Forum;
switch (Not->NoteType) /***** Begin container *****/
{ HTM_DIV_Begin ("class=\"TL_LOC\"");
case TL_NOTE_INS_DOC_PUB_FILE:
case TL_NOTE_INS_SHA_PUB_FILE: /***** Write location *****/
/* Write location (institution) in hierarchy */ switch (Not->NoteType)
HTM_DIV_Begin ("class=\"TL_LOC\""); {
HTM_TxtF ("%s: %s",Txt_Institution,Hie->Ins.ShrtName); case TL_NOTE_INS_DOC_PUB_FILE:
HTM_DIV_End (); case TL_NOTE_INS_SHA_PUB_FILE:
break; /* Write location (institution) in hierarchy */
case TL_NOTE_CTR_DOC_PUB_FILE: HTM_TxtF ("%s: %s",
case TL_NOTE_CTR_SHA_PUB_FILE: Txt_Institution,
/* Write location (center) in hierarchy */ Hie->Ins.ShrtName);
HTM_DIV_Begin ("class=\"TL_LOC\""); break;
HTM_TxtF ("%s: %s",Txt_Center,Hie->Ctr.ShrtName); case TL_NOTE_CTR_DOC_PUB_FILE:
HTM_DIV_End (); case TL_NOTE_CTR_SHA_PUB_FILE:
break; /* Write location (center) in hierarchy */
case TL_NOTE_DEG_DOC_PUB_FILE: HTM_TxtF ("%s: %s",
case TL_NOTE_DEG_SHA_PUB_FILE: Txt_Center,
/* Write location (degree) in hierarchy */ Hie->Ctr.ShrtName);
HTM_DIV_Begin ("class=\"TL_LOC\""); break;
HTM_TxtF ("%s: %s",Txt_Degree,Hie->Deg.ShrtName); case TL_NOTE_DEG_DOC_PUB_FILE:
HTM_DIV_End (); case TL_NOTE_DEG_SHA_PUB_FILE:
break; /* Write location (degree) in hierarchy */
case TL_NOTE_CRS_DOC_PUB_FILE: HTM_TxtF ("%s: %s",
case TL_NOTE_CRS_SHA_PUB_FILE: Txt_Degree,
case TL_NOTE_CALL_FOR_EXAM: Hie->Deg.ShrtName);
case TL_NOTE_NOTICE: break;
/* Write location (course) in hierarchy */ case TL_NOTE_CRS_DOC_PUB_FILE:
HTM_DIV_Begin ("class=\"TL_LOC\""); case TL_NOTE_CRS_SHA_PUB_FILE:
HTM_TxtF ("%s: %s",Txt_Course,Hie->Crs.ShrtName); case TL_NOTE_CALL_FOR_EXAM:
HTM_DIV_End (); case TL_NOTE_NOTICE:
break; /* Write location (course) in hierarchy */
case TL_NOTE_FORUM_POST: HTM_TxtF ("%s: %s",
/* Write forum name */ Txt_Course,
HTM_DIV_Begin ("class=\"TL_LOC\""); Hie->Crs.ShrtName);
HTM_TxtF ("%s: %s",Txt_Forum,ForumName); break;
HTM_DIV_End (); case TL_NOTE_FORUM_POST:
break; /* Write forum name */
default: HTM_TxtF ("%s: %s",
break; Txt_Forum,
} ForumName);
break;
default:
break;
}
/***** End container *****/
HTM_DIV_End ();
} }
/*****************************************************************************/ /*****************************************************************************/