How to: Customize the Page Editing Toolbar 

[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

The Page editing toolbar is a panel of UI elements that provides page information and ways to interact with the page. The following table describes the three main sections of the page editing console.

UI Element Description

Page status bar

Provides information about the current version of the page.

Page editing menu

Enables a user to interact with the page, such as publish a version, approve a pending version.

Quick access buttons

Makes available the most popular actions, given the page status and context.

Both the page editing menu and the quick access buttons are built with the concept of separating of data source and UI control. Both the data source and the UI control can be modified independently. The following section describes how one can change the configuration of the UI by modifying the data source.

The menu items on the page editing menu and the actions on the quick access buttons are driven by data sources that are specified in XML files. By default, these XML files, EditingMenu.xml and QuickAccess.xml, are located in the following folder: D:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\EditingMenu.

These XML files define the out-of-the-box actions available in the Page Editing Menu and Quick Access Buttons on the Page Editing toolbar. For compatibility reasons, the contents of EditingMenu.xml and QuickAccess.xml should not be changed. In order to customize these actions, there are two files you can edit: CustomEditingMenu.xml and CustomQuickAccess.xml, found in the Editing Menu folder under the site collection's Master Page Gallery. The contents of these files can extend upon, and override, the settings contained in their parent files (EditingMenu.xml and QuickAccess.xml). The following code example shows the contents of a sample CustomEditingMenu.xml file that addes a new "Links" menu under the Page Editing Menu with two items – "View Pages Library" and "View Master Page Gallery".

<?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>

The following tables are not a complete reference guide, but they present a high level of key elements and attributes for the above XML file.

Tag Description

References

Contains the different assemblies references in the ConsoleNode section. You may add your assemblies for your own customized actions added to the menu. Note that in this code sample, the <refrence> tag is optional. If you want to support localization, then this parameter should be set to true, and the <reference> tag must be present with a PublicKeyToken attribute that matches that of the build of the application that you are currently using.

ConsoleNode

Contains the different menu entries in the editing menu. Each menu may contain the display name, the permission masks, and the context in which the menu is visible or active. The menu may be an action that is mapped to a server control in the assembly, or a URL to a particular place in the Web.

You may also replace or delete existing entries by specifying the existing node id.

Structure

Tag for indicating the structure of the menu.

Each ConsoleNode has two optional bit mask attributes that can be set in order to control conditions where it will and will not appear to the user. If these are set, the ConsoleNode will only be displayed when the conditions specified in the masks are true. Boolean expressions can be used to configure these attributes; for example, the attribute

UserRights="BrowseDirectories|ManageLists"  

allows access to the ConsoleNode to users with BrowseDirectories OR ManageLists WSS permissions set.

Type Attribute name Description

Context

RequiredStates

The required state of the page or the editing mode before the node is enabled or disabled. Examples of states are: InEditModeTrue, InEditModeFalse, IsCheckedOutToCurrentUserTrue.

User Rights

UserRights

Responsible for trimming access to the ConsoleNode based on WSS permissions.

Note

The customizations discussed in this article may also be applied to the Site Actions menu. A similar XML file named "CustomSiteAction.xml" is available in the Editing Menu folder under the Master Page Gallery in your site collection.

To add or change menu items or Quick Access buttons in the Page editing toolbar

  • Edit the EditingMenu.xml and Quick Access.xml files. They are located in a folder called Editing menu in the master page gallery.