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