From 648084e254239fa7ce727f6c816d6fa99224241f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Tue, 11 Apr 2017 15:17:27 +0200 Subject: [PATCH] Version 16.176 --- swad_action.c | 19 +++---- swad_changelog.h | 4 +- swad_forum.c | 3 +- swad_pagination.c | 123 ++++++++++++++++++++++++++-------------------- swad_pagination.h | 1 + 5 files changed, 82 insertions(+), 68 deletions(-) diff --git a/swad_action.c b/swad_action.c index 32fc5b5ab..bad6dc35e 100644 --- a/swad_action.c +++ b/swad_action.c @@ -4736,10 +4736,15 @@ void Act_FormGoToStart (Act_Action_t NextAction) } void Act_FormStart (Act_Action_t NextAction) + { + Act_FormStartAnchor (NextAction,NULL); + } + +void Act_FormStartAnchor (Act_Action_t NextAction,const char *Anchor) { Gbl.Form.Num++; // Initialized to -1. The first time it is incremented, it will be equal to 0 sprintf (Gbl.Form.Id,"form_%d",Gbl.Form.Num); - Act_FormStartInternal (NextAction,true,Gbl.Form.Id,NULL,NULL); // Do put now parameter location (if no open session) + Act_FormStartInternal (NextAction,true,Gbl.Form.Id,Anchor,NULL); // Do put now parameter location (if no open session) } void Act_FormStartOnSubmit (Act_Action_t NextAction,const char *OnSubmit) @@ -4751,17 +4756,7 @@ void Act_FormStartOnSubmit (Act_Action_t NextAction,const char *OnSubmit) void Act_FormStartUnique (Act_Action_t NextAction) { - Gbl.Form.Num++; // Initialized to -1. The first time it is incremented, it will be equal to 0 - sprintf (Gbl.Form.UniqueId,"form_%s_%d", - Gbl.UniqueNameEncrypted,Gbl.Form.Num); - Act_FormStartInternal (NextAction,true,Gbl.Form.UniqueId,NULL,NULL); // Do put now parameter location (if no open session) - } - -void Act_FormStartAnchor (Act_Action_t NextAction,const char *Anchor) - { - Gbl.Form.Num++; // Initialized to -1. The first time it is incremented, it will be equal to 0 - sprintf (Gbl.Form.Id,"form_%d",Gbl.Form.Num); - Act_FormStartInternal (NextAction,true,Gbl.Form.Id,Anchor,NULL); // Do put now parameter location (if no open session) + Act_FormStartUniqueAnchor (NextAction,NULL); } void Act_FormStartUniqueAnchor (Act_Action_t NextAction,const char *Anchor) diff --git a/swad_changelog.h b/swad_changelog.h index 59d3491f9..bebaadfec 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -212,13 +212,15 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.175.1 (2017-04-11)" +#define Log_PLATFORM_VERSION "SWAD 16.176 (2017-04-11)" #define CSS_FILE "swad16.174.1.css" #define JS_FILE "swad16.144.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 /* + Version 16.176: Apr 11, 2017 Code refactoring in pagination. + Changes in layout of forums. (217680 lines) Version 16.175.1: Apr 11, 2017 Changes in layout of forums. (217667 lines) Version 16.175: Apr 11, 2017 Code refactoring and changes in layout of forums. (217669 lines) Version 16.174.1: Apr 10, 2017 Change in layout of frames (white boxes). diff --git a/swad_forum.c b/swad_forum.c index 4ad21c86b..f8a330f1a 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -2736,6 +2736,7 @@ void For_ShowForumThrs (void) PaginationThrs.NumItems = NumThrs; PaginationThrs.CurrentPage = (int) Gbl.Pag.CurrentPage; Pag_CalculatePagination (&PaginationThrs); + PaginationThrs.Anchor = For_ID_FORUM_THREADS_SECTION; Gbl.Pag.CurrentPage = (unsigned) PaginationThrs.CurrentPage; /***** Fill the list of threads for current page *****/ @@ -2768,7 +2769,7 @@ void For_ShowForumThrs (void) Pag_WriteLinksToPagesCentered (Pag_THREADS_FORUM,0,&PaginationThrs); /***** Heading row *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"
" "" "
" diff --git a/swad_pagination.c b/swad_pagination.c index c26a13130..a9c0cb2e8 100644 --- a/swad_pagination.c +++ b/swad_pagination.c @@ -92,6 +92,9 @@ void Pag_CalculatePagination (struct Pagination *Pagination) Pagination->FirstItemVisible = Pagination->LastItemVisible - (Pag_ITEMS_PER_PAGE - 1); if (Pagination->LastItemVisible > Pagination->NumItems) Pagination->LastItemVisible = Pagination->NumItems; + + /* Default anchor */ + Pagination->Anchor = NULL; } /*****************************************************************************/ @@ -126,46 +129,48 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P switch (WhatPaginate) { case Pag_ASSIGNMENTS: - Act_FormStart (ActSeeAsg); + Act_FormStartAnchor (ActSeeAsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_ATT_EVENTS: - Act_FormStart (ActSeeAtt); + Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Att_PutHiddenParamAttOrder (); Grp_PutParamWhichGrps (); break; case Pag_MESSAGES_RECEIVED: - Act_FormStart (ActSeeRcvMsg); + Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_MESSAGES_SENT: - Act_FormStart (ActSeeSntMsg); + Act_FormStartAnchor (ActSeeSntMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (1); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (1); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); break; case Pag_SURVEYS: - Act_FormStart (ActSeeAllSvy); + Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_MY_AGENDA: - Act_FormStart (ActSeeMyAgd); + Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor); Agd_PutParams (Gbl.Agenda.Past__FutureEvents, Gbl.Agenda.PrivatPublicEvents, Gbl.Agenda.HiddenVisiblEvents, @@ -174,7 +179,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P 1); break; case Pag_ANOTHER_AGENDA: - Act_FormStart (ActSeeUsrAgd); + Act_FormStartAnchor (ActSeeUsrAgd,Pagination->Anchor); Agd_PutHiddenParamEventsOrder (); Pag_PutHiddenParamPagNum (1); Usr_PutParamOtherUsrCodEncrypted (); @@ -218,46 +223,48 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P switch (WhatPaginate) { case Pag_ASSIGNMENTS: - Act_FormStart (ActSeeAsg); + Act_FormStartAnchor (ActSeeAsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_ATT_EVENTS: - Act_FormStart (ActSeeAtt); + Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Att_PutHiddenParamAttOrder (); Grp_PutParamWhichGrps (); break; case Pag_MESSAGES_RECEIVED: - Act_FormStart (ActSeeRcvMsg); + Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_MESSAGES_SENT: - Act_FormStart (ActSeeSntMsg); + Act_FormStartAnchor (ActSeeSntMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (1); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (1); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); break; case Pag_SURVEYS: - Act_FormStart (ActSeeAllSvy); + Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor); Pag_PutHiddenParamPagNum (1); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_MY_AGENDA: - Act_FormStart (ActSeeMyAgd); + Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor); Agd_PutParams (Gbl.Agenda.Past__FutureEvents, Gbl.Agenda.PrivatPublicEvents, Gbl.Agenda.HiddenVisiblEvents, @@ -266,7 +273,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P 1); break; case Pag_ANOTHER_AGENDA: - Act_FormStart (ActSeeUsrAgd); + Act_FormStartAnchor (ActSeeUsrAgd,Pagination->Anchor); Agd_PutHiddenParamEventsOrder (); Pag_PutHiddenParamPagNum (1); Usr_PutParamOtherUsrCodEncrypted (); @@ -293,46 +300,48 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P switch (WhatPaginate) { case Pag_ASSIGNMENTS: - Act_FormStart (ActSeeAsg); + Act_FormStartAnchor (ActSeeAsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->LeftPage); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_ATT_EVENTS: - Act_FormStart (ActSeeAtt); + Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->LeftPage); Att_PutHiddenParamAttOrder (); Grp_PutParamWhichGrps (); break; case Pag_MESSAGES_RECEIVED: - Act_FormStart (ActSeeRcvMsg); + Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->LeftPage); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_MESSAGES_SENT: - Act_FormStart (ActSeeSntMsg); + Act_FormStartAnchor (ActSeeSntMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->LeftPage); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->LeftPage); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->LeftPage); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); break; case Pag_SURVEYS: - Act_FormStart (ActSeeAllSvy); + Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->LeftPage); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_MY_AGENDA: - Act_FormStart (ActSeeMyAgd); + Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor); Agd_PutParams (Gbl.Agenda.Past__FutureEvents, Gbl.Agenda.PrivatPublicEvents, Gbl.Agenda.HiddenVisiblEvents, @@ -341,7 +350,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Pagination->LeftPage); break; case Pag_ANOTHER_AGENDA: - Act_FormStart (ActSeeUsrAgd); + Act_FormStartAnchor (ActSeeUsrAgd,Pagination->Anchor); Agd_PutHiddenParamEventsOrder (); Pag_PutHiddenParamPagNum (Pagination->LeftPage); Usr_PutParamOtherUsrCodEncrypted (); @@ -375,46 +384,48 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P switch (WhatPaginate) { case Pag_ASSIGNMENTS: - Act_FormStart (ActSeeAsg); + Act_FormStartAnchor (ActSeeAsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (NumPage); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_ATT_EVENTS: - Act_FormStart (ActSeeAtt); + Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (NumPage); Att_PutHiddenParamAttOrder (); Grp_PutParamWhichGrps (); break; case Pag_MESSAGES_RECEIVED: - Act_FormStart (ActSeeRcvMsg); + Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (NumPage); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_MESSAGES_SENT: - Act_FormStart (ActSeeSntMsg); + Act_FormStartAnchor (ActSeeSntMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (NumPage); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (NumPage); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (NumPage); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); break; case Pag_SURVEYS: - Act_FormStart (ActSeeAllSvy); + Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor); Pag_PutHiddenParamPagNum (NumPage); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_MY_AGENDA: - Act_FormStart (ActSeeMyAgd); + Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor); Agd_PutParams (Gbl.Agenda.Past__FutureEvents, Gbl.Agenda.PrivatPublicEvents, Gbl.Agenda.HiddenVisiblEvents, @@ -423,7 +434,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P NumPage); break; case Pag_ANOTHER_AGENDA: - Act_FormStart (ActSeeUsrAgd); + Act_FormStartAnchor (ActSeeUsrAgd,Pagination->Anchor); Agd_PutHiddenParamEventsOrder (); Pag_PutHiddenParamPagNum (NumPage); Usr_PutParamOtherUsrCodEncrypted (); @@ -453,46 +464,48 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P switch (WhatPaginate) { case Pag_ASSIGNMENTS: - Act_FormStart (ActSeeAsg); + Act_FormStartAnchor (ActSeeAsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->RightPage); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_ATT_EVENTS: - Act_FormStart (ActSeeAtt); + Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->RightPage); Att_PutHiddenParamAttOrder (); Grp_PutParamWhichGrps (); break; case Pag_MESSAGES_RECEIVED: - Act_FormStart (ActSeeRcvMsg); + Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->RightPage); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_MESSAGES_SENT: - Act_FormStart (ActSeeSntMsg); + Act_FormStartAnchor (ActSeeSntMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->RightPage); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->RightPage); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->RightPage); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); break; case Pag_SURVEYS: - Act_FormStart (ActSeeAllSvy); + Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->RightPage); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_MY_AGENDA: - Act_FormStart (ActSeeMyAgd); + Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor); Agd_PutParams (Gbl.Agenda.Past__FutureEvents, Gbl.Agenda.PrivatPublicEvents, Gbl.Agenda.HiddenVisiblEvents, @@ -501,7 +514,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Pagination->RightPage); break; case Pag_ANOTHER_AGENDA: - Act_FormStart (ActSeeUsrAgd); + Act_FormStartAnchor (ActSeeUsrAgd,Pagination->Anchor); Agd_PutHiddenParamEventsOrder (); Pag_PutHiddenParamPagNum (Pagination->RightPage); Usr_PutParamOtherUsrCodEncrypted (); @@ -528,46 +541,48 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P switch (WhatPaginate) { case Pag_ASSIGNMENTS: - Act_FormStart (ActSeeAsg); + Act_FormStartAnchor (ActSeeAsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->NumPags); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_ATT_EVENTS: - Act_FormStart (ActSeeAtt); + Act_FormStartAnchor (ActSeeAtt,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->NumPags); Att_PutHiddenParamAttOrder (); Grp_PutParamWhichGrps (); break; case Pag_MESSAGES_RECEIVED: - Act_FormStart (ActSeeRcvMsg); + Act_FormStartAnchor (ActSeeRcvMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->NumPags); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_MESSAGES_SENT: - Act_FormStart (ActSeeSntMsg); + Act_FormStartAnchor (ActSeeSntMsg,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->NumPags); Msg_PutHiddenParamsMsgsFilters (); break; case Pag_THREADS_FORUM: - Act_FormStart (For_ActionsSeeFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeeFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->NumPags); For_PutAllHiddenParamsForum (); break; case Pag_POSTS_FORUM: - Act_FormStart (For_ActionsSeePstFor[Gbl.Forum.Type]); + Act_FormStartAnchor (For_ActionsSeePstFor[Gbl.Forum.Type], + Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->NumPags); For_PutHiddenParamThrCod (ThrCod); For_PutAllHiddenParamsForum (); break; case Pag_SURVEYS: - Act_FormStart (ActSeeAllSvy); + Act_FormStartAnchor (ActSeeAllSvy,Pagination->Anchor); Pag_PutHiddenParamPagNum (Pagination->NumPags); Asg_PutHiddenParamAsgOrder (); Grp_PutParamWhichGrps (); break; case Pag_MY_AGENDA: - Act_FormStart (ActSeeMyAgd); + Act_FormStartAnchor (ActSeeMyAgd,Pagination->Anchor); Agd_PutParams (Gbl.Agenda.Past__FutureEvents, Gbl.Agenda.PrivatPublicEvents, Gbl.Agenda.HiddenVisiblEvents, @@ -576,7 +591,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P Pagination->NumPags); break; case Pag_ANOTHER_AGENDA: - Act_FormStart (ActSeeUsrAgd); + Act_FormStartAnchor (ActSeeUsrAgd,Pagination->Anchor); Agd_PutHiddenParamEventsOrder (); Pag_PutHiddenParamPagNum (Pagination->NumPags); Usr_PutParamOtherUsrCodEncrypted (); diff --git a/swad_pagination.h b/swad_pagination.h index fb68ad3d8..f118fe6aa 100644 --- a/swad_pagination.h +++ b/swad_pagination.h @@ -62,6 +62,7 @@ struct Pagination // Used for threads and messages pagination unsigned FirstItemVisible; // 1, 2, 3... unsigned LastItemVisible; // 1, 2, 3... bool MoreThanOnePage; + char *Anchor; // Anchor in forms. Use NULL when not needed }; /*****************************************************************************/