Jorge Dieguez Blog

Tecnologías de colaboración

January 2008 - Artículos

Tipo de Contenido en SharePoint

Hoy una compañera me consulto la siguiente cuestión:
- Tenemos una aplicación desarrollada a medida que permite almacenar todo tipo de documentos: artículos, ponencias, convocatorias.
- Dependiendo del tipo de documento se debe etiquetar con distintos campos.
- ¿Cómo se puede hacer esto en MOSS?

Los que hemos leído un poco sobre MOSS y WSS3 sabemos que esto se resuelve con los Tipos de Contenido.

¿Qué son los Tipos de Contenidos?

Cuando creamos un Tipo de Contenido lo que hacemos es agrupar una serie de campos y guardarlos con un nombre.
Posteriormente cuando creemos una lista o biblioteca le podemos asociar varios Tipos de Contenido.

Los Tipos de Contenido permiten crear “plantillas”/esquemas/modelos de datos que se puedan compartir en distintas listas. Por ejemplo el tipo de contenido Contacto(con todos los campos para almacenar los contactos) se podrá utilizar en distintas listas de distintos sitios(sin tener que configurarlo en cada lista).

Otra de las cosas que permiten los Tipos de Contenido es almacenar en la misma lista/biblioteca elementos con distinto conjunto de campos.

Vamos a realiza un pequeño ejemplo:

Lo que necesitamos es tener un repositorio de documentos que pueda almacenar:
- Artículo. Con los campos: Fuente, Medio, Fecha de Publicación
- Ponencia. Con los campos: Evento, Fecha de la Ponencia

Primero creemos los dos Tipos de Contenido:
- Navegamos a la Configuración del sitio
2008012501


- Vamos a la Galería de Tipo de Contenido del Sitio2008012502

- Creamos el Nuevo Tipo de Contenido
2008012504 2008012505

- Agregamos las columnas

20080125072008012508

Ahora creamos la Biblioteca de Documentos y le asociamos los tipos de contenidos recién creados.
- Navegamos a la Configuración de la Biblioteca y accedemos a la Configuración Avanzada  2008012509


- Activamos la opción “¿Desea permitir la administración de tipos de contenido?”
2008012510
- Ahora tendremos la opción de añadir los Tipos de Contenido 2008012511
- Añadimos los nuevos Tipos 2008012512
- Hemos conseguido el resultado
2008012513 
20080125142008012515
2008012516

WSS//Cómo volver a una página determinada desde el formulario(newform.aspx,editform.aspx)

En la siguiente situación:
Una página en la que tengo un enlace “Añadir datos” que me lleva a la página newforma.aspx de una lista:
<a href=”http://site/lista/newform.aspx”> Añadir datos </a>

Relleno los campos y hago clic en el botón “Aceptar”, SharePoint almacena los datos y me lleva a la página de allitems.aspx de esta lista.

Necesito: Al pinchar el botón “Aceptar” volver a la página que contenía el enlace.

Solución:
Añadir el parámetro SOURCE con el valor de la pagina de retorno al enlace con el newform:
<a href=”http://site/lista/newform.aspx?SOURCE= http://site/paginas/mipagina.aspx”> Añadir datos </a>

O incluso algo como esto:
<a href=”#” onclick=”location.href=’http://site/lista/newform.aspx?SOURCE=’+ location.href > Añadir datos </a>

Posted: 25/1/2008 11:33 por Jorge Dieguez | con 3 comment(s)
Archivado en: ,
Content Editor WebPart - ayuda personalizar las paginas SharePoint

SharePoint es una solución que tiene numerosas posibilidades de personalización.
Se puede cambiar el aspecto de los sitios SharePoint con ayuda de las MasterPages, Hojas de estilo CSS, utilizando SharePoint Designer, desarrollando temas de sitios y más.

Algunas veces ninguna de las anteriores opciones resulta inmediata o pueden resultar complejas para determinados usuarios.

Hay un “truco” que es muy útil para pequeñas modificaciones de funcionalidad y aspecto de los sitios SharePoint que hay que tener presente. Me refiero al uso del WebPart de Contenidos, este permite incrustar estilos y código JavaScript que puede alterar la apariencia de la página en la que está alojado.

Esto permite en un momento ocultar elementos como el menú lateral, cambiar la apariencia del menú superior o una infinidad de cosas más (no hay que olvidar que SharePoint tiene un API Javascript bastante amplio)
20012008_1
20012008_2
20012008_3

El método para ocultar los elementos es descubrir el nombre de elemento o el nombre de la clase CSS. Esto se puede hacer por medio de la herramienta Internet Explorer Developer Toolbar.
Ahora colocamos en la página un WebPart de Contenido y en el código fuente manipulamos la visibilidad del estilo u objeto en cuestión.

He encontrado un sitio dedicado exclusivamente a trucos con la ayuda del WebPart de Contenido http://www.contenteditorwebpart.com/default.aspx, en este se puede encontrar ejemplos interesantes:-)

Posted: 20/1/2008 1:50 por Jorge Dieguez | con no comments
Archivado en: ,
Insertar formularios <FORM> en el WebPart de Editor de Contenido.

Hoy, en un site de SharePoint necesite habilitar en una página un formulario con determinados campos(en realidad necesitaba enviar una solicitud POST a una ventana con determinados parámetros).
Este formulario debe enviarse a una URL determinada (atributo action) y en una nueva vetana(atributo target).

Si insertamos el fragmento HTML correspondiente a este formulario en el WebPart del Editor de Contenido aparece un aviso:

Las etiquetas <FORM> no son compatibles con el código HTML especificado en la propiedad Content o en la propiedad Content Link. Puede quitar la etiqueta <FORM> o utilizar el elemento Web Visor de páginas que sí admite la etiqueta HTML <FORM>.

Estudie la posibilidad de usar el WebPart de Formulario para resolver este inconveniente, pero seguía sin resolver lo que necesitaba:-(

Entonces llegue a la conclusión de usar código JavaScript para crear dinámicamente el formulario por medio del modelo DOM. El código JavaScript es algo similar a esto:

function CreateForm()
{
       fForm = document.createElement("form");
       fForm.setAttribute("id", "frmSendData");
       fForm.setAttribute("action", "http://.........");
       fForm.setAttribute("method", "post");
       fForm.setAttribute("target", "_new");
       var iInput = document.createElement("input");
       iInput.setAttribute("type", "hidden");
       iInput.setAttribute("name", "Data");
       iInput.setAttribute("id", "Data");
       iInput.setAttribute("value", "Valor");
       fForm.appendChild(iInput);

     document.getElementById('divFormContainer').appendChild( fForm);//insertar el FORM dentro de un DIV codificado en el mismo webpart

}

El formulario funciona perfectamente!!!! de esta forma las personas que tenga esta extraña necesidad la pueden resolver sin grandes complicaciones.

Código de ejemplo del libro “Inside Microsoft Windows SharePoint Services 3.0”

En noviembre del año pasado apareció en MSDN dos capítulos del libro "Inside Microsoft Windows SharePoint Services 3.0"

Los dos capítulos publicados me parecieron magníficos, prácticos ilustrativos y reflejaban un profundo conocimiento de los WSS por parte del autor.

A raíz de esta lectura conseguí el libro. Llevo unos días leyendolo  y me parece el mejor texto sobre WSS de lo que he leído hasta ahora.
07012008_09

Ted Pattison uno de los autores del libro ha colgado en su página los ejemplos de código que acompañan el libro.
http://tedpattison.net/downloads.aspx

Se trata de proyectos completos de VisualStudio listos para ejecutar y probar cosas descritas en el libro. Los ejemplos igual que el libro son muy practicas, claros e ilustrativos

Por ejemplo el proyecto CustomSitePages.zip permite entender como desplegar nuevas funcionalidades para un sitio SharePoint por medio de características (features). En el ejemplo se despliega una característica que provisiona varias páginas de sitio (paginas .aspx que pueden contener WebParts).
También habilita en el menú de navegación superior el enlace a la paginas provisonadas.

Descarguemos el proyecto y revisemos algunos detalles:
07012008_01

- Para automatizar el despliegue el proyecto incorpora el fichero install.bat que copia los ficheros necesarios al directorio 12\Template, instala la feature con stsadm y recicla el app_pool correspondiente.
07012008_02

- El fichero .bat se ejecuta automáticamente después de que se realice una compilación en VisualStudio. Esto se hace configurando la opción Post-Build event del proyecto.
07012008_03

- Las paginas .aspx están incluidas en el proyecto y se provisionan por medio del bloque Module del fichero elements.xml de la característica descrita en el fichero feature.xml.
07012008_04

- Configuramos las paginas .aspx para que contengan los WebParts determinados en las zonas determinadas. Estos se configura  por medio del bloque AllUsersWebPart WebPartZoneID.
07012008_05 

- En la descripción de la característica (fichero feature.xml) se indicada la assemby y la clase que procesa el evento de activación y desactivación de la característica.
07012008_06

- EL proyecto incluye la clase FeatureReceiver(fichero FeatureReceiver.cs) en la que se hace el tratamiento de los eventos de activación/desactivación de la característica.
En la activación se hace uso del objeto site.Navigation.TopNavigationBar que nos permite manipular la barra de navegación superior del sitio para añadir opciones de menú que enlacen con las paginas provisonadas.
07012008_07

- Solo tenemos que pulsar F5(build) para que todo funcione, se compila el proyecto, se copian los ficheros y se instala la característica(se ejecutara el fichero install.bat).

- Ahora activamos la característica en la url: http://site/_layouts/ManageFeatures.aspx?Scope=Site

- Ya aparece el nuevo menú, podemos navegar a las paginas provisionadas en la característica que acabamos de activar. Por ejemplo la pagina poblada de Webpart.

07012008_08

 

 

Hay muchos más ejemplo que acompañan el libro, tanto los ejemplos como el libro es una referencia interesante para todos aquellos que están metidos en el tema de sharepoint.

Mi primer Portlet para Liferay

En el anterior post comentaba algunos servidores de Portal para Java.
Ya he experimentado lo fácil que es comenzar con el desarrollo de componentes (elementos Web) para portal basado en tecnología Microsoft.
Ahora me propongo experimentar como se podría hacer para algún entorno Java.
Después de buscar un poco con ayuda de Google he conseguido construir mi primer portlet  en Liferay.

A continuación explico los pasos:

Descargar Liferay Portal 4.3.5
03012008_01 
El .zip se descomprime en cualquier carpeta del disco duro.

 

Descargar e Instalar JDK 5.0
03012008_02
En este paso hay que asegurarse que la variable de entorno JAVA_HOME apunte al JDK recién instalado.

 

Descargar ObjectWeb Lomboz for JavaEE Development Version: 3.3 Este es un entorno IDE basado en Eclipse y preparado para publicar Portlest en Liferay.
Una vez descargado se descomprime en cualquier carpeta del disco duro.

 

Ahora solo hay que seguir los pasos del vídeo que muestra como configurar el entorno Liferay y ejecutar nuestro primer Portlet.

En el paso donde se configura el Servidor para ejecutar el portlet el vídeo sugiere elegir como Runtime Type “life-portal(tomcat)-v4.3” en mi caso esto no funcionaba y seleccione el tipo “life-portal(tomcat)-v4.2”
03012008_04

 

Mi primer Portlet esta funcionando :-)03012008_05

No sé si existe alguna forma más “fácil” de desarrollar los elementos web en el mundo Java, la experiencia que acabo de comentar  no me resulta tan intuitiva ni inmediata como la que ofrece Microsoft con las extensiones de VisauStudio para los Windows SharePoint Services(VSeWSS) ver ejemplo en http://jdieguez.wordpress.com/2007/09/10/sharepoint-webpart-con-el-rbol-de-sitios/

¡A ver si alguien que conoce más el entorno Java puede comentar su experiencia en este campo!

Posted: 3/1/2008 10:51 por Jorge Dieguez | con 7 comment(s)
Archivado en: ,