");
Frm_StartForm (ActClkBan);
Ban_PutParamBanCod (Gbl.Banners.Lst[NumBan].BanCod);
Par_PutHiddenParamString ("URL",Gbl.Banners.Lst[NumBan].WWW);
Frm_LinkFormSubmit (Gbl.Banners.Lst[NumBan].FullName,"BANNER",NULL);
fprintf (Gbl.F.Out,"
"
"",
Cfg_URL_BANNER_PUBLIC,
Gbl.Banners.Lst[NumBan].Img,
Gbl.Banners.Lst[NumBan].ShrtName,
Gbl.Banners.Lst[NumBan].FullName);
Frm_EndForm ();
fprintf (Gbl.F.Out,"
");
}
/***** Free list of banners *****/
Ban_FreeListBanners ();
}
/*****************************************************************************/
/************************* Go to a banner when clicked ***********************/
/*****************************************************************************/
void Ban_ClickOnBanner (void)
{
struct Banner Ban;
/***** Get banner code *****/
if ((Ban.BanCod = Ban_GetParamBanCod ()) == -1L)
Lay_ShowErrorAndExit ("Code of banner is missing.");
/***** Get data of the banner from database *****/
Ban_GetDataOfBannerByCod (&Ban);
/***** Set banner clicked in order to log it *****/
Gbl.Banners.BanCodClicked = Ban.BanCod;
/***** Download the file *****/
fprintf (stdout,"Location: %s\n\n",Ban.WWW);
// TODO: Put headers Content-type and Content-disposition:
// See: http://stackoverflow.com/questions/381954/how-do-i-fix-firefox-trying-to-save-image-as-htm
// http://elouai.com/force-download.php
Gbl.Layout.HTMLStartWritten =
Gbl.Layout.DivsEndWritten =
Gbl.Layout.HTMLEndWritten = true; // Don't write HTML at all
}
/*****************************************************************************/
/************************* Banner constructor/destructor **********************/
/*****************************************************************************/
static void Ban_EditingBannerConstructor (void)
{
/***** Pointer must be NULL *****/
if (Ban_EditingBan != NULL)
Lay_ShowErrorAndExit ("Error initializing banner.");
/***** Allocate memory for banner *****/
if ((Ban_EditingBan = (struct Banner *) malloc (sizeof (struct Banner))) == NULL)
Lay_ShowErrorAndExit ("Error allocating memory for banner.");
/***** Reset banner *****/
Ban_EditingBan->BanCod = -1L;
Ban_EditingBan->Hidden = true;
Ban_EditingBan->ShrtName[0] = '\0';
Ban_EditingBan->FullName[0] = '\0';
Ban_EditingBan->Img[0] = '\0';
Ban_EditingBan->WWW[0] = '\0';
}
static void Ban_EditingBannerDestructor (void)
{
/***** Free memory used for place *****/
if (Ban_EditingBan != NULL)
{
free ((void *) Ban_EditingBan);
Ban_EditingBan = NULL;
}
}