lunes, 16 de mayo de 2011

Tracking downloads Sharepoint

Buenas,

Os comentaré como hacer un seguimiento de las descargas de nuestro sitio web (internet) para google analytics.
Para ésto, solo necesitamos descargarnos el fichero gatag.js, introducirlo en una biblioteca de documentos de Sharepoint (preferiblemente en la Style Library/js, o alguna específica para éste tipo de archivos) y añadir la linea de adición del js justo antes de cerrar la etiqueta del body en la master Page.

<script src="/Style%20Library/js/gatag.js" type="text/javascript"></script>
</body>

Matizar simplemente que por supuesto hemos de tener el track de google analytics añadido con la versión que utiliza el ga.js y ya estaremos listos para hacer el seguimiento de nuestras descargas.

Aps, se me olvidaba comentaros, que podemos definir las extensiones de los archivo de los cuales queremos realizar éste seguimiento, ésto lo podemos hacer editando el fichero gatag.js y allí encontraremos la siguiente línea donde podremos añadir o borrar la extensión del fichero que nos interese.

var isDoc = path.match(/\.(?:doc|eps|jpg|png|svg|xls|ppt|pdf|xls|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)

viernes, 8 de abril de 2011

viernes, 4 de febrero de 2011

Sharepoint 2010 y Adobe PDF

A parte del Ifilter 9.0 del que encontrareis infinidad de información de como instalarlo para indexar los archivos para las búsquedas de Sharepoint, aprovecho para comentaros un par de detalles que me parecen interesantes.

1. Nos podemos encontrar que el navegador no nos abre el PDF y te ofrece la descarga directamente, ésto viene dado porque la aplicación está configurada en modo estricto (hace que algunos extensiones se tengan que descargar y no visualizar desde el navegador) y hay que configurarla en modo permisivo.


Esto sería relativamente  sencillo si acabamos de crear la aplicación, pero si lo hacemos una vez creada, al parecer no acaba de replicarlo a todos los subsitios y site collections de la aplicación web, es por ello que habría que ejecutar o una aplicación de consola o un PowerShell que cambie esta configuración.

Os dejo aquí un código que nos permitirá hacer esta configuración.

$siteURL = “http://server:port”
Get-SPWebApplication $siteURL | ForEach-Object {$_.BrowserFileHandling = "permissive"; $_.update()}

Yo lo hice con una aplicación de consola, pero hemos de empezar a acostumbrados a utilizar el PowerShell.

2.- También quería dejaros nota de que hay veces que el cliente nos pide que aparte de que se abra en el navegador, que lo haga en una ventana nueva, ya que el usuario se confunde y para cerrar el PDF cierra todo el navegador (cosas que pasan !!!), pues bueno, la manera de hacer esto es modificando el archivo DOCICON.xml, si ese que tuvimos que modificar para añadir el icono del pdf.

Vale, pues en la misma línea, añadimos el parámetro OpenControl="" y listo :D


Espero que os ayude.

Os dejo un link donde podéis ver como se configura lo del IFilter y algunos truquillos mas:

Validarse en un Sitio de Sharepoint des de la consola del Servidor

Pues bueno, tube un problema en un server de MOSS al cual no era capaz de logarme y realmente lo necesitaba hacerlo ya que referenciaban datos de una aplicación web en https a otra tb en https, con diferentes certificados y por tanto necesitaba poder logarme en el servidor mediantes la URL externa no el nombre de servidor, que eso si que funcionaba.

Bueno al tema, el caso es que hay que tocar una clave de registro para que esto funcione bien, mas que tocar, crear.

La info la podeis encontrar en el  MS KB 896861

  1. Click Start, click Run, type regedit, and then click OK.
  2. In Registry Editor, locate and then click the following registry key:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Right-click Lsa, point to New, and then click DWORD Value.
  4. Type DisableLoopbackCheck, and then press ENTER.
  5. Right-click DisableLoopbackCheck, and then click Modify.
  6. In the Value data box, type 1, and then click OK.
  7. Quit Registry Editor, and then restart your computer.
Espero que si alguien se encuentra con el problema no tarde tanto en encontrarlo como yo.

Saludos.

Descargar Soluciones de la granja de Sharepoint

Me encontré el otro día con la necesidad de migrar a otra granja todo el contenido para recrearla de 0, el caso es que no tenia un repositorio de todas las soluciones instaladas en la granja, y pensé, que mejor repositorio que la propia granja, así me aseguro que tengo las últimas versiones de los wsp, jeje. (A no ser que algún loco hubiese arrastrado una dll a la GAC) oOoOo.

Bueno el caso es que mediante un batch en .NET se pueden sacar estos archivos y listo, ya te los puedes llevar a otra granja.

Aquí os dejo el código.

            SPSolutionCollection solutions = SPFarm.Local.Solutions;
            foreach (SPSolution solution in solutions)
            {
                SPPersistedFile wspFile = solution.SolutionFile;
                if (!System.IO.Directory.Exists(RUTA DESTINO))
                {
                    System.IO.Directory.CreateDirectory(RUTA DESTINO);
                }
                wspFile.SaveAs(RUTA DESTINO + "\\" + solution.Name);
             }


Saludos.

miércoles, 5 de enero de 2011

Sharepoint Thread was being aborted

Pues hoy me encontré con ese error en una webpart y se daba el caso que era un proceso un poco largo, el caso es que no estaba configurado el timeout en el web.config, así que para solucionar el problema viene siendo tan sencillo como modificar el web.config y en la sección <httpruntime> hay que añadir la propiedad executiontimeout y problema solucionado.

    <httpRuntime maxRequestLength="51200" executionTimeout="600"/>


Saludos.

miércoles, 15 de diciembre de 2010

Activate Multilingual Sharepoint 2010

Hace algún tiempo, me encontré con el problema de que una vez realizado el proyecto, el cliente quería que le activáramos otro lenguaje. Como siempre, lo primero es instalar el Language Pack en el idioma que corresponda y ya tenemos el idioma disponible, pero luego, nos encontramos que en cada sitio del sitecollection hemos de activar el multilenguaje y también los lenguajes que queremos que estén disponibles para el usuario.

Así pues, el problema venía que tenia una infinidad de sitios y ir uno por uno activando el multilenguaje y el idioma, pues era tedioso. Yo aun tiro por hacer aplicaciones consola para estas cosas, pero se puede hacer tb con PowerShell.

Bueno, os dejo el código por aqui por si os sirve de ayuda.

            SPSite site = new SPSite(Properties.Settings.Default.SiteCollection);
            SPWeb web = site.OpenWeb("");
            foreach (SPWeb lweb in web.Webs)
            {
                lweb.IsMultilingual = true;
                System.Globalization.CultureInfo Idioma = new System.Globalization.CultureInfo("CODIGO_IDIOMA");
                lweb.AddSupportedUICulture(Idioma);
                lweb.Update();
                if (lweb.Webs.Count > 0)
                {
                    SubWebs(lweb);
                }
            }

Saludos.

Instalar Developer DashBoard en Sharepoint 2010

Como yo soy muy clasico, mi manera preferida es a través del stsadm:

•stsadm -o setproperty -pn developer-dashboard -pv on
•stsadm -o setproperty -pn developer-dashboard -pv off
•stsadm -o setproperty -pn developer-dashboard -pv OnDemand

pero se pued hacer también desde Programación:

Console.WriteLine("Configurando el Developer Dashboard...");
SPWebService spwService = SPWebService.ContentService;
spwService.DeveloperDashboardSettings.DisplayLevel = SPDeveloperDashboardLevel.Off;
spwService.DeveloperDashboardSettings.Update();
Console.WriteLine("Configuración del Developer Dashboard actualizada....");
Console.ReadLine();

o desde Power Shelll:

$svc=[Microsoft.SharePoint.Administration.SPWebService]::ContentService
$ddsetting=$svc.DeveloperDashboardSettings
$ddsetting.DisplayLevel=[Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::OnDemand
$ddsetting.Update()

Os dejo algunos links:
http://philwicklund.com/archive/2009/10/19/how-to-enable-the-developer-dashboard-in-sharepoint-2010.aspx
http://sptwentyten.wordpress.com/2009/10/20/how-to-enable-the-developer-dashboard/
http://geeks.ms/blogs/ciin/archive/2009/12/04/sharepoint-2010-habilitando-el-developer-dashboard-ii.aspx

lunes, 13 de diciembre de 2010

Permitir agregar Términos a los usuarios - Taxonomy Term sets (Metadatos Administrados)

Bueno aqui va otra entradilla.

Pues da el caso, que el otro día me comenta un cliente que quería que ciertos usuarios administraran sus conjuntos de términos ya que tienen una gran cantidad y es una tarea tediosa de administrar. Bueno pues Sharepoint 2010 nos lo permite realizar configurando correctamente el conjunto de términos y el campo de la biblioteca.

Por ejemplo, cuando escogemos un conjunto de términos en el servicio de metadatos administrados, no aparece la opción de abrir o cerrar el conjunto, si queremos que puedan modificarlos, hemos de habilitar esta opción y además configurar el usuario que queramos tenga permisos para realizar esta acción en el grupo, en el apartado de colaboradores.



Una vez configurada esta opción, ahora cuando agreguemos el campo a la lista y lo asociemos al conjunto de términos, nos permitirá seleccionar la opción de "permitir opciones de relleno" y de ésta manera cuando el usuario quiera introducir este campo se le dará la opción de añadir nuevos términos al conjunto.




Bueno, espero que le sirva a alguien.

Saludos.

viernes, 10 de diciembre de 2010

Presentación - Sharepoint - restricciones en los tipos de campo multiline - 255

Buenas,

Este es mi primera noticia en este blog, el caso es que nunca me ha llamado la atención esto de publicar noticias ni estar pendiente de un blog, pero al final te das cuenta que te ayuda a mantener un poco el hilo de tus conocimientos y experiencias en tu vida profesional, así que aquí os dejo algo para empezar.

Intro: Teniendo un Content Type con una serie de columnas definidas como Multiline el caso es que los usuarios cuando editaban esto campos les daba un error de que no podían introducir más de 255 caracteres. Me rompí la cabeza buscando por la configuración a ver si había manera de modificar el campo para que aceptara mayor longitud, leí alguan que otra barbaridad por ahí, pero bueno, al final me quedé con la que me encontré en ésta noticia .

Nada, al final me hice una aplicación de consola por si me pasa en otras ocasiones pueda solucionarlo más rápido, y si a alguien se le ocurre o conoce otra manera de hacerlo, todo comentario será bien recibido.

SPSite mySite = new SPSite("");
SPWeb myWeb = mySite.OpenWeb("");
SPList myList = myWeb.Lists("LIST_NAME")
SPField myField = myList.Fields("FIELD_NAME") - Añado el comentario de que el tipo Multiline es SPFieldType.Note
((SPFieldMultiLineText)myField).UnlimitedLengthInDocumentLibrary = true;
myField.Update();

Bueno, espero que le sirva de ayuda a alguien algún día.

Saludos.