");
Pag_WriteLinksToPages (WhatPaginate,
ThrCod,
Pagination,true,NULL,"PAG_TXT",false);
HTM_DIV_End ();
}
/*****************************************************************************/
/********************** Show links to pages of messages **********************/
/*****************************************************************************/
void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
long ThrCod,
struct Pagination *Pagination,
bool FirstMsgEnabled,const char *Subject,const char *Font,
bool LinkToPagCurrent)
{
extern const char *Txt_Page_X_of_Y;
extern const char *Txt_FORUM_Post_banned;
unsigned NumPage;
char LinkStyle[64];
/***** Link to page 1, including a text *****/
if (Subject)
{
fprintf (Gbl.F.Out,"
");
if (LinkToPagCurrent)
{
switch (WhatPaginate)
{
case Pag_ASSIGNMENTS:
Frm_StartFormAnchor (ActSeeAsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_PROJECTS:
Frm_StartFormAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.SelectedOrder,
1,
-1L);
break;
case Pag_GAMES:
Frm_StartFormAnchor (ActSeeAllGam,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Frm_StartFormAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Frm_StartFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Att_PutHiddenParamAttOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_THREADS_FORUM:
Frm_StartFormAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (1, // Page of threads = first
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM:
Frm_StartFormAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Gbl.Forum.CurrentPageThrs, // Page of threads = current
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break;
case Pag_MESSAGES_RECEIVED:
Frm_StartFormAnchor (ActSeeRcvMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MESSAGES_SENT:
Frm_StartFormAnchor (ActSeeSntMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MY_AGENDA:
Frm_StartFormAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
Gbl.Agenda.PrivatPublicEvents,
Gbl.Agenda.HiddenVisiblEvents,
1,
-1L);
break;
case Pag_ANOTHER_AGENDA:
Frm_StartFormAnchor (ActSeeUsrAgd,Pagination->Anchor);
Agd_PutHiddenParamEventsOrder ();
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Usr_PutParamOtherUsrCodEncrypted ();
break;
}
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Page_X_of_Y,
1,Pagination->NumPags);
Frm_LinkFormSubmit (Gbl.Title,Font,NULL);
}
else
fprintf (Gbl.F.Out,"",Font);
if (FirstMsgEnabled)
fprintf (Gbl.F.Out,"%s",Subject);
else
fprintf (Gbl.F.Out,"[%s]",Txt_FORUM_Post_banned);
if (LinkToPagCurrent)
{
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
}
else
fprintf (Gbl.F.Out,"");
HTM_DIV_End ();
}
/***** Links to several pages start here *****/
if (Pagination->MoreThanOnePage)
{
snprintf (LinkStyle,sizeof (LinkStyle),
"PAG %s",
Font);
/***** Possible link to page 1 *****/
if (Pagination->StartPage > 1)
{
switch (WhatPaginate)
{
case Pag_ASSIGNMENTS:
Frm_StartFormAnchor (ActSeeAsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_PROJECTS:
Frm_StartFormAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.SelectedOrder,
1,
-1L);
break;
case Pag_GAMES:
Frm_StartFormAnchor (ActSeeAllGam,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Frm_StartFormAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Frm_StartFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Att_PutHiddenParamAttOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_THREADS_FORUM:
Frm_StartFormAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (1, // Page of threads = first
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM:
Frm_StartFormAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Gbl.Forum.CurrentPageThrs, // Page of threads = current
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break;
case Pag_MESSAGES_RECEIVED:
Frm_StartFormAnchor (ActSeeRcvMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MESSAGES_SENT:
Frm_StartFormAnchor (ActSeeSntMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MY_AGENDA:
Frm_StartFormAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
Gbl.Agenda.PrivatPublicEvents,
Gbl.Agenda.HiddenVisiblEvents,
1,
-1L);
break;
case Pag_ANOTHER_AGENDA:
Frm_StartFormAnchor (ActSeeUsrAgd,Pagination->Anchor);
Agd_PutHiddenParamEventsOrder ();
Pag_PutHiddenParamPagNum (WhatPaginate,1);
Usr_PutParamOtherUsrCodEncrypted ();
break;
}
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Page_X_of_Y,
1,Pagination->NumPags);
Frm_LinkFormSubmit (Gbl.Title,LinkStyle,NULL);
fprintf (Gbl.F.Out,"1"
"");
Frm_EndForm ();
if (Pagination->LeftPage > 2)
fprintf (Gbl.F.Out,"…",Font);
}
/***** Posible link to page left *****/
if (Pagination->LeftPage > 1 &&
Pagination->LeftPage < Pagination->StartPage)
{
switch (WhatPaginate)
{
case Pag_ASSIGNMENTS:
Frm_StartFormAnchor (ActSeeAsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_PROJECTS:
Frm_StartFormAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.SelectedOrder,
Pagination->LeftPage,
-1L);
break;
case Pag_GAMES:
Frm_StartFormAnchor (ActSeeAllGam,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Frm_StartFormAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Frm_StartFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Att_PutHiddenParamAttOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_THREADS_FORUM:
Frm_StartFormAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Pagination->LeftPage, // Page of threads = left
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM:
Frm_StartFormAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Gbl.Forum.CurrentPageThrs, // Page of threads = current
Pagination->LeftPage, // Page of posts = left
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break;
case Pag_MESSAGES_RECEIVED:
Frm_StartFormAnchor (ActSeeRcvMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MESSAGES_SENT:
Frm_StartFormAnchor (ActSeeSntMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MY_AGENDA:
Frm_StartFormAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
Gbl.Agenda.PrivatPublicEvents,
Gbl.Agenda.HiddenVisiblEvents,
Pagination->LeftPage,
-1L);
break;
case Pag_ANOTHER_AGENDA:
Frm_StartFormAnchor (ActSeeUsrAgd,Pagination->Anchor);
Agd_PutHiddenParamEventsOrder ();
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
Usr_PutParamOtherUsrCodEncrypted ();
break;
}
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Page_X_of_Y,
Pagination->LeftPage,
Pagination->NumPags);
Frm_LinkFormSubmit (Gbl.Title,LinkStyle,NULL);
fprintf (Gbl.F.Out,"%u",
Pagination->LeftPage);
Frm_EndForm ();
if (Pagination->LeftPage < Pagination->StartPage - 1)
fprintf (Gbl.F.Out,"…",Font);
}
/***** Loop to put links to the pages around the current one *****/
for (NumPage = Pagination->StartPage;
NumPage <= Pagination->EndPage;
NumPage++)
{
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Page_X_of_Y,
NumPage,Pagination->NumPags);
if (!LinkToPagCurrent && NumPage == Pagination->CurrentPage)
fprintf (Gbl.F.Out,""
"%u"
"",
Gbl.Title,Font,NumPage);
else
{
switch (WhatPaginate)
{
case Pag_ASSIGNMENTS:
Frm_StartFormAnchor (ActSeeAsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_PROJECTS:
Frm_StartFormAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.SelectedOrder,
NumPage,
-1L);
break;
case Pag_GAMES:
Frm_StartFormAnchor (ActSeeAllGam,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Frm_StartFormAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Frm_StartFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Att_PutHiddenParamAttOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_THREADS_FORUM:
Frm_StartFormAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (NumPage, // Page of threads = number of page
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM:
Frm_StartFormAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Gbl.Forum.CurrentPageThrs, // Page of threads = current
NumPage, // Page of posts = number of page
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break;
case Pag_MESSAGES_RECEIVED:
Frm_StartFormAnchor (ActSeeRcvMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MESSAGES_SENT:
Frm_StartFormAnchor (ActSeeSntMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MY_AGENDA:
Frm_StartFormAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
Gbl.Agenda.PrivatPublicEvents,
Gbl.Agenda.HiddenVisiblEvents,
NumPage,
-1L);
break;
case Pag_ANOTHER_AGENDA:
Frm_StartFormAnchor (ActSeeUsrAgd,Pagination->Anchor);
Agd_PutHiddenParamEventsOrder ();
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
Usr_PutParamOtherUsrCodEncrypted ();
break;
}
Frm_LinkFormSubmit (Gbl.Title,LinkStyle,NULL);
fprintf (Gbl.F.Out,"%u",
NumPage);
Frm_EndForm ();
}
}
/***** Posible link to page right *****/
if (Pagination->RightPage > Pagination->EndPage &&
Pagination->RightPage < Pagination->NumPags)
{
if (Pagination->RightPage > Pagination->EndPage + 1)
fprintf (Gbl.F.Out,"…",Font);
switch (WhatPaginate)
{
case Pag_ASSIGNMENTS:
Frm_StartFormAnchor (ActSeeAsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_PROJECTS:
Frm_StartFormAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.SelectedOrder,
Pagination->RightPage,
-1L);
break;
case Pag_GAMES:
Frm_StartFormAnchor (ActSeeAllGam,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Frm_StartFormAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Frm_StartFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Att_PutHiddenParamAttOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_THREADS_FORUM:
Frm_StartFormAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Pagination->RightPage, // Page of threads = right
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM:
Frm_StartFormAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Gbl.Forum.CurrentPageThrs, // Page of threads = current
Pagination->RightPage, // Page of posts = right
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break;
case Pag_MESSAGES_RECEIVED:
Frm_StartFormAnchor (ActSeeRcvMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MESSAGES_SENT:
Frm_StartFormAnchor (ActSeeSntMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MY_AGENDA:
Frm_StartFormAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
Gbl.Agenda.PrivatPublicEvents,
Gbl.Agenda.HiddenVisiblEvents,
Pagination->RightPage,
-1L);
break;
case Pag_ANOTHER_AGENDA:
Frm_StartFormAnchor (ActSeeUsrAgd,Pagination->Anchor);
Agd_PutHiddenParamEventsOrder ();
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
Usr_PutParamOtherUsrCodEncrypted ();
break;
}
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Page_X_of_Y,
Pagination->RightPage,Pagination->NumPags);
Frm_LinkFormSubmit (Gbl.Title,LinkStyle,NULL);
fprintf (Gbl.F.Out,"%u",Pagination->RightPage);
Frm_EndForm ();
}
/***** Possible link to last page *****/
if (Pagination->EndPage < Pagination->NumPags)
{
if (Pagination->NumPags > Pagination->RightPage + 1)
fprintf (Gbl.F.Out,"…",Font);
switch (WhatPaginate)
{
case Pag_ASSIGNMENTS:
Frm_StartFormAnchor (ActSeeAsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_PROJECTS:
Frm_StartFormAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.SelectedOrder,
Pagination->NumPags,
-1L);
break;
case Pag_GAMES:
Frm_StartFormAnchor (ActSeeAllGam,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_SURVEYS:
Frm_StartFormAnchor (ActSeeAllSvy,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Asg_PutHiddenParamAsgOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_ATT_EVENTS:
Frm_StartFormAnchor (ActSeeAtt,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Att_PutHiddenParamAttOrder ();
Grp_PutParamWhichGrps ();
break;
case Pag_THREADS_FORUM:
Frm_StartFormAnchor (For_ActionsSeeFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Pagination->NumPags, // Page of threads = last
1, // Page of posts = first
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
-1L,
-1L);
break;
case Pag_POSTS_FORUM:
Frm_StartFormAnchor (For_ActionsSeePstFor[Gbl.Forum.ForumSelected.Type],
Pagination->Anchor);
For_PutAllHiddenParamsForum (Gbl.Forum.CurrentPageThrs, // Page of threads = current
Pagination->NumPags, // Page of posts = last
Gbl.Forum.ForumSet,
Gbl.Forum.ThreadsOrder,
Gbl.Forum.ForumSelected.Location,
ThrCod,
-1L);
break;
case Pag_MESSAGES_RECEIVED:
Frm_StartFormAnchor (ActSeeRcvMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MESSAGES_SENT:
Frm_StartFormAnchor (ActSeeSntMsg,Pagination->Anchor);
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Msg_PutHiddenParamsMsgsFilters ();
break;
case Pag_MY_AGENDA:
Frm_StartFormAnchor (ActSeeMyAgd,Pagination->Anchor);
Agd_PutParamsMyAgenda (Gbl.Agenda.Past__FutureEvents,
Gbl.Agenda.PrivatPublicEvents,
Gbl.Agenda.HiddenVisiblEvents,
Pagination->NumPags,
-1L);
break;
case Pag_ANOTHER_AGENDA:
Frm_StartFormAnchor (ActSeeUsrAgd,Pagination->Anchor);
Agd_PutHiddenParamEventsOrder ();
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
Usr_PutParamOtherUsrCodEncrypted ();
break;
}
snprintf (Gbl.Title,sizeof (Gbl.Title),
Txt_Page_X_of_Y,
Pagination->NumPags,Pagination->NumPags);
Frm_LinkFormSubmit (Gbl.Title,LinkStyle,NULL);
fprintf (Gbl.F.Out,"%u",Pagination->NumPags);
Frm_EndForm ();
}
}
}
/*****************************************************************************/
/******************* Put hidden parameter number of page *********************/
/*****************************************************************************/
void Pag_PutHiddenParamPagNum (Pag_WhatPaginate_t WhatPaginate,unsigned NumPage)
{
Par_PutHiddenParamUnsigned (Pag_ParamNumPag[WhatPaginate],NumPage);
}
/*****************************************************************************/
/************************ Get parameter number of page ***********************/
/*****************************************************************************/
unsigned Pag_GetParamPagNum (Pag_WhatPaginate_t WhatPaginate)
{
unsigned CurrentPage;
/***** Try to get parameter with the number of page *****/
CurrentPage = (unsigned) Par_GetParToUnsignedLong (Pag_ParamNumPag[WhatPaginate],
1,
UINT_MAX,
0);
if (CurrentPage == 0)
/***** If there's no parameter page, return a default value *****/
switch (WhatPaginate)
{
case Pag_MESSAGES_RECEIVED:
if (Gbl.Action.Act == ActExpRcvMsg)
/* Expanding a message, perhaps it is the result of following a link
from a notification of received message */
/* Show the page corresponding to the expanded message */
CurrentPage = 1; // Now set the current page to the first,
// but later the correct page will be calculated
else
/* Show the last visited page */
CurrentPage = Pag_GetLastPageMsgFromSession (Pag_MESSAGES_RECEIVED);
break;
case Pag_MESSAGES_SENT:
/* Show the last visited page */
CurrentPage = Pag_GetLastPageMsgFromSession (Pag_MESSAGES_SENT);
break;
default:
CurrentPage = 1;
break;
}
return CurrentPage;
}
/*****************************************************************************/
/********* Save last page of received/sent messages into session *************/
/*****************************************************************************/
void Pag_SaveLastPageMsgIntoSession (Pag_WhatPaginate_t WhatPaginate,unsigned NumPage)
{
/***** Save last page of received/sent messages *****/
DB_QueryUPDATE ("can not update last page of messages",
"UPDATE sessions SET %s=%u WHERE SessionId='%s'",
WhatPaginate == Pag_MESSAGES_RECEIVED ? "LastPageMsgRcv" :
"LastPageMsgSnt",
NumPage,Gbl.Session.Id);
}
/*****************************************************************************/
/********* Get last page of received/sent messages stored in session *********/
/*****************************************************************************/
unsigned Pag_GetLastPageMsgFromSession (Pag_WhatPaginate_t WhatPaginate)
{
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned long NumRows;
unsigned NumPage;
/***** Get last page of received/sent messages from database *****/
NumRows = DB_QuerySELECT (&mysql_res,"can not get last page of messages",
"SELECT %s FROM sessions"
" WHERE SessionId='%s'",
WhatPaginate == Pag_MESSAGES_RECEIVED ? "LastPageMsgRcv" :
"LastPageMsgSnt",
Gbl.Session.Id);
/***** Check number of rows of the result ****/
if (NumRows != 1)
Lay_ShowErrorAndExit ("Error when getting last page of messages.");
/***** Get last page of messages *****/
row = mysql_fetch_row (mysql_res);
if (sscanf (row[0],"%u",&NumPage) == 1)
if (NumPage == 0)
NumPage = 1;
return NumPage;
}