Archive for the ‘CSS’ Category

Modificar el menú de navegación Asp:Menu Sharepoint

febrero 26, 2010

http://danishhussain.blogspot.com/2009/07/customizing-share-point-2007moss-top.html

<SharePoint:AspMenu ….

……

<StaticItemTemplate>

<table>
<tr>
<td>
<asp:hyperLink runat=”Server” id=”urlNav”
NavigateUrl='<%#
Eval(“DataPath”)%>’ Text='<%#
Eval(“Text”)%>’ />
</td>
</tr></table></StaticItemTemplate></SharePoint:AspMenu>

Anuncios

ideas locas para adjuntar un css a un webpart como característica

febrero 16, 2010

Se ha creado un webpart personalizado que se añadirá al sitio por medio de una característica. Para que pueda ser reutilizado, los estilos css deben ser totalmente independientes al código del webpart (no vale colocarlos todos dentro del atributo style) Así que se debe enlazar una hoja de estilos al webpart.

Si el webpart se ha creado desde cero, no hay problema, se añade el código correspondiente desde .Net y luego se complia. Lo que hace el código es añadir una etiqueta CSSRegistration (<SharePoint:CssRegistration name=”<% $SPUrl:~SiteCollection/Style Library/~language/Core Styles/Band.css%>” runat=”server”/> ) dentro de

<Sharepoint:CssLink runat="server" />

para que pinte una nueva etiqueta <link> con  el nuevo css.

El problema viene cuando el webpart que se quiere reutilizar y activar con una característica ya viene prehecho. En este caso se ha utilizado un Content Query Webpart. ¿Cómo asociamos un CSS únicamente a este webpart?.  Dos ideas locas, utilizando el archivo xsl que pinta la cabecera del webpart. se llama: Header.xsl en el insertar:

– etiqueta <link> directamente en el código (no sé si se puede colocar esta etiqueta dentro del body o debe ir únicamente en la cabecera) la etiqueta puede ir donde se quiera, la interpreta igual

insertar el siguiente código:

<style type='text/css' media='screen,projection'>
@import '/styles/layout.css';/*ruta del css*/
</style> 

no entiende la etiqueta @import 

insertar un content SharePoint:CssRegistration para que se incluya en el placeholder de la cabecera. no sé si al ser un archivo xsl interpretará la etiqueta y la colocará donde toca. Además tampoco sé si una vez pintada la cabecera se rellenará el csslink con cssregistration de después. Como es un archivo xsl, no entiende las etiquetas asp.

Sólo hay tres soluciones: dar formato con xsl, poner los estilos directamente en el xsl con la etiqueta <style> o linkar un css con la etiqueta <link> en el achivo xsl que pinta entero el webpart: si queremos añadir algo por encima de todos los ítems (estén agrupados o no) y por debajo (incluído el FooterTemplate), tenemos que añadir código a la función: OuterTemplate en el MyContentQueryMain.xsl

Orden de aplicación de las hojas de estilo en Sharepoint

febrero 2, 2010

En una masterpage, las siguiente etiquetas son las que van cargando los archivos CSS:

Primero, utilizando <Sharepoint:CssLink runat=”server” />se cargan las siguientes cuatro cosas por este orden:

1º  Css cargados por medio de: <SharePoint:CssRegistration name=”<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/aaaa.css %>” runat=”server”/> siguiendo orden alfabético.

2º  Core.css

3º el css especificado con el atributo DefaultURL dentro de la propia etiqueta SharePoint:CssLink por ejemplo:  <Sharepoint:CssLink DefaultUrl=”<% $SPUrl:~SiteCollection/Style Library/mi.css %>”  runat=”server”/>

4º el css alternativo especificado desde la interfaz de SharePoint, cuando se elige la masterpage (afectan también a las páginas de configuración)

la propiedad $SPUrl se utiliza para crear rutas dinámicas pero sólo sirve en los sitios con las características de publicación activadas

Segundo, mediante <SharePoint:Theme runat=”server”/> se carga el tema con su correspondiente css.

Otro modo de cargar CSS es escribiendo en la masterpage:<link rel=”stylesheet” type=”text/css” href=”<% $SPUrl:~SiteCollection/Style Library/~language/internacional/miestilo.css %>”> Esta etiqueta está escrita directamente en el HTML, no responde a ningún control por lo según donde se coloque se cargará. Por ejemplo si queremos que se cargue la última, la colocaremos después de todas las etiquetas que cargan CSS. Pero si queremos que cargue antes del tema, la colocaremos antes de la etiqueta <SharePoint:Theme runat=”server”/>