Category: Custom Code

Si tenemos nuestro código en Visual Studio utilizando TFS puede ocurrir lo siguiente: De repente he perdido el fichero “Package.package” de mi proyecto, pero si entro en el TFS sigue estando. Solución: 1. Abrimos el Team Explorer en Visual Studio y conectamos con nuestro TFS. 2. Vamos a Source Control Explorer. 3. Navegamos hasta el […]
Para poder detectar si se ha publicado un ítem en una lista no existe ningún evento del tipo “ItemPublished”, pero si tenemos el evento “ItemCheckedIn” que nos avisará cada vez que se haga un CheckIn del elemento. Para saber si es una publicación o no podemos seguir estas indicaciones: Dentro del event receiver obtenemos el […]
Tenemos 5 tipos de Event Receivers para programar en SharePoint: SPEmailEventReceiver (Para los emails) SPFeatureReceiver (Para las características) SPItemEventReceiver (Para los elementos de las listas/librerías) SPListEventReceiver (Para las listas/librerías) SPWebEventReceiver (Para los sites y site collections) Cada uno de ellos tienen unos métodos específicos que podemos implementar para realizar acciones: SPEmailEventReceiver 1.1. EmailReceived (Cuando un […]
En el menú lateral izquierdo de nuestras páginas de SharePoint podemos ver que el último enlace es el de “Contenidos del Sitio”. Este menú está distribuído en dos bloques: El primero contiene todos los enlaces del menú (sites, páginas…), el segundo contiene este enlace a los contenidos de nuestro site. Para ocultarlo, podemos aplicar un […]
When a page is loaded in a Modal Dialog, its URL ends with “IsDlg=1”, that means that it’s being opened in a SharePoint PopUp. If you need to hide some elements when that happens (e.g. hide master page elements) you need to add a new class to these elements: Adding class “ms-dialogHidden” to an element […]
SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite("YOURSITE")) { using (SPWeb web = site.OpenWeb()) { //Obtain the page PublishingPageCollection publishingPages = PublishingWeb.GetPublishingWeb(web).GetPublishingPages(); PublishingPage page = publishingPages.FirstOrDefault(f => f.Uri.AbsoluteUri == "YOURPAGE"); if (page != null) { //Allow modifications bool webAllow = web.AllowUnsafeUpdates; web.AllowUnsafeUpdates = true; SPFile file = page.ListItem.File; //Delete file.Delete(); //Restablish default permissions web.AllowUnsafeUpdates = […]
Unpublish and Checkout SharePoint Page: SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite("YOURSITE")) { using (SPWeb web = site.OpenWeb()) { //Obtain the Page PublishingPageCollection publishingPages = PublishingWeb.GetPublishingWeb(web).GetPublishingPages(); PublishingPage page = publishingPages.FirstOrDefault(f => f.Uri.AbsoluteUri == "YOURPAGEURL"); if (page != null) { //Allow file modifications bool webAllow = web.AllowUnsafeUpdates; web.AllowUnsafeUpdates = true; SPFile file = page.ListItem.File; //Unpublish […]
This is a function in order to create a CAML Query specified for Filters. Once we have the filters, we’ve to create the parameters for the function, following this template: Parameters Template Name1|Type1|Operation1|Value1,Name2|Type2|Operation2|Value2... [Operation property can only be "Equal" or "Contains", 'cause that's what I need, but it can be modified] Example Title|Text|Contains|Document,Category|Choice|Equal|Docs [Filter items […]
My case: It’s a standard register form created in a SharePoint WebPart (but this error could happen even if you’re not using SharePoint). When I submit the form, sometimes I loose the information of DropDowns (but not the information of textboxes) and it seems to happen randomly. I checked the packages sent with Wireshark and […]
I’ve found an interesting link about how to retrieve some properties of user profiles in SharePoint 2013 by using its client object model, like this: const string serverUrl = "http://serverName/"; const string targetUser = "domainName\userName"; ClientContext clientContext = new ClientContext(serverUrl); PeopleManager peopleManager = new PeopleManager(clientContext); string[] profilePropertyNames = new string[] { "PreferredName", "Department", "Title" }; […]