Version 18.11.11

This commit is contained in:
Antonio Cañas Vargas 2018-11-01 12:02:58 +01:00
parent 041715432f
commit 2540212d8c
4 changed files with 162 additions and 131 deletions

View File

@ -107,10 +107,10 @@ void MFU_GetMFUActions (struct MFU_ListMFUActions *ListMFUActions,unsigned MaxAc
Act_Action_t Action;
/***** Get most frequently used actions *****/
DB_BuildQuery ("SELECT ActCod FROM actions_MFU"
" WHERE UsrCod=%ld ORDER BY Score DESC,LastClick DESC",
Gbl.Usrs.Me.UsrDat.UsrCod);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get most frequently used actions");
NumRows = DB_QuerySELECT (&mysql_res,"can not get most frequently used actions",
"SELECT ActCod FROM actions_MFU"
" WHERE UsrCod=%ld ORDER BY Score DESC,LastClick DESC",
Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Write list of frequently used actions *****/
for (NumRow = 0, ListMFUActions->NumActions = 0;
@ -150,11 +150,13 @@ Act_Action_t MFU_GetMyLastActionInCurrentTab (void)
if (Gbl.Usrs.Me.UsrDat.UsrCod > 0)
{
/***** Get my most frequently used actions *****/
DB_BuildQuery ("SELECT ActCod FROM actions_MFU"
" WHERE UsrCod=%ld"
" ORDER BY LastClick DESC,Score DESC",
Gbl.Usrs.Me.UsrDat.UsrCod);
NumActions = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get most frequently used actions");
NumActions =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get"
" most frequently used actions",
"SELECT ActCod FROM actions_MFU"
" WHERE UsrCod=%ld"
" ORDER BY LastClick DESC,Score DESC",
Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Loop over list of frequently used actions *****/
for (NumAct = 0;
@ -352,10 +354,10 @@ void MFU_UpdateMFUActions (void)
Str_SetDecimalPointToUS (); // To get the decimal point as a dot
/***** Get current score *****/
DB_BuildQuery ("SELECT Score FROM actions_MFU"
" WHERE UsrCod=%ld AND ActCod=%ld",
Gbl.Usrs.Me.UsrDat.UsrCod,ActCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get score for current action"))
if (DB_QuerySELECT (&mysql_res,"can not get score for current action",
"SELECT Score FROM actions_MFU"
" WHERE UsrCod=%ld AND ActCod=%ld",
Gbl.Usrs.Me.UsrDat.UsrCod,ActCod))
{
row = mysql_fetch_row (mysql_res);
if (sscanf (row[0],"%f",&Score) != 1)

View File

@ -355,10 +355,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.11.10 (2018-11-01)"
#define Log_PLATFORM_VERSION "SWAD 18.11.11 (2018-11-01)"
#define CSS_FILE "swad18.4.css"
#define JS_FILE "swad17.17.1.js"
/*
Version 18.11.11: Nov 01, 2018 Joining building and performing query into one function. (235896 lines)
Version 18.11.10: Nov 01, 2018 Joining building and performing query into one function. (235861 lines)
Version 18.11.9: Oct 31, 2018 Joining building and performing query into one function. (235847 lines)
Version 18.11.8: Oct 31, 2018 Joining building and performing query into one function. (235810 lines)

View File

@ -2659,18 +2659,18 @@ static void Msg_GetMsgSntData (long MsgCod,long *CrsCod,long *UsrCod,
/***** Get data of message from table msg_snt *****/
*Deleted = false;
DB_BuildQuery ("SELECT CrsCod,UsrCod,UNIX_TIMESTAMP(CreatTime)"
" FROM msg_snt WHERE MsgCod=%ld",
MsgCod);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get data of a message");
NumRows = DB_QuerySELECT (&mysql_res,"can not get data of a message",
"SELECT CrsCod,UsrCod,UNIX_TIMESTAMP(CreatTime)"
" FROM msg_snt WHERE MsgCod=%ld",
MsgCod);
if (NumRows == 0) // If not result ==> sent message is deleted
{
/***** Get data of message from table msg_snt_deleted *****/
DB_BuildQuery ("SELECT CrsCod,UsrCod,UNIX_TIMESTAMP(CreatTime)"
" FROM msg_snt_deleted WHERE MsgCod=%ld",
MsgCod);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get data of a message");
NumRows = DB_QuerySELECT (&mysql_res,"can not get data of a message",
"SELECT CrsCod,UsrCod,UNIX_TIMESTAMP(CreatTime)"
" FROM msg_snt_deleted WHERE MsgCod=%ld",
MsgCod);
*Deleted = true;
}
@ -2708,10 +2708,10 @@ void Msg_GetMsgSubject (long MsgCod,char Subject[Cns_MAX_BYTES_SUBJECT + 1])
MYSQL_ROW row;
/***** Get subject of message from database *****/
DB_BuildQuery ("SELECT Subject FROM msg_content WHERE MsgCod=%ld",MsgCod);
/***** Result should have a unique row *****/
if (DB_QuerySELECT_new (&mysql_res,"can not get the subject of a message") == 1)
if (DB_QuerySELECT (&mysql_res,"can not get the subject of a message",
"SELECT Subject FROM msg_content"
" WHERE MsgCod=%ld",
MsgCod) == 1) // Result should have a unique row
{
/***** Get subject *****/
row = mysql_fetch_row (mysql_res);
@ -2737,10 +2737,10 @@ static void Msg_GetMsgContent (long MsgCod,char Content[Cns_MAX_BYTES_LONG_TEXT
unsigned long NumRows;
/***** Get content of message from database *****/
DB_BuildQuery ("SELECT Content,ImageName,ImageTitle,ImageURL"
" FROM msg_content WHERE MsgCod=%ld",
MsgCod);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get the content of a message");
NumRows = DB_QuerySELECT (&mysql_res,"can not get the content of a message",
"SELECT Content,ImageName,ImageTitle,ImageURL"
" FROM msg_content WHERE MsgCod=%ld",
MsgCod);
/***** Result should have a unique row *****/
if (NumRows != 1)
@ -2771,10 +2771,11 @@ static void Msg_GetStatusOfSentMsg (long MsgCod,bool *Expanded)
unsigned long NumRows;
/***** Get if sent message has been replied/expanded from database *****/
DB_BuildQuery ("SELECT Expanded FROM msg_snt"
" WHERE MsgCod=%ld AND UsrCod=%ld",
MsgCod,Gbl.Usrs.Me.UsrDat.UsrCod);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get if a sent message has been replied/expanded");
NumRows = DB_QuerySELECT (&mysql_res,"can not get if a sent message"
" has been replied/expanded",
"SELECT Expanded FROM msg_snt"
" WHERE MsgCod=%ld AND UsrCod=%ld",
MsgCod,Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Result should have a unique row *****/
if (NumRows != 1)
@ -2801,10 +2802,11 @@ static void Msg_GetStatusOfReceivedMsg (long MsgCod,bool *Open,bool *Replied,boo
unsigned long NumRows;
/***** Get if received message has been replied/expanded from database *****/
DB_BuildQuery ("SELECT Open,Replied,Expanded FROM msg_rcv"
" WHERE MsgCod=%ld AND UsrCod=%ld",
MsgCod,Gbl.Usrs.Me.UsrDat.UsrCod);
NumRows = DB_QuerySELECT_new (&mysql_res,"can not get if a received message has been replied/expanded");
NumRows = DB_QuerySELECT (&mysql_res,"can not get if a received message"
" has been replied/expanded",
"SELECT Open,Replied,Expanded FROM msg_rcv"
" WHERE MsgCod=%ld AND UsrCod=%ld",
MsgCod,Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Result should have a unique row *****/
if (NumRows != 1)
@ -3021,11 +3023,11 @@ void Msg_GetNotifMessage (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
// This function may be called inside a web service, so don't report error
/***** Get subject of message from database *****/
DB_BuildQuery ("SELECT Subject,Content FROM msg_content"
" WHERE MsgCod=%ld",
MsgCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get subject and content of a message") == 1) // Result should have a unique row
if (DB_QuerySELECT (&mysql_res,"can not get subject and content"
" of a message",
"SELECT Subject,Content FROM msg_content"
" WHERE MsgCod=%ld",
MsgCod) == 1) // Result should have a unique row
{
/***** Get subject and content of the message *****/
row = mysql_fetch_row (mysql_res);
@ -3378,18 +3380,29 @@ static void Msg_WriteMsgTo (long MsgCod)
NumRecipientsTotal = (unsigned) DB_QueryCOUNT_new ("can not get number of recipients");
/***** Get recipients of a message from database *****/
DB_BuildQuery ("(SELECT msg_rcv.UsrCod,'N',msg_rcv.Open,"
"usr_data.Surname1 AS S1,usr_data.Surname2 AS S2,usr_data.FirstName AS FN"
" FROM msg_rcv,usr_data"
" WHERE msg_rcv.MsgCod=%ld AND msg_rcv.UsrCod=usr_data.UsrCod)"
" UNION "
"(SELECT msg_rcv_deleted.UsrCod,'Y',msg_rcv_deleted.Open,"
"usr_data.Surname1 AS S1,usr_data.Surname2 AS S2,usr_data.FirstName AS FN"
" FROM msg_rcv_deleted,usr_data"
" WHERE msg_rcv_deleted.MsgCod=%ld AND msg_rcv_deleted.UsrCod=usr_data.UsrCod)"
" ORDER BY S1,S2,FN",
MsgCod,MsgCod);
NumRecipientsKnown = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get recipients of a message");
NumRecipientsKnown =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get recipients of a message",
"(SELECT msg_rcv.UsrCod,"
"'N',"
"msg_rcv.Open,"
"usr_data.Surname1 AS S1,"
"usr_data.Surname2 AS S2,"
"usr_data.FirstName AS FN"
" FROM msg_rcv,usr_data"
" WHERE msg_rcv.MsgCod=%ld"
" AND msg_rcv.UsrCod=usr_data.UsrCod)"
" UNION "
"(SELECT msg_rcv_deleted.UsrCod,"
"'Y',"
"msg_rcv_deleted.Open,"
"usr_data.Surname1 AS S1,"
"usr_data.Surname2 AS S2,"
"usr_data.FirstName AS FN"
" FROM msg_rcv_deleted,usr_data"
" WHERE msg_rcv_deleted.MsgCod=%ld"
" AND msg_rcv_deleted.UsrCod=usr_data.UsrCod)"
" ORDER BY S1,S2,FN",
MsgCod,MsgCod);
/***** Check number of recipients *****/
if (NumRecipientsTotal)
@ -3748,12 +3761,15 @@ void Msg_ListBannedUsrs (void)
char PhotoURL[PATH_MAX + 1];
/***** Get my banned users *****/
DB_BuildQuery ("SELECT msg_banned.FromUsrCod FROM msg_banned,usr_data"
" WHERE msg_banned.ToUsrCod=%ld"
" AND msg_banned.FromUsrCod=usr_data.UsrCod"
" ORDER BY usr_data.Surname1,usr_data.Surname2,usr_data.FirstName",
Gbl.Usrs.Me.UsrDat.UsrCod);
NumUsrs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get banned users");
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get banned users",
"SELECT msg_banned.FromUsrCod"
" FROM msg_banned,usr_data"
" WHERE msg_banned.ToUsrCod=%ld"
" AND msg_banned.FromUsrCod=usr_data.UsrCod"
" ORDER BY usr_data.Surname1,"
"usr_data.Surname2,"
"usr_data.FirstName",
Gbl.Usrs.Me.UsrDat.UsrCod);
if (NumUsrs == 0) // If not result ==> sent message is deleted
Ale_ShowAlert (Ale_INFO,Txt_You_have_not_banned_any_sender);

View File

@ -222,13 +222,11 @@ void Net_ShowWebsAndSocialNets (const struct UsrData *UsrDat)
NumURL < Net_NUM_WEBS_AND_SOCIAL_NETWORKS;
NumURL++)
{
/***** Get user's web / social network from database *****/
DB_BuildQuery ("SELECT URL FROM usr_webs"
" WHERE UsrCod=%ld AND Web='%s'",
UsrDat->UsrCod,Net_WebsAndSocialNetworksDB[NumURL]);
/***** Check if exists the web / social network for this user *****/
if (DB_QuerySELECT_new (&mysql_res,"can not get user's web / social network"))
if (DB_QuerySELECT (&mysql_res,"can not get user's web / social network",
"SELECT URL FROM usr_webs"
" WHERE UsrCod=%ld AND Web='%s'",
UsrDat->UsrCod,Net_WebsAndSocialNetworksDB[NumURL]))
{
/* Get URL */
row = mysql_fetch_row (mysql_res);
@ -301,13 +299,11 @@ void Net_ShowFormMyWebsAndSocialNets (void)
NumURL++)
{
/***** Get user's web / social network from database *****/
DB_BuildQuery ("SELECT URL FROM usr_webs"
" WHERE UsrCod=%ld AND Web='%s'",
Gbl.Usrs.Me.UsrDat.UsrCod,
Net_WebsAndSocialNetworksDB[NumURL]);
/***** Check number of rows in result *****/
if (DB_QuerySELECT_new (&mysql_res,"can not get user's web / social network"))
if (DB_QuerySELECT (&mysql_res,"can not get user's web / social network",
"SELECT URL FROM usr_webs"
" WHERE UsrCod=%ld AND Web='%s'",
Gbl.Usrs.Me.UsrDat.UsrCod,
Net_WebsAndSocialNetworksDB[NumURL]))
{
/***** Read the data comunes a all the users *****/
row = mysql_fetch_row (mysql_res);
@ -437,7 +433,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
extern const char *Txt_PERCENT_of_users;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumRows;
unsigned NumRows = 0; // Initialized to avoid warning
unsigned NumRow;
Net_WebsAndSocialNetworks_t Web;
char NetName[Net_MAX_BYTES_NETWORK_NAME + 1];
@ -455,77 +451,93 @@ void Net_ShowWebAndSocialNetworksStats (void)
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
DB_BuildQuery ("SELECT Web,COUNT(*) AS N"
" FROM usr_webs"
" GROUP BY Web"
" ORDER BY N DESC,Web");
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
"SELECT Web,COUNT(*) AS N"
" FROM usr_webs"
" GROUP BY Web"
" ORDER BY N DESC,Web");
break;
case Sco_SCOPE_CTY:
DB_BuildQuery ("SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM institutions,centres,degrees,courses,crs_usr,usr_webs"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentCty.Cty.CtyCod);
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
"SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM institutions,centres,degrees,courses,crs_usr,usr_webs"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
DB_BuildQuery ("SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM centres,degrees,courses,crs_usr,usr_webs"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentIns.Ins.InsCod);
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
"SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM centres,degrees,courses,crs_usr,usr_webs"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentIns.Ins.InsCod);
break;
case Sco_SCOPE_CTR:
DB_BuildQuery ("SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM degrees,courses,crs_usr,usr_webs"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentCtr.Ctr.CtrCod);
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
"SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM degrees,courses,crs_usr,usr_webs"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentCtr.Ctr.CtrCod);
break;
case Sco_SCOPE_DEG:
DB_BuildQuery ("SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM courses,crs_usr,usr_webs"
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentDeg.Deg.DegCod);
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
"SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM courses,crs_usr,usr_webs"
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentDeg.Deg.DegCod);
break;
case Sco_SCOPE_CRS:
DB_BuildQuery ("SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM crs_usr,usr_webs"
" WHERE crs_usr.CrsCod=%ld"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentCrs.Crs.CrsCod);
NumRows =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get number of users"
" with webs / social networks",
"SELECT usr_webs.Web,"
"COUNT(DISTINCT usr_webs.UsrCod) AS N"
" FROM crs_usr,usr_webs"
" WHERE crs_usr.CrsCod=%ld"
" AND crs_usr.UsrCod=usr_webs.UsrCod"
" GROUP BY usr_webs.Web"
" ORDER BY N DESC,usr_webs.Web",
Gbl.CurrentCrs.Crs.CrsCod);
break;
default:
Lay_WrongScopeExit ();
break;
}
NumRows = (unsigned) DB_QuerySELECT_new (&mysql_res,
"can not get number of users with webs / social networks");
/***** Start box and table *****/
Box_StartBoxTable (NULL,Txt_STAT_USE_STAT_TYPES[Sta_SOCIAL_NETWORKS],NULL,