diff --git a/css/swad18.64.css b/css/swad18.66.css
similarity index 99%
rename from css/swad18.64.css
rename to css/swad18.66.css
index 1513195d..2a951733 100644
--- a/css/swad18.64.css
+++ b/css/swad18.66.css
@@ -3394,7 +3394,7 @@ a.PAG:hover, .PAG_CUR
.RANK_USR
{
box-sizing:border-box;
- max-width:50px;
+ max-width:48px;
text-align:left;
vertical-align:middle;
white-space:nowrap;
diff --git a/sql/cambios.sql b/sql/cambios.sql
index e0c3810f..3ea882f1 100644
--- a/sql/cambios.sql
+++ b/sql/cambios.sql
@@ -12640,3 +12640,30 @@ UPDATE social_posts SET MediaType='jpg' WHERE MediaType<>'gif' AND MediaName<>''
UPDATE tst_answers SET MediaType='jpg' WHERE MediaType<>'gif' AND MediaName<>'';
UPDATE tst_questions SET MediaType='jpg' WHERE MediaType<>'gif' AND MediaName<>'';
+------------
+
+
+
+UPDATE usr_figures
+SET NumSocPub = T.NumSocPub
+FROM (
+ SELECT PublisherCod,COUNT(*) AS NumSocPub FROM social_pubs GROUP BY PublisherCod) AS T
+WHERE
+ usr_figures.UsrCod = T.PublisherCod;
+
+
+------------
+
+
+
+UPDATE usr_figures,(SELECT PublisherCod,COUNT(*) AS NumSocPub FROM social_pubs GROUP BY PublisherCod) AS publishers SET usr_figures.NumSocPub=publishers.NumSocPub WHERE usr_figures.NumSocPub<0 AND usr_figures.UsrCod=publishers.PublisherCod;
+UPDATE usr_figures SET NumSocPub=0 WHERE NumSocPub<0;
+
+UPDATE usr_figures,(SELECT UsrCod,COUNT(*) AS NumForPst FROM forum_post GROUP BY UsrCod) AS posters SET usr_figures.NumForPst=posters.NumForPst WHERE usr_figures.NumForPst<0 AND usr_figures.UsrCod=posters.UsrCod;
+UPDATE usr_figures SET NumForPst=0 WHERE NumForPst<0;
+
+UPDATE usr_figures,(SELECT UsrCod,SUM(NMS) AS NumMsgSnt FROM (SELECT UsrCod,COUNT(*) AS NMS FROM msg_snt GROUP BY UsrCod UNION SELECT Usrcod,COUNT(*) AS NMS FROM msg_snt_deleted GROUP BY UsrCod) AS MS GROUP BY UsrCod) AS senders SET usr_figures.NumMsgSnt=senders.NumMsgSnt WHERE usr_figures.NumMsgSnt<0 AND usr_figures.UsrCod=senders.UsrCod;
+UPDATE usr_figures SET NumMsgSnt=0 WHERE NumMsgSnt<0;
+
+UPDATE usr_figures,(SELECT UsrCod,SUM(NumViews) AS NumFileViews FROM file_view WHERE UsrCod>0 GROUP BY UsrCod) AS viewers SET usr_figures.NumFileViews=viewers.NumFileViews WHERE usr_figures.NumFileViews<0 AND usr_figures.UsrCod=viewers.UsrCod;
+UPDATE usr_figures SET NumFileViews=0 WHERE NumFileViews<0;
diff --git a/swad_changelog.h b/swad_changelog.h
index 9af60728..3fb0121d 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -428,10 +428,22 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
-#define Log_PLATFORM_VERSION "SWAD 18.65 (2019-03-06)"
-#define CSS_FILE "swad18.64.css"
+#define Log_PLATFORM_VERSION "SWAD 18.66 (2019-03-06)"
+#define CSS_FILE "swad18.66.css"
#define JS_FILE "swad18.64.js"
/*
+ Version 18.66: Mar 06, 2019 Number of social posts is added as a new column in users' ranking.
+ Only figures greater than 0 are shown in users' ranking. (238671 lines)
+ 8 changes necessary in database:
+UPDATE usr_figures,(SELECT PublisherCod,COUNT(*) AS NumSocPub FROM social_pubs GROUP BY PublisherCod) AS publishers SET usr_figures.NumSocPub=publishers.NumSocPub WHERE usr_figures.NumSocPub<0 AND usr_figures.UsrCod=publishers.PublisherCod;
+UPDATE usr_figures SET NumSocPub=0 WHERE NumSocPub<0;
+UPDATE usr_figures,(SELECT UsrCod,SUM(NumViews) AS NumFileViews FROM file_view WHERE UsrCod>0 GROUP BY UsrCod) AS viewers SET usr_figures.NumFileViews=viewers.NumFileViews WHERE usr_figures.NumFileViews<0 AND usr_figures.UsrCod=viewers.UsrCod;
+UPDATE usr_figures SET NumFileViews=0 WHERE NumFileViews<0;
+UPDATE usr_figures,(SELECT UsrCod,COUNT(*) AS NumForPst FROM forum_post GROUP BY UsrCod) AS posters SET usr_figures.NumForPst=posters.NumForPst WHERE usr_figures.NumForPst<0 AND usr_figures.UsrCod=posters.UsrCod;
+UPDATE usr_figures SET NumForPst=0 WHERE NumForPst<0;
+UPDATE usr_figures,(SELECT UsrCod,SUM(NMS) AS NumMsgSnt FROM (SELECT UsrCod,COUNT(*) AS NMS FROM msg_snt GROUP BY UsrCod UNION SELECT Usrcod,COUNT(*) AS NMS FROM msg_snt_deleted GROUP BY UsrCod) AS MS GROUP BY UsrCod) AS senders SET usr_figures.NumMsgSnt=senders.NumMsgSnt WHERE usr_figures.NumMsgSnt<0 AND usr_figures.UsrCod=senders.UsrCod;
+UPDATE usr_figures SET NumMsgSnt=0 WHERE NumMsgSnt<0;
+
Version 18.65: Mar 06, 2019 New user's figure: number of social posts. (238648 lines)
1 change necessary in database:
ALTER TABLE usr_figures ADD COLUMN NumSocPub INT NOT NULL DEFAULT -1 AFTER NumClicks;
diff --git a/swad_figure.c b/swad_figure.c
index 3ac3a1c4..7314e2bd 100644
--- a/swad_figure.c
+++ b/swad_figure.c
@@ -490,6 +490,7 @@ static void Fig_GetAndShowUsersRanking (void)
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_Clicks;
extern const char *Txt_Clicks_per_day;
+ extern const char *Txt_Timeline;
extern const char *Txt_Downloads;
extern const char *Txt_Forums;
extern const char *Txt_Messages;
@@ -519,13 +520,17 @@ static void Fig_GetAndShowUsersRanking (void)
"
"
"%s"
" | "
+ ""
+ "%s"
+ " | "
"",
Txt_Clicks,
Txt_Clicks_per_day,
+ Txt_Timeline,
+ Txt_Followers,
Txt_Downloads,
Txt_Forums,
- Txt_Messages,
- Txt_Followers);
+ Txt_Messages);
/***** Rankings *****/
fprintf (Gbl.F.Out,""
@@ -534,6 +539,12 @@ static void Fig_GetAndShowUsersRanking (void)
fprintf (Gbl.F.Out,""
"");
Prf_GetAndShowRankingClicksPerDay ();
+ fprintf (Gbl.F.Out," | "
+ "");
+ Prf_GetAndShowRankingSocPub ();
+ fprintf (Gbl.F.Out," | "
+ "");
+ Fol_GetAndShowRankingFollowers ();
fprintf (Gbl.F.Out," | "
"");
Prf_GetAndShowRankingFileViews ();
@@ -543,9 +554,6 @@ static void Fig_GetAndShowUsersRanking (void)
fprintf (Gbl.F.Out," | "
"");
Prf_GetAndShowRankingMsgSnt ();
- fprintf (Gbl.F.Out," | "
- "");
- Fol_GetAndShowRankingFollowers ();
fprintf (Gbl.F.Out," | "
"
");
diff --git a/swad_forum.c b/swad_forum.c
index 37f9589e..990bc7a7 100644
--- a/swad_forum.c
+++ b/swad_forum.c
@@ -872,7 +872,7 @@ static unsigned For_GetNumMyPstInThr (long ThrCod)
unsigned long For_GetNumPostsUsr (long UsrCod)
{
/***** Get number of posts from a user from database *****/
- return DB_QueryCOUNT ("can not number of forum posts from a user",
+ return DB_QueryCOUNT ("can not get number of forum posts from a user",
"SELECT COUNT(*) FROM forum_post"
" WHERE UsrCod=%ld",
UsrCod);
diff --git a/swad_profile.c b/swad_profile.c
index f8a95129..8d81c5d6 100644
--- a/swad_profile.c
+++ b/swad_profile.c
@@ -95,6 +95,7 @@ static void Prf_CreateUsrFigures (long UsrCod,const struct UsrFigures *UsrFigure
static bool Prf_CheckIfUsrFiguresExists (long UsrCod);
static void Prf_GetAndShowRankingFigure (const char *FieldName);
+static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank);
/*****************************************************************************/
/************* Suggest who to follow or request user's profile ***************/
@@ -1251,6 +1252,11 @@ void Prf_GetAndShowRankingClicks (void)
Prf_GetAndShowRankingFigure ("NumClicks");
}
+void Prf_GetAndShowRankingSocPub (void)
+ {
+ Prf_GetAndShowRankingFigure ("NumSocPub");
+ }
+
void Prf_GetAndShowRankingFileViews (void)
{
Prf_GetAndShowRankingFigure ("NumFileViews");
@@ -1279,7 +1285,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
(unsigned) DB_QuerySELECT (&mysql_res,"can not get ranking",
"SELECT UsrCod,%s"
" 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",
FieldName,
@@ -1296,7 +1302,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" 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",
FieldName,
@@ -1313,7 +1319,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" 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",
FieldName,
@@ -1329,7 +1335,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" 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",
FieldName,
@@ -1344,7 +1350,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod"
" 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",
FieldName,
@@ -1358,7 +1364,7 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
" FROM crs_usr,usr_figures"
" WHERE crs_usr.CrsCod=%ld"
" 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",
FieldName,
@@ -1602,7 +1608,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
/************** Show user's photo and nickname in ranking list ***************/
/*****************************************************************************/
-void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank)
+static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank)
{
extern const char *Txt_Another_user_s_profile;
bool ShowPhoto;
diff --git a/swad_profile.h b/swad_profile.h
index aa834138..fbfe6981 100644
--- a/swad_profile.h
+++ b/swad_profile.h
@@ -76,11 +76,11 @@ void Prf_IncrementNumForPstUsr (long UsrCod);
void Prf_IncrementNumMsgSntUsr (long UsrCod);
void Prf_GetAndShowRankingClicks (void);
+void Prf_GetAndShowRankingSocPub (void);
void Prf_GetAndShowRankingFileViews (void);
void Prf_GetAndShowRankingForPst (void);
void Prf_GetAndShowRankingMsgSnt (void);
void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs);
void Prf_GetAndShowRankingClicksPerDay (void);
-void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank);
#endif
diff --git a/swad_social.c b/swad_social.c
index 05aa74f7..ad3a7163 100644
--- a/swad_social.c
+++ b/swad_social.c
@@ -5137,7 +5137,7 @@ static void Str_AnalyzeTxtAndStoreNotifyEventToMentionedUsrs (long PubCod,const
unsigned long Soc_GetNumPubsUsr (long UsrCod)
{
/***** Get number of posts from a user from database *****/
- return DB_QueryCOUNT ("can not number of social publications from a user",
+ return DB_QueryCOUNT ("can not get number of social publications from a user",
"SELECT COUNT(*) FROM social_pubs"
" WHERE PublisherCod=%ld",
UsrCod);