Version 14.93

This commit is contained in:
Antonio Cañas Vargas 2015-03-16 14:05:16 +01:00
parent bdadb43888
commit 9ae8f37e7a
12 changed files with 387 additions and 15 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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:

View File

@ -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);
}
/*****************************************************************************/

View File

@ -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);

View File

@ -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);
}

View File

@ -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

View File

@ -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 ****************/
/*****************************************************************************/

View File

@ -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

View File

@ -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&iacute;a";
#elif L==4
"Clics par jour";
#elif L==5
"Clics por d&iacute;a"; // Okoteve traducción
#elif L==6
"Clic al giorno";
#elif L==7
"Klikni&eogon;&cacute; dziennie";
#elif L==8
"Cliques por dia";
#endif
const char *Txt_Clicks_without_degree_selected =
#if L==0
"Clics sense seleccionar titulaci&oacute;";
@ -35932,6 +35953,26 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Utilizadores"
#endif
,
#if L==0
"R&agrave;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&ccedil;&atilde;o"
#endif
,
#if L==0
"Titulaciones y asignaturas" // Necessita traducció
#elif L==1

View File

@ -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;
}