Version 14.103

This commit is contained in:
Antonio Cañas Vargas 2015-03-29 01:06:00 +01:00
parent e3f56e826e
commit 2859d080de
8 changed files with 228 additions and 149 deletions

View File

@ -10573,3 +10573,9 @@ UPDATE usr_data SET EmailNtfEvent =(((EmailNtfEvent & ~0xFF) << 1) | (EmailNtfE
UPDATE usr_data SET NotifNtfEvents=(NotifNtfEvents | 0x2000); UPDATE usr_data SET NotifNtfEvents=(NotifNtfEvents | 0x2000);
-----------------
CREATE TABLE IF NOT EXISTS usr_banned (
UsrCod INT NOT NULL,
UNIQUE INDEX(UsrCod));

View File

@ -1100,15 +1100,11 @@ CREATE TABLE IF NOT EXISTS tst_tags (
INDEX(CrsCod,ChangeTime), INDEX(CrsCod,ChangeTime),
INDEX(TagTxt)); INDEX(TagTxt));
-- --
-- Table usr_IDs: stores the users' IDs -- Table usr_banned: stores users banned for ranking
-- --
CREATE TABLE IF NOT EXISTS usr_IDs ( CREATE TABLE IF NOT EXISTS usr_banned (
UsrCod INT NOT NULL, UsrCod INT NOT NULL,
UsrID CHAR(16) NOT NULL, UNIQUE INDEX(UsrCod));
CreatTime DATETIME NOT NULL,
Confirmed ENUM('N','Y') NOT NULL DEFAULT 'N',
UNIQUE INDEX(UsrCod,UsrID),
INDEX(UsrID));
-- --
-- Table usr_data: stores users' data -- Table usr_data: stores users' data
-- --
@ -1158,7 +1154,6 @@ CREATE TABLE IF NOT EXISTS usr_data (
INDEX(CtrCod), INDEX(CtrCod),
INDEX(Menu), INDEX(Menu),
INDEX(SideCols)); INDEX(SideCols));
);
-- --
-- Table usr_emails: stores the users' e-mails -- Table usr_emails: stores the users' e-mails
-- --
@ -1193,6 +1188,16 @@ CREATE TABLE IF NOT EXISTS usr_follow (
UNIQUE INDEX (FollowedCod,FollowerCod), UNIQUE INDEX (FollowedCod,FollowerCod),
INDEX (FollowTime)); INDEX (FollowTime));
-- --
-- Table usr_IDs: stores the users' IDs
--
CREATE TABLE IF NOT EXISTS usr_IDs (
UsrCod INT NOT NULL,
UsrID CHAR(16) NOT NULL,
CreatTime DATETIME NOT NULL,
Confirmed ENUM('N','Y') NOT NULL DEFAULT 'N',
UNIQUE INDEX(UsrCod,UsrID),
INDEX(UsrID));
--
-- Table usr_last: stores some variable data related to users -- Table usr_last: stores some variable data related to users
-- --
CREATE TABLE IF NOT EXISTS usr_last ( CREATE TABLE IF NOT EXISTS usr_last (

View File

@ -737,7 +737,8 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message); Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
} }
/***** Remove user from table of banned users *****/ /***** Remove user from tables of banned users *****/
Usr_RemoveUsrFromUsrBanned (UsrDat->UsrCod);
Msg_RemoveUsrFromBanned (UsrDat->UsrCod); Msg_RemoveUsrFromBanned (UsrDat->UsrCod);
/***** Delete thread read status for this user *****/ /***** Delete thread read status for this user *****/

View File

@ -103,11 +103,15 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.102.12 (2015/03/28)" #define Log_PLATFORM_VERSION "SWAD 14.103 (2015/03/28)"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
/* /*
Version 14.103: Mar 29, 2015 New table to ban users out of ranking. (184014 lines)
1 change necessary in database:
CREATE TABLE IF NOT EXISTS usr_banned (UsrCod INT NOT NULL,UNIQUE INDEX(UsrCod));
Version 14.102.12:Mar 28, 2015 Some help messages changed. (183953 lines) Version 14.102.12:Mar 28, 2015 Some help messages changed. (183953 lines)
Version 14.102.11:Mar 28, 2015 Some help messages changed. (183943 lines) Version 14.102.11:Mar 28, 2015 Some help messages changed. (183943 lines)
Version 14.102.10:Mar 28, 2015 Create user's figures when a user account is created. (183942 lines) Version 14.102.10:Mar 28, 2015 Create user's figures when a user account is created. (183942 lines)

View File

@ -2241,6 +2241,21 @@ mysql> DESCRIBE tst_tags;
"TagHidden ENUM('N','Y') NOT NULL," "TagHidden ENUM('N','Y') NOT NULL,"
"UNIQUE INDEX(TagCod),INDEX(CrsCod,ChangeTime),INDEX(TagTxt))"); "UNIQUE INDEX(TagCod),INDEX(CrsCod,ChangeTime),INDEX(TagTxt))");
/***** Table usr_banned *****/
/*
mysql> DESCRIBE usr_banned;
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| UsrCod | int(11) | NO | PRI | NULL | |
+--------+---------+------+-----+---------+-------+
1 row in set (0.01 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_banned ("
"UsrCod INT NOT NULL,"
"UNIQUE INDEX(UsrCod))");
/***** Table usr_data *****/ /***** Table usr_data *****/
/* /*
mysql> DESCRIBE usr_data; mysql> DESCRIBE usr_data;

View File

@ -321,6 +321,7 @@ static void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
extern const char *Txt_Messages; extern const char *Txt_Messages;
extern const char *Txt_message; extern const char *Txt_message;
extern const char *Txt_messages; extern const char *Txt_messages;
bool UsrIsBannedFromRanking;
struct UsrFigures UsrFigures; struct UsrFigures UsrFigures;
unsigned NumCrssUsrIsTeacher; unsigned NumCrssUsrIsTeacher;
unsigned NumCrssUsrIsStudent; unsigned NumCrssUsrIsStudent;
@ -445,154 +446,159 @@ static void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/* Number of clicks */ UsrIsBannedFromRanking = Usr_CheckIfUsrBanned (UsrDat->UsrCod);
fprintf (Gbl.F.Out,"<tr>" if (!UsrIsBannedFromRanking)
"<td class=\"PRF_ICON_CONTAINER\">"
"<img src=\"%s/click64x64.gif\" title=\"%s\""
" class=\"PRF_ICON\" />"
"</td>"
"<td class=\"PRF_FIG DAT\">",
Gbl.Prefs.IconsURL,
Txt_Clicks);
if (UsrFigures.NumClicks >= 0)
{ {
fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;", /* Number of clicks */
UsrFigures.NumClicks,Txt_clicks); fprintf (Gbl.F.Out,"<tr>"
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumClicks"), "<td class=\"PRF_ICON_CONTAINER\">"
Prf_GetNumUsrsWithFigure ("NumClicks")); "<img src=\"%s/click64x64.gif\" title=\"%s\""
if (UsrFigures.NumDays > 0) " class=\"PRF_ICON\" />"
{ "</td>"
fprintf (Gbl.F.Out,"&nbsp;("); "<td class=\"PRF_FIG DAT\">",
Str_WriteFloatNum ((float) UsrFigures.NumClicks / Gbl.Prefs.IconsURL,
(float) UsrFigures.NumDays); Txt_Clicks);
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s&nbsp;",Txt_day);
Prf_ShowRanking (Prf_GetRankingNumClicksPerDay (UsrDat->UsrCod),
Prf_GetNumUsrsWithNumClicksPerDay ());
fprintf (Gbl.F.Out,")");
}
}
else // Number of clicks is unknown
{
/***** Button to fetch and store number of clicks *****/
Act_FormStart (ActCalNumClk);
Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]);
Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate);
Act_FormEnd ();
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
/***** Number of file views *****/ if (UsrFigures.NumClicks >= 0)
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"PRF_ICON_CONTAINER\">"
"<img src=\"%s/download64x64.gif\" title=\"%s\""
" class=\"PRF_ICON\" />"
"</td>"
"<td class=\"PRF_FIG DAT\">",
Gbl.Prefs.IconsURL,
Txt_Downloads);
if (UsrFigures.NumFileViews >= 0)
{
fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;",
UsrFigures.NumFileViews,
(UsrFigures.NumFileViews == 1) ? Txt_download :
Txt_downloads);
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumFileViews"),
Prf_GetNumUsrsWithFigure ("NumFileViews"));
if (UsrFigures.NumDays > 0)
{ {
fprintf (Gbl.F.Out,"&nbsp;("); fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;",
Str_WriteFloatNum ((float) UsrFigures.NumFileViews / UsrFigures.NumClicks,Txt_clicks);
(float) UsrFigures.NumDays); Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumClicks"),
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s)",Txt_day); Prf_GetNumUsrsWithFigure ("NumClicks"));
if (UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum ((float) UsrFigures.NumClicks /
(float) UsrFigures.NumDays);
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s&nbsp;",Txt_day);
Prf_ShowRanking (Prf_GetRankingNumClicksPerDay (UsrDat->UsrCod),
Prf_GetNumUsrsWithNumClicksPerDay ());
fprintf (Gbl.F.Out,")");
}
} }
} else // Number of clicks is unknown
else // Number of file views is unknown {
{ /***** Button to fetch and store number of clicks *****/
/***** Button to fetch and store number of file views *****/ Act_FormStart (ActCalNumClk);
Act_FormStart (ActCalNumFilVie); Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod); Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]);
Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]); Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate);
Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate); Act_FormEnd ();
Act_FormEnd (); }
} fprintf (Gbl.F.Out,"</td>"
fprintf (Gbl.F.Out,"</td>" "</tr>");
"</tr>");
/***** Number of posts in forums *****/ /***** Number of file views *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"PRF_ICON_CONTAINER\">" "<td class=\"PRF_ICON_CONTAINER\">"
"<img src=\"%s/forum64x64.gif\" title=\"%s\"" "<img src=\"%s/download64x64.gif\" title=\"%s\""
" class=\"PRF_ICON\" />" " class=\"PRF_ICON\" />"
"</td>" "</td>"
"<td class=\"PRF_FIG DAT\">", "<td class=\"PRF_FIG DAT\">",
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
Txt_Forums); Txt_Downloads);
if (UsrFigures.NumForPst >= 0) if (UsrFigures.NumFileViews >= 0)
{
fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;",
UsrFigures.NumForPst,
(UsrFigures.NumForPst == 1) ? Txt_post :
Txt_posts);
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumForPst"),
Prf_GetNumUsrsWithFigure ("NumForPst"));
if (UsrFigures.NumDays > 0)
{ {
fprintf (Gbl.F.Out,"&nbsp;("); fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;",
Str_WriteFloatNum ((float) UsrFigures.NumForPst / UsrFigures.NumFileViews,
(float) UsrFigures.NumDays); (UsrFigures.NumFileViews == 1) ? Txt_download :
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s)",Txt_day); Txt_downloads);
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumFileViews"),
Prf_GetNumUsrsWithFigure ("NumFileViews"));
if (UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum ((float) UsrFigures.NumFileViews /
(float) UsrFigures.NumDays);
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s)",Txt_day);
}
} }
} else // Number of file views is unknown
else // Number of forum posts is unknown {
{ /***** Button to fetch and store number of file views *****/
/***** Button to fetch and store number of forum posts *****/ Act_FormStart (ActCalNumFilVie);
Act_FormStart (ActCalNumForPst); Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod); Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]);
Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]); Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate);
Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate); Act_FormEnd ();
Act_FormEnd (); }
} fprintf (Gbl.F.Out,"</td>"
fprintf (Gbl.F.Out,"</td>" "</tr>");
"</tr>");
/***** Number of messages sent *****/ /***** Number of posts in forums *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"PRF_ICON_CONTAINER\">" "<td class=\"PRF_ICON_CONTAINER\">"
"<img src=\"%s/msg64x64.gif\" title=\"%s\"" "<img src=\"%s/forum64x64.gif\" title=\"%s\""
" class=\"PRF_ICON\" />" " class=\"PRF_ICON\" />"
"</td>" "</td>"
"<td class=\"PRF_FIG DAT\">", "<td class=\"PRF_FIG DAT\">",
Gbl.Prefs.IconsURL, Gbl.Prefs.IconsURL,
Txt_Messages); Txt_Forums);
if (UsrFigures.NumMsgSnt >= 0) if (UsrFigures.NumForPst >= 0)
{
fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;",
UsrFigures.NumMsgSnt,
(UsrFigures.NumMsgSnt == 1) ? Txt_message :
Txt_messages);
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumMsgSnt"),
Prf_GetNumUsrsWithFigure ("NumMsgSnt"));
if (UsrFigures.NumDays > 0)
{ {
fprintf (Gbl.F.Out,"&nbsp;("); fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;",
Str_WriteFloatNum ((float) UsrFigures.NumMsgSnt / UsrFigures.NumForPst,
(float) UsrFigures.NumDays); (UsrFigures.NumForPst == 1) ? Txt_post :
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s)",Txt_day); Txt_posts);
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumForPst"),
Prf_GetNumUsrsWithFigure ("NumForPst"));
if (UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum ((float) UsrFigures.NumForPst /
(float) UsrFigures.NumDays);
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s)",Txt_day);
}
} }
else // Number of forum posts is unknown
{
/***** Button to fetch and store number of forum posts *****/
Act_FormStart (ActCalNumForPst);
Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]);
Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate);
Act_FormEnd ();
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
/***** Number of messages sent *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"PRF_ICON_CONTAINER\">"
"<img src=\"%s/msg64x64.gif\" title=\"%s\""
" class=\"PRF_ICON\" />"
"</td>"
"<td class=\"PRF_FIG DAT\">",
Gbl.Prefs.IconsURL,
Txt_Messages);
if (UsrFigures.NumMsgSnt >= 0)
{
fprintf (Gbl.F.Out,"%ld&nbsp;%s&nbsp;",
UsrFigures.NumMsgSnt,
(UsrFigures.NumMsgSnt == 1) ? Txt_message :
Txt_messages);
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumMsgSnt"),
Prf_GetNumUsrsWithFigure ("NumMsgSnt"));
if (UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum ((float) UsrFigures.NumMsgSnt /
(float) UsrFigures.NumDays);
fprintf (Gbl.F.Out,"&nbsp;/&nbsp;%s)",Txt_day);
}
}
else // Number of clicks is unknown
{
/***** Button to fetch and store number of messages sent *****/
Act_FormStart (ActCalNumMsgSnt);
Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]);
Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate);
Act_FormEnd ();
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
} }
else // Number of clicks is unknown
{
/***** Button to fetch and store number of messages sent *****/
Act_FormStart (ActCalNumMsgSnt);
Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitAnimated (Txt_Calculate,The_ClassFormul[Gbl.Prefs.Theme]);
Lay_PutCalculateIcon (Txt_Calculate,Txt_Calculate);
Act_FormEnd ();
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
/***** End of table *****/ /***** End of table *****/
fprintf (Gbl.F.Out,"</table>"); fprintf (Gbl.F.Out,"</table>");
@ -1167,7 +1173,7 @@ void Prf_GetAndShowRankingMsgSnt (void)
static void Prf_GetAndShowRankingFigure (const char *FieldName) static void Prf_GetAndShowRankingFigure (const char *FieldName)
{ {
char Query[512]; char Query[1024];
/***** Get ranking from database *****/ /***** Get ranking from database *****/
switch (Gbl.Scope.Current) switch (Gbl.Scope.Current)
@ -1176,6 +1182,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
sprintf (Query,"SELECT UsrCod,%s" sprintf (Query,"SELECT UsrCod,%s"
" FROM usr_figures" " FROM usr_figures"
" WHERE %s>='0'" " WHERE %s>='0'"
" AND UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY %s DESC,UsrCod LIMIT 100", " ORDER BY %s DESC,UsrCod LIMIT 100",
FieldName, FieldName,
FieldName,FieldName); FieldName,FieldName);
@ -1190,6 +1197,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.%s>='0'" " AND usr_figures.%s>='0'"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100",
FieldName, FieldName,
Gbl.CurrentCty.Cty.CtyCod, Gbl.CurrentCty.Cty.CtyCod,
@ -1204,6 +1212,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.%s>='0'" " AND usr_figures.%s>='0'"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100",
FieldName, FieldName,
Gbl.CurrentIns.Ins.InsCod, Gbl.CurrentIns.Ins.InsCod,
@ -1217,6 +1226,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.%s>='0'" " AND usr_figures.%s>='0'"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100",
FieldName, FieldName,
Gbl.CurrentCtr.Ctr.CtrCod, Gbl.CurrentCtr.Ctr.CtrCod,
@ -1229,6 +1239,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.%s>='0'" " AND usr_figures.%s>='0'"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100",
FieldName, FieldName,
Gbl.CurrentDeg.Deg.DegCod, Gbl.CurrentDeg.Deg.DegCod,
@ -1240,6 +1251,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" WHERE crs_usr.CrsCod='%ld'" " WHERE crs_usr.CrsCod='%ld'"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.%s>='0'" " AND usr_figures.%s>='0'"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY usr_figures.%s DESC,usr_figures.UsrCod LIMIT 100",
FieldName, FieldName,
Gbl.CurrentCrs.Crs.CrsCod, Gbl.CurrentCrs.Crs.CrsCod,
@ -1317,7 +1329,7 @@ void Prf_ShowRankingFigure (const char *Query)
void Prf_GetAndShowRankingClicksPerDay (void) void Prf_GetAndShowRankingClicksPerDay (void)
{ {
char Query[512]; char Query[1024];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned NumUsrs; unsigned NumUsrs;
@ -1335,6 +1347,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
"NumClicks/(DATEDIFF(NOW(),FirstClickTime)+1) AS NumClicksPerDay" "NumClicks/(DATEDIFF(NOW(),FirstClickTime)+1) AS NumClicksPerDay"
" FROM usr_figures" " FROM usr_figures"
" WHERE FirstClickTime>0" " WHERE FirstClickTime>0"
" AND UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY NumClicksPerDay DESC,UsrCod LIMIT 100"); " ORDER BY NumClicksPerDay DESC,UsrCod LIMIT 100");
break; break;
case Sco_SCOPE_CTY: case Sco_SCOPE_CTY:
@ -1348,6 +1361,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.FirstClickTime>0" " AND usr_figures.FirstClickTime>0"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100",
Gbl.CurrentCty.Cty.CtyCod); Gbl.CurrentCty.Cty.CtyCod);
break; break;
@ -1361,6 +1375,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.FirstClickTime>0" " AND usr_figures.FirstClickTime>0"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100",
Gbl.CurrentIns.Ins.InsCod); Gbl.CurrentIns.Ins.InsCod);
break; break;
@ -1373,6 +1388,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.FirstClickTime>0" " AND usr_figures.FirstClickTime>0"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100",
Gbl.CurrentCtr.Ctr.CtrCod); Gbl.CurrentCtr.Ctr.CtrCod);
break; break;
@ -1384,6 +1400,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" AND courses.CrsCod=crs_usr.CrsCod" " AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.FirstClickTime>0" " AND usr_figures.FirstClickTime>0"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100",
Gbl.CurrentDeg.Deg.DegCod); Gbl.CurrentDeg.Deg.DegCod);
break; break;
@ -1394,6 +1411,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" WHERE crs_usr.CrsCod='%ld'" " WHERE crs_usr.CrsCod='%ld'"
" AND crs_usr.UsrCod=usr_figures.UsrCod" " AND crs_usr.UsrCod=usr_figures.UsrCod"
" AND usr_figures.FirstClickTime>0" " AND usr_figures.FirstClickTime>0"
" AND usr_figures.UsrCod NOT IN (SELECT UsrCod FROM usr_banned)"
" ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100", " ORDER BY NumClicksPerDay DESC,usr_figures.UsrCod LIMIT 100",
Gbl.CurrentCrs.Crs.CrsCod); Gbl.CurrentCrs.Crs.CrsCod);
break; break;

View File

@ -7440,3 +7440,30 @@ static float Usr_GetNumUsrsPerCrs (Rol_Role_t Role)
return NumUsrsPerCrs; return NumUsrsPerCrs;
} }
/*****************************************************************************/
/****************** Check if a user is banned in ranking *********************/
/*****************************************************************************/
bool Usr_CheckIfUsrBanned (long UsrCod)
{
char Query[128];
sprintf (Query,"SELECT COUNT(*) FROM usr_banned WHERE UsrCod='%ld'",
UsrCod);
return (DB_QueryCOUNT (Query,"can not check if user is banned") != 0);
}
/*****************************************************************************/
/****************** Check if a user is banned in ranking *********************/
/*****************************************************************************/
void Usr_RemoveUsrFromUsrBanned (long UsrCod)
{
char Query[128];
sprintf (Query,"DELETE FROM usr_banned WHERE UsrCod='%ld'",
UsrCod);
DB_QueryDELETE (Query,"can not remove user from users banned");
}

View File

@ -327,4 +327,7 @@ void Usr_ShowWarningNoUsersFound (Rol_Role_t Role);
void Usr_GetAndShowNumUsrsInPlatform (Rol_Role_t Role); void Usr_GetAndShowNumUsrsInPlatform (Rol_Role_t Role);
bool Usr_CheckIfUsrBanned (long UsrCod);
void Usr_RemoveUsrFromUsrBanned (long UsrCod);
#endif #endif