Version 14.92

This commit is contained in:
Antonio Cañas Vargas 2015-03-14 17:39:04 +01:00
parent cd8116f01d
commit 7953f585a1
26 changed files with 1353 additions and 1232 deletions

View File

@ -38,7 +38,8 @@ OBJS = swad_account.o swad_action.o swad_announcement.o swad_assignment.o swad_a
swad_layout.o swad_link.o swad_logo.o \
swad_mail.o swad_main.o swad_mark.o swad_menu.o swad_message.o \
swad_network.o swad_nickname.o swad_notice.o swad_notification.o \
swad_pagination.o swad_parameter.o swad_password.o swad_photo.o swad_place.o swad_plugin.o swad_preference.o swad_privacy.o \
swad_pagination.o swad_parameter.o swad_password.o swad_photo.o \
swad_place.o swad_plugin.o swad_preference.o swad_profile.o swad_privacy.o \
swad_QR.o \
swad_record.o swad_role.o swad_RSS.o \
swad_scope.o swad_search.o swad_session.o swad_setup.o swad_statistic.o swad_string.o swad_survey.o swad_syllabus.o \

View File

@ -235,7 +235,7 @@ p {margin:0;}
.FRAME10
{
margin:4px 0;
padding:10px 0;
padding:0;
background-color:white;
border-radius:8px;
box-shadow:1px 1px 1px #CCC;
@ -246,7 +246,7 @@ p {margin:0;}
.FRAME10_SHADOW
{
margin:4px 0 14px 0;
padding:10px 0;
padding:0;
background-color:rgba(255,255,255,0.95);
border-width:1px;
border-style:solid;
@ -259,7 +259,7 @@ p {margin:0;}
}
.TABLE10
{
padding:0 10px;
padding:10px;
width:100%;
}
.TIT_TBL_10

View File

@ -35,6 +35,7 @@
#include "swad_ID.h"
#include "swad_notification.h"
#include "swad_parameter.h"
#include "swad_profile.h"
/*****************************************************************************/
/****************************** Public constants *****************************/
@ -741,7 +742,7 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
DB_QueryDELETE (Query,"can not remove sessions of a user");
/***** Remove user's figures *****/
Usr_RemoveUsrFigures (UsrDat->UsrCod);
Prf_RemoveUsrFigures (UsrDat->UsrCod);
/***** Remove the user from the list of users without photo *****/
Pho_RemoveUsrFromTableClicksWithoutPhoto (UsrDat->UsrCod);

View File

@ -56,6 +56,7 @@
#include "swad_password.h"
#include "swad_photo.h"
#include "swad_preference.h"
#include "swad_profile.h"
#include "swad_QR.h"
#include "swad_search.h"
#include "swad_setup.h"
@ -2217,7 +2218,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeSignUpReq */{1057, 7,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ShowEnrollmentRequests ,"enrollmentrequest" },
/* ActReqMdfSevUsr */{ 797, 8,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,"configs" },
/* ActLstCon */{ 995, 9,TabUsr,ActLstCon ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowConnectedUsrs ,"userplugged" },
/* ActReqPubPrf */{1401,10,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_RequestUserProfile ,"prf" },
/* ActReqPubPrf */{1401,10,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_RequestUserProfile ,"prf" },
// Actions not in menu:
/* ActChgGrp */{ 118,-1,TabUsr,ActReqSelGrp ,0x118,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Grp_ChangeMyGrpsAndShowChanges ,NULL},
@ -2329,12 +2330,12 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActReqRemOldUsr */{ 590,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemoveOldUsrs ,NULL},
/* ActRemOldUsr */{ 773,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemoveOldUsrs ,NULL},
/* ActSeePubPrf */{1402,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_GetUsrCodAndShowUserProfile,NULL},
/* ActCal1stClkTim */{1405,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateFirstClickTime ,NULL},
/* ActCalNumClk */{1406,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumClicks ,NULL},
/* ActCalNumFilVie */{1409,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumFileViews ,NULL},
/* ActCalNumForPst */{1408,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumForPst ,NULL},
/* ActCalNumMsgSnt */{1407,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_CalculateNumMsgSnt ,NULL},
/* ActSeePubPrf */{1402,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_GetUsrCodAndShowUserProfile,NULL},
/* ActCal1stClkTim */{1405,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateFirstClickTime ,NULL},
/* ActCalNumClk */{1406,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumClicks ,NULL},
/* ActCalNumFilVie */{1409,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumFileViews ,NULL},
/* ActCalNumForPst */{1408,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumForPst ,NULL},
/* ActCalNumMsgSnt */{1407,-1,TabUsr,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateNumMsgSnt ,NULL},
// TabMsg ******************************************************************
// Actions in menu:
@ -2568,7 +2569,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeMyTimTbl */{ 408, 2,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowClassTimeTable ,"clock" },
/* ActFrmUsrAcc */{ 36, 3,TabPrf,ActFrmUsrAcc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_ShowFormAccount ,"arroba" },
/* ActReqEdiRecCom */{ 285, 4,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyCommRecord ,"card" },
/* ActEdiPrf */{ 673, 5,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_EditPrefs ,"heart" },
/* ActEdiPrf */{ 673, 5,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pre_EditPrefs ,"heart" },
/* ActAdmBrf */{ 23, 6,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"pendrive" },
/* ActMFUAct */{ 993, 7,TabPrf,ActMFUAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Act_ShowMyMFUActions ,"star" },
@ -2607,7 +2608,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActEdiPri */{1403,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pri_EditMyPrivacy ,NULL},
/* ActChgPriPho */{ 774,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_ChangePhotoVisibility ,NULL},
/* ActChgPriPrf */{1404,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ChangeProfileVisibility ,NULL},
/* ActChgPriPrf */{1404,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_ChangeProfileVisibility ,NULL},
/* ActReqEdiMyIns */{1165,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyInsCtrDpt ,NULL},
/* ActChgCtyMyIns */{1166,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ChgCountryOfMyInstitution ,NULL},
@ -2620,20 +2621,20 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActReqEdiMyNet */{1172,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Net_ShowFormMyWebsAndSocialNets,NULL},
/* ActChgMyNet */{1173,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Net_UpdateMyWebsAndSocialNets ,NULL},
/* ActChgLay */{ 672,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Lay_ChangeLayout ,Prf_EditPrefs ,NULL},
/* ActChgThe */{ 841,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,The_ChangeTheme ,Prf_EditPrefs ,NULL},
/* ActReqChgLan */{ 992,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_AskChangeLanguage ,NULL},
/* ActChgLan */{ 654,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ChangeLanguage ,Prf_EditPrefs ,NULL},
/* ActChgCol */{ 674,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ChangeSideCols ,Prf_EditPrefs ,NULL},
/* ActHidLftCol */{ 668,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_HideLeftCol ,Prf_EditPrefs ,NULL},
/* ActHidRgtCol */{ 669,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_HideRightCol ,Prf_EditPrefs ,NULL},
/* ActShoLftCol */{ 670,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ShowLeftCol ,Prf_EditPrefs ,NULL},
/* ActShoRgtCol */{ 671,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Prf_ShowRightCol ,Prf_EditPrefs ,NULL},
/* ActChgIco */{1092,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ico_ChangeIconSet ,Prf_EditPrefs ,NULL},
/* ActChgMnu */{1243,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Mnu_ChangeMenu ,Prf_EditPrefs ,NULL},
/* ActChgNtfPrf */{ 775,-1,TabPrf,ActEdiPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ntf_ChangeNotifyEvents ,Prf_EditPrefs ,NULL},
/* ActChgLay */{ 672,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Lay_ChangeLayout ,Pre_EditPrefs ,NULL},
/* ActChgThe */{ 841,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,The_ChangeTheme ,Pre_EditPrefs ,NULL},
/* ActReqChgLan */{ 992,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pre_AskChangeLanguage ,NULL},
/* ActChgLan */{ 654,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ChangeLanguage ,Pre_EditPrefs ,NULL},
/* ActChgCol */{ 674,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ChangeSideCols ,Pre_EditPrefs ,NULL},
/* ActHidLftCol */{ 668,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_HideLeftCol ,Pre_EditPrefs ,NULL},
/* ActHidRgtCol */{ 669,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_HideRightCol ,Pre_EditPrefs ,NULL},
/* ActShoLftCol */{ 670,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ShowLeftCol ,Pre_EditPrefs ,NULL},
/* ActShoRgtCol */{ 671,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pre_ShowRightCol ,Pre_EditPrefs ,NULL},
/* ActChgIco */{1092,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ico_ChangeIconSet ,Pre_EditPrefs ,NULL},
/* ActChgMnu */{1243,-1,TabPrf,ActEdiPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Mnu_ChangeMenu ,Pre_EditPrefs ,NULL},
/* ActChgNtfPrf */{ 775,-1,TabPrf,ActEdiPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Ntf_ChangeNotifyEvents ,Pre_EditPrefs ,NULL},
/* ActPrnUsrQR */{1022,-1,TabPrf,ActFrmUsrAcc ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,QR_PrintQRCode ,NULL},
/* ActPrnUsrQR */{1022,-1,TabPrf,ActFrmUsrAcc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,QR_PrintQRCode ,NULL},
/* ActPrnMyTimTbl */{ 409,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,TT_ShowClassTimeTable ,NULL},
/* ActEdiTut */{ 65,-1,TabPrf,ActSeeMyTimTbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,TT_ShowMyTutTimeTable ,NULL},

View File

@ -103,11 +103,19 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.91.1 (2015/03/14)"
#define Log_PLATFORM_VERSION "SWAD 14.92 (2015/03/14)"
// 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: Mar 14, 2015 New module swad_profile for public user's profile. (182202 lines)
1 change necessary in Makefile:
Add swad_profile.o to list of object files
Version 14.91.3: Mar 14, 2015 By default, the logged user's nickname is shown in form to view user's profile
Action to view QR code is now public. (182108 lines)
Version 14.91.2: Mar 14, 2015 URL of public profile is embedded under user's photo in record card.
Changes in layout of record card. (182124 lines)
Version 14.91.1: Mar 14, 2015 Current figures separated from historic figures in layout of public user profile.
Show only number of files, not folder or links. (182112 lines)
Version 14.91: Mar 14, 2015 Statistics for number of file views added to user figures. (182091 lines)

View File

@ -1489,7 +1489,7 @@ void Cty_RenameCountry (void)
Lay_ShowErrorAndExit ("Code of country is missing.");
/* Get the lenguage */
Language = Prf_GetParamLanguage ();
Language = Pre_GetParamLanguage ();
/* Get the new name for the country */
Par_GetParToText ("Name",NewCtyName,Cty_MAX_LENGTH_COUNTRY_NAME);
@ -1607,7 +1607,7 @@ void Cty_ChangeCtyWWW (void)
Lay_ShowErrorAndExit ("Code of country is missing.");
/* Get the lenguage */
Language = Prf_GetParamLanguage ();
Language = Pre_GetParamLanguage ();
/* Get the new WWW for the country */
Par_GetParToText ("WWW",NewWWW,Cty_MAX_LENGTH_COUNTRY_NAME);

View File

@ -46,6 +46,7 @@
#include "swad_notification.h"
#include "swad_parameter.h"
#include "swad_photo.h"
#include "swad_profile.h"
#include "swad_string.h"
#include "swad_zip.h"
@ -9973,7 +9974,7 @@ void Brw_GetAndUpdateFileViews (struct FileMetadata *FileMetadata)
/***** Increment number of file views in my user's figures *****/
if (Gbl.Usrs.Me.Logged)
Usr_IncrementNumFileViewsUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
Prf_IncrementNumFileViewsUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
}
else
FileMetadata->NumMyViews =

View File

@ -40,6 +40,7 @@
#include "swad_logo.h"
#include "swad_notification.h"
#include "swad_parameter.h"
#include "swad_profile.h"
/*****************************************************************************/
/************** External global variables from others modules ****************/
@ -757,7 +758,8 @@ unsigned For_GetNumPstsInThr (long ThrCod)
char Query[512];
/***** Get number of posts in a thread from database *****/
sprintf (Query,"SELECT COUNT(*) FROM forum_post WHERE ThrCod='%ld'",
sprintf (Query,"SELECT COUNT(*) FROM forum_post"
" WHERE ThrCod='%ld'",
ThrCod);
return (unsigned) DB_QueryCOUNT (Query,"can not get the number of posts in a thread of a forum");
}
@ -3820,7 +3822,7 @@ void For_RecForumPst (void)
}
/***** Increment number of forum posts in my user's figures *****/
Usr_IncrementNumForPstUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
Prf_IncrementNumForPstUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Write message of success *****/
Lay_ShowAlert (Lay_SUCCESS,Txt_Post_sent);

View File

@ -120,7 +120,7 @@ void Ico_ChangeIconSet (void)
}
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/

View File

@ -296,7 +296,7 @@ void Lay_WriteStartOfPage (void)
/* Left bar used to expand-contract central zone */
fprintf (Gbl.F.Out,"<td style=\"width:10px; text-align:right;"
" vertical-align:top;\">");
Prf_PutLeftIconToHideShowCols ();
Pre_PutLeftIconToHideShowCols ();
fprintf (Gbl.F.Out,"</td>");
if (Gbl.Prefs.Menu == Mnu_MENU_VERTICAL)
@ -382,7 +382,7 @@ static void Lay_WriteEndOfPage (void)
/* Right bar used to expand-contract central zone */
fprintf (Gbl.F.Out,"<td style=\"width:10px; text-align:left;"
" vertical-align:top;\">");
Prf_PutRigthIconToHideShowCols ();
Pre_PutRigthIconToHideShowCols ();
fprintf (Gbl.F.Out,"</td>");
}
@ -657,7 +657,7 @@ static void Lay_WritePageTopHeading (void)
if (Gbl.Usrs.Me.Logged)
Usr_WriteLoggedUsrHead ();
else
Prf_PutSelectorToSelectLanguage ();
Pre_PutSelectorToSelectLanguage ();
fprintf (Gbl.F.Out,"</td>"
"</tr>"
"</table>"
@ -1191,7 +1191,7 @@ void Lay_RefreshNotifsAndConnected (void)
else if (!(Gbl.PID % 1013)) // Do this only one of 1013 times (1013 is prime)
Brw_RemoveExpiredExpandedFolders (); // Remove old expanded folders (from all users)
else if (!(Gbl.PID % 1019)) // Do this only one of 1019 times (1019 is prime)
Prf_RemoveOldPrefsFromIP (); // Remove old preferences from IP
Pre_RemoveOldPrefsFromIP (); // Remove old preferences from IP
else if (!(Gbl.PID % 1021)) // Do this only one of 1021 times (1021 is prime)
Sta_RemoveOldEntriesRecentLog (); // Remove old entries in recent log table, it's a slow query
@ -1466,7 +1466,7 @@ void Lay_ChangeLayout (void)
}
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/

View File

@ -352,7 +352,7 @@ void Mnu_ChangeMenu (void)
}
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/

View File

@ -42,6 +42,7 @@
#include "swad_notification.h"
#include "swad_parameter.h"
#include "swad_photo.h"
#include "swad_profile.h"
#include "swad_user.h"
/*****************************************************************************/
@ -1185,7 +1186,7 @@ static long Msg_InsertNewMsg (const char *Subject,const char *Content)
DB_QueryINSERT (Query,"can not create message");
/***** Increment number of messages sent by me *****/
Usr_IncrementNumMsgSntUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
Prf_IncrementNumMsgSntUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
return MsgCod;
}

View File

@ -30,6 +30,7 @@
#include "swad_database.h"
#include "swad_global.h"
#include "swad_parameter.h"
#include "swad_profile.h"
#include "swad_theme.h"
/*****************************************************************************/
@ -134,13 +135,15 @@ const char *Net_TitleWebsAndSocialNetworks[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] =
/***************************** Private prototypes ****************************/
/*****************************************************************************/
static void Net_ShowAWebOrSocialNet (const char *URL,
const char *Icon,const char *Title);
static void Net_GetMyWebsAndSocialNetsFromForm (void);
/*****************************************************************************/
/************************** Show webs / social networks **********************/
/*****************************************************************************/
void Net_ShowWebsAndSocialNets (long UsrCod)
void Net_ShowWebsAndSocialNets (const struct UsrData *UsrDat)
{
char Query[256];
MYSQL_RES *mysql_res;
@ -148,8 +151,14 @@ void Net_ShowWebsAndSocialNets (long UsrCod)
Net_WebsAndSocialNetworks_t NumURL;
char URL[Cns_MAX_BYTES_URL+1];
/***** Start container *****/
fprintf (Gbl.F.Out,"<div style=\"width:144px; margin:0 auto;\">");
/***** Show link to public profile *****/
Net_ShowAWebOrSocialNet (Prf_GetURLPublicProfile (URL,UsrDat->Nickname),
"swad",Cfg_PLATFORM_PAGE_TITLE);
/***** Show the rest of webs / social networks *****/
for (NumURL = (Net_WebsAndSocialNetworks_t) 0;
NumURL < Net_NUM_WEBS_AND_SOCIAL_NETWORKS;
NumURL++)
@ -157,38 +166,49 @@ void Net_ShowWebsAndSocialNets (long UsrCod)
/***** Get user's web / social network from database *****/
sprintf (Query,"SELECT URL FROM usr_webs"
" WHERE UsrCod='%ld' AND Web='%s'",
UsrCod,
Net_WebsAndSocialNetworksDB[NumURL]);
UsrDat->UsrCod,Net_WebsAndSocialNetworksDB[NumURL]);
/***** Check number of rows in result *****/
/***** Check if exists the web / social network for this user *****/
if (DB_QuerySELECT (Query,&mysql_res,"can not get user's web / social network"))
{
/***** Get URL *****/
/* Get URL */
row = mysql_fetch_row (mysql_res);
strncpy (URL,row[0],Cns_MAX_BYTES_URL);
URL[Cns_MAX_BYTES_URL] = '\0';
/***** Write link and icon *****/
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\""
" style=\"display:inline;\" >"
"<a href=\"%s\" target=\"_blank\" title=\"%s\">"
"<img src=\"%s/%s16x16.gif\""
" style=\"width:16px;height:16px;margin:0 1px;\" alt=\"%s\" />"
"</a>"
"</div>",
URL,
Net_TitleWebsAndSocialNetworks[NumURL],
Gbl.Prefs.IconsURL,Net_WebsAndSocialNetworksDB[NumURL],
Net_TitleWebsAndSocialNetworks[NumURL]);
/* Show the web / social network */
Net_ShowAWebOrSocialNet (URL,
Net_WebsAndSocialNetworksDB[NumURL],
Net_TitleWebsAndSocialNetworks[NumURL]);
}
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
}
/***** End container *****/
fprintf (Gbl.F.Out,"</div>");
}
/*****************************************************************************/
/************************** Show a web / social network **********************/
/*****************************************************************************/
static void Net_ShowAWebOrSocialNet (const char *URL,
const char *Icon,const char *Title)
{
/***** Write link and icon *****/
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\""
" style=\"display:inline;\">"
"<a href=\"%s\" target=\"_blank\" title=\"%s\">"
"<img src=\"%s/%s16x16.gif\""
" style=\"width:16px;height:16px;margin:0 1px;\" alt=\"%s\" />"
"</a>"
"</div>",
URL,Title,
Gbl.Prefs.IconsURL,Icon,Title);
}
/*****************************************************************************/
/********************* Show form to edit my social networks ******************/
/*****************************************************************************/

View File

@ -39,7 +39,7 @@
/***************************** Public prototypes *****************************/
/*****************************************************************************/
void Net_ShowWebsAndSocialNets (long UsrCod);
void Net_ShowWebsAndSocialNets (const struct UsrData *UsrDat);
void Net_ShowFormMyWebsAndSocialNets (void);
void Net_UpdateMyWebsAndSocialNets (void);
void Net_ShowWebAndSocialNetworksStats (void);

View File

@ -235,7 +235,7 @@ void Par_GetMainParameters (void)
}
/***** Try to get preferences changed from current IP *****/
Prf_GetPrefsFromIP ();
Pre_GetPrefsFromIP ();
if (Gbl.Prefs.Layout == Lay_LAYOUT_UNKNOWN)
Gbl.Prefs.Layout = Lay_LAYOUT_DEFAULT;
@ -252,7 +252,7 @@ void Par_GetMainParameters (void)
Gbl.Prefs.Layout = LayoutFromForm;
/* Update preferences from current IP */
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/***** Set path of theme *****/

View File

@ -54,14 +54,14 @@ extern struct Globals Gbl;
/****************************** Private prototypes ***************************/
/*****************************************************************************/
static void Prf_PutIconsToSelectSideCols (void);
static void Prf_UpdateSideColsOnUsrDataTable (void);
static void Pre_PutIconsToSelectSideCols (void);
static void Pre_UpdateSideColsOnUsrDataTable (void);
/*****************************************************************************/
/***************************** Edit preferences ******************************/
/*****************************************************************************/
void Prf_EditPrefs (void)
void Pre_EditPrefs (void)
{
extern const char *Txt_Language;
extern const char *Txt_You_can_only_receive_email_notifications_if_;
@ -71,7 +71,7 @@ void Prf_EditPrefs (void)
Lay_StartRoundFrameTable10 (NULL,2,Txt_Language);
fprintf (Gbl.F.Out,"<tr>"
"<td style=\"text-align:center;\">");
Prf_PutSelectorToSelectLanguage ();
Pre_PutSelectorToSelectLanguage ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
Lay_EndRoundFrameTable10 ();
@ -94,7 +94,7 @@ void Prf_EditPrefs (void)
Mnu_PutIconsToSelectMenu (); // 4. Menu
fprintf (Gbl.F.Out,"</td>"
"<td>");
Prf_PutIconsToSelectSideCols (); // 5. Side columns
Pre_PutIconsToSelectSideCols (); // 5. Side columns
fprintf (Gbl.F.Out,"</td>");
}
fprintf (Gbl.F.Out,"</tr>"
@ -115,7 +115,7 @@ void Prf_EditPrefs (void)
/******************* Get preferences changed from current IP *****************/
/*****************************************************************************/
void Prf_GetPrefsFromIP (void)
void Pre_GetPrefsFromIP (void)
{
char Query[1024];
unsigned long NumRows;
@ -171,7 +171,7 @@ void Prf_GetPrefsFromIP (void)
/************************ Set preferences from current IP ********************/
/*****************************************************************************/
void Prf_SetPrefsFromIP (void)
void Pre_SetPrefsFromIP (void)
{
extern const char *The_ThemeId[The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
@ -207,7 +207,7 @@ void Prf_SetPrefsFromIP (void)
/*********************** Remove old preferences from IP **********************/
/*****************************************************************************/
void Prf_RemoveOldPrefsFromIP (void)
void Pre_RemoveOldPrefsFromIP (void)
{
char Query[256];
@ -223,7 +223,7 @@ void Prf_RemoveOldPrefsFromIP (void)
/*****************************************************************************/
// Width == 0 means don't force width of selector
void Prf_PutSelectorToSelectLanguage (void)
void Pre_PutSelectorToSelectLanguage (void)
{
extern const char *Txt_STR_LANG_NAME[Txt_NUM_LANGUAGES];
Txt_Language_t Lan;
@ -254,7 +254,7 @@ void Prf_PutSelectorToSelectLanguage (void)
/********* Ask user if he/she really wants to change the language ************/
/*****************************************************************************/
void Prf_AskChangeLanguage (void)
void Pre_AskChangeLanguage (void)
{
extern const char *Txt_Do_you_want_to_change_your_language_to_LANGUAGE[Txt_NUM_LANGUAGES];
extern const char *Txt_Do_you_want_to_change_the_language_to_LANGUAGE[Txt_NUM_LANGUAGES];
@ -262,7 +262,7 @@ void Prf_AskChangeLanguage (void)
Txt_Language_t CurrentLanguage = Gbl.Prefs.Language;
/***** Get param language *****/
Gbl.Prefs.Language = Prf_GetParamLanguage (); // Change temporarily language to set form action
Gbl.Prefs.Language = Pre_GetParamLanguage (); // Change temporarily language to set form action
/***** Request confirmation *****/
if (Gbl.Usrs.Me.Logged)
@ -283,7 +283,7 @@ void Prf_AskChangeLanguage (void)
/******************************* Change language *****************************/
/*****************************************************************************/
void Prf_ChangeLanguage (void)
void Pre_ChangeLanguage (void)
{
extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES];
extern const char *Txt_Your_language_has_changed_to_LANGUAGE;
@ -293,7 +293,7 @@ void Prf_ChangeLanguage (void)
bool MyLanguageHasChanged = false;
/***** Get param language *****/
Gbl.Prefs.Language = Prf_GetParamLanguage ();
Gbl.Prefs.Language = Pre_GetParamLanguage ();
/***** Store language in database *****/
if (Gbl.Usrs.Me.Logged && Gbl.Prefs.Language != Gbl.Usrs.Me.UsrDat.Prefs.Language)
@ -305,7 +305,7 @@ void Prf_ChangeLanguage (void)
}
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
/***** Confirmation *****/
if (MyLanguageHasChanged)
@ -318,7 +318,7 @@ void Prf_ChangeLanguage (void)
/*************************** Get parameter language **************************/
/*****************************************************************************/
Txt_Language_t Prf_GetParamLanguage (void)
Txt_Language_t Pre_GetParamLanguage (void)
{
extern const unsigned Txt_Current_CGI_SWAD_Language;
char UnsignedStr[10+1];
@ -336,7 +336,7 @@ Txt_Language_t Prf_GetParamLanguage (void)
/************ Put icons to select the layout of the side columns *************/
/*****************************************************************************/
static void Prf_PutIconsToSelectSideCols (void)
static void Pre_PutIconsToSelectSideCols (void)
{
extern const char *Txt_Columns;
extern const char *Txt_LAYOUT_SIDE_COLUMNS[4];
@ -371,7 +371,7 @@ static void Prf_PutIconsToSelectSideCols (void)
/**************** Put left icon to hide/show side columns ********************/
/*****************************************************************************/
void Prf_PutLeftIconToHideShowCols (void)
void Pre_PutLeftIconToHideShowCols (void)
{
extern const char *Txt_Hide_left_column;
extern const char *Txt_Show_left_column;
@ -403,7 +403,7 @@ void Prf_PutLeftIconToHideShowCols (void)
/**************** Put right icon to hide/show side columns *******************/
/*****************************************************************************/
void Prf_PutRigthIconToHideShowCols (void)
void Pre_PutRigthIconToHideShowCols (void)
{
extern const char *Txt_Hide_right_column;
extern const char *Txt_Show_right_column;
@ -435,80 +435,80 @@ void Prf_PutRigthIconToHideShowCols (void)
/*********************** Change layout of side columns ***********************/
/*****************************************************************************/
void Prf_ChangeSideCols (void)
void Pre_ChangeSideCols (void)
{
/***** Get param side-columns *****/
Gbl.Prefs.SideCols = Prf_GetParamSideCols ();
Gbl.Prefs.SideCols = Pre_GetParamSideCols ();
/***** Store side colums in database *****/
if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable ();
Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/
/*************************** Hide left side column ***************************/
/*****************************************************************************/
void Prf_HideLeftCol (void)
void Pre_HideLeftCol (void)
{
Gbl.Prefs.SideCols &= ~Lay_SHOW_LEFT_COLUMN; // And with 1...101 to hide left column
if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable ();
Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/
/*************************** Hide right side column **************************/
/*****************************************************************************/
void Prf_HideRightCol (void)
void Pre_HideRightCol (void)
{
Gbl.Prefs.SideCols &= ~Lay_SHOW_RIGHT_COLUMN; // And with 1...110 to hide right column
if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable ();
Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/
/**************************** Show left side column **************************/
/*****************************************************************************/
void Prf_ShowLeftCol (void)
void Pre_ShowLeftCol (void)
{
Gbl.Prefs.SideCols |= Lay_SHOW_LEFT_COLUMN; // Or with 10 to show left column
if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable ();
Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/
/**************************** Show right side column *************************/
/*****************************************************************************/
void Prf_ShowRightCol (void)
void Pre_ShowRightCol (void)
{
Gbl.Prefs.SideCols |= Lay_SHOW_RIGHT_COLUMN; // Or with 01 to show right column
if (Gbl.Usrs.Me.Logged)
Prf_UpdateSideColsOnUsrDataTable ();
Pre_UpdateSideColsOnUsrDataTable ();
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/
/************** Update layout of side colums on user data table **************/
/*****************************************************************************/
static void Prf_UpdateSideColsOnUsrDataTable (void)
static void Pre_UpdateSideColsOnUsrDataTable (void)
{
char Query[512];
@ -521,7 +521,7 @@ static void Prf_UpdateSideColsOnUsrDataTable (void)
/************** Get parameter used to show/hide side columns *****************/
/*****************************************************************************/
unsigned Prf_GetParamSideCols (void)
unsigned Pre_GetParamSideCols (void)
{
char UnsignedStr[10+1];
unsigned UnsignedNum; // 11 ==> by default, show both side columns

View File

@ -1,7 +1,7 @@
// swad_preference.h: user's preferences
#ifndef _SWAD_PRF
#define _SWAD_PRF
#ifndef _SWAD_PRE
#define _SWAD_PRE
/*
SWAD (Shared Workspace At a Distance in Spanish),
is a web platform developed at the University of Granada (Spain),
@ -39,24 +39,24 @@
/***************************** Public prototypes *****************************/
/*****************************************************************************/
void Prf_EditPrefs (void);
void Pre_EditPrefs (void);
void Prf_GetPrefsFromIP (void);
void Prf_SetPrefsFromIP (void);
void Prf_RemoveOldPrefsFromIP (void);
void Pre_GetPrefsFromIP (void);
void Pre_SetPrefsFromIP (void);
void Pre_RemoveOldPrefsFromIP (void);
void Prf_PutSelectorToSelectLanguage (void);
void Prf_AskChangeLanguage (void);
void Prf_ChangeLanguage (void);
Txt_Language_t Prf_GetParamLanguage (void);
void Pre_PutSelectorToSelectLanguage (void);
void Pre_AskChangeLanguage (void);
void Pre_ChangeLanguage (void);
Txt_Language_t Pre_GetParamLanguage (void);
void Prf_PutLeftIconToHideShowCols (void);
void Prf_PutRigthIconToHideShowCols (void);
void Prf_ChangeSideCols (void);
void Prf_HideLeftCol (void);
void Prf_HideRightCol (void);
void Prf_ShowLeftCol (void);
void Prf_ShowRightCol (void);
unsigned Prf_GetParamSideCols (void);
void Pre_PutLeftIconToHideShowCols (void);
void Pre_PutRigthIconToHideShowCols (void);
void Pre_ChangeSideCols (void);
void Pre_HideLeftCol (void);
void Pre_HideRightCol (void);
void Pre_ShowLeftCol (void);
void Pre_ShowRightCol (void);
unsigned Pre_GetParamSideCols (void);
#endif

1111
swad_profile.c Normal file

File diff suppressed because it is too large Load Diff

57
swad_profile.h Normal file
View File

@ -0,0 +1,57 @@
// swad_profile.h: user's public profile
#ifndef _SWAD_PRF
#define _SWAD_PRF
/*
SWAD (Shared Workspace At a Distance in Spanish),
is a web platform developed at the University of Granada (Spain),
and used to support university teaching.
This file is part of SWAD core.
Copyright (C) 1999-2015 Antonio Cañas Vargas
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*****************************************************************************/
/********************************** Headers **********************************/
/*****************************************************************************/
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
/*****************************************************************************/
/******************************** Public types *******************************/
/*****************************************************************************/
/*****************************************************************************/
/****************************** Public prototypes ****************************/
/*****************************************************************************/
char *Prf_GetURLPublicProfile (char *URL,const char *NicknameWithoutArroba);
void Prf_RequestUserProfile (void);
void Prf_GetUsrCodAndShowUserProfile (void);
void Prf_ChangeProfileVisibility (void);
void Prf_CalculateFirstClickTime (void);
void Prf_CalculateNumClicks (void);
void Prf_CalculateNumFileViews (void);
void Prf_CalculateNumForPst (void);
void Prf_CalculateNumMsgSnt (void);
void Prf_RemoveUsrFigures (long UsrCod);
void Prf_IncrementNumClicksUsr (long UsrCod);
void Prf_IncrementNumFileViewsUsr (long UsrCod);
void Prf_IncrementNumForPstUsr (long UsrCod);
void Prf_IncrementNumMsgSntUsr (long UsrCod);
#endif

BIN
swad_profile.o Normal file

Binary file not shown.

View File

@ -2030,8 +2030,6 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
extern const char *Txt_First_name;
extern const char *Txt_Country;
extern const char *Txt_Another_country;
extern const char *Txt_Shortcut;
extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES];
extern const char *Txt_Place_of_origin;
extern const char *Txt_Date_of_birth;
extern const char *Txt_Institution;
@ -2045,7 +2043,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
unsigned RecordWidth = Rec_WIDTH_SHARE_RECORD_BIG;
char StrRecordWidth[10+1];
unsigned FrameWidth = 10;
unsigned Col1Width = 140;
unsigned Col1Width = 130;
unsigned Col2Width;
unsigned Col3Width = 160;
unsigned Cols1and2Width;
@ -2379,7 +2377,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** User's nickname *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">"
"<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td class=\"HEAD_REC_BIG\""
@ -2413,7 +2411,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
fprintf (Gbl.F.Out,"<td style=\"width:%upx;"
" vertical-align:top;\">",
Col3Width);
Net_ShowWebsAndSocialNets (UsrDat->UsrCod);
Net_ShowWebsAndSocialNets (UsrDat);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
@ -2421,7 +2419,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
{
/***** User's e-mail *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">"
"<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2445,7 +2443,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** User's ID *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">"
"<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2461,7 +2459,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
{
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">",
" style=\"width:%upx; text-align:right;\">",
ClassForm,Col1Width);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
fprintf (Gbl.F.Out,"%s*",Txt_Sex);
@ -2586,7 +2584,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
}
else // RoleForm == false
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">"
"<td class=\"%s\" style=\"width:%upx;"
" text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2604,7 +2603,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/***** Name *****/
/* Surname 1 */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">"
"<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s",
ClassForm,Col1Width,Txt_Surname_1);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
@ -2624,7 +2623,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Surname 2 */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">"
"<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2644,7 +2643,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* First name */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx; text-align:left;\">"
"<td class=\"%s\" style=\"width:%upx; text-align:right;\">"
"%s",
ClassForm,Col1Width,Txt_First_name);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
@ -2666,7 +2665,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Country */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s",
ClassForm,Col1Width,Txt_Country);
if (TypeOfView == Rec_FORM_MY_COMMON_RECORD)
@ -2714,32 +2713,12 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
fprintf (Gbl.F.Out,"</td>"
"</tr>");
/***** Shortcut to the user's profile *****/
if (TypeOfView == Rec_RECORD_PUBLIC)
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
"<a href=\"%s/%s?usr=@%s\" class=\"%s\" target=\"_blank\">"
"%s/%s?usr=@%s"
"</a>"
"</td>"
"</tr>",
ClassForm,Col1Width,Txt_Shortcut,
ClassData,Cols2and3Width,
Cfg_HTTPS_URL_SWAD_CGI,Txt_STR_LANG_ID[Gbl.Prefs.Language],UsrDat->Nickname,
ClassData,
Cfg_HTTPS_URL_SWAD_CGI,Txt_STR_LANG_ID[Gbl.Prefs.Language],UsrDat->Nickname);
if (ShowAddressRows)
{
/* Origin place */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2761,7 +2740,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Date of birth */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2785,7 +2764,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Local address */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2807,7 +2786,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Local phone */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2829,7 +2808,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Family address */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2851,7 +2830,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Family phone */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2873,7 +2852,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Common comments for all the courses */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\" style=\"width:%upx;"
" text-align:left; vertical-align:top;\">"
" text-align:right; vertical-align:top;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\" style=\"width:%upx;"
@ -2903,7 +2882,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Institution */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2928,7 +2907,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Centre */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2955,7 +2934,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Department */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2982,7 +2961,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Office */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""
@ -2997,7 +2976,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
/* Phone */
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s\""
" style=\"width:%upx; text-align:left;\">"
" style=\"width:%upx; text-align:right;\">"
"%s:"
"</td>"
"<td colspan=\"2\" class=\"%s\""

View File

@ -46,6 +46,7 @@
#include "swad_notice.h"
#include "swad_notification.h"
#include "swad_parameter.h"
#include "swad_profile.h"
#include "swad_statistic.h"
#include "swad_tab.h"
#include "swad_web_service.h"
@ -345,7 +346,7 @@ void Sta_LogAccess (const char *Comments)
/***** Increment my number of clicks *****/
if (Gbl.Usrs.Me.UsrDat.UsrCod > 0)
Usr_IncrementNumClicksUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
Prf_IncrementNumClicksUsr (Gbl.Usrs.Me.UsrDat.UsrCod);
}
/*****************************************************************************/

View File

@ -10934,28 +10934,7 @@ const char *Txt_Field_BR_name =
#elif L==8
"Nome<br />do campo";
#endif
/*
const char *Txt_Figures =
#if L==0
"Xifres";
#elif L==1
"Zahlen";
#elif L==2
"Figures";
#elif L==3
"Cifras";
#elif L==4
"Chiffres";
#elif L==5
"Cifras"; // Okoteve traducción
#elif L==6
"Cifre";
#elif L==7
"Cyfry";
#elif L==8
"N&uacute;meros";
#endif
*/
const char *Txt_File =
#if L==0
"Fitxer";

View File

@ -282,7 +282,7 @@ void The_ChangeTheme (void)
}
/***** Set preferences from current IP *****/
Prf_SetPrefsFromIP ();
Pre_SetPrefsFromIP ();
}
/*****************************************************************************/

File diff suppressed because it is too large Load Diff

View File

@ -210,6 +210,8 @@ void Usr_RestrictLengthAndWriteName (struct UsrData *UsrDat,unsigned MaxChars);
bool Usr_CheckIfUsrIsAdm (long UsrCod,Sco_Scope_t Scope,long Cod);
bool Usr_CheckIfUsrIsSuperuser (long UsrCod);
unsigned Usr_GetNumCrssOfUsrWithARole (long UsrCod,Rol_Role_t Role);
unsigned Usr_GetNumUsrsInCrssOfAUsr (long UsrCod,Rol_Role_t UsrRole,Rol_Role_t OthersRole);
bool Usr_CheckIfUsrSharesAnyOfMyCrs (long UsrCod);
bool Usr_CheckIfUsrSharesAnyOfMyCrsWithDifferentRole (long UsrCod);
void Usr_GetMyInstitutions (void);
@ -324,18 +326,4 @@ void Usr_ShowWarningNoUsersFound (Rol_Role_t Role);
void Usr_GetAndShowNumUsrsInPlatform (Rol_Role_t Role);
void Usr_RequestUserProfile (void);
void Usr_GetUsrCodAndShowUserProfile (void);
void Usr_ChangeProfileVisibility (void);
void Usr_CalculateFirstClickTime (void);
void Usr_CalculateNumClicks (void);
void Usr_CalculateNumFileViews (void);
void Usr_CalculateNumForPst (void);
void Usr_CalculateNumMsgSnt (void);
void Usr_RemoveUsrFigures (long UsrCod);
void Usr_IncrementNumClicksUsr (long UsrCod);
void Usr_IncrementNumFileViewsUsr (long UsrCod);
void Usr_IncrementNumForPstUsr (long UsrCod);
void Usr_IncrementNumMsgSntUsr (long UsrCod);
#endif