using System; using CMS.FormControls; using CMS.GlobalHelper; using CMS.SiteProvider; using CMS.SettingsProvider; using CMS.CMSHelper; public partial class CMSModules_Avatars_FormControls_ViewUserAvatar : FormEngineUserControl { private int mValue; private int mMaxSideSize = 200; #region "Public properties" /// /// Gets or sets field value. /// public override object Value { get { return mValue; } set { // get avatar id mValue = ValidationHelper.GetInteger(value, 0); } } /// /// Gets or sets max side size of avatar image. /// public int MaxSideSize { get { return mMaxSideSize; } set { mMaxSideSize = value; } } #endregion #region "Methods" protected void Page_Load(object sender, EventArgs e) { AvatarInfo ai = null; int userID = 0; UserInfo userInfo = null; // Load avatar type setting string aType = DataHelper.GetNotEmpty(SettingsKeyProvider.GetStringValue(CMSContext.CurrentSiteName + ".CMSAvatarType"), AvatarInfoProvider.AVATAR); if (aType == AvatarInfoProvider.USERCHOICE) { // Get userID from FormEngine if (this.Data != null) { userID = ValidationHelper.GetInteger(this.Data["UserID"], 0); } userInfo = UserInfoProvider.GetUserInfo(userID); // Set user avatar type if (userInfo != null) { aType = userInfo.UserSettings.UserAvatarType; } else { aType = AvatarInfoProvider.GRAVATAR; } } switch (aType) { case AvatarInfoProvider.AVATAR: if (mValue > 0) { ai = AvatarInfoProvider.GetAvatarInfo(mValue); } if (ai == null) { DefaultAvatarTypeEnum defAvatar = DefaultAvatarTypeEnum.User; UserGenderEnum gender = (UserGenderEnum)ValidationHelper.GetInteger(Form.GetFieldValue("UserGender"), 0); switch (gender) { case UserGenderEnum.Female: defAvatar = DefaultAvatarTypeEnum.Female; break; case UserGenderEnum.Male: defAvatar = DefaultAvatarTypeEnum.Male; break; } ai = AvatarInfoProvider.GetDefaultAvatar(defAvatar); // Avatar not specified for current gender, get user default avatar if (ai == null) { ai = AvatarInfoProvider.GetDefaultAvatar(DefaultAvatarTypeEnum.User); } } if (ai != null) { imgAvatar.ImageUrl = ResolveUrl("~/CMSModules/Avatars/CMSPages/GetAvatar.aspx?avatarguid=" + ai.AvatarGUID + "&maxsidesize=" + MaxSideSize); imgAvatar.AlternateText = GetString("general.avatar"); return; } imgAvatar.Visible = false; break; case AvatarInfoProvider.GRAVATAR: if (userInfo == null) { // Get userID from FormEngine if (this.Data != null) { userID = ValidationHelper.GetInteger(this.Data["UserID"], 0); } userInfo = UserInfoProvider.GetUserInfo(userID); } if (userInfo != null) { imgAvatar.ImageUrl = AvatarInfoProvider.CreateGravatarLink(userInfo.Email, userInfo.UserSettings.UserGender, null, MaxSideSize, CMSContext.CurrentSiteName); imgAvatar.AlternateText = GetString("general.avatar"); } else { imgAvatar.Visible = false; } break; } } #endregion }