public static long GetUnseenNotificationCount(Core core) { if (core == null) { throw new NullCoreException(); } List<Notification> notificationItems = new List<Notification>(); SelectQuery query = new SelectQuery(GetTable(typeof(Notification))); query.AddFields("COUNT(*) as total"); query.AddCondition("notification_read", false); query.AddCondition("notification_seen", false); query.AddCondition("notification_primitive_id", core.LoggedInMemberId); query.AddCondition("notification_primitive_type_id", ItemKey.GetTypeId(core, typeof(User))); query.AddSort(SortOrder.Descending, "notification_time_ut"); System.Data.Common.DbDataReader notificationsReader = core.Db.ReaderQuery(query); long newNotifications = 0; if (notificationsReader.HasRows) { notificationsReader.Read(); newNotifications = (long)notificationsReader["total"]; } notificationsReader.Close(); notificationsReader.Dispose(); return newNotifications; }
public List<NetworkMember> GetMembers(int page, int perPage, string filter) { List<NetworkMember> members = new List<NetworkMember>(); SelectQuery query = new SelectQuery(NetworkMember.GetTable(typeof(NetworkMember))); query.AddFields(NetworkMember.GetFieldsPrefixed(core, typeof(NetworkMember))); query.AddCondition("network_id", networkId); query.AddSort(SortOrder.Ascending, "member_join_date_ut"); if (!string.IsNullOrEmpty(filter)) { query.AddCondition(new DataField("user_keys", "user_name_first"), filter[0]); } query.LimitStart = (page - 1) * perPage; query.LimitCount = perPage; DataTable membersTable = db.Query(query); List<long> memberIds = new List<long>(); foreach (DataRow dr in membersTable.Rows) { memberIds.Add((long)dr["user_id"]); } core.LoadUserProfiles(memberIds); foreach (DataRow dr in membersTable.Rows) { members.Add(new NetworkMember(core, dr)); } return members; }
public List<Fan> GetFans(int page, int perPage, string filter) { List<Fan> fans = new List<Fan>(); SelectQuery query = new SelectQuery(typeof(Fan)); query.AddJoin(JoinTypes.Inner, "user_keys", "user_id", "user_id"); query.AddFields(Fan.GetFieldsPrefixed(core, typeof(Fan))); query.AddCondition("musician_id", musicianId); if (!string.IsNullOrEmpty(filter)) { query.AddCondition("user_keys.user_name_first", filter); } query.AddSort(SortOrder.Ascending, "fan_date_ut"); query.LimitStart = (page - 1) * perPage; query.LimitCount = perPage; DataTable fansTable = db.Query(query); List<long> fanIds = new List<long>(); foreach (DataRow dr in fansTable.Rows) { fanIds.Add((long)dr["user_id"]); } core.LoadUserProfiles(fanIds); foreach (DataRow dr in fansTable.Rows) { fans.Add(new Fan(core, dr)); } return fans; }
/// <summary> /// /// </summary> /// <param name="m">Page with message id#</param> /// <param name="perPage"></param> /// <returns></returns> public List<TopicPost> GetPosts(long m, int perPage) { int p = 1; // currentPage if (m > 0) { SelectQuery query = new SelectQuery(TopicPost.GetTable(typeof(TopicPost))); query.AddFields("COUNT(*) AS total"); query.AddCondition("topic_id", topicId); query.AddCondition("post_id", ConditionEquality.LessThan, m); query.AddSort(SortOrder.Ascending, "post_time_ut"); System.Data.Common.DbDataReader postsReader = db.ReaderQuery(query); long before = 0; long after = 0; if (postsReader.HasRows) { postsReader.Read(); before = (long)postsReader["total"]; after = Posts - before; } postsReader.Close(); postsReader.Dispose(); /*if (item.CommentSortOrder == SortOrder.Ascending) {*/ p = (int)(before / perPage + 1); /*} else { p = (int)(after / perPage + 1); }*/ } return GetPosts(p, perPage); }
public void DisplayComments(Template template, Primitive owner, ICommentableItem item, List<User> commenters, int page, long commentCount, DisplayCommentHookHandler hook) { Mysql db = core.Db; long c = core.Functions.RequestLong("c", 0); if (c > 0) { SelectQuery query = new SelectQuery("comments"); query.AddFields("COUNT(*) AS total"); query.AddCondition("comment_item_id", item.Id); query.AddCondition("comment_item_type_id", item.ItemKey.TypeId); query.AddCondition("comment_id", ConditionEquality.LessThanEqual, c); if (commenters != null) { if (commenters.Count == 2) { if (item.Namespace == "USER") { QueryCondition qc1 = query.AddCondition("c.comment_item_id", commenters[0].Id); qc1.AddCondition("user_id", commenters[1].Id); QueryCondition qc2 = query.AddCondition(ConditionRelations.Or, "c.comment_item_id", commenters[1].Id); qc2.AddCondition("user_id", commenters[0].Id); query.AddCondition("c.comment_item_type_id", item.ItemKey.TypeId); } else { query.AddCondition("comment_item_id", item.Id); query.AddCondition("comment_item_type_id", item.ItemKey.TypeId); } } else { query.AddCondition("comment_item_id", item.Id); query.AddCondition("comment_item_type_id", item.ItemKey.TypeId); } } else { query.AddCondition("comment_item_id", item.Id); query.AddCondition("comment_item_type_id", item.ItemKey.TypeId); } query.AddSort(SortOrder.Ascending, "comment_time_ut"); DataRow commentsRow = db.Query(query).Rows[0]; long before = (long)commentsRow["total"]; long after = item.Comments - before - 1; if (item.CommentSortOrder == SortOrder.Ascending) { page = (int)(before / item.CommentsPerPage + 1); } else { page = (int)(after / item.CommentsPerPage + 1); } } if (core.Session.IsLoggedIn && core.Session.LoggedInMember != null) { template.Parse("LOGGED_IN", "TRUE"); template.Parse("LOGGED_IN_USER_DISPLAY_NAME", core.Session.LoggedInMember.DisplayName); template.Parse("LOGGED_IN_USER_ICON", core.Session.LoggedInMember.Icon); template.Parse("LOGGED_IN_USER_TILE", core.Session.LoggedInMember.Tile); template.Parse("LOGGED_IN_USER_SQUARE", core.Session.LoggedInMember.Square); } List<Comment> comments = Comment.GetComments(core, item.ItemKey, item.CommentSortOrder, page, item.CommentsPerPage, commenters); Comment.LoadUserInfoCache(core, comments); if (commentCount >= 0) { template.Parse("COMMENTS", commentCount.ToString()); } else if (((NumberedItem)item).Info.Comments >= 0) { template.Parse("COMMENTS", ((NumberedItem)item).Info.Comments.ToString()); } else { template.Parse("COMMENTS", comments.Count.ToString()); } template.Parse("ITEM_ID", item.Id.ToString()); template.Parse("ITEM_TYPE", item.ItemKey.TypeId.ToString()); if (item.CommentSortOrder == SortOrder.Ascending) { template.Parse("COMMENTS_ASC", "TRUE"); template.Parse("COMMENT_SORT", "asc"); } else { template.Parse("COMMENTS_DESC", "TRUE"); template.Parse("COMMENT_SORT", "desc"); } foreach (Comment comment in comments) { core.PrimitiveCache.LoadUserProfile(comment.UserId); } long lastId = 0; foreach (Comment comment in comments) { VariableCollection commentsVariableCollection = template.CreateChild("comment-list"); //commentsVariableCollection.ParseRaw("COMMENT", Bbcode.Parse(HttpUtility.HtmlEncode(comment.Body), core.session.LoggedInMember)); /*if ((!core.IsMobile) && (!string.IsNullOrEmpty(comment.BodyCache))) { core.Display.ParseBbcodeCache(commentsVariableCollection, "COMMENT", comment.BodyCache); } else*/ { core.Display.ParseBbcode(commentsVariableCollection, "COMMENT", comment.Body, true, null, null); } try { User commentPoster = core.PrimitiveCache[comment.UserId]; lastId = comment.Id; commentsVariableCollection.Parse("ID", comment.Id.ToString()); commentsVariableCollection.Parse("TYPE_ID", ItemKey.GetTypeId(core, typeof(Comment))); commentsVariableCollection.Parse("USERNAME", commentPoster.DisplayName); commentsVariableCollection.Parse("USER_ID", commentPoster.Id.ToString()); commentsVariableCollection.Parse("USER_DISPLAY_NAME", commentPoster.DisplayName); commentsVariableCollection.Parse("U_PROFILE", commentPoster.ProfileUri); commentsVariableCollection.Parse("U_QUOTE", core.Hyperlink.BuildCommentQuoteUri(comment.Id)); commentsVariableCollection.Parse("U_REPORT", core.Hyperlink.BuildCommentReportUri(comment.Id)); commentsVariableCollection.Parse("U_DELETE", core.Hyperlink.BuildCommentDeleteUri(comment.Id)); commentsVariableCollection.Parse("U_LIKE", core.Hyperlink.BuildLikeItemUri(comment.ItemTypeId, comment.Id)); commentsVariableCollection.Parse("TIME", core.Tz.DateTimeToString(comment.GetTime(core.Tz))); commentsVariableCollection.Parse("USER_ICON", commentPoster.Icon); commentsVariableCollection.Parse("USER_TILE", commentPoster.Tile); commentsVariableCollection.Parse("USER_SQUARE", commentPoster.Square); if (comment.Info.Likes > 0) { commentsVariableCollection.Parse("LIKES", string.Format("{0:d} ", comment.Info.Likes)); } if (comment.Info.Dislikes > 0) { commentsVariableCollection.Parse("DISLIKES", string.Format(" {0:d}", comment.Info.Dislikes)); } if (comment.Info.SharedTimes > 0) { commentsVariableCollection.Parse("SHARES", string.Format(" ({0:d})", comment.Info.SharedTimes)); } if (hook != null) { hook(new DisplayCommentHookEventArgs(core, owner, commentPoster, commentsVariableCollection)); } if (core.Session.IsLoggedIn) { if (owner.CanModerateComments(core.Session.LoggedInMember)) { commentsVariableCollection.Parse("MODERATE", "TRUE"); } } if (owner.IsItemOwner(commentPoster)) { commentsVariableCollection.Parse("OWNER", "TRUE"); commentsVariableCollection.Parse("NORMAL", "FALSE"); } else { commentsVariableCollection.Parse("OWNER", "FALSE"); commentsVariableCollection.Parse("NORMAL", "TRUE"); } if (comment.SpamScore >= 10) { commentsVariableCollection.Parse("IS_SPAM", "TRUE"); } } catch { // if userid is 0, anonymous commentsVariableCollection.Parse("USERNAME", "Anonymous"); commentsVariableCollection.Parse("TIME", core.Tz.DateTimeToString(comment.GetTime(core.Tz))); commentsVariableCollection.Parse("OWNER", "FALSE"); commentsVariableCollection.Parse("NORMAL", "TRUE"); } } template.Parse("LAST_ID", "lastId"); }
public List<GroupMember> GetMembers(int page, int perPage, string filter) { List<GroupMember> members = new List<GroupMember>(); SelectQuery query = new SelectQuery("group_members"); query.AddFields(UserInfo.GetFieldsPrefixed(core, typeof(User))); query.AddJoin(JoinTypes.Inner, UserInfo.GetTable(typeof(User)), "user_id", "user_id"); query.AddFields(GroupMember.GetFieldsPrefixed(core, typeof(GroupMember))); query.AddField(new DataField("group_operators", "user_id", "user_id_go")); TableJoin tj = query.AddJoin(JoinTypes.Left, new DataField("group_members", "user_id"), new DataField("group_operators", "user_id")); tj.AddCondition(new DataField("group_members", "group_id"), new DataField("group_operators", "group_id")); query.AddCondition("`group_members`.`group_id`", groupId); query.AddCondition("group_member_approved", true); if (!string.IsNullOrEmpty(filter)) { query.AddCondition(new DataField("user_keys", "user_name_first"), filter[0]); } query.AddSort(SortOrder.Ascending, "group_member_date_ut"); query.LimitStart = (page - 1) * perPage; query.LimitCount = perPage; System.Data.Common.DbDataReader membersReader = db.ReaderQuery(query); while (membersReader.Read()) { members.Add(new GroupMember(core, membersReader)); } membersReader.Close(); membersReader.Dispose(); return members; }
public List<Friend> GetFriends(int page, int perPage, string filter, bool sortOnline) { List<Friend> friends = new List<Friend>(); SelectQuery query = new SelectQuery("user_relations"); query.AddFields(User.GetFieldsPrefixed(core, typeof(User))); query.AddFields(UserInfo.GetFieldsPrefixed(core, typeof(UserInfo))); query.AddFields(UserProfile.GetFieldsPrefixed(core, typeof(UserProfile))); query.AddFields(UserRelation.GetFieldsPrefixed(core, typeof(UserRelation))); query.AddField(new DataField("gallery_items", "gallery_item_uri")); query.AddField(new DataField("gallery_items", "gallery_item_parent_path")); query.AddFields(ItemInfo.GetFieldsPrefixed(core, typeof(ItemInfo))); query.AddJoin(JoinTypes.Inner, User.GetTable(typeof(User)), "relation_you", "user_id"); query.AddJoin(JoinTypes.Inner, UserInfo.GetTable(typeof(UserInfo)), "relation_you", "user_id"); query.AddJoin(JoinTypes.Inner, UserProfile.GetTable(typeof(UserProfile)), "relation_you", "user_id"); query.AddJoin(JoinTypes.Left, new DataField("user_profile", "profile_country"), new DataField("countries", "country_iso")); query.AddJoin(JoinTypes.Left, new DataField("user_profile", "profile_religion"), new DataField("religions", "religion_id")); query.AddJoin(JoinTypes.Left, new DataField("user_info", "user_icon"), new DataField("gallery_items", "gallery_item_id")); TableJoin join = query.AddJoin(JoinTypes.Left, new DataField(typeof(UserRelation), "relation_you"), new DataField(typeof(ItemInfo), "info_item_id")); join.AddCondition(new DataField(typeof(ItemInfo), "info_item_type_id"), ItemKey.GetTypeId(core, typeof(User))); query.AddCondition("relation_me", userId); query.AddCondition("relation_type", "FRIEND"); if ((!string.IsNullOrEmpty(filter)) && filter.Length == 1) { query.AddCondition(new DataField(typeof(User), "user_name_first"), filter); } if (sortOnline) { query.AddSort(SortOrder.Descending, "user_last_visit_ut"); query.AddSort(SortOrder.Ascending, new QueryCondition("relation_order", ConditionEquality.Equal, 0)); } else { query.AddSort(SortOrder.Ascending, new QueryCondition("relation_order", ConditionEquality.Equal, 0)); } query.LimitStart = (page - 1) * perPage; query.LimitCount = perPage; if (sortOnline) { query.LimitOrder = SortOrder.Descending; } System.Data.Common.DbDataReader friendsReader = db.ReaderQuery(query); while (friendsReader.Read()) { friends.Add(new Friend(core, friendsReader, UserLoadOptions.All)); } friendsReader.Close(); friendsReader.Dispose(); return friends; }
public List<long> GetFriendsWithMeIds(int count) { List<long> friendIds = new List<long>(); SelectQuery query = new SelectQuery("user_relations uf"); query.AddFields("uf.relation_me"); query.AddCondition("uf.relation_you", userId); query.AddCondition("uf.relation_type", "FRIEND"); query.AddSort(SortOrder.Ascending, "(uf.relation_order - 1)"); query.AddSort(SortOrder.Ascending, "relation_time_ut"); query.LimitCount = count; System.Data.Common.DbDataReader friendsReader = db.ReaderQuery(query); while (friendsReader.Read()) { friendIds.Add((long)friendsReader["relation_me"]); } friendsReader.Close(); friendsReader.Dispose(); return friendIds; }
public List<Friend> GetFriends(string namePart) { List<Friend> friends = new List<Friend>(); SelectQuery query = new SelectQuery("user_relations"); query.AddFields(User.GetFieldsPrefixed(core, typeof(User))); query.AddFields(UserInfo.GetFieldsPrefixed(core, typeof(UserInfo))); query.AddFields(UserProfile.GetFieldsPrefixed(core, typeof(UserProfile))); query.AddFields(UserRelation.GetFieldsPrefixed(core, typeof(UserRelation))); query.AddField(new DataField("gallery_items", "gallery_item_uri")); query.AddField(new DataField("gallery_items", "gallery_item_parent_path")); query.AddFields(ItemInfo.GetFieldsPrefixed(core, typeof(ItemInfo))); query.AddJoin(JoinTypes.Inner, User.GetTable(typeof(User)), "relation_you", "user_id"); query.AddJoin(JoinTypes.Inner, UserInfo.GetTable(typeof(UserInfo)), "relation_you", "user_id"); query.AddJoin(JoinTypes.Inner, UserProfile.GetTable(typeof(UserProfile)), "relation_you", "user_id"); query.AddJoin(JoinTypes.Left, new DataField("user_info", "user_icon"), new DataField("gallery_items", "gallery_item_id")); TableJoin join = query.AddJoin(JoinTypes.Left, new DataField(typeof(UserRelation), "relation_you"), new DataField(typeof(ItemInfo), "info_item_id")); join.AddCondition(new DataField(typeof(ItemInfo), "info_item_type_id"), ItemKey.GetTypeId(core, typeof(User))); query.AddCondition("relation_me", userId); query.AddCondition("relation_type", "FRIEND"); QueryCondition qc1 = query.AddCondition(new DataField("user_info", "user_name"), ConditionEquality.Like, namePart + "%"); qc1.AddCondition(ConditionRelations.Or, new DataField("user_profile", "profile_name_first"), ConditionEquality.Like, namePart + "%"); qc1.AddCondition(ConditionRelations.Or, new DataField("user_info", "user_name_display"), ConditionEquality.Like, namePart + "%"); query.AddSort(SortOrder.Ascending, "(relation_order - 1)"); query.LimitCount = 10; System.Data.Common.DbDataReader friendsReader = db.ReaderQuery(query); while (friendsReader.Read()) { friends.Add(new Friend(core, friendsReader, UserLoadOptions.All)); } friendsReader.Close(); friendsReader.Dispose(); return friends; }
public List<SubGroupMember> GetMembersWaitingApproval() { List<SubGroupMember> members = new List<SubGroupMember>(); SelectQuery query = new SelectQuery("sub_group_members"); query.AddJoin(JoinTypes.Inner, "user_keys", "user_id", "user_id"); query.AddFields(GroupMember.GetFieldsPrefixed(core, typeof(SubGroupMember))); query.AddCondition("`sub_group_members`.`sub_group_id`", subGroupId); query.AddCondition("sub_group_member_is_leader", false); query.AddCondition("sub_group_member_approved", false); query.AddSort(SortOrder.Ascending, "sub_group_member_date_ut"); DataTable membersTable = db.Query(query); List<long> memberIds = new List<long>(); foreach (DataRow dr in membersTable.Rows) { memberIds.Add((long)dr["user_id"]); } core.LoadUserProfiles(memberIds); foreach (DataRow dr in membersTable.Rows) { members.Add(new SubGroupMember(core, dr)); } return members; }
public List<SubGroupMember> GetMembers(int page, int perPage, string filter) { List<SubGroupMember> members = new List<SubGroupMember>(); SelectQuery query = new SelectQuery("sub_group_members"); query.AddJoin(JoinTypes.Inner, "user_keys", "user_id", "user_id"); query.AddFields(GroupMember.GetFieldsPrefixed(core, typeof(SubGroupMember))); query.AddCondition("`sub_group_members`.`sub_group_id`", subGroupId); query.AddCondition("sub_group_member_is_leader", false); query.AddCondition("sub_group_member_approved", true); if (!string.IsNullOrEmpty(filter)) { query.AddCondition(new DataField("user_keys", "user_name_first"), filter[0]); } query.AddSort(SortOrder.Ascending, "sub_group_member_date_ut"); query.LimitStart = (page - 1) * perPage; query.LimitCount = perPage; DataTable membersTable = db.Query(query); List<long> memberIds = new List<long>(); foreach (DataRow dr in membersTable.Rows) { memberIds.Add((long)dr["user_id"]); } core.LoadUserProfiles(memberIds); foreach (DataRow dr in membersTable.Rows) { members.Add(new SubGroupMember(core, dr)); } return members; }
/// <summary> /// /// </summary> /// <param name="core"></param> /// <param name="parent"></param> /// <param name="title"></param> /// <param name="description"></param> /// <param name="rules"></param> /// <param name="permissions"></param> /// <param name="isCategory"></param> /// <returns></returns> /// <exception cref="NullCoreException"></exception> /// <exception cref="InvalidForumException"></exception> /// <exception cref="UnauthorisedToCreateItemException"></exception> public static Forum Create(Core core, Forum parent, string title, string description, string rules, ushort permissions, bool isCategory) { string parents; int order = 0; int level = 0; //core.db.BeginTransaction(); if (core == null) { throw new NullCoreException(); } if (parent == null) { throw new InvalidForumException(); } level = parent.Level + 1; if (parent.Owner is UserGroup) { if (!((UserGroup)parent.Owner).IsGroupOperator(core.Session.LoggedInMember.ItemKey)) { // todo: throw new exception throw new UnauthorisedToCreateItemException(); } } SelectQuery query = new SelectQuery(GetTable(typeof(Forum))); query.AddFields("forum_order"); query.AddCondition("forum_order", ConditionEquality.GreaterThan, parent.Order); query.AddCondition("forum_item_id", parent.Owner.Id); query.AddCondition("forum_item_type_id", parent.Owner.TypeId); query.AddCondition("forum_parent_id", parent.Id); query.AddSort(SortOrder.Descending, "forum_order"); query.LimitCount = 1; DataTable orderTable = core.Db.Query(query); if (orderTable.Rows.Count == 1) { order = (int)orderTable.Rows[0]["forum_order"] + 1; } else { order = parent.Order + 1; } // increment all items below in the order UpdateQuery uQuery = new UpdateQuery(GetTable(typeof(Forum))); uQuery.AddField("forum_order", new QueryOperation("forum_order", QueryOperations.Addition, 1)); uQuery.AddCondition("forum_order", ConditionEquality.GreaterThanEqual, order); uQuery.AddCondition("forum_item_id", parent.Owner.Id); uQuery.AddCondition("forum_item_type_id", parent.Owner.TypeId); core.Db.Query(uQuery); ParentTree parentTree = new ParentTree(); if (parent.Parents != null) { foreach (ParentTreeNode ptn in parent.Parents.Nodes) { parentTree.Nodes.Add(new ParentTreeNode(ptn.ParentTitle, ptn.ParentId)); } } if (parent.Id > 0) { parentTree.Nodes.Add(new ParentTreeNode(parent.Title, parent.Id)); } XmlSerializer xs = new XmlSerializer(typeof(ParentTree)); StringBuilder sb = new StringBuilder(); StringWriter stw = new StringWriter(sb); xs.Serialize(stw, parentTree); stw.Flush(); stw.Close(); parents = sb.ToString(); InsertQuery iquery = new InsertQuery(GetTable(typeof(Forum))); iquery.AddField("forum_parent_id", parent.Id); iquery.AddField("forum_title", title); iquery.AddField("forum_description", description); iquery.AddField("forum_rules", rules); iquery.AddField("forum_order", order); iquery.AddField("forum_level", level); iquery.AddField("forum_category", isCategory); iquery.AddField("forum_locked", false); iquery.AddField("forum_topics", 0); iquery.AddField("forum_posts", 0); iquery.AddField("forum_item_id", parent.Owner.Id); iquery.AddField("forum_item_type_id", parent.Owner.TypeId); iquery.AddField("forum_parents", parents); iquery.AddField("forum_last_post_id", 0); iquery.AddField("forum_last_post_time_ut", UnixTime.UnixTimeStamp()); long forumId = core.Db.Query(iquery); Forum forum = new Forum(core, forumId); /* LOAD THE DEFAULT ITEM PERMISSIONS */ //Access.CreateAllGrantsForOwner(core, forum); if (parent.Owner is UserGroup) { Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupMembersGroupKey(core), "VIEW"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupMembersGroupKey(core), "VIEW_TOPICS"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupMembersGroupKey(core), "LIST_TOPICS"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupMembersGroupKey(core), "REPLY_TOPICS"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupMembersGroupKey(core), "CREATE_TOPICS"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupMembersGroupKey(core), "REPORT_POSTS"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupOperatorsGroupKey(core), "CREATE_STICKY"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupOfficersGroupKey(core), "CREATE_STICKY"); Access.CreateGrantForPrimitive(core, forum, UserGroup.GetGroupOperatorsGroupKey(core), "CREATE_ANNOUNCEMENT"); } return forum; }
void AccountProfileInfo_Show(object sender, EventArgs e) { SetTemplate("account_profile"); RadioList genderRadioList = new RadioList("gender"); genderRadioList.Add(new RadioListItem(genderRadioList.Name, ((byte)Gender.Undefined).ToString(), core.Prose.GetString("NONE_SPECIFIED"))); genderRadioList.Add(new RadioListItem(genderRadioList.Name, ((byte)Gender.Male).ToString(), core.Prose.GetString("MALE"))); genderRadioList.Add(new RadioListItem(genderRadioList.Name, ((byte)Gender.Female).ToString(), core.Prose.GetString("FEMALE"))); genderRadioList.Add(new RadioListItem(genderRadioList.Name, ((byte)Gender.Intersex).ToString(), core.Prose.GetString("INTERSEX"))); genderRadioList.SelectedKey = ((byte)LoggedInMember.Profile.GenderRaw).ToString(); genderRadioList.Layout = Layout.Horizontal; TextBox heightTextBox = new TextBox("height"); heightTextBox.MaxLength = 3; heightTextBox.Width = new StyleLength(3F, LengthUnits.Em); heightTextBox.Value = LoggedInMember.Profile.Height.ToString(); SelectBox dobYearsSelectBox = new SelectBox("dob-year"); for (int i = DateTime.Now.AddYears(-110).Year; i < DateTime.Now.AddYears(-13).Year; i++) { dobYearsSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } if (LoggedInMember.Profile.DateOfBirth != null) { dobYearsSelectBox.SelectedKey = LoggedInMember.Profile.DateOfBirth.Year.ToString(); } SelectBox dobMonthsSelectBox = new SelectBox("dob-month"); for (int i = 1; i < 13; i++) { dobMonthsSelectBox.Add(new SelectBoxItem(i.ToString(), core.Functions.IntToMonth(i))); } if (LoggedInMember.Profile.DateOfBirth != null) { dobMonthsSelectBox.SelectedKey = LoggedInMember.Profile.DateOfBirth.Month.ToString(); } SelectBox dobDaysSelectBox = new SelectBox("dob-day"); for (int i = 1; i < 32; i++) { dobDaysSelectBox.Add(new SelectBoxItem(i.ToString(), i.ToString())); } if (LoggedInMember.Profile.DateOfBirth != null) { dobDaysSelectBox.SelectedKey = LoggedInMember.Profile.DateOfBirth.Day.ToString(); } SelectBox countriesSelectBox = new SelectBox("country"); SelectQuery query = new SelectQuery("countries"); query.AddFields("*"); query.AddSort(SortOrder.Ascending, "country_name"); System.Data.Common.DbDataReader countriesReader = db.ReaderQuery(query); countriesSelectBox.Add(new SelectBoxItem("", "Unspecified")); while (countriesReader.Read()) { countriesSelectBox.Add(new SelectBoxItem((string)countriesReader["country_iso"], (string)countriesReader["country_name"])); } countriesReader.Close(); countriesReader.Dispose(); if (LoggedInMember.Profile.CountryIso != null) { countriesSelectBox.SelectedKey = LoggedInMember.Profile.CountryIso; } template.Parse("S_GENDER", genderRadioList); template.Parse("S_DOB_YEAR", dobYearsSelectBox); template.Parse("S_DOB_MONTH", dobMonthsSelectBox); template.Parse("S_DOB_DAY", dobDaysSelectBox); template.Parse("S_COUNTRY", countriesSelectBox); template.Parse("S_HEIGHT", heightTextBox); template.Parse("S_AUTO_BIOGRAPHY", LoggedInMember.Profile.Autobiography); Save(new EventHandler(AccountProfileInfo_Save)); }