Share via


Procedimiento para personalizar la presentación de la barra de vínculos superior

Última modificación: lunes, 01 de noviembre de 2010

Hace referencia a: SharePoint Foundation 2010

La barra de vínculos superior que aparece en casi todas las páginas de contenido en Microsoft SharePoint Foundation 2010 es una banda de fichas horizontal justo debajo del título y la descripción del sitio web. La primera ficha es la posición "Página principal" y normalmente tiene un vínculo a la página principal del sitio web. A menudo otros vínculos en la barra apuntan a sitios web en un nivel inferior de la jerarquía de sitios.

La barra de vínculos superior se representa mediante un control AspMenu que se define en la página maestra que crea el diseño de las páginas en el sitio web. En SharePoint Foundation 2010, la página maestra principal para las páginas de contenido y las páginas de aplicación es v4.master. Puede cambiar la apariencia de la barra de vínculos superior al modificar el marcado en v4.master.

Personalización de la barra de vínculos superior

Puede modificar la apariencia de la barra de vínculos superior estableciendo las propiedades del control AspMenu que representa los nodos de navegación de la barra. Para obtener una explicación detallada del marcado para el control y su origen de datos, vea Controles de navegación.

Por ejemplo, puede establecer propiedades que agreguen menús desplegables para mostrar elementos subordinados debajo de los vínculos en la barra. Este cambio puede ser útil para reducir la aglomeración de elementos en una barra de vínculos superior llena porque permite usar vínculos en el menú estático como categorías y mover vínculos secundarios a menús desplegables debajo de las categorías.

Para agregar menús desplegables a la barra de vínculos superior

  1. En SharePoint Designer 2010, abra el sitio web que desea personalizar.

  2. En el panel Navegación, seleccione Páginas maestras.

  3. Haga clic con el botón secundario en v4.master y, a continuación, haga clic en Copiar.

  4. Haga clic con el botón secundario en un área vacía del panel Páginas maestras y, a continuación, haga clic en Pegar.

    Se crea el archivo v4_copy(1).master.

  5. Haga clic con el botón secundario en v4_copy(1).master, haga clic en Cambiar el nombre y, a continuación, escriba un nuevo nombre, como my.master.

  6. Abra el nuevo archivo para su edición.

  7. Busque el control de menú de la barra de vínculos superior. Lo puede encontrar en la vista Código si busca en la siguiente cadena:

    ID="TopNavigationMenuV4"

  8. Establezca el valor del atributo StaticDisplayLevels y el atributo MaximumDynamicDisplayLevels en 1, tal como se indica a continuación.

    <SharePoint:AspMenu
      ID="TopNavigationMenuV4"
      Runat="server"
      EnableViewState="false"
      DataSourceID="topSiteMap"
      AccessKey="<%$Resources:wss,navigation_accesskey%>"
      UseSimpleRendering="true"
      UseSeparateCss="false"
      Orientation="Horizontal"
      StaticDisplayLevels="1"MaximumDynamicDisplayLevels="1"
      SkipLinkText=""
      CssClass="s4-tn"/> 
    
  9. En el menú Archivo, haga clic en Guardar.

    Nota

    Es posible que no tenga permitido guardar cambios en la página maestra predeterminada del sitio si una página asignada al sitio está abierta en el explorador. Si esto ocurre, cierre el explorador e inténtelo de nuevo.

  10. En el panel Navegación, seleccione Páginas maestras.

  11. Haga clic con el botón secundario en el nombre de la página maestra y, a continuación, haga clic en Definir como página maestra predeterminada.

    Nota

    También puede establecer una página maestra personalizada como la página maestra predeterminada escribiendo código que establezca el valor de la propiedad SPWeb.MasterUrl.

Un menú desplegable no aparece hasta que uno de los nodos de la barra de vínculos superior contiene nodos secundarios. La siguiente aplicación de consola crea un nuevo nodo con el texto para mostrar "Resources" (Recursos) y agrega un nodo secundario con el texto para mostrar "SharePoint Developer Center" (Centro para desarrolladores de SharePoint).

using System;
using System.Linq;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.OpenWeb("parent"))
                {
                    if (!web.Navigation.UseShared)
                    {
                        string resTitle = "Resources";
                        string resUrl = web.Navigation.Home.Url;
                        string spdevTitle = "SharePoint Developer Center";
                        string spdevUrl = "https://msdn.microsoft.com/es-es/sharepoint";

                        // Get the top link bar.
                        SPNavigationNodeCollection topnav = web.Navigation.TopNavigationBar;

                        // If a Resources link exists, get it.
                        SPNavigationNode resLink = topnav
                            .Cast<SPNavigationNode>()
                            .FirstOrDefault(n => n.Title == resTitle);

                        // If the Resources link does not exist, create it.
                        if (resLink == null)
                        {
                            resLink = new SPNavigationNode(resTitle, resUrl);
                            resLink = topnav.AddAsLast(resLink);
                        }

                        // If the Resources node has a SharePoint Dev Center child, get it.
                        SPNavigationNode spdevLink = resLink
                            .Children
                            .Cast<SPNavigationNode>()
                            .FirstOrDefault(n => n.Url == spdevUrl);

                        // If the item does not exist, create it.
                        if (spdevLink == null)
                        {
                            spdevLink = new SPNavigationNode(spdevTitle, spdevUrl, true);
                            spdevLink = resLink.Children.AddAsLast(spdevLink);
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue....");
            Console.ReadLine();
        }
    }
}
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Navigation

Module ConsoleApp

    Sub Main()

        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.OpenWeb()

                If Not web.Navigation.UseShared Then

                    Dim resTitle As String = "Resources"
                    Dim resUrl As String = web.Navigation.Home.Url
                    Dim spdevTitle As String = "SharePoint Developer Center"
                    Dim spdevUrl As String = "https://msdn.microsoft.com/es-es/sharepoint"

                    ' Get the top link bar.
                    Dim topnav As SPNavigationNodeCollection = web.Navigation.TopNavigationBar

                    ' If a Resources link exists, get it.
                    Dim resLink As SPNavigationNode = topnav.Cast(Of SPNavigationNode)().FirstOrDefault( _
                        Function(n) n.Title = resTitle)

                    ' If the Resources link does not exist, create it.
                    If resLink Is Nothing Then
                        resLink = New SPNavigationNode(resTitle, resUrl)
                        resLink = topnav.AddAsLast(resLink)
                    End If

                    ' If the Resources node has a SharePoint Dev Center child, get it.
                    Dim spdevLink As SPNavigationNode = resLink.Children.Cast(Of SPNavigationNode)().FirstOrDefault( _
                        Function(n) n.Url = spdevUrl)

                    ' If the item does not exist, create it.
                    If spdevLink Is Nothing Then
                        spdevLink = New SPNavigationNode(spdevTitle, spdevUrl, True)
                        spdevLink = resLink.Children.AddAsLast(spdevLink)
                    End If
                End If

            End Using
        End Using

        Console.Write(vbCrLf & "Press ENTER to continue....")
        Console.Read()
    End Sub

End Module

Herencia de la barra de vínculos superior

La barra de vínculos superior de un subsitio puede heredar los vínculos de navegación en la barra de vínculos superior del sitio primario en lugar de definir su propio conjunto de vínculos. Una barra de vínculos superior que se configura de esta forma puede proporcionar una experiencia coherente para los usuarios que se desplazan entre el sitio primario y el subsitio. Para obtener más información, vea Procedimiento para compartir la barra de vínculos superior entre sitios.

Sin embargo, debe tener en cuenta que configurar el vínculo superior de un subsitio en Utilizar vínculos del sitio primario simplemente significa que el subsitio usa el mapa del sitio detrás de la barra de vínculos superior del sitio primario. Se hereda el contenido de la barra de vínculos superior. Su presentación se determina según el marcado en la página maestra predeterminada del subsitio y en sus propias páginas de contenido. Aunque este hecho puede parecer obvio, es fácil pasarlo por alto.

Una forma de lograr una presentación coherente en todos los subsitios es establecer la propiedad MasterUrl de los subsitios de modo que apunte a la página maestra del sitio primario. Sin embargo, este método podría deshacer otras personalizaciones locales y por ese motivo no es deseable. Un mejor método puede ser duplicar los cambios en el marcado de la barra de vínculos superior haciendo cambios idénticos en la página maestra predeterminada de cada sitio web.

Vea también

Tareas

Cómo agregar un subsitio a la barra de vínculos superior o al menú Inicio rápido

Conceptos

Controles de navegación

Procedimiento para compartir la barra de vínculos superior entre sitios

Adición de vínculos a la barra de vínculos superior