mirror of https://github.com/acanas/swad-core.git
Version 14.93
This commit is contained in:
parent
bdadb43888
commit
9ae8f37e7a
|
@ -300,7 +300,7 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;}
|
|||
}
|
||||
.TIT_TBL_10
|
||||
{
|
||||
margin:0 10px 10px 10px;
|
||||
margin:10px;
|
||||
color:#808080;
|
||||
font-size:16pt;
|
||||
font-weight:bold;
|
||||
|
|
|
@ -264,7 +264,7 @@ p {margin:0;}
|
|||
}
|
||||
.TIT_TBL_10
|
||||
{
|
||||
margin:0 10px 10px 10px;
|
||||
margin:10px;
|
||||
color:#808080;
|
||||
font-size:20pt;
|
||||
font-weight:bold;
|
||||
|
|
|
@ -10518,5 +10518,29 @@ CREATE TABLE IF NOT EXISTS usr_figures (UsrCod INT NOT NULL,FirstClickTime DATET
|
|||
|
||||
SELECT * FROM usr_figures WHERE NumClicks>='0' AND FirstClickTime>'0';
|
||||
|
||||
SELECT COUNT(*)+1 FROM (SELECT NumClicks/(DATEDIFF(NOW(),FirstClickTime)+1) AS NumClicksPerDay FROM usr_figures WHERE NumClicks>='0' AND UNIX_TIMESTAMP(FirstClickTime)>'0') AS TableNumClicksPerDay WHERE NumClicksPerDay>(SELECT NumClicks/(DATEDIFF(NOW(),FirstClickTime)+1) FROM usr_figures WHERE UsrCod='1' AND NumClicks>='0' AND UNIX_TIMESTAMP(FirstClickTime)>'0');
|
||||
SELECT COUNT(*)+1 FROM (SELECT NumClicks/(DATEDIFF(NOW(),FirstClickTime)+1) AS NumClicksPerDay FROM (SELECT UsrCod,COUNT(*) AS N FROM msg_snt_deleted GROUP BY UsrCod) UNION (SELECT UsrCod,'0' FROM usr_figures WHERE UsrCod NOT IN (SELECT UsrCod FROM msg_snt_deleted))usr_figures WHERE NumClicks>='0' AND UNIX_TIMESTAMP(FirstClickTime)>'0') AS TableNumClicksPerDay WHERE NumClicksPerDay>(SELECT NumClicks/(DATEDIFF(NOW(),FirstClickTime)+1) FROM usr_figures WHERE UsrCod='1' AND NumClicks>='0' AND UNIX_TIMESTAMP(FirstClickTime)>'0');
|
||||
|
||||
|
||||
----- 2015-03-15, swad14.92.2
|
||||
|
||||
INSERT INTO usr_figures (UsrCod,FirstClickTime,NumClicks,NumFileViews,NumForPst,NumMsgSnt) SELECT UsrCod,0,-1,-1,-1,-1 FROM usr_data WHERE UsrCod>0 AND UsrCod NOT IN (SELECT UsrCod FROM usr_figures);
|
||||
|
||||
|
||||
Hecho:
|
||||
UPDATE usr_figures,((SELECT UsrCod,COUNT(*) AS N FROM forum_post WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX GROUP BY UsrCod) UNION (SELECT UsrCod,'0' AS N FROM usr_figures WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX AND UsrCod NOT IN (SELECT UsrCod FROM forum_post))) AS FP SET usr_figures.NumForPst=FP.N WHERE usr_figures.UsrCod>=@USRCODMIN AND usr_figures.UsrCod<=@USRCODMAX AND usr_figures.NumForPst<0 AND usr_figures.UsrCod=FP.UsrCod;
|
||||
UPDATE usr_figures,((SELECT UsrCod,COUNT(*) AS N FROM log WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX GROUP BY UsrCod) UNION (SELECT UsrCod,'0' AS N FROM usr_figures WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX AND UsrCod NOT IN (SELECT UsrCod FROM log))) AS NC SET usr_figures.NumClicks=NC.N WHERE usr_figures.UsrCod>=@USRCODMIN AND usr_figures.UsrCod<=@USRCODMAX AND usr_figures.NumClicks<0 AND usr_figures.UsrCod=NC.UsrCod;
|
||||
UPDATE usr_figures,((SELECT UsrCod,COUNT(*) AS N FROM msg_snt WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX GROUP BY UsrCod) UNION (SELECT UsrCod,'0' AS N FROM usr_figures WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX AND UsrCod NOT IN (SELECT UsrCod FROM msg_snt))) AS MS,((SELECT UsrCod,COUNT(*) AS N FROM msg_snt_deleted WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX GROUP BY UsrCod) UNION (SELECT UsrCod,'0' AS N FROM usr_figures WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX AND UsrCod NOT IN (SELECT UsrCod FROM msg_snt_deleted))) AS MSD SET usr_figures.NumMsgSnt=MS.N+MSD.N WHERE usr_figures.UsrCod>=@USRCODMIN AND usr_figures.UsrCod<=@USRCODMAX AND usr_figures.NumMsgSnt<0 AND usr_figures.UsrCod=MS.UsrCod AND usr_figures.UsrCod=MSD.UsrCod;
|
||||
|
||||
Haciendo:
|
||||
SET @USRCODMIN=0;
|
||||
SET @USRCODMAX=1000;
|
||||
UPDATE usr_figures,((SELECT UsrCod,MIN(ClickTime) AS FCT FROM log WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX GROUP BY UsrCod) UNION (SELECT UsrCod,0 AS FCT FROM usr_figures WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX AND UsrCod NOT IN (SELECT UsrCod FROM log))) AS CT SET usr_figures.FirstClickTime=CT.FCT WHERE usr_figures.UsrCod>=@USRCODMIN AND usr_figures.UsrCod<=@USRCODMAX AND usr_figures.FirstClickTime=0 AND usr_figures.UsrCod=CT.UsrCod;
|
||||
|
||||
|
||||
SET @USRCODMIN=0;
|
||||
SET @USRCODMAX=1000;
|
||||
UPDATE usr_figures,((SELECT UsrCod,SUM(NumViews) AS N FROM file_view WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX GROUP BY UsrCod) UNION (SELECT UsrCod,'0' AS N FROM usr_figures WHERE UsrCod>=@USRCODMIN AND UsrCod<=@USRCODMAX AND UsrCod NOT IN (SELECT UsrCod FROM file_view))) AS FV SET usr_figures.NumFileViews=FV.N WHERE usr_figures.UsrCod>=@USRCODMIN AND usr_figures.UsrCod<=@USRCODMAX AND usr_figures.NumFileViews<0 AND usr_figures.UsrCod=FV.UsrCod;
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -103,12 +103,13 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 14.92.2 (2015/03/15)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 14.93 (2015/03/16)"
|
||||
|
||||
// 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 14.92.2: Mar 14, 2015 Fixed minor bug in photo edition. (182208 lines)
|
||||
Version 14.93: Mar 16, 2015 Users' ranking. (182527 lines)
|
||||
Version 14.92.2: Mar 15, 2015 Fixed minor bug in photo edition. (182208 lines)
|
||||
Version 14.92.1: Mar 14, 2015 Changes on request of a nickname to view user's profile. (182205 lines)
|
||||
Version 14.92: Mar 14, 2015 New module swad_profile for public user's profile. (182202 lines)
|
||||
1 change necessary in Makefile:
|
||||
|
|
|
@ -1268,7 +1268,7 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
|
|||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
mysql_free_result (mysql_res);
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -10004,10 +10004,6 @@ unsigned long Brw_GetNumFileViewsUsr (long UsrCod)
|
|||
MYSQL_ROW row;
|
||||
unsigned long FileViews;
|
||||
|
||||
/***** Get number of posts from a user from database *****/
|
||||
sprintf (Query,"SELECT SUM(FileViews) FROM file_views WHERE UsrCod='%ld'",
|
||||
UsrCod);
|
||||
|
||||
/***** Get number of filw views *****/
|
||||
sprintf (Query,"SELECT SUM(NumViews) FROM file_view WHERE UsrCod='%ld'",
|
||||
UsrCod);
|
||||
|
|
262
swad_profile.c
262
swad_profile.c
|
@ -1117,3 +1117,265 @@ void Prf_IncrementNumMsgSntUsr (long UsrCod)
|
|||
UsrCod);
|
||||
DB_QueryINSERT (Query,"can not increment user's messages sent");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******** Get and show ranking of users attending to number of clicks ********/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Prf_GetAndShowRankingClicks (void)
|
||||
{
|
||||
char Query[512];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
unsigned NumUsrs;
|
||||
unsigned NumUsr;
|
||||
struct UsrData UsrDat;
|
||||
unsigned long NumClicks;
|
||||
|
||||
/***** Get ranking from database *****/
|
||||
switch (Gbl.Scope.Current)
|
||||
{
|
||||
case Sco_SCOPE_SYS:
|
||||
sprintf (Query,"SELECT UsrCod,NumClicks"
|
||||
" FROM usr_figures"
|
||||
" WHERE NumClicks>='0'"
|
||||
" ORDER BY NumClicks DESC LIMIT 10");
|
||||
break;
|
||||
case Sco_SCOPE_CTY:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,usr_figures.NumClicks"
|
||||
" FROM institutions,centres,degrees,courses,crs_usr,usr_figures"
|
||||
" 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_figures.UsrCod"
|
||||
" AND usr_figures.NumClicks>='0'"
|
||||
" ORDER BY usr_figures.NumClicks DESC LIMIT 10",
|
||||
Gbl.CurrentCty.Cty.CtyCod);
|
||||
break;
|
||||
case Sco_SCOPE_INS:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,usr_figures.NumClicks"
|
||||
" FROM centres,degrees,courses,crs_usr,usr_figures"
|
||||
" 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_figures.UsrCod"
|
||||
" AND usr_figures.NumClicks>='0'"
|
||||
" ORDER BY usr_figures.NumClicks DESC LIMIT 10",
|
||||
Gbl.CurrentIns.Ins.InsCod);
|
||||
break;
|
||||
case Sco_SCOPE_CTR:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,usr_figures.NumClicks"
|
||||
" FROM degrees,courses,crs_usr,usr_figures"
|
||||
" WHERE degrees.CtrCod='%ld'"
|
||||
" AND degrees.DegCod=courses.DegCod"
|
||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
||||
" AND usr_figures.NumClicks>='0'"
|
||||
" ORDER BY usr_figures.NumClicks DESC LIMIT 10",
|
||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||
break;
|
||||
case Sco_SCOPE_DEG:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,usr_figures.NumClicks"
|
||||
" FROM courses,crs_usr,usr_figures"
|
||||
" WHERE courses.DegCod='%ld'"
|
||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
||||
" AND usr_figures.NumClicks>='0'"
|
||||
" ORDER BY usr_figures.NumClicks DESC LIMIT 10",
|
||||
Gbl.CurrentDeg.Deg.DegCod);
|
||||
break;
|
||||
case Sco_SCOPE_CRS:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,usr_figures.NumClicks"
|
||||
" FROM crs_usr,usr_figures"
|
||||
" WHERE crs_usr.CrsCod='%ld'"
|
||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
||||
" AND usr_figures.NumClicks>='0'"
|
||||
" ORDER BY usr_figures.NumClicks DESC LIMIT 10",
|
||||
Gbl.CurrentCrs.Crs.CrsCod);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("Wrong scope.");
|
||||
break;
|
||||
}
|
||||
NumUsrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get ranking");
|
||||
if (NumUsrs)
|
||||
{
|
||||
/***** Initialize structure with user's data *****/
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
fprintf (Gbl.F.Out,"<table>");
|
||||
|
||||
for (NumUsr = 1;
|
||||
NumUsr <= NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user and number of clicks *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
/* Get user's code (row[0]) */
|
||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
Usr_GetAllUsrDataFromUsrCod (&UsrDat);
|
||||
|
||||
/* Get number of clicks (row[1]) */
|
||||
if (sscanf (row[1],"%ld",&NumClicks) != 1)
|
||||
NumClicks = -1L;
|
||||
|
||||
/***** Show row *****/
|
||||
if (UsrDat.Nickname[0])
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td style=\"text-align:right;\">#%u</td>"
|
||||
"<td style=\"text-align:left;\">@%s</td>"
|
||||
"<td style=\"text-align:right;\">%ld</td>"
|
||||
"</tr>",
|
||||
NumUsr,
|
||||
UsrDat.Nickname,
|
||||
NumClicks);
|
||||
}
|
||||
|
||||
fprintf (Gbl.F.Out,"</table>");
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**** Get and show ranking of users attending to number of clicks per day ****/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Prf_GetAndShowRankingClicksPerDay (void)
|
||||
{
|
||||
char Query[512];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
unsigned NumUsrs;
|
||||
unsigned NumUsr;
|
||||
struct UsrData UsrDat;
|
||||
float NumClicksPerDay;
|
||||
|
||||
/***** Get ranking from database *****/
|
||||
switch (Gbl.Scope.Current)
|
||||
{
|
||||
case Sco_SCOPE_SYS:
|
||||
sprintf (Query,"SELECT UsrCod,"
|
||||
"NumClicks/(DATEDIFF(NOW(),FirstClickTime)+1) AS NumClicksPerDay"
|
||||
" FROM usr_figures"
|
||||
" WHERE FirstClickTime>0"
|
||||
" ORDER BY NumClicksPerDay DESC LIMIT 10");
|
||||
break;
|
||||
case Sco_SCOPE_CTY:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,"
|
||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
||||
" FROM institutions,centres,degrees,courses,crs_usr,usr_figures"
|
||||
" 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_figures.UsrCod"
|
||||
" AND usr_figures.FirstClickTime>0"
|
||||
" ORDER BY NumClicksPerDay DESC LIMIT 10",
|
||||
Gbl.CurrentCty.Cty.CtyCod);
|
||||
break;
|
||||
case Sco_SCOPE_INS:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,"
|
||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
||||
" FROM centres,degrees,courses,crs_usr,usr_figures"
|
||||
" 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_figures.UsrCod"
|
||||
" AND usr_figures.FirstClickTime>0"
|
||||
" ORDER BY NumClicksPerDay DESC LIMIT 10",
|
||||
Gbl.CurrentIns.Ins.InsCod);
|
||||
break;
|
||||
case Sco_SCOPE_CTR:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,"
|
||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
||||
" FROM degrees,courses,crs_usr,usr_figures"
|
||||
" WHERE degrees.CtrCod='%ld'"
|
||||
" AND degrees.DegCod=courses.DegCod"
|
||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
||||
" AND usr_figures.FirstClickTime>0'"
|
||||
" ORDER BY NumClicksPerDay DESC LIMIT 10",
|
||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||
break;
|
||||
case Sco_SCOPE_DEG:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,"
|
||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
||||
" FROM courses,crs_usr,usr_figures"
|
||||
" WHERE courses.DegCod='%ld'"
|
||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
||||
" AND usr_figures.FirstClickTime>0"
|
||||
" ORDER BY NumClicksPerDay DESC LIMIT 10",
|
||||
Gbl.CurrentDeg.Deg.DegCod);
|
||||
break;
|
||||
case Sco_SCOPE_CRS:
|
||||
sprintf (Query,"SELECT DISTINCTROW usr_figures.UsrCod,"
|
||||
"usr_figures.NumClicks/(DATEDIFF(NOW(),usr_figures.FirstClickTime)+1) AS NumClicksPerDay"
|
||||
" FROM crs_usr,usr_figures"
|
||||
" WHERE crs_usr.CrsCod='%ld'"
|
||||
" AND crs_usr.UsrCod=usr_figures.UsrCod"
|
||||
" AND usr_figures.FirstClickTime>0"
|
||||
" ORDER BY NumClicksPerDay DESC LIMIT 10",
|
||||
Gbl.CurrentCrs.Crs.CrsCod);
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("Wrong scope.");
|
||||
break;
|
||||
}
|
||||
NumUsrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get ranking");
|
||||
if (NumUsrs)
|
||||
{
|
||||
/***** Initialize structure with user's data *****/
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
fprintf (Gbl.F.Out,"<table>");
|
||||
|
||||
for (NumUsr = 1;
|
||||
NumUsr <= NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user and number of clicks *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
/* Get user's code (row[0]) */
|
||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
Usr_GetAllUsrDataFromUsrCod (&UsrDat);
|
||||
|
||||
/* Get number of clicks per day (row[1]) */
|
||||
NumClicksPerDay = Str_GetFloatNumFromStr (row[1]);
|
||||
|
||||
/***** Show row *****/
|
||||
if (UsrDat.Nickname[0])
|
||||
{
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td style=\"text-align:right;\">#%u</td>"
|
||||
"<td style=\"text-align:left;\">@%s</td>"
|
||||
"<td style=\"text-align:right;\">",
|
||||
NumUsr,
|
||||
UsrDat.Nickname);
|
||||
Str_WriteFloatNum (NumClicksPerDay);
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
}
|
||||
}
|
||||
|
||||
fprintf (Gbl.F.Out,"</table>");
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
}
|
||||
|
|
|
@ -54,4 +54,7 @@ void Prf_IncrementNumFileViewsUsr (long UsrCod);
|
|||
void Prf_IncrementNumForPstUsr (long UsrCod);
|
||||
void Prf_IncrementNumMsgSntUsr (long UsrCod);
|
||||
|
||||
void Prf_GetAndShowRankingClicks (void);
|
||||
void Prf_GetAndShowRankingClicksPerDay (void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -132,6 +132,7 @@ static void Sta_GetAndShowNumDegsInSWAD (void);
|
|||
static void Sta_GetAndShowNumCrssInSWAD (void);
|
||||
|
||||
static void Sta_GetAndShowUsersStats (void);
|
||||
static void Sta_GetAndShowUsersRanking (void);
|
||||
|
||||
static void Sta_GetAndShowFileBrowsersStats (void);
|
||||
static void Sta_WriteStatsExpTreesTableHead (void);
|
||||
|
@ -3676,6 +3677,10 @@ void Sta_ShowUseOfPlatform (void)
|
|||
/***** Number of users *****/
|
||||
Sta_GetAndShowUsersStats ();
|
||||
break;
|
||||
case Sta_USRS_RANKING:
|
||||
/***** Users ranking *****/
|
||||
Sta_GetAndShowUsersRanking ();
|
||||
break;
|
||||
case Sta_DEGREES_AND_COURSES:
|
||||
/***** Number of degrees and courses *****/
|
||||
Sta_GetAndShowDegCrsStats ();
|
||||
|
@ -3792,6 +3797,45 @@ static void Sta_GetAndShowUsersStats (void)
|
|||
Lay_EndRoundFrameTable10 ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Show users' ranking **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Sta_GetAndShowUsersRanking (void)
|
||||
{
|
||||
extern const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS];
|
||||
extern const char *Txt_Clicks;
|
||||
extern const char *Txt_Clicks_per_day;
|
||||
|
||||
Lay_StartRoundFrameTable10 (NULL,2,Txt_STAT_USE_STAT_TYPES[Sta_USRS_RANKING]);
|
||||
|
||||
/***** Header *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<th class=\"TIT_TBL\" style=\"text-align:center;\">"
|
||||
"%s"
|
||||
"</th>"
|
||||
"<th class=\"TIT_TBL\" style=\"text-align:center;\">"
|
||||
"%s"
|
||||
"</th>"
|
||||
"</tr>",
|
||||
Txt_Clicks,
|
||||
Txt_Clicks_per_day);
|
||||
|
||||
/***** Rankings *****/
|
||||
fprintf (Gbl.F.Out,"<tr>"
|
||||
"<td class=\"DAT\" style=\"text-align:left;"
|
||||
" vertical-align:top;\">");
|
||||
Prf_GetAndShowRankingClicks ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"<td class=\"DAT\" style=\"text-align:left;"
|
||||
" vertical-align:top;\">");
|
||||
Prf_GetAndShowRankingClicksPerDay ();
|
||||
fprintf (Gbl.F.Out,"</td>"
|
||||
"</tr>");
|
||||
|
||||
Lay_EndRoundFrameTable10 ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** Get and show stats about degrees and courses ****************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -86,10 +86,11 @@ typedef enum
|
|||
Sta_ACC_GBL_PER_COURSE = 20,
|
||||
} Sta_ClicksStatType_t;
|
||||
|
||||
#define Sta_NUM_TYPES_USE_STATS 19
|
||||
#define Sta_NUM_TYPES_USE_STATS 20
|
||||
typedef enum
|
||||
{
|
||||
Sta_USERS, // Number of users
|
||||
Sta_USRS_RANKING, // Users' ranking
|
||||
Sta_DEGREES_AND_COURSES, // Number of degrees and courses
|
||||
Sta_SOCIAL_NETWORKS, // Number of users in social networks
|
||||
Sta_FOLDERS_AND_FILES, // Number of folders and files
|
||||
|
@ -101,7 +102,7 @@ typedef enum
|
|||
Sta_MSGS_BETWEEN_USERS, // Number of users' (sent and received) messages
|
||||
Sta_FORUMS, // Number of forums, threads and posts
|
||||
Sta_SURVEYS, // Number of surveys
|
||||
Sta_PRIVACY, // Number of users per privacity
|
||||
Sta_PRIVACY, // Number of users per privacity
|
||||
Sta_LANGUAGES, // Number of users per language
|
||||
Sta_LAYOUTS, // Number of users per layout
|
||||
Sta_THEMES, // Number of users per theme
|
||||
|
|
41
swad_text.c
41
swad_text.c
|
@ -4563,6 +4563,27 @@ const char *Txt_clicks =
|
|||
"cliques";
|
||||
#endif
|
||||
|
||||
const char *Txt_Clicks_per_day =
|
||||
#if L==0
|
||||
"Clics per dia";
|
||||
#elif L==1
|
||||
"Klicks pro Tag";
|
||||
#elif L==2
|
||||
"Clicks per day";
|
||||
#elif L==3
|
||||
"Clics por día";
|
||||
#elif L==4
|
||||
"Clics par jour";
|
||||
#elif L==5
|
||||
"Clics por día"; // Okoteve traducción
|
||||
#elif L==6
|
||||
"Clic al giorno";
|
||||
#elif L==7
|
||||
"Kliknięć dziennie";
|
||||
#elif L==8
|
||||
"Cliques por dia";
|
||||
#endif
|
||||
|
||||
const char *Txt_Clicks_without_degree_selected =
|
||||
#if L==0
|
||||
"Clics sense seleccionar titulació";
|
||||
|
@ -35932,6 +35953,26 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
|
|||
"Utilizadores"
|
||||
#endif
|
||||
,
|
||||
#if L==0
|
||||
"Rànquing"
|
||||
#elif L==1
|
||||
"Rang"
|
||||
#elif L==2
|
||||
"Ranking"
|
||||
#elif L==3
|
||||
"Ranking"
|
||||
#elif L==4
|
||||
"Classement"
|
||||
#elif L==5
|
||||
"Ranking" // Okoteve traducción
|
||||
#elif L==6
|
||||
"Posto"
|
||||
#elif L==7
|
||||
"Ranking"
|
||||
#elif L==8
|
||||
"Posição"
|
||||
#endif
|
||||
,
|
||||
#if L==0
|
||||
"Titulaciones y asignaturas" // Necessita traducció
|
||||
#elif L==1
|
||||
|
|
|
@ -3393,11 +3393,11 @@ long Usr_GetRamdomStdFromCrs (long CrsCod)
|
|||
/***** Get user code *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
||||
return UsrCod;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue