Wednesday, November 26, 2014

Delete webparts from Webpart Gallery

Introduction

We may came across the situation to remove all the custom webparts while feature deactivating. Here we are going to see how to remove the webparts programmatically.

Code

Paste the below code in FeatureDeactivating method

  SPSite site = properties.Feature.Parent as SPSite;
            if (site != null)
            {
                var definedElements = properties.Definition.GetElementDefinitions(CultureInfo.InvariantCulture);
                var allFiles = definedElements.Cast<SPElementDefinition>()
                    .SelectMany(x => x.XmlDefinition.ChildNodes.Cast<XmlElement>()
                        .Where(f => f.Name.Equals("File"))
                        .Select(f => f.Attributes["Url"].Value)).ToList();
                var webPartGallery = site.RootWeb.Lists["Webpart Gallery Name"];

                var webPartsToDelete = webPartGallery.Items.Cast<SPListItem>()
                    .Where(w => allFiles.Contains(w.File.Name)).ToList();

                for (var index = webPartsToDelete.Count - 1; index >= 0; --index)
                {
                    var webPartItem = webPartsToDelete[index];
                    webPartItem.Delete();
                }
            }

Tuesday, November 25, 2014

Delete folder from Catalog masterpage

Introduction

We may came across this situation to delete a folder in catalog master page when you deactivating feature. Here we are going to see, how can we delete this kind of folder programmatically

Code

using (SPSite site = new SPSite(siteUrl))
{
 SPList listCatalog = site.GetCatalog(SPListTemplateType.MasterPageCatalog);
                site.AllowUnsafeUpdates = true;
                SPFolder masterpageFolder = listCatalog.RootFolder.SubFolders["FolderName"];
                if (masterpageFolder != null)
                {
                    masterpageFolder.Delete();
                }
                site.AllowUnsafeUpdates = false;
                site.RootWeb.Update();
}

Friday, November 14, 2014

Join This Community Button Not visible on Community Site


In some case we may faced this issue in community site. To enable this button select "Enable Auto-Approval" in Community Settings. 

Note: This option available when Community site is in root site. This Feature will applicable for subsites of Community root site.