Compartilhar via


Como a: Personalizar página de edição de componentes da barra de ferramentas

A barra de ferramentas Page Editing é um painel de usuário elementos interface (interface do usuário) que fornecem informações página e formas para interagir com a página. Este tópico mostra duas maneiras de modificar a página de edição barra de ferramentas. Você pode:

  • Modificar os arquivos fonte de dados XML.

  • Criar um personalizado controle servidor e, em seguida, referência um personalizado arquivo XML no seu controle.

A barra de ferramentas Page Editing é dividida em três áreas principais, ou interface do usuário controles.

Controle interface do usuário Descrição

Status da Página barra

Fornece informações sobre o atual versão da página. Os exemplos incluem informações versão e status a página.

Page Editing menu

Permite que um usuário para interagir com a página Executando ações como editoração uma versão, aprovação um pendente versão e check-in de página para compartilhar um versão preliminar.

Botões de acesso rápidos

Torna disponível as ações mais populares, recebe o status página e contexto.

O menu Page Editing tanto a separar botões Quick Access o fonte de dados do controle de interface do usuário e você podem modificar a fonte de dados e o interface do usuário controle de forma independente.

Modificar arquivos de fonte de dados XML

Os arquivos EditingMenu.xml e QuickAccess.xml são as fontes dados XML para o Page Editing menu e botões de acesso rápido, respectivamente. Fontes de dados especificados na unidade arquivos XML a configuração e o comportamento dos itens de menu no menu Page Editing e as ações que estão associado com os botões Quick Access. Neste exemplo, é criar um objeto que substitui o ConsoleAction T:Microsoft.SharePoint.Publishing.WebControls.EditingMenuActions.ConsoleAction classe e modificar o arquivo CustomQuickAccess.xml para adicionar um novo botão para a barra de ferramentas Page Editing. Após o procedimento, um novo botão aparece no barra de ferramentas de Page Editing seguinte que, quando clicado, permite que os usuários com o apropriado permissões para cancelar **** Checked Out status em uma página especificada do outro usuário.

Cuidado por razões compatibilidade, fazer alteração não o conteúdo dos arquivos EditingMenu.xml e QuickAccess.xml. Para personalizar as ações e os itens que esses arquivos controle, editar os arquivos CustomEditingMenu.xml e CustomQuickAccess.xml, encontrados na pasta Editing Menu na Galeria de Master Page, em vez disso.

Dica

Você pode também aplicar as personalizações descrita aqui para o botão Quick Access e ações do site menus.

Para criar um personalizado controle servidor que pode alteração de configuração dos botões de Quick Access

  1. Abrir Microsoft Visual Studio.

  2. O arquivo menu, clique em nova clique e de sites da Web ASP.NET .

  3. Crie um novo projeto.

  4. Copiar e colar o seguinte codificar em um arquivo. cs no projeto.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Microsoft.SharePoint.Publishing;
    using Microsoft.SharePoint.Publishing.WebControls.EditingMenuActions;
    using Microsoft.SharePoint.Publishing.WebControls;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Utilities;
    namespace PageEditingToolbarMenuItemControls
    {
        /// <remarks>
        /// Adds to the Quick Access toolbar a button that checks in
        /// a document that is checked out by another user.
        /// </remarks>
        public sealed class DiscardOtherUserCheckoutAction : ConsoleAction
        {
            /// <summary>
            /// This is the constructor of the specific ConsoleAction
            /// </summary>
            public DiscardOtherUserCheckoutAction() : base()
            {
                this.DisplayText = "Discard Other User's Checkout";
            }
            /// <summary>
            /// SPBasePermissions are required to use this Action.
            /// </summary>
            /// <value></value>
            public override SPBasePermissions UserRights
            {
                get { return SPBasePermissions.CancelCheckout; }
            }
            /// <summary>
            /// Checks for the AuthoringStates required for the button to be enabled.
            /// </summary>
            /// <value></value>
            public override AuthoringStates RequiredStates
            {
                get
                {
                    return AuthoringStates.CheckedOutVersionExistsTrue | AuthoringStates.IsCheckedOutToCurrentUserFalse | AuthoringStates.IsDocLibListItemTrue;
                }
            }
            /// <summary>
            /// Defines the PostBack behavior when the URL for this control is clicked.
            /// </summary>
            /// <param name="eventArgument"></param>
            public override void RaisePostBackEvent(string eventArgument)
            {
                if (eventArgument == DiscardOtherUserCheckoutAction.DiscardCheckOutPostBackEventArgument)
                {
                    try
                    {
                        SPFile myFile = SPContext.Current.File;
                        myFile.UndoCheckOut();
                    }
                    catch (SPException e)
                    {
                        ConsoleNode actionsNode = new ConsoleNode();
                        ConsoleNode exitNoSaveNode = new ConsoleNode(actionsNode);
                        exitNoSaveNode.Action = new ExitWithoutSavingAction();
                        exitNoSaveNode.Action.ID = "checkOutDiscardErrorActionExitNoSave";
                        actionsNode.ChildConsoleNodes.Add(exitNoSaveNode);
                        this.ShowError(e, new ConsoleError(e.Message, actionsNode));
                    }
                    finally
                    {
                        SPUtility.Redirect(SPContext.Current.ListItemServerRelativeUrl, SPRedirectFlags.Default, Context);
                    }
                }
            }
            /// <summary>
            /// Specifies the URL for this Action.
            /// </summary>
            /// <value></value>
            public override string NavigateUrl
            {
                get
                {
                    return "javascript:" + Page.ClientScript.GetPostBackEventReference(this, DiscardOtherUserCheckoutAction.DiscardCheckOutPostBackEventArgument);
                }
            }
           private const string DiscardCheckOutPostBackEventArgument = "discardUserCheckout";
        }
    }
    
  5. Salvar alterações.

  6. Build the project as a new assembly, register the assembly with the general assembly cache, and add a new <SafeControl> entry in your web.config file that corresponds to the assembly and the namespace of your custom control (PageEditingToolbarMenuItemControls).

  7. Reinicie Serviços de Informações da Internet (IIS).

  8. Navegue até a pasta \Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\EditingMenu \Arquivos de Shared\Extensões Server Extensions\12\TEMPLATE\LAYOUTS\EditingMenu.

  9. Copiar e colar o arquivo QuickAccess.xml e renomear o duplicado para CustomQuickAccess.xml.

  10. Editar CustomQuickAccess.xml e substituir seu de conteúdo com o seguinte marcação:

    <Console>
      <references>
      ///The following tag must refer to the assembly you created
      ///and compiled in step 3.
        <reference TagPrefix="demo" assembly="WebControlLibrary1, Version=1.0.11.876, Culture=neutral, PublicKeyToken=b3795d44e71a79a4" namespace="PageEditingToolbarMenuItemControls" /> 
      </references>
      <structure>
        <ConsoleNode Action="demo:DiscardOtherUserCheckoutAction" DisplayText="Discard Checkout" ConfigMenu="Add" UseResourceFile="false" Sequence="1700" RequiredRightsMode="Any" ImageUrl="/_layouts/images/ActionsSettings.gif" ID="DiscardCheckedout" />
      </structure>
    </Console>
    
  11. Salvar e fechar CustomQuickAccess.xml.

Criar um controle personalizado Server e Arquivo XML de referência

Você pode programaticamente estender o conteúdo de arquivo CustomEditingMenu.xml e substituir as configurações contidas no seu arquivo EditingMenu.xml pai. A marcação incluída no seguinte procedimento inclui codificar exemplo para um arquivo CustomEditingMenu.xml que adiciona um novo menu Links com dois novos itens, as well as uma galeria View Pages e uma galeria View Master Page, para o menu Page Editing.

Você pode modificar o menu Page Editing e os botões de acesso rápido, criando um personalizado controle do servidor Web. O amostra de código abaixo demonstra como criar um personalizado controle servidor que reverte um verificadas - out-documento para um verificadas no estado.

Você pode alteração de configuração interface do usuário de barra de ferramentas a Page Editing o Quick Access botões modificando o fonte de dados XML diretamente ou por gravação e implantar um personalizado controle servidor. No entanto, se as fontes dados XML são personalizado e um personalizado controle servidor é execução, o personalizado controle servidor sempre terá prioridade e substitui as fontes dados XML.

Para modificar a página Editar configuração interface do usuário barra de ferramentas de fonte de dados XML e alteração

  1. Abra um Editor de XML.

  2. Navegue até a pasta Server Extensions\12\TEMPLATE\LAYOUTS\EditingMenu \Arquivos de Shared\Extensões \Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\EditingMenu folder.

  3. Copiar e colar os arquivos EditingMenu.xml e QuickAccess.xml para criar duplicatas. Renomeie as duplicatas para CustomEditingMenu.xml e CustomQuickAccess.xml.

  4. Copiar e colar o seguinte codificar arquivos de CustomEditingMenu.xml e CustomQuickAccess.xml.

    <?xml version="1.0" encoding="utf-8" ?> 
    <Console>
      <references>
        <reference TagPrefix="cms" assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral,
          PublicKeyToken=93de0004b6e3fcc5" namespace="Microsoft.SharePoint.Publishing.WebControls.EditingMenuActions" />
      </references>
      <structure>
        <ConsoleNode ConfigMenu="Add" Sequence="600"
          NavigateUrl="javascript:" AccessKey="L" DisplayText="Links" 
          UserRights="EmptyMask" UseResourceFile="false" 
          RequiredStates="InSharedView" ID="LinksMenu" >
          <ConsoleNode 
            DisplayText="View Pages Library"
            UseResourceFile="false"
            ImageUrl="/_layouts/images/ActionsSettings.gif"
            UserRights="BrowseDirectories|ManageLists"  
            RequiredRightsMode="Any"
            PermissionContext="CurrentSite"
            IsSiteRelative="true"  
            NavigateUrl="Pages/forms/allitems.aspx"  
            ChangedNodeID="ViewPagesList">             
          </ConsoleNode>
          <ConsoleNode IsSeparatorImage="True" UserRights="EmptyMask" />
          <ConsoleNode 
            DisplayText="View Master Page Gallery" 
            UseResourceFile="false" 
            ImageUrl="/_layouts/images/ActionsSettings.gif"
            UserRights="BrowseDirectories|ManageLists"  
            RequiredRightsMode="Any"
            PermissionContext="CurrentSite"
            IsSiteRelative="false"  
            NavigateUrl="/_catalogs/masterpage/Forms/AllItems.aspx" 
            ChangedNodeID="ViewPagesLibSettings">
          </ConsoleNode>
        </ConsoleNode>
      </structure>
    </Console>
    
  5. Modificar chave elementos a codificar exemplo. A seguinte tabela apresenta um exemplo de chave elementos e atributos no arquivo XML de exemplo.

    Marca Descrição

    Referências

    Contém as referências aos conjuntos de módulos (assemblies) no ConsoleNode ConsoleNode seção. Você pode adicionar seus conjuntos para seu personalizado ações para o menu.

    Observação

    In the code sample, the <references> tag is optional.Defina este parâmetro como True se você desejar para localização suporte.Also, the <references> tag must be present with a PublicKeyToken attribute that matches the build of the application that you are currently using.

    ConsoleNode

    Contém itens de menu do menu de Page Editing. Each menu can contain the DisplayText property, UserRights property, RequiredRightsMode property, and PermissionContext enumeration in which the menu is visible. O menu pode ser uma ação que é mapeada para um controle servidor no assembly ou pode ser uma URL.

    Você também pode substituir ou excluir entradas existentes, especificando o ID. nó existente

    Estrutura

    Indica a estrutura menu.

  6. Use um Boolean expressão para configurar opcional atributos bitmask. Cada ConsoleNode tem dois opcional bitmask atributos que você pode definir para controle condições, como quando e onde o ConsoleNode parece o usuário.

    Tipo Nome do atributo Descrição

    Contexto

    RequiredStates

    O exigido estado da página ou a edição modo antes que o nó esteja habilitado ou desabilitado. InEditModeTrue InEditModeFalse e IsCheckedOutToCurrentUserTrue exemplos de estados.

    Direitos de usuário

    UserRights

    Responsável por acessar aparando para o ConsoleNode com base nas permissões Windows SharePoint Services wssnoverslong.

    Este exemplo Boolean expressão, UserRights="BrowseDirectories|ManageLists, permite que os usuários com BrowseDirectories ou ManageLists ManageLists permissões para acessar o ConsoleNode.

  7. Salve o arquivo CustomEditingMenu.xml.