Version 14.108

This commit is contained in:
Antonio Cañas Vargas 2015-04-03 14:04:26 +02:00
parent 415ca04a74
commit 308a722d85
6 changed files with 438 additions and 33 deletions

View File

@ -103,11 +103,12 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.107.8 (2015/04/03)" #define Log_PLATFORM_VERSION "SWAD 14.108 (2015/04/03)"
// 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.108: Apr 03, 2015 New statistic (figure) about institutions. (184136 lines)
Version 14.107.8: Apr 03, 2015 Changes in statistics (figures about hierarchy). (183774 lines) Version 14.107.8: Apr 03, 2015 Changes in statistics (figures about hierarchy). (183774 lines)
Version 14.107.7: Apr 03, 2015 Changes in layout of sent / received messages. (183753 lines) Version 14.107.7: Apr 03, 2015 Changes in layout of sent / received messages. (183753 lines)
Version 14.107.6: Apr 03, 2015 Changes in layout of form to change password. (183748 lines) Version 14.107.6: Apr 03, 2015 Changes in layout of form to change password. (183748 lines)

View File

@ -1066,6 +1066,16 @@ void Lay_WriteTitle (const char *Title)
// CellPadding must be 0, 1, 2, 4 or 8 // CellPadding must be 0, 1, 2, 4 or 8
void Lay_StartRoundFrameTable10 (const char *Width,unsigned CellPadding,const char *Title) void Lay_StartRoundFrameTable10 (const char *Width,unsigned CellPadding,const char *Title)
{
Lay_StartRoundFrame10 (Width,Title);
fprintf (Gbl.F.Out,"<table class=\"TABLE10");
if (CellPadding)
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 4 or 8
fprintf (Gbl.F.Out,"\">");
}
void Lay_StartRoundFrame10 (const char *Width,const char *Title)
{ {
fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">" fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">"
"<div class=\"FRAME10\""); "<div class=\"FRAME10\"");
@ -1079,11 +1089,6 @@ void Lay_StartRoundFrameTable10 (const char *Width,unsigned CellPadding,const ch
"%s" "%s"
"</div>", "</div>",
Title); Title);
fprintf (Gbl.F.Out,"<table class=\"TABLE10");
if (CellPadding)
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 4 or 8
fprintf (Gbl.F.Out,"\">");
} }
// CellPadding must be 0, 1, 2, 4 or 8 // CellPadding must be 0, 1, 2, 4 or 8
@ -1104,8 +1109,13 @@ void Lay_StartRoundFrameTable10Shadow (const char *Width,unsigned CellPadding)
void Lay_EndRoundFrameTable10 (void) void Lay_EndRoundFrameTable10 (void)
{ {
fprintf (Gbl.F.Out,"</table>" fprintf (Gbl.F.Out,"</table>");
"</div>" Lay_EndRoundFrame10 ();
}
void Lay_EndRoundFrame10 (void)
{
fprintf (Gbl.F.Out,"</div>"
"</div>"); "</div>");
} }

View File

@ -98,8 +98,11 @@ void Lay_PutConfirmButtonInline (const char *Text);
void Lay_PutRemoveButton (const char *Text); void Lay_PutRemoveButton (const char *Text);
void Lay_StartRoundFrameTable10 (const char *Width,unsigned CellPadding,const char *Title); void Lay_StartRoundFrameTable10 (const char *Width,unsigned CellPadding,const char *Title);
void Lay_StartRoundFrame10 (const char *Width,const char *Title);
void Lay_StartRoundFrameTable10Shadow (const char *Width,unsigned CellPadding); void Lay_StartRoundFrameTable10Shadow (const char *Width,unsigned CellPadding);
void Lay_EndRoundFrameTable10 (void); void Lay_EndRoundFrameTable10 (void);
void Lay_EndRoundFrame10 (void);
void Lay_ShowErrorAndExit (const char *Message); void Lay_ShowErrorAndExit (const char *Message);
void Lay_ShowAlert (Lay_AlertType_t MsgType,const char *Message); void Lay_ShowAlert (Lay_AlertType_t MsgType,const char *Message);
void Lay_RefreshNotifsAndConnected (void); void Lay_RefreshNotifsAndConnected (void);

View File

@ -123,7 +123,7 @@ static void Sta_WriteDegree (long DegCod);
static void Sta_DrawBarNumClicks (char Color,float NumPagesGenerated,float MaxPagesGenerated,float TotalPagesGenerated,unsigned MaxBarWidth); static void Sta_DrawBarNumClicks (char Color,float NumPagesGenerated,float MaxPagesGenerated,float TotalPagesGenerated,unsigned MaxBarWidth);
static void Sta_WriteSelectedRangeOfDates (unsigned NumDays); static void Sta_WriteSelectedRangeOfDates (unsigned NumDays);
static void Sta_GetAndShowDegCrsStats (void); static void Sta_GetAndShowHierarchyStats (void);
static void Sta_WriteHeadDegsCrssInSWAD (void); static void Sta_WriteHeadDegsCrssInSWAD (void);
static void Sta_GetAndShowNumCtysInSWAD (void); static void Sta_GetAndShowNumCtysInSWAD (void);
static void Sta_GetAndShowNumInssInSWAD (void); static void Sta_GetAndShowNumInssInSWAD (void);
@ -131,6 +131,14 @@ static void Sta_GetAndShowNumCtrsInSWAD (void);
static void Sta_GetAndShowNumDegsInSWAD (void); static void Sta_GetAndShowNumDegsInSWAD (void);
static void Sta_GetAndShowNumCrssInSWAD (void); static void Sta_GetAndShowNumCrssInSWAD (void);
static void Sta_GetAndShowInstitutionsStats (void);
static void Sta_GetAndShowInssOrderedByNumCtrs (void);
static void Sta_GetAndShowInssOrderedByNumDegs (void);
static void Sta_GetAndShowInssOrderedByNumCrss (void);
static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void);
static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void);
static void Sta_GetAndShowInss (const char *Query,const char *TxtFigure);
static void Sta_GetAndShowUsersStats (void); static void Sta_GetAndShowUsersStats (void);
static void Sta_GetAndShowUsersRanking (void); static void Sta_GetAndShowUsersRanking (void);
@ -3670,7 +3678,11 @@ void Sta_ShowUseOfPlatform (void)
break; break;
case Sta_HIERARCHY: case Sta_HIERARCHY:
/***** Number of degrees and courses *****/ /***** Number of degrees and courses *****/
Sta_GetAndShowDegCrsStats (); Sta_GetAndShowHierarchyStats ();
break;
case Sta_INSTITUTIONS:
/***** Number of institutions with users *****/
Sta_GetAndShowInstitutionsStats ();
break; break;
case Sta_SOCIAL_NETWORKS: case Sta_SOCIAL_NETWORKS:
/***** Number of users in social networks *****/ /***** Number of users in social networks *****/
@ -3860,10 +3872,11 @@ static void Sta_GetAndShowUsersRanking (void)
} }
/*****************************************************************************/ /*****************************************************************************/
/*************** Get and show stats about degrees and courses ****************/ /********* Get and show stats about hierarchy ***********/
/********* (countries, institutions, centres, degrees and courses) ***********/
/*****************************************************************************/ /*****************************************************************************/
static void Sta_GetAndShowDegCrsStats (void) static void Sta_GetAndShowHierarchyStats (void)
{ {
extern const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS]; extern const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS];
@ -4474,6 +4487,363 @@ static void Sta_GetAndShowNumCrssInSWAD (void)
NumCrssWithStds); NumCrssWithStds);
} }
/*****************************************************************************/
/****************** Get and show stats about institutions ********************/
/*****************************************************************************/
static void Sta_GetAndShowInstitutionsStats (void)
{
/****** Institutions ordered by number of centres ******/
Sta_GetAndShowInssOrderedByNumCtrs ();
/****** Institutions ordered by number of degrees ******/
Sta_GetAndShowInssOrderedByNumDegs ();
/****** Institutions ordered by number of courses ******/
Sta_GetAndShowInssOrderedByNumCrss ();
/****** Institutions ordered by number of users in courses ******/
Sta_GetAndShowInssOrderedByNumUsrsInCrss ();
/****** Institutions ordered by number of users who claim to belong to them ******/
Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem ();
}
/*****************************************************************************/
/**** Get and show stats about institutions ordered by number of centres *****/
/*****************************************************************************/
static void Sta_GetAndShowInssOrderedByNumCtrs (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Centres;
char Query[1024];
/****** Institutions ordered by number of centres ******/
Lay_StartRoundFrameTable10 ("100%",2,"Instituciones seg&uacute;n n&uacute;mero de centros"); // Need translation
/***** Get institutions ordered by number of centres *****/
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
sprintf (Query,"SELECT InsCod,COUNT(*) AS N"
" FROM centres"
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM institutions,centres"
" WHERE institutions.CtyCod='%ld'"
" AND institutions.InsCod=centres.InsCod"
" GROUP BY centres.InsCod"
" ORDER BY N DESC",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
sprintf (Query,"SELECT InsCod,COUNT(*) AS N"
" FROM centres"
" WHERE InsCod='%ld'"
" ORDER BY N DESC",
Gbl.CurrentIns.Ins.InsCod);
break;
default:
Lay_ShowErrorAndExit ("Wrong scope.");
break;
}
Sta_GetAndShowInss (Query,Txt_Centres);
Lay_EndRoundFrameTable10 ();
}
/*****************************************************************************/
/**** Get and show stats about institutions ordered by number of degrees *****/
/*****************************************************************************/
static void Sta_GetAndShowInssOrderedByNumDegs (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Degrees;
char Query[1024];
/****** Institutions ordered by number of centres ******/
Lay_StartRoundFrameTable10 ("100%",2,"Instituciones seg&uacute;n n&uacute;mero de titulaciones"); // Need translation
/***** Get institutions ordered by number of degrees *****/
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees"
" WHERE centres.CtrCod=degrees.CtrCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM institutions,centres,degrees"
" WHERE institutions.CtyCod='%ld'"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" GROUP BY centres.InsCod"
" ORDER BY N DESC",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees"
" WHERE centres.InsCod='%ld'"
" AND centres.CtrCod=degrees.CtrCod"
" ORDER BY N DESC",
Gbl.CurrentIns.Ins.InsCod);
break;
default:
Lay_ShowErrorAndExit ("Wrong scope.");
break;
}
Sta_GetAndShowInss (Query,Txt_Degrees);
Lay_EndRoundFrameTable10 ();
}
/*****************************************************************************/
/**** Get and show stats about institutions ordered by number of courses *****/
/*****************************************************************************/
static void Sta_GetAndShowInssOrderedByNumCrss (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Courses;
char Query[1024];
/****** Institutions ordered by number of centres ******/
Lay_StartRoundFrameTable10 ("100%",2,"Instituciones seg&uacute;n n&uacute;mero de asignaturas"); // Need translation
/***** Get institutions ordered by number of courses *****/
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees,courses"
" WHERE centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM institutions,centres,degrees,courses"
" WHERE institutions.CtyCod='%ld'"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" GROUP BY centres.InsCod"
" ORDER BY N DESC",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees,courses"
" WHERE centres.InsCod='%ld'"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY N DESC",
Gbl.CurrentIns.Ins.InsCod);
break;
default:
Lay_ShowErrorAndExit ("Wrong scope.");
break;
}
Sta_GetAndShowInss (Query,Txt_Courses);
Lay_EndRoundFrameTable10 ();
}
/*****************************************************************************/
/***** Get and show stats about institutions ordered by users in courses *****/
/*****************************************************************************/
static void Sta_GetAndShowInssOrderedByNumUsrsInCrss (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Users;
char Query[1024];
/****** Institutions ordered by number of centres ******/
Lay_StartRoundFrameTable10 ("100%",2,"Instituciones seg&uacute;n n&uacute;mero de usuarios en asignaturas"); // Need translation
/***** Get institutions ordered by number of users in courses *****/
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees,courses,crs_usr"
" WHERE centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM institutions,centres,degrees,courses,crs_usr"
" 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"
" GROUP BY centres.InsCod"
" ORDER BY N DESC",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
sprintf (Query,"SELECT centres.InsCod,COUNT(*) AS N"
" FROM centres,degrees,courses,crs_usr"
" WHERE centres.InsCod='%ld'"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" ORDER BY N DESC",
Gbl.CurrentIns.Ins.InsCod);
break;
default:
Lay_ShowErrorAndExit ("Wrong scope.");
break;
}
Sta_GetAndShowInss (Query,Txt_Users);
Lay_EndRoundFrameTable10 ();
}
/*****************************************************************************/
/************* Get and show stats about institutions ordered by **************/
/************* number of users who claim to belong to them **************/
/*****************************************************************************/
static void Sta_GetAndShowInssOrderedByNumUsrsWhoClaimToBelongToThem (void)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Users;
char Query[1024];
/****** Institutions ordered by number of centres ******/
Lay_StartRoundFrameTable10 ("100%",2,"Instituciones seg&uacute;n n&uacute;mero de usuarios que dicen pertenecer a ellas"); // Need translation
/***** Get institutions ordered by number of users who claim to belong to them *****/
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
sprintf (Query,"SELECT InsCod,COUNT(*) AS N"
" FROM usr_data"
" WHERE InsCod>'0'"
" GROUP BY InsCod"
" ORDER BY N DESC");
break;
case Sco_SCOPE_CTY:
sprintf (Query,"SELECT usr_data.InsCod,COUNT(*) AS N"
" FROM institutions,usr_data"
" WHERE institutions.CtyCod='%ld'"
" AND institutions.InsCod=usr_data.InsCod"
" GROUP BY usr_data.InsCod"
" ORDER BY N DESC",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
case Sco_SCOPE_CTR:
case Sco_SCOPE_DEG:
case Sco_SCOPE_CRS:
sprintf (Query,"SELECT InsCod,COUNT(*) AS N"
" FROM usr_data"
" WHERE InsCod='%ld'"
" ORDER BY N DESC",
Gbl.CurrentIns.Ins.InsCod);
break;
default:
Lay_ShowErrorAndExit ("Wrong scope.");
break;
}
Sta_GetAndShowInss (Query,Txt_Users);
Lay_EndRoundFrameTable10 ();
}
/*****************************************************************************/
/****************** Get and show stats about institutions ********************/
/*****************************************************************************/
static void Sta_GetAndShowInss (const char *Query,const char *TxtFigure)
{
extern const char *The_ClassFormul[The_NUM_THEMES];
extern const char *Txt_Institution;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumInss;
unsigned NumIns;
struct Institution Ins;
/***** Query database *****/
if ((NumInss = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get institutions")))
{
fprintf (Gbl.F.Out,"<tr>"
"<th class=\"TIT_TBL\" style=\"text-align:left;\">"
"%s"
"</th>"
"<th class=\"TIT_TBL\" style=\"text-align:right;\">"
"%s"
"</th>"
"</tr>",
Txt_Institution,
TxtFigure);
for (NumIns = 0;
NumIns < NumInss;
NumIns++)
{
/***** Get next institution *****/
row = mysql_fetch_row (mysql_res);
/***** Get data of this institution (row[0]) *****/
Ins.InsCod = Str_ConvertStrCodToLongCod (row[0]);
if (!Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_MINIMAL_DATA))
Lay_ShowErrorAndExit ("Institution not found.");
/***** Write link to institution *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"text-align:left;\">",
The_ClassFormul[Gbl.Prefs.Theme]);
Act_FormStart (ActSeeInsInf);
Ins_PutParamInsCod (Ins.InsCod);
Act_LinkFormSubmit (Ins.ShortName,The_ClassFormul[Gbl.Prefs.Theme]);
Log_DrawLogo (Sco_SCOPE_INS,Ins.InsCod,Ins.ShortName,
32,NULL,true);
fprintf (Gbl.F.Out,"&nbsp;%s</a>",Ins.FullName);
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>");
/***** Write number of centres (row[1]) *****/
fprintf (Gbl.F.Out,"<td class=\"DAT\" style=\"text-align:right;\">"
"%s"
"</td></tr>",
row[1]);
}
}
/* Free structure that stores the query result */
DB_FreeMySQLResult (&mysql_res);
}
/*****************************************************************************/ /*****************************************************************************/
/************************* Get total number of users *************************/ /************************* Get total number of users *************************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -86,12 +86,13 @@ typedef enum
Sta_ACC_GBL_PER_COURSE = 20, Sta_ACC_GBL_PER_COURSE = 20,
} Sta_ClicksStatType_t; } Sta_ClicksStatType_t;
#define Sta_NUM_TYPES_USE_STATS 20 #define Sta_NUM_TYPES_USE_STATS 21
typedef enum typedef enum
{ {
Sta_USERS, // Number of users Sta_USERS, // Number of users
Sta_USERS_RANKING, // Users' ranking Sta_USERS_RANKING, // Users' ranking
Sta_HIERARCHY, // Number of countries, institutions, centres, degrees and courses Sta_HIERARCHY, // Number of countries, institutions, centres, degrees and courses
Sta_INSTITUTIONS, // Number of users in each institution
Sta_SOCIAL_NETWORKS, // Number of users in social networks Sta_SOCIAL_NETWORKS, // Number of users in social networks
Sta_FOLDERS_AND_FILES, // Number of folders and files Sta_FOLDERS_AND_FILES, // Number of folders and files
Sta_OER, // Number of OERs (Open Educational Resources) Sta_OER, // Number of OERs (Open Educational Resources)

View File

@ -36045,7 +36045,7 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_STAT_COUNT_TYPES] =
const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] = const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
{ {
#if L==0 #if L==0 // Sta_USERS
"Usuaris" "Usuaris"
#elif L==1 #elif L==1
"Benutzer" "Benutzer"
@ -36065,7 +36065,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Utilizadores" "Utilizadores"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_USERS_RANKING
"R&agrave;nquing" "R&agrave;nquing"
#elif L==1 #elif L==1
"Rang" "Rang"
@ -36085,7 +36085,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Posi&ccedil;&atilde;o" "Posi&ccedil;&atilde;o"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_HIERARCHY
"Jerarquia" "Jerarquia"
#elif L==1 #elif L==1
"Hierarchie" "Hierarchie"
@ -36105,7 +36105,27 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Hierarquia" "Hierarquia"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_INSTITUTIONS
"Institucions"
#elif L==1
"Hochschulen"
#elif L==2
"Institutions"
#elif L==3
"Instituciones"
#elif L==4
"&Eacute;tablissements"
#elif L==5
"Mbo'ehao"
#elif L==6
"Istituzioni"
#elif L==7
"Instytucje"
#elif L==8
"Institu&ccedil;&otilde;es"
#endif
,
#if L==0 // Sta_SOCIAL_NETWORKS
"Webs / xarxes socials" "Webs / xarxes socials"
#elif L==1 #elif L==1
"Webs / Social Networks" "Webs / Social Networks"
@ -36125,7 +36145,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Webs / redes sociais" "Webs / redes sociais"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_FOLDERS_AND_FILES
"Carpetes i fitxers" "Carpetes i fitxers"
#elif L==1 #elif L==1
"Verzeichnisse und Dateien" "Verzeichnisse und Dateien"
@ -36145,7 +36165,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Diret&oacute;rios e arquivos" "Diret&oacute;rios e arquivos"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_OER
"Recursos Educatius Oberts (OER)" "Recursos Educatius Oberts (OER)"
#elif L==1 #elif L==1
"Open Educational Resources (OER)" "Open Educational Resources (OER)"
@ -36165,7 +36185,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Recursos Educacionais Abertos (OER)" "Recursos Educacionais Abertos (OER)"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_ASSIGNMENTS
"Activitats" "Activitats"
#elif L==1 #elif L==1
"Aufgaben" "Aufgaben"
@ -36185,7 +36205,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Atividades" "Atividades"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_TESTS
"Tests" "Tests"
#elif L==1 #elif L==1
"Tests" "Tests"
@ -36205,7 +36225,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Testes" "Testes"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_NOTIFY_EVENTS
"Notificacions" "Notificacions"
#elif L==1 #elif L==1
"Anmeldungen" "Anmeldungen"
@ -36225,7 +36245,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Notifica&ccedil;&otilde;es" "Notifica&ccedil;&otilde;es"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_NOTICES
"Avisos" "Avisos"
#elif L==1 #elif L==1
"Ank&uuml;ndigungen" "Ank&uuml;ndigungen"
@ -36245,7 +36265,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Avisos" "Avisos"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_MESSAGES
"Missatges" "Missatges"
#elif L==1 #elif L==1
"Nachrichten" "Nachrichten"
@ -36265,7 +36285,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Mensagens" "Mensagens"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_FORUMS
"F&ograve;rums" "F&ograve;rums"
#elif L==1 #elif L==1
"Foren" "Foren"
@ -36285,7 +36305,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"F&oacute;runs" "F&oacute;runs"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_SURVEYS
"Enquestes" "Enquestes"
#elif L==1 #elif L==1
"Umfragen" "Umfragen"
@ -36305,7 +36325,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Inqu&eacute;ritos" "Inqu&eacute;ritos"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_PRIVACY
"Privacitat" "Privacitat"
#elif L==1 #elif L==1
"Geheimhaltung" "Geheimhaltung"
@ -36325,7 +36345,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Privacidade" "Privacidade"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_LANGUAGES
"Idioma" "Idioma"
#elif L==1 #elif L==1
"Sprache" "Sprache"
@ -36345,7 +36365,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Lingua" "Lingua"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_LAYOUTS
"Disseny" "Disseny"
#elif L==1 #elif L==1
"layout" "layout"
@ -36365,7 +36385,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Layout" "Layout"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_THEMES
"Tema (colors)" "Tema (colors)"
#elif L==1 #elif L==1
"Skin" "Skin"
@ -36385,7 +36405,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Skin" "Skin"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_ICON_SETS
"Icones" "Icones"
#elif L==1 #elif L==1
"Symbole" "Symbole"
@ -36405,7 +36425,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"&Iacute;cones" "&Iacute;cones"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_MENUS
"Men&uacute;" "Men&uacute;"
#elif L==1 #elif L==1
"Men&uuml;" "Men&uuml;"
@ -36425,7 +36445,7 @@ const char *Txt_STAT_USE_STAT_TYPES[Sta_NUM_TYPES_USE_STATS] =
"Menu" "Menu"
#endif #endif
, ,
#if L==0 #if L==0 // Sta_SIDE_COLUMNS
"Columnes" "Columnes"
#elif L==1 #elif L==1
"Spalten" "Spalten"