mirror of https://github.com/acanas/swad-core.git
Version 16.118.1
This commit is contained in:
parent
a70828bbc5
commit
bde39748d4
18
swad_ID.c
18
swad_ID.c
|
@ -205,27 +205,33 @@ unsigned ID_GetListUsrCodsFromUsrID (struct UsrData *UsrDat,
|
|||
NumID++)
|
||||
{
|
||||
if (NumID)
|
||||
Str_Concat (Query,",",MaxLength);
|
||||
Str_Concat (Query,",",
|
||||
MaxLength);
|
||||
sprintf (SubQuery,"'%s'",UsrDat->IDs.List[NumID].ID);
|
||||
|
||||
Str_Concat (Query,SubQuery,MaxLength);
|
||||
Str_Concat (Query,SubQuery,
|
||||
MaxLength);
|
||||
}
|
||||
Str_Concat (Query,")",MaxLength);
|
||||
Str_Concat (Query,")",
|
||||
MaxLength);
|
||||
|
||||
if (CheckPassword)
|
||||
{
|
||||
if (OnlyConfirmedIDs)
|
||||
Str_Concat (Query," AND usr_IDs.Confirmed='Y'",MaxLength);
|
||||
Str_Concat (Query," AND usr_IDs.Confirmed='Y'",
|
||||
MaxLength);
|
||||
|
||||
// Get user's code if I have written the correct password
|
||||
// or if password in database is empty (new user)
|
||||
sprintf (SubQuery," AND usr_IDs.UsrCod=usr_data.UsrCod"
|
||||
" AND (usr_data.Password='%s' OR usr_data.Password='')",
|
||||
EncryptedPassword);
|
||||
Str_Concat (Query,SubQuery,MaxLength);
|
||||
Str_Concat (Query,SubQuery,
|
||||
MaxLength);
|
||||
}
|
||||
else if (OnlyConfirmedIDs)
|
||||
Str_Concat (Query," AND Confirmed='Y'",MaxLength);
|
||||
Str_Concat (Query," AND Confirmed='Y'",
|
||||
MaxLength);
|
||||
|
||||
ListUsrCods->NumUsrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get user's codes");
|
||||
|
||||
|
|
|
@ -458,8 +458,10 @@ static void Asg_WriteAsgAuthor (struct Assignment *Asg)
|
|||
Usr_MAX_BYTES_SURNAMES);
|
||||
if (UsrDat.Surname2[0])
|
||||
{
|
||||
Str_Concat (Surnames," ",Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat.Surname2,Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames," ",
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat.Surname2,
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
}
|
||||
Str_LimitLengthHTMLStr (FirstName,8);
|
||||
Str_LimitLengthHTMLStr (Surnames,8);
|
||||
|
|
|
@ -500,8 +500,10 @@ static void Att_WriteAttEventAuthor (struct AttendanceEvent *Att)
|
|||
Usr_MAX_BYTES_SURNAMES);
|
||||
if (UsrDat.Surname2[0])
|
||||
{
|
||||
Str_Concat (Surnames," ",Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat.Surname2,Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames," ",
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat.Surname2,
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
}
|
||||
Str_LimitLengthHTMLStr (FirstName,8);
|
||||
Str_LimitLengthHTMLStr (Surnames,8);
|
||||
|
@ -2432,9 +2434,11 @@ static unsigned Att_GetNumStdsFromAListWhoAreInAttEvent (long AttCod,long LstSel
|
|||
NumStd ? ",%ld" :
|
||||
"%ld",
|
||||
LstSelectedUsrCods[NumStd]);
|
||||
Str_Concat (Query,SubQuery,MaxLength);
|
||||
Str_Concat (Query,SubQuery,
|
||||
MaxLength);
|
||||
}
|
||||
Str_Concat (Query,") AND Present='Y'",MaxLength);
|
||||
Str_Concat (Query,") AND Present='Y'",
|
||||
MaxLength);
|
||||
|
||||
NumStdsInAttEvent = (unsigned) DB_QueryCOUNT (Query,"can not get number of students from a list who are registered in an event");
|
||||
|
||||
|
|
|
@ -191,13 +191,14 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.118 (2017-01-16)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.118.1 (2017-01-16)"
|
||||
#define CSS_FILE "swad16.111.5.css"
|
||||
#define JS_FILE "swad16.114.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.118.1: Jan 17, 2017 Code refactoring related to string concatenation. (211850 lines)
|
||||
Version 16.118: Jan 17, 2017 Code refactoring related to string copy. (211676 lines)
|
||||
Version 16.117.1: Jan 16, 2017 Code refactoring related to string concatenation. (211229 lines)
|
||||
Version 16.117: Jan 16, 2017 Code refactoring related to string concatenation. (211244 lines)
|
||||
|
|
75
swad_chat.c
75
swad_chat.c
|
@ -423,11 +423,15 @@ void Cht_OpenChatWindow (void)
|
|||
Usr_MAX_BYTES_FULL_NAME);
|
||||
if (Gbl.Usrs.Me.UsrDat.Surname2[0])
|
||||
{
|
||||
Str_Concat (UsrName," ",Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrName,Gbl.Usrs.Me.UsrDat.Surname2,Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrName," ",
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrName,Gbl.Usrs.Me.UsrDat.Surname2,
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
}
|
||||
Str_Concat (UsrName,", ",Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrName,Gbl.Usrs.Me.UsrDat.FirstName,Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrName,", ",
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrName,Gbl.Usrs.Me.UsrDat.FirstName,
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
|
||||
/***** Build the lists of available rooms *****/
|
||||
sprintf (ListRoomCodes,"#%s",RoomCode);
|
||||
|
@ -438,40 +442,49 @@ void Cht_OpenChatWindow (void)
|
|||
|
||||
if (strcmp (RoomCode,"GBL_USR"))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#GBL_USR",sizeof (ListRoomCodes) - 1);
|
||||
Str_Concat (ListRoomCodes,"|#GBL_USR",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
|
||||
sprintf (RoomShortName,"|%s",Txt_SEX_PLURAL_Abc[Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,sizeof (ListRoomShortNames) - 1);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (RoomFullName,"|%s (%s)",
|
||||
Txt_General,Txt_SEX_PLURAL_abc[Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,sizeof (ListRoomFullNames) - 1);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
}
|
||||
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT)
|
||||
if (strcmp (RoomCode,"GBL_STD"))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#GBL_STD",sizeof (ListRoomCodes) - 1);
|
||||
Str_Concat (ListRoomCodes,"|#GBL_STD",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
|
||||
sprintf (RoomShortName,"|%s",Txt_Students_ABBREVIATION);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,sizeof (ListRoomShortNames) - 1);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (RoomFullName,"|%s (%s)",Txt_General,
|
||||
Txt_ROLES_PLURAL_abc[Rol_STUDENT][Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,sizeof (ListRoomFullNames) - 1);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
}
|
||||
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER)
|
||||
if (strcmp (RoomCode,"GBL_TCH"))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#GBL_TCH",sizeof (ListRoomCodes) - 1);
|
||||
Str_Concat (ListRoomCodes,"|#GBL_TCH",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
|
||||
sprintf (RoomShortName,"|%s",Txt_Teachers_ABBREVIATION);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,sizeof (ListRoomShortNames) - 1);
|
||||
Str_Concat (ListRoomShortNames,RoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (RoomFullName,"|%s (%s)",
|
||||
Txt_General,Txt_ROLES_PLURAL_abc[Rol_TEACHER][Usr_SEX_ALL]);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,sizeof (ListRoomFullNames) - 1);
|
||||
Str_Concat (ListRoomFullNames,RoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
}
|
||||
|
||||
for (NumMyDeg = 0;
|
||||
|
@ -481,20 +494,26 @@ void Cht_OpenChatWindow (void)
|
|||
sprintf (ThisRoomCode,"DEG_%ld",Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod);
|
||||
if (strcmp (RoomCode,ThisRoomCode))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#",sizeof (ListRoomCodes) - 1);
|
||||
Str_Concat (ListRoomCodes,ThisRoomCode,sizeof (ListRoomCodes) - 1);
|
||||
Str_Concat (ListRoomCodes,"|#",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Str_Concat (ListRoomCodes,ThisRoomCode,
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
|
||||
/* Get data of this degree */
|
||||
Deg.DegCod = Gbl.Usrs.Me.MyDegs.Degs[NumMyDeg].DegCod;
|
||||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
|
||||
sprintf (ThisRoomShortName,"%s",Deg.ShrtName);
|
||||
Str_Concat (ListRoomShortNames,"|",sizeof (ListRoomShortNames) - 1);
|
||||
Str_Concat (ListRoomShortNames,ThisRoomShortName,sizeof (ListRoomShortNames) - 1);
|
||||
Str_Concat (ListRoomShortNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShortNames,ThisRoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (ThisRoomFullName,"%s %s",Txt_Degree,Deg.ShrtName);
|
||||
Str_Concat (ListRoomFullNames,"|",sizeof (ListRoomFullNames) - 1);
|
||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,sizeof (ListRoomFullNames) - 1);
|
||||
Str_Concat (ListRoomFullNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -505,20 +524,26 @@ void Cht_OpenChatWindow (void)
|
|||
sprintf (ThisRoomCode,"CRS_%ld",Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod);
|
||||
if (strcmp (RoomCode,ThisRoomCode))
|
||||
{
|
||||
Str_Concat (ListRoomCodes,"|#",sizeof (ListRoomCodes) - 1);
|
||||
Str_Concat (ListRoomCodes,ThisRoomCode,sizeof (ListRoomCodes) - 1);
|
||||
Str_Concat (ListRoomCodes,"|#",
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
Str_Concat (ListRoomCodes,ThisRoomCode,
|
||||
Cht_MAX_LENGTH_ROOM_CODES);
|
||||
|
||||
/* Get data of this course */
|
||||
Crs.CrsCod = Gbl.Usrs.Me.MyCrss.Crss[NumMyCrs].CrsCod;
|
||||
Crs_GetDataOfCourseByCod (&Crs);
|
||||
|
||||
sprintf (ThisRoomShortName,"%s",Crs.ShrtName);
|
||||
Str_Concat (ListRoomShortNames,"|",sizeof (ListRoomShortNames) - 1);
|
||||
Str_Concat (ListRoomShortNames,ThisRoomShortName,sizeof (ListRoomShortNames) - 1);
|
||||
Str_Concat (ListRoomShortNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
Str_Concat (ListRoomShortNames,ThisRoomShortName,
|
||||
Cht_MAX_LENGTH_ROOM_SHRT_NAMES);
|
||||
|
||||
sprintf (ThisRoomFullName,"%s %s",Txt_Course,Crs.ShrtName);
|
||||
Str_Concat (ListRoomFullNames,"|",sizeof (ListRoomFullNames) - 1);
|
||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,sizeof (ListRoomFullNames) - 1);
|
||||
Str_Concat (ListRoomFullNames,"|",
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
Str_Concat (ListRoomFullNames,ThisRoomFullName,
|
||||
Cht_MAX_LENGTH_ROOM_FULL_NAMES);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -969,17 +969,21 @@ void Cty_GetListCountries (Cty_GetExtraData_t GetExtraData)
|
|||
{
|
||||
sprintf (StrField,"countries.Name_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam1,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryNam1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"Name_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam2,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryNam2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
|
||||
sprintf (StrField,"countries.WWW_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW1,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryWWW1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"WWW_%s,",
|
||||
Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW2,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryWWW2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
}
|
||||
|
||||
switch (Gbl.Ctys.SelectedOrderType)
|
||||
|
@ -1258,14 +1262,18 @@ bool Cty_GetDataOfCountryByCod (struct Country *Cty,Cty_GetExtraData_t GetExtraD
|
|||
Lan++)
|
||||
{
|
||||
sprintf (StrField,"countries.Name_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam1,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryNam1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"Name_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam2,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryNam2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
|
||||
sprintf (StrField,"countries.WWW_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW1,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryWWW1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
sprintf (StrField,"WWW_%s,",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW2,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryWWW2,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
}
|
||||
sprintf (Query,"(SELECT countries.Alpha2,%s%sCOUNT(*) AS NumUsrs"
|
||||
" FROM countries,usr_data"
|
||||
|
@ -2114,18 +2122,26 @@ static void Cty_CreateCountry (struct Country *Cty)
|
|||
Lan++)
|
||||
{
|
||||
sprintf (StrField,",Name_%s",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryNam1,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryNam1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
|
||||
Str_Concat (SubQueryNam2,",'" ,Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Str_Concat (SubQueryNam2,Cty->Name[Lan],Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Str_Concat (SubQueryNam2,"'" ,Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Str_Concat (SubQueryNam2,",'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Str_Concat (SubQueryNam2,Cty->Name[Lan],
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
Str_Concat (SubQueryNam2,"'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_NAME);
|
||||
|
||||
sprintf (StrField,",WWW_%s",Txt_STR_LANG_ID[Lan]);
|
||||
Str_Concat (SubQueryWWW1,StrField,Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
Str_Concat (SubQueryWWW1,StrField,
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS);
|
||||
|
||||
Str_Concat (SubQueryWWW2,",'" ,Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Str_Concat (SubQueryWWW2,Cty->WWW[Lan],Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Str_Concat (SubQueryWWW2,"'" ,Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Str_Concat (SubQueryWWW2,",'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Str_Concat (SubQueryWWW2,Cty->WWW[Lan],
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
Str_Concat (SubQueryWWW2,"'",
|
||||
Cty_MAX_LENGTH_SUBQUERY_CTYS_WWW);
|
||||
}
|
||||
sprintf (Query,"INSERT INTO countries (CtyCod,Alpha2%s%s)"
|
||||
" VALUES ('%03ld','%s'%s%s)",
|
||||
|
|
|
@ -330,7 +330,8 @@ void Fil_CreateUpdateFile (const char CurrentName[PATH_MAX + 1],
|
|||
PATH_MAX);
|
||||
NewName[LengthFileRoot] = '\0';
|
||||
sprintf (OldName,"%s%s",NewName,ExtensionOldName);
|
||||
Str_Concat (NewName,".new",PATH_MAX);
|
||||
Str_Concat (NewName,".new",
|
||||
PATH_MAX);
|
||||
|
||||
/* The new file shouldn't exist. If it exists is due to any error when running this CGI formerly
|
||||
and the file was not renamed successfully. In this case, remove it! */
|
||||
|
|
|
@ -8176,8 +8176,10 @@ void Brw_RecFolderFileBrowser (void)
|
|||
|
||||
if (strlen (Path) + 1 + strlen (Gbl.FileBrowser.NewFilFolLnkName) > PATH_MAX)
|
||||
Lay_ShowErrorAndExit ("Path is too long.");
|
||||
Str_Concat (Path,"/",PATH_MAX);
|
||||
Str_Concat (Path,Gbl.FileBrowser.NewFilFolLnkName,PATH_MAX);
|
||||
Str_Concat (Path,"/",
|
||||
PATH_MAX);
|
||||
Str_Concat (Path,Gbl.FileBrowser.NewFilFolLnkName,
|
||||
PATH_MAX);
|
||||
|
||||
/* Create the new directory */
|
||||
if (mkdir (Path,(mode_t) 0xFFF) == 0)
|
||||
|
@ -8450,8 +8452,10 @@ static bool Brw_RcvFileInFileBrw (Brw_UploadType_t UploadType)
|
|||
Gbl.FileBrowser.Priv.FullPathInTree);
|
||||
if (strlen (Path) + 1 + strlen (Gbl.FileBrowser.NewFilFolLnkName) + strlen (".tmp") > PATH_MAX)
|
||||
Lay_ShowErrorAndExit ("Path is too long.");
|
||||
Str_Concat (Path,"/",PATH_MAX);
|
||||
Str_Concat (Path,Gbl.FileBrowser.NewFilFolLnkName,PATH_MAX);
|
||||
Str_Concat (Path,"/",
|
||||
PATH_MAX);
|
||||
Str_Concat (Path,Gbl.FileBrowser.NewFilFolLnkName,
|
||||
PATH_MAX);
|
||||
|
||||
/* Check if the destination file exists */
|
||||
if (Fil_CheckIfPathExists (Path))
|
||||
|
@ -8643,9 +8647,12 @@ void Brw_RecLinkFileBrowser (void)
|
|||
sprintf (Path,"%s/%s",Gbl.FileBrowser.Priv.PathAboveRootFolder,Gbl.FileBrowser.Priv.FullPathInTree);
|
||||
if (strlen (Path) + 1 + strlen (FileName) + strlen (".url") > PATH_MAX)
|
||||
Lay_ShowErrorAndExit ("Path is too long.");
|
||||
Str_Concat (Path,"/",PATH_MAX);
|
||||
Str_Concat (Path,FileName,PATH_MAX);
|
||||
Str_Concat (Path,".url",PATH_MAX);
|
||||
Str_Concat (Path,"/",
|
||||
PATH_MAX);
|
||||
Str_Concat (Path,FileName,
|
||||
PATH_MAX);
|
||||
Str_Concat (Path,".url",
|
||||
PATH_MAX);
|
||||
|
||||
/* Check if the URL file exists */
|
||||
if (Fil_CheckIfPathExists (Path))
|
||||
|
|
|
@ -3108,8 +3108,10 @@ void Grp_GetNamesGrpsStdBelongsTo (long GrpTypCod,long UsrCod,char *GroupNames)
|
|||
|
||||
/* El group name in row[0] */
|
||||
if (NumRow)
|
||||
Str_Concat (GroupNames,", ",MaxLength);
|
||||
Str_Concat (GroupNames,row[0],MaxLength);
|
||||
Str_Concat (GroupNames,", ",
|
||||
MaxLength);
|
||||
Str_Concat (GroupNames,row[0],
|
||||
MaxLength);
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
|
|
|
@ -913,12 +913,14 @@ void Mai_ListEmails (void)
|
|||
LengthStrAddr ++;
|
||||
if (LengthStrAddr > Mai_MAX_LENGTH_STR_ADDR)
|
||||
Lay_ShowErrorAndExit ("The space allocated to store email addresses is full.");
|
||||
Str_Concat (StrAddresses,",",Mai_MAX_LENGTH_STR_ADDR);
|
||||
Str_Concat (StrAddresses,",",
|
||||
Mai_MAX_LENGTH_STR_ADDR);
|
||||
}
|
||||
LengthStrAddr += strlen (UsrDat.Email);
|
||||
if (LengthStrAddr > Mai_MAX_LENGTH_STR_ADDR)
|
||||
Lay_ShowErrorAndExit ("The space allocated to store email addresses is full.");
|
||||
Str_Concat (StrAddresses,UsrDat.Email,Mai_MAX_LENGTH_STR_ADDR);
|
||||
Str_Concat (StrAddresses,UsrDat.Email,
|
||||
Mai_MAX_LENGTH_STR_ADDR);
|
||||
fprintf (Gbl.F.Out,"<a href=\"mailto:%s?subject=%s\">%s</a>",
|
||||
UsrDat.Email,Gbl.CurrentCrs.Crs.FullName,UsrDat.Email);
|
||||
|
||||
|
|
|
@ -1071,10 +1071,13 @@ static void Msg_MakeFilterFromToSubquery (char FilterFromToSubquery[Msg_MAX_LENG
|
|||
Str_GetNextStringUntilSpace (&Ptr,SearchWord,Usr_MAX_LENGTH_USR_NAME_OR_SURNAME);
|
||||
if (strlen (FilterFromToSubquery) + strlen (SearchWord) + 512 > Msg_MAX_LENGTH_MESSAGES_QUERY) // Prevent string overflow
|
||||
break;
|
||||
Str_Concat (FilterFromToSubquery,"%",Msg_MAX_LENGTH_MESSAGES_QUERY);
|
||||
Str_Concat (FilterFromToSubquery,SearchWord,Msg_MAX_LENGTH_MESSAGES_QUERY);
|
||||
Str_Concat (FilterFromToSubquery,"%",
|
||||
Msg_MAX_LENGTH_MESSAGES_QUERY);
|
||||
Str_Concat (FilterFromToSubquery,SearchWord,
|
||||
Msg_MAX_LENGTH_MESSAGES_QUERY);
|
||||
}
|
||||
Str_Concat (FilterFromToSubquery,"%'",Msg_MAX_LENGTH_MESSAGES_QUERY);
|
||||
Str_Concat (FilterFromToSubquery,"%'",
|
||||
Msg_MAX_LENGTH_MESSAGES_QUERY);
|
||||
}
|
||||
else
|
||||
FilterFromToSubquery[0] = '\0';
|
||||
|
|
12
swad_photo.c
12
swad_photo.c
|
@ -1170,12 +1170,16 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
|
|||
Usr_MAX_BYTES_SURNAMES);
|
||||
if (UsrDat->Surname2[0])
|
||||
{
|
||||
Str_Concat (Surnames," ",Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat->Surname2,Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames," ",
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat->Surname2,
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
}
|
||||
Str_LimitLengthHTMLStr (Surnames,23);
|
||||
Str_Concat (ShortName,"<br />",Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (ShortName,Surnames,Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (ShortName,"<br />",
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (ShortName,Surnames,
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
|
||||
Act_SetUniqueId (IdCaption);
|
||||
fprintf (Gbl.F.Out,"<div id=\"%s\" class=\"NOT_SHOWN\">"
|
||||
|
|
|
@ -639,7 +639,8 @@ void Rec_AskConfirmRemFieldWithRecords (unsigned NumRecords)
|
|||
{
|
||||
sprintf (Message_part2,Txt_this_field_is_filled_in_the_records_of_X_students,
|
||||
NumRecords);
|
||||
Str_Concat (Gbl.Message,Message_part2,Lay_MAX_BYTES_ALERT);
|
||||
Str_Concat (Gbl.Message,Message_part2,
|
||||
Lay_MAX_BYTES_ALERT);
|
||||
}
|
||||
Lay_ShowAlert (Lay_WARNING,Gbl.Message);
|
||||
|
||||
|
|
|
@ -1275,18 +1275,26 @@ bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY + 1],
|
|||
Sch_MAX_LENGTH_SEARCH_QUERY) // Prevent string overflow
|
||||
break;
|
||||
if (NumWords)
|
||||
Str_Concat (SearchQuery," AND ",Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,FieldName,Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery," LIKE ",Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery," AND ",
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,FieldName,
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery," LIKE ",
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
if (CharSet)
|
||||
if (CharSet[0])
|
||||
Str_Concat (SearchQuery,CharSet,Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,"'%",Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,SearchWords[NumWords],Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,"%'",Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,CharSet,
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,"'%",
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,SearchWords[NumWords],
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,"%'",
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
if (Collate)
|
||||
if (Collate[0])
|
||||
Str_Concat (SearchQuery,Collate,Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
Str_Concat (SearchQuery,Collate,
|
||||
Sch_MAX_LENGTH_SEARCH_QUERY);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -335,7 +335,8 @@ void Sta_LogAccess (const char *Comments)
|
|||
" VALUES ('%ld','",
|
||||
LogCod);
|
||||
Str_AddStrToQuery (Query,Comments,sizeof (Query));
|
||||
Str_Concat (Query,"')",Sta_MAX_LENGTH_QUERY_LOG);
|
||||
Str_Concat (Query,"')",
|
||||
Sta_MAX_LENGTH_QUERY_LOG);
|
||||
|
||||
if (Gbl.WebService.IsWebService)
|
||||
{
|
||||
|
@ -1113,7 +1114,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
LogTable,
|
||||
(long) Gbl.DateRange.TimeUTC[0],
|
||||
(long) Gbl.DateRange.TimeUTC[1]);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
|
||||
switch (GlobalOrCourse)
|
||||
{
|
||||
|
@ -1129,7 +1131,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
{
|
||||
sprintf (QueryAux," AND %s.CtyCod='%ld'",
|
||||
LogTable,Gbl.CurrentCty.Cty.CtyCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
}
|
||||
break;
|
||||
case Sco_SCOPE_INS:
|
||||
|
@ -1137,7 +1140,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
{
|
||||
sprintf (QueryAux," AND %s.InsCod='%ld'",
|
||||
LogTable,Gbl.CurrentIns.Ins.InsCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
}
|
||||
break;
|
||||
case Sco_SCOPE_CTR:
|
||||
|
@ -1145,7 +1149,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
{
|
||||
sprintf (QueryAux," AND %s.CtrCod='%ld'",
|
||||
LogTable,Gbl.CurrentCtr.Ctr.CtrCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
}
|
||||
break;
|
||||
case Sco_SCOPE_DEG:
|
||||
|
@ -1153,7 +1158,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
{
|
||||
sprintf (QueryAux," AND %s.DegCod='%ld'",
|
||||
LogTable,Gbl.CurrentDeg.Deg.DegCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
}
|
||||
break;
|
||||
case Sco_SCOPE_CRS:
|
||||
|
@ -1161,7 +1167,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
{
|
||||
sprintf (QueryAux," AND %s.CrsCod='%ld'",
|
||||
LogTable,Gbl.CurrentCrs.Crs.CrsCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1225,7 +1232,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
LogTable,Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
break;
|
||||
}
|
||||
Str_Concat (Query,StrRole,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,StrRole,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
|
||||
switch (Gbl.Stat.ClicksGroupedBy)
|
||||
{
|
||||
|
@ -1233,12 +1241,14 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
case Sta_CLICKS_GBL_PER_WEB_SERVICE_FUNCTION:
|
||||
sprintf (QueryAux," AND %s.LogCod=log_ws.LogCod",
|
||||
LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_GBL_PER_BANNER:
|
||||
sprintf (QueryAux," AND %s.LogCod=log_banners.LogCod",
|
||||
LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -1247,7 +1257,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
case Sta_SHOW_COURSE_ACCESSES:
|
||||
sprintf (QueryAux," AND %s.CrsCod='%ld'",
|
||||
LogTable,Gbl.CurrentCrs.Crs.CrsCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
LengthQuery = strlen (Query);
|
||||
NumUsr = 0;
|
||||
Ptr = Gbl.Usrs.Select.All;
|
||||
|
@ -1264,11 +1275,13 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
NumUsr ? " OR %s.UsrCod='%ld'" :
|
||||
" AND (%s.UsrCod='%ld'",
|
||||
LogTable,UsrDat.UsrCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
NumUsr++;
|
||||
}
|
||||
}
|
||||
Str_Concat (Query,")",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,")",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1277,47 +1290,57 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
{
|
||||
sprintf (QueryAux," AND %s.ActCod='%ld'",
|
||||
LogTable,Act_Actions[Gbl.Stat.NumAction].ActCod);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
}
|
||||
|
||||
/* End the query */
|
||||
switch (Gbl.Stat.ClicksGroupedBy)
|
||||
{
|
||||
case Sta_CLICKS_CRS_DETAILED_LIST:
|
||||
Str_Concat (Query," ORDER BY F",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query," ORDER BY F",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_USR:
|
||||
sprintf (QueryAux," GROUP BY %s.UsrCod ORDER BY Num DESC",LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_DAYS:
|
||||
case Sta_CLICKS_GBL_PER_DAYS:
|
||||
Str_Concat (Query," GROUP BY Day DESC",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query," GROUP BY Day DESC",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_DAYS_AND_HOUR:
|
||||
case Sta_CLICKS_GBL_PER_DAYS_AND_HOUR:
|
||||
Str_Concat (Query," GROUP BY Day DESC,Hour",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query," GROUP BY Day DESC,Hour",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_WEEKS:
|
||||
case Sta_CLICKS_GBL_PER_WEEKS:
|
||||
Str_Concat (Query," GROUP BY Week DESC",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query," GROUP BY Week DESC",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_MONTHS:
|
||||
case Sta_CLICKS_GBL_PER_MONTHS:
|
||||
Str_Concat (Query," GROUP BY Month DESC",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query," GROUP BY Month DESC",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_HOUR:
|
||||
case Sta_CLICKS_GBL_PER_HOUR:
|
||||
Str_Concat (Query," GROUP BY Hour",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query," GROUP BY Hour",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_MINUTE:
|
||||
case Sta_CLICKS_GBL_PER_MINUTE:
|
||||
Str_Concat (Query," GROUP BY Minute",Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query," GROUP BY Minute",
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_ACTION:
|
||||
case Sta_CLICKS_GBL_PER_ACTION:
|
||||
sprintf (QueryAux," GROUP BY %s.ActCod ORDER BY Num DESC",LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_GBL_PER_PLUGIN:
|
||||
Str_Concat (Query," GROUP BY log_ws.PlgCod ORDER BY Num DESC",
|
||||
|
@ -1333,23 +1356,28 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
break;
|
||||
case Sta_CLICKS_GBL_PER_COUNTRY:
|
||||
sprintf (QueryAux," GROUP BY %s.CtyCod ORDER BY Num DESC",LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_GBL_PER_INSTITUTION:
|
||||
sprintf (QueryAux," GROUP BY %s.InsCod ORDER BY Num DESC",LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_GBL_PER_CENTRE:
|
||||
sprintf (QueryAux," GROUP BY %s.CtrCod ORDER BY Num DESC",LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_GBL_PER_DEGREE:
|
||||
sprintf (QueryAux," GROUP BY %s.DegCod ORDER BY Num DESC",LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
case Sta_CLICKS_GBL_PER_COURSE:
|
||||
sprintf (QueryAux," GROUP BY %s.CrsCod ORDER BY Num DESC",LogTable);
|
||||
Str_Concat (Query,QueryAux,Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
Str_Concat (Query,QueryAux,
|
||||
Sta_MAX_LENGTH_QUERY_ACCESS);
|
||||
break;
|
||||
}
|
||||
/***** Write query for debug *****/
|
||||
|
|
|
@ -697,8 +697,10 @@ static void Svy_WriteAuthor (struct Survey *Svy)
|
|||
Usr_MAX_BYTES_SURNAMES);
|
||||
if (UsrDat.Surname2[0])
|
||||
{
|
||||
Str_Concat (Surnames," ",Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat.Surname2,Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames," ",
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat.Surname2,
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
}
|
||||
Str_LimitLengthHTMLStr (FirstName,8);
|
||||
Str_LimitLengthHTMLStr (Surnames,8);
|
||||
|
|
|
@ -989,13 +989,15 @@ static void Syl_WriteNumItem (char *StrDst,FILE *FileTgt,int Level,int *CodItem)
|
|||
if (N > 1)
|
||||
{
|
||||
if (StrDst)
|
||||
Str_Concat (StrDst,".",Syl_MAX_LENGTH_ITEM_COD);
|
||||
Str_Concat (StrDst,".",
|
||||
Syl_MAX_LENGTH_ITEM_COD);
|
||||
if (FileTgt)
|
||||
fprintf (FileTgt,".");
|
||||
}
|
||||
sprintf (InStr,"%d",CodItem[N]);
|
||||
if (StrDst)
|
||||
Str_Concat (StrDst,InStr,Syl_MAX_LENGTH_ITEM_COD);
|
||||
Str_Concat (StrDst,InStr,
|
||||
Syl_MAX_LENGTH_ITEM_COD);
|
||||
if (FileTgt)
|
||||
fprintf (FileTgt,"%s",InStr);
|
||||
}
|
||||
|
|
93
swad_test.c
93
swad_test.c
|
@ -2391,27 +2391,38 @@ static unsigned long Tst_GetQuestionsForEdit (MYSQL_RES **mysql_res)
|
|||
"tst_questions.Score"
|
||||
" FROM tst_questions");
|
||||
if (!Gbl.Test.Tags.All)
|
||||
Str_Concat (Query,",tst_question_tags,tst_tags",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,",tst_question_tags,tst_tags",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
|
||||
Str_Concat (Query," WHERE tst_questions.CrsCod='",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query," WHERE tst_questions.CrsCod='",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
sprintf (CrsCodStr,"%ld",Gbl.CurrentCrs.Crs.CrsCod);
|
||||
Str_Concat (Query,CrsCodStr,Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"' AND tst_questions.EditTime>=FROM_UNIXTIME('",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,CrsCodStr,
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"' AND tst_questions.EditTime>=FROM_UNIXTIME('",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
sprintf (LongStr,"%ld",(long) Gbl.DateRange.TimeUTC[0]);
|
||||
Str_Concat (Query,LongStr,Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"') AND tst_questions.EditTime<=FROM_UNIXTIME('",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,LongStr,
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"') AND tst_questions.EditTime<=FROM_UNIXTIME('",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
sprintf (LongStr,"%ld",(long) Gbl.DateRange.TimeUTC[1]);
|
||||
Str_Concat (Query,LongStr,Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"')",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,LongStr,
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"')",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
|
||||
/* Add the tags selected */
|
||||
if (!Gbl.Test.Tags.All)
|
||||
{
|
||||
Str_Concat (Query," AND tst_questions.QstCod=tst_question_tags.QstCod"
|
||||
" AND tst_question_tags.TagCod=tst_tags.TagCod"
|
||||
" AND tst_tags.CrsCod='",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,CrsCodStr,Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
" AND tst_tags.CrsCod='",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,CrsCodStr,
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
LengthQuery = strlen (Query);
|
||||
NumItemInList = 0;
|
||||
Ptr = Gbl.Test.Tags.List;
|
||||
|
@ -2425,11 +2436,14 @@ static unsigned long Tst_GetQuestionsForEdit (MYSQL_RES **mysql_res)
|
|||
NumItemInList ? " OR tst_tags.TagTxt='" :
|
||||
" AND (tst_tags.TagTxt='",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,TagText,Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,TagText,
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
NumItemInList++;
|
||||
}
|
||||
Str_Concat (Query,")",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,")",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
}
|
||||
|
||||
/* Add the types of answer selected */
|
||||
|
@ -2449,38 +2463,47 @@ static unsigned long Tst_GetQuestionsForEdit (MYSQL_RES **mysql_res)
|
|||
NumItemInList ? " OR tst_questions.AnsType='" :
|
||||
" AND (tst_questions.AnsType='",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,Tst_StrAnswerTypesDB[AnsType],Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,Tst_StrAnswerTypesDB[AnsType],
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
NumItemInList++;
|
||||
}
|
||||
Str_Concat (Query,")",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,")",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
}
|
||||
|
||||
/* End the query */
|
||||
Str_Concat (Query," GROUP BY tst_questions.QstCod",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query," GROUP BY tst_questions.QstCod",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
|
||||
switch (Gbl.Test.SelectedOrderType)
|
||||
{
|
||||
case Tst_ORDER_STEM:
|
||||
Str_Concat (Query," ORDER BY tst_questions.Stem",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query," ORDER BY tst_questions.Stem",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
break;
|
||||
case Tst_ORDER_NUM_HITS:
|
||||
Str_Concat (Query," ORDER BY tst_questions.NumHits DESC,"
|
||||
"tst_questions.Stem",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
"tst_questions.Stem",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
break;
|
||||
case Tst_ORDER_AVERAGE_SCORE:
|
||||
Str_Concat (Query," ORDER BY tst_questions.Score/tst_questions.NumHits DESC,"
|
||||
"tst_questions.NumHits DESC,"
|
||||
"tst_questions.Stem",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
"tst_questions.Stem",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
break;
|
||||
case Tst_ORDER_NUM_HITS_NOT_BLANK:
|
||||
Str_Concat (Query," ORDER BY tst_questions.NumHitsNotBlank DESC,"
|
||||
"tst_questions.Stem",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
"tst_questions.Stem",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
break;
|
||||
case Tst_ORDER_AVERAGE_SCORE_NOT_BLANK:
|
||||
Str_Concat (Query," ORDER BY tst_questions.Score/tst_questions.NumHitsNotBlank DESC,"
|
||||
"tst_questions.NumHitsNotBlank DESC,"
|
||||
"tst_questions.Stem",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
"tst_questions.Stem",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2566,11 +2589,14 @@ static unsigned long Tst_GetQuestionsForTest (MYSQL_RES **mysql_res)
|
|||
NumItemInList ? " OR tst_tags.TagTxt='" :
|
||||
" AND (tst_tags.TagTxt='",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,TagText,Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,TagText,
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
NumItemInList++;
|
||||
}
|
||||
Str_Concat (Query,")",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,")",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
}
|
||||
|
||||
/* Add answer types selected */
|
||||
|
@ -2590,17 +2616,22 @@ static unsigned long Tst_GetQuestionsForTest (MYSQL_RES **mysql_res)
|
|||
NumItemInList ? " OR tst_questions.AnsType='" :
|
||||
" AND (tst_questions.AnsType='",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,Tst_StrAnswerTypesDB[AnsType],Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,Tst_StrAnswerTypesDB[AnsType],
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,"'",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
NumItemInList++;
|
||||
}
|
||||
Str_Concat (Query,")",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,")",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
}
|
||||
|
||||
/* End query */
|
||||
Str_Concat (Query," ORDER BY RAND(NOW()) LIMIT ",Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query," ORDER BY RAND(NOW()) LIMIT ",
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
sprintf (StrNumQsts,"%u",Gbl.Test.NumQsts);
|
||||
Str_Concat (Query,StrNumQsts,Tst_MAX_LENGTH_QUERY_TEST);
|
||||
Str_Concat (Query,StrNumQsts,
|
||||
Tst_MAX_LENGTH_QUERY_TEST);
|
||||
/*
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||
Lay_ShowAlert (Lay_INFO,Query);
|
||||
|
|
42
swad_user.c
42
swad_user.c
|
@ -721,13 +721,17 @@ void Usr_BuildFullName (struct UsrData *UsrDat)
|
|||
Usr_MAX_BYTES_FULL_NAME);
|
||||
if (UsrDat->Surname1[0])
|
||||
{
|
||||
Str_Concat (UsrDat->FullName," ",Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrDat->FullName,UsrDat->Surname1,Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrDat->FullName," ",
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrDat->FullName,UsrDat->Surname1,
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
}
|
||||
if (UsrDat->Surname2[0])
|
||||
{
|
||||
Str_Concat (UsrDat->FullName," ",Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrDat->FullName,UsrDat->Surname2,Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrDat->FullName," ",
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
Str_Concat (UsrDat->FullName,UsrDat->Surname2,
|
||||
Usr_MAX_BYTES_FULL_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -749,8 +753,10 @@ void Usr_RestrictLengthAndWriteName (const struct UsrData *UsrDat,unsigned MaxCh
|
|||
Usr_MAX_BYTES_SURNAMES);
|
||||
if (UsrDat->Surname2[0])
|
||||
{
|
||||
Str_Concat (Surnames," ",Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat->Surname2,Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames," ",
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
Str_Concat (Surnames,UsrDat->Surname2,
|
||||
Usr_MAX_BYTES_SURNAMES);
|
||||
}
|
||||
Str_LimitLengthHTMLStr (Surnames,MaxChars);
|
||||
|
||||
|
@ -3893,11 +3899,14 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
|
|||
" GrpCod='",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
sprintf (LongStr,"%ld",GrpCod);
|
||||
Str_Concat (Query,LongStr,Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query,"'",Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query,LongStr,
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query,"'",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
NumPositiveCods++;
|
||||
}
|
||||
Str_Concat (Query,")",Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query,")",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3908,9 +3917,11 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
|
|||
if (AddStdsWithoutGroupOf[NumGrpTyp])
|
||||
{
|
||||
if (NumPositiveCods || NumNegativeCods)
|
||||
Str_Concat (Query," OR ",Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query," OR ",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
else
|
||||
Str_Concat (Query," AND (",Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query," AND (",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
/* Select all the students of the course who don't belong to any group of type GrpTypCod */
|
||||
Str_Concat (Query,"crs_usr.UsrCod NOT IN"
|
||||
" (SELECT DISTINCT crs_grp_usr.UsrCod"
|
||||
|
@ -3918,14 +3929,16 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
|
|||
" WHERE crs_grp.GrpTypCod='",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
sprintf (LongStr,"%ld",Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
|
||||
Str_Concat (Query,LongStr,Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query,LongStr,
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query,"' AND crs_grp.GrpCod=crs_grp_usr.GrpCod)",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
NumNegativeCods++;
|
||||
}
|
||||
if (NumPositiveCods ||
|
||||
NumNegativeCods)
|
||||
Str_Concat (Query,")",Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
Str_Concat (Query,")",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
|
||||
/***** Free memory used by the list of booleans AddStdsWithoutGroupOf *****/
|
||||
free ((void *) AddStdsWithoutGroupOf);
|
||||
|
@ -3939,7 +3952,8 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,
|
|||
"usr_data.Surname1,"
|
||||
"usr_data.Surname2,"
|
||||
"usr_data.FirstName,"
|
||||
"usr_data.UsrCod",Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
"usr_data.UsrCod",
|
||||
Usr_MAX_LENGTH_QUERY_GET_LIST_USRS);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -2256,7 +2256,8 @@ static void Svc_GetListGrpsInAttendanceEventFromDB (long AttCod,char **ListGroup
|
|||
NumGrp ? ",%ld" :
|
||||
"%ld",
|
||||
GrpCod);
|
||||
Str_Concat (*ListGroups,GrpCodStr,Length);
|
||||
Str_Concat (*ListGroups,GrpCodStr,
|
||||
Length);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2759,7 +2760,8 @@ int swad__sendAttendanceUsers (struct soap *soap,
|
|||
sprintf (SubQuery,sendAttendanceUsersOut->numUsers ? ",'%ld'" :
|
||||
" AND UsrCod NOT IN ('%ld'",
|
||||
UsrCod);
|
||||
Str_Concat (Query,SubQuery,Length);
|
||||
Str_Concat (Query,SubQuery,
|
||||
Length);
|
||||
}
|
||||
|
||||
sendAttendanceUsersOut->numUsers++;
|
||||
|
@ -2770,7 +2772,8 @@ int swad__sendAttendanceUsers (struct soap *soap,
|
|||
{
|
||||
/* Mark not present users as absent in table of users */
|
||||
if (sendAttendanceUsersOut->numUsers)
|
||||
Str_Concat (Query,")",Length);
|
||||
Str_Concat (Query,")",
|
||||
Length);
|
||||
|
||||
DB_QueryUPDATE (Query,"can not set other users as absent");
|
||||
free ((void *) Query);
|
||||
|
@ -3256,7 +3259,8 @@ int swad__sendMessage (struct soap *soap,
|
|||
if (FirstNickname)
|
||||
{
|
||||
if (ReplyUsrCod > 0)
|
||||
Str_Concat (Query," UNION ",Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query," UNION ",
|
||||
Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query,"SELECT UsrCod FROM usr_nicknames"
|
||||
" WHERE Nickname IN ('",
|
||||
Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
|
@ -3264,13 +3268,17 @@ int swad__sendMessage (struct soap *soap,
|
|||
ThereAreNicknames = true;
|
||||
}
|
||||
else
|
||||
Str_Concat (Query,",'",Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query,Nickname,Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query,"'",Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query,",'",
|
||||
Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query,Nickname,
|
||||
Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query,"'",
|
||||
Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
}
|
||||
}
|
||||
if (ThereAreNicknames)
|
||||
Str_Concat (Query,")",Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
Str_Concat (Query,")",
|
||||
Svc_MAX_LENGTH_QUERY_RECIPIENTS);
|
||||
|
||||
/***** Initialize output structure *****/
|
||||
sendMessageOut->numUsers = 0;
|
||||
|
@ -4056,7 +4064,8 @@ int swad__getTrivialQuestion (struct soap *soap,
|
|||
else
|
||||
{
|
||||
sprintf (DegStr,",'%ld'",DegCod);
|
||||
Str_Concat (DegreesStr,DegStr,Svc_MAX_LENGTH_DEGREES_STR);
|
||||
Str_Concat (DegreesStr,DegStr,
|
||||
Svc_MAX_LENGTH_DEGREES_STR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
18
swad_zip.c
18
swad_zip.c
|
@ -303,21 +303,27 @@ static void ZIP_CreateDirCompressionUsr (struct UsrData *UsrDat)
|
|||
ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
if (UsrDat->Surname1[0] &&
|
||||
UsrDat->Surname2[0])
|
||||
Str_Concat (FullNameAndUsrID,"_",ZIP_MAX_LENGTH_FULL_NAME_AND_ID); // Separation between surname 1 and surname 2
|
||||
Str_Concat (FullNameAndUsrID,UsrDat->Surname2,ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
Str_Concat (FullNameAndUsrID,"_", // Separation between surname 1 and surname 2
|
||||
ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
Str_Concat (FullNameAndUsrID,UsrDat->Surname2,
|
||||
ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
if ((UsrDat->Surname1[0] ||
|
||||
UsrDat->Surname2[0]) &&
|
||||
UsrDat->FirstName[0])
|
||||
Str_Concat (FullNameAndUsrID,"_",ZIP_MAX_LENGTH_FULL_NAME_AND_ID); // Separation between surnames and first name
|
||||
Str_Concat (FullNameAndUsrID,UsrDat->FirstName,ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
Str_Concat (FullNameAndUsrID,"_", // Separation between surnames and first name
|
||||
ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
Str_Concat (FullNameAndUsrID,UsrDat->FirstName,
|
||||
ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
if ((UsrDat->Surname1[0] ||
|
||||
UsrDat->Surname2[0] ||
|
||||
UsrDat->FirstName[0]) &&
|
||||
UsrDat->IDs.Num)
|
||||
Str_Concat (FullNameAndUsrID,"-",ZIP_MAX_LENGTH_FULL_NAME_AND_ID); // Separation between name and ID
|
||||
Str_Concat (FullNameAndUsrID,"-", // Separation between name and ID
|
||||
ZIP_MAX_LENGTH_FULL_NAME_AND_ID);
|
||||
Str_LimitLengthHTMLStr (FullNameAndUsrID,50);
|
||||
if (UsrDat->IDs.Num) // If this user has at least one ID
|
||||
Str_Concat (FullNameAndUsrID,UsrDat->IDs.List[0].ID,ZIP_MAX_LENGTH_FULL_NAME_AND_ID); // First user's ID
|
||||
Str_Concat (FullNameAndUsrID,UsrDat->IDs.List[0].ID,
|
||||
ZIP_MAX_LENGTH_FULL_NAME_AND_ID); // First user's ID
|
||||
Str_ConvertToValidFileName (FullNameAndUsrID);
|
||||
|
||||
/* Create path to folder and link */
|
||||
|
|
Loading…
Reference in New Issue