public SPWebInstance Add(string strWebUrl) { var result = m_webCollection.Add(strWebUrl); return(result == null ? null : new SPWebInstance(Engine, result)); }
/// <summary> /// Creates a subsite for a SharePoint v3 site /// </summary> /// <param name="ParentSiteURL">SharePoint v3 site URL</param> /// <param name="SiteURLName">Subsite name</param> /// <param name="SiteTitle">Subsite title</param> /// <param name="SiteDescription">Subsite description</param> /// <param name="SiteLCID">Sibsite LCID</param> /// <param name="OverwriteIfExists">if true, the existing subsite with the same name will be deleted and created again.</param> /// <param name="OutNewSiteURL">the method will return the full URL of the subsite</param> /// <param name="ResultText">the method will return text log of the operations performed.</param> /// <returns>true if the subsite is successfully created.</returns> public bool CreateSite(string parentSiteURL, string siteURLName, string siteTitle, string siteDescription, uint siteLCID, bool overwriteIfExists, ref string outNewSiteURL, ref string resultText) { bool result = false; //string testResult = ""; string subSiteFullName = CleanURL(parentSiteURL) + "/" + siteURLName; outNewSiteURL = subSiteFullName; resultText = String.Format(TextResources.AttemptingToCreateSite, subSiteFullName) + Environment.NewLine; //wrapping in try catch as this will be executed in a different thread try { SPSite parentSite = new SPSite(parentSiteURL); SPWeb siteWeb = parentSite.OpenWeb(); SPWebCollection subSites = siteWeb.Webs; string currentTemplate = siteWeb.WebTemplate; string siteTestStatus; if (TestSharePointV3Site(subSiteFullName, out siteTestStatus)) { //site already exists resultText += TextResources.SiteExists + System.Environment.NewLine; if (overwriteIfExists) { //delete site SPUserCollection siteUsers = siteWeb.SiteUsers; //emptying site users collection int numUsers = siteUsers.Count; for (int userIndex = numUsers; userIndex == 1; userIndex--) { if (!(parentSite.Owner.Sid == siteWeb.SiteUsers[userIndex].Sid)) { siteWeb.SiteUsers.Remove(userIndex); } } subSites.Delete(siteURLName); } else { //dont need to overwrite, exiting result = true; return(result); } } subSites.Add(siteURLName, siteTitle, siteDescription, siteLCID, currentTemplate, true, false); string siteTestResult; if (TestSharePointV3Site(subSiteFullName, out siteTestResult)) { result = true; resultText += TextResources.SiteCreated + System.Environment.NewLine; } } catch (System.Exception ex) { resultText += ex.Message + System.Environment.NewLine; } return(result); }
void btnAddSite_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(txtNewSiteTitle.Text.ToString())) { // SP.UI.Notify.addNotification('<img src="/layours/images/loadinccirclests16.gif" style="vertical-align:top;"/> Operation in progress...',true); try { SPWeb thisSite = SPContext.Current.Web; SPWebCollection subSites = thisSite.Webs; string currentTemplate = thisSite.WebTemplate; string user = thisSite.CurrentUser.Name.ToString(); string siteUrl = MakeStringSPSafe(txtNewSiteTitle.Text.ToString()); string siteTitle = txtNewSiteTitle.Text.ToString(); string siteDescription = "Site " + txtNewSiteTitle.Text.ToString() + ", Created by " + user + " on " + DateTime.Today.ToString("MM/dd/yyyy"); subSites.Add(siteUrl, siteTitle, siteDescription, 1033, currentTemplate, true, false); string newSiteAbsoluteUrl = thisSite.Url + "/" + siteUrl; // reset thisSite to scope of new site thisSite = subSites[siteUrl]; // Create a members group for the newly created site string membersGroupName = MakeStringSPSafe(siteTitle) + " Members"; thisSite.SiteGroups.Add(membersGroupName, thisSite.CurrentUser, thisSite.CurrentUser, "Members of the site " + siteTitle); thisSite.AssociatedGroups.Add(thisSite.SiteGroups[membersGroupName]); thisSite.Update(); SPRoleAssignment assignment = new SPRoleAssignment(thisSite.SiteGroups[membersGroupName]); SPRoleDefinition _role = thisSite.RoleDefinitions["Contribute"]; assignment.RoleDefinitionBindings.Add(_role); thisSite.RoleAssignments.Add(assignment); string membersGroupId = thisSite.SiteGroups[membersGroupName].ID.ToString(); string manageMembersUrl = newSiteAbsoluteUrl + "/_layouts/15/people.aspx?MembershipGroupId=" + membersGroupId; lblResult.Text = "Site Successfully Created at <a href='" + newSiteAbsoluteUrl + "'>" + newSiteAbsoluteUrl + "</a>"; lblResult.Text = lblResult.Text + "<br><a href='" + manageMembersUrl + "'> Add Members to Site"; } catch (Exception ex) { lblResult.Text = "An Error Occured: " + ex.Message; } finally { txtNewSiteTitle.Text = null; PleaseWait.Visible = false; } } }
public void CreateWebSite(string url, string title, string description, string siteTemplate) { using (SPWeb web = oSPSite.OpenWeb(oSPSite.RootWeb.ID)) { try { web.AllowUnsafeUpdates = true; // Site creation with unique permissions SPWebCollection webs = web.Webs; SPWeb newWeb = webs.Add(url, title, description, 1033, siteTemplate, true, false); // Owners, members and visitors groups creation SPGroup owners = SPGroupsHelper.AddGroup(newWeb, SPGroupsHelper.AssociatedGroupTypeEnum.Owners); SPGroup members = SPGroupsHelper.AddGroup(newWeb, SPGroupsHelper.AssociatedGroupTypeEnum.Members); SPGroup visitors = SPGroupsHelper.AddGroup(newWeb, SPGroupsHelper.AssociatedGroupTypeEnum.Visitors); // Changing the request access email to current user newWeb.RequestAccessEmail = newWeb.CurrentUser.Email; // Save changes newWeb.Update(); // Disposing new web object newWeb.Dispose(); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { web.AllowUnsafeUpdates = false; } } }