Server リボン XML
最終更新日: 2015年3月9日
適用対象: SharePoint Foundation 2010
ここでは Server リボン XML と、属性で使用される値について説明します。
Server リボン XML のチュートリアル
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition
Location="Ribbon.Tabs._children">
<Tab
Id="Ribbon.CustomTabExample"
Sequence="501"
Description="My New Tab"
Title="My New Tab">
CommandUIDefinition 要素の Location では、リボン内のコントロールがレンダリングされる場所が定義されます。この例では、Server リボンの Tabs コレクションを参照します。_children 規則では、その後に続く XML がリボンによって出力に挿入され、リボンのレンダリングが行われるように指示されます。この場合は、Tab 要素 XML を挿入しています。Sequence 属性では、タブが、その他のタブに対してどの場所にレンダリングされるかが定義されます。既定のタブでは 100 の倍数が使用されるので、競合を避けるため、Sequence 属性には 100 の倍数を指定しないようにします。リボン XML が適切に処理されるようにするには、競合は避ける必要があります。
<Scaling
Id="Ribbon.CustomTabExample.Scaling">
<MaxSize
Id="Ribbon.CustomTabExample.MaxSize"
GroupId="Ribbon.CustomTabExample.CustomGroupExample"
Size="OneLargeTwoMedium"/>
<Scale
Id="Ribbon.CustomTabExample.Scaling.CustomTabScaling"
GroupId="Ribbon.CustomTabExample.CustomGroupExample"
Size="OneLargeTwoMedium" />
</Scaling>
カスタム タブを作成するときに、コントロールが追加されたときのタブの拡大/縮小方法を定義する必要があります。これを行うには、Scaling 要素と GroupTemplate を使用します。MaxSize 要素では、グループ内のコントロールの最大サイズが定義され、Scale 要素では、さまざまな状況におけるグループの拡大/縮小方法が定義されます。GroupId 属性は、グループと拡大/縮小サイズを関連付けます。Size 属性は、このトピックで後で定義する Layout 要素によって定義されます。
<Groups Id="Ribbon.CustomTabExample.Groups">
<Group
Id="Ribbon.CustomTabExample.CustomGroupExample"
Description="This is a custom group!"
Title="Custom Group"
Sequence="52"
Template="Ribbon.Templates.CustomTemplateExample">
<Controls Id="Ribbon.CustomTabExample.CustomGroupExample.Controls">
<Button
Id="Ribbon.CustomTabExample.CustomGroupExample.HelloWorld"
Command="CustomTabExample.HelloWorldCommand"
Sequence="15"
Description="Says Hello to the World!"
LabelText="Hello, World!"
TemplateAlias="cust1"/>
Groups 要素では、タブに表示されるグループが定義されます。Group 要素自体には、他のコントロールと同様の属性と Template 属性が含まれます。Template 属性が参照するのは、このトピックで後で定義する GroupTemplate です。Controls 要素には、グループ内でレンダリングされるコントロールが含まれます。使用できるコントロールの種類は、「Server リボンのアーキテクチャ」で定義されています。グループ内のコントロールでは、TemplateAlias 属性および Command 属性が定義されなければなりません。また、タブと同様、各コントロールには、グループ内のどの場所に自身がレンダリングされるかを定義する Sequence 属性が含まれます。既定のコントロールのこの属性値は 10 の倍数に基づいているので、競合を避けるため、カスタム コントロールでは 10 の倍数を使用しないようにします。Command 属性は CommandUIHandler 要素によって使用されますが、CommandUIHandler が指定されていなくても、この属性は必須です。TemplateAlias 属性では、コントロールがレンダリングされる場所が GroupTemplate との関連で定義されます。
<GroupTemplate Id="Ribbon.Templates.CustomTemplateExample">
<Layout
Title="OneLargeTwoMedium"
LayoutTitle="OneLargeTwoMedium">
<Section Alignment="Top" Type="OneRow">
<Row>
<ControlRef DisplayMode="Large" TemplateAlias="cust1" />
</Row>
</Section>
<Section Alignment="Top" Type="TwoRow">
<Row>
<ControlRef DisplayMode="Medium" TemplateAlias="cust2" />
</Row>
<Row>
<ControlRef DisplayMode="Medium" TemplateAlias="cust3" />
</Row>
</Section>
</Layout>
</GroupTemplate>
グループ テンプレートを定義するとき、そのテンプレートには別の CommandUIDefinition を定義する必要があります。CommandUIDefinition には、Ribbon.Templates._children の場所が含まれており、グループやタブで使用されたものと同じパターンが使用されます。
GroupTemplate 要素には Layout 要素が含まれており、この要素には Section 要素または OverflowSection 要素が含まれます。Layout 要素には Title 属性があり、その属性は MaxSize 要素および Scale 要素の Size 属性に使用されます。
Section 要素には 2 つの属性が含まれます。Alignment 属性では、その後に続く Row 要素のコントロールが配置される場所が定義されます。Type 属性では、そのセクション内でレンダリングされる行数が定義されます。Section には、最大 3 つの Row 要素を指定できます。
Row 要素には 1 つ以上の ControlRef 要素が含まれます。ControlRef 要素では、リボン内で 1 つのコントロールがどのようにレンダリングされるかが定義されます。DisplayMode 属性の値を次に示します。
注意 |
---|
すべてのコントロールですべての DisplayMode 値が使用できるわけではありません。 |
値 |
説明 |
Small |
ラベル テキストなしの小さなアイコンとしてレンダリングします。 |
Medium |
ラベル テキスト付きの 16 x 16 アイコンとしてレンダリングします。 |
Large |
ラベル テキスト付きの 32 x 32 アイコンとしてレンダリングします。 |
Text |
テキストのみとしてレンダリングします。 |
Section 要素ではなく、OverflowSection 要素を指定することもできます。この要素では、Row 要素を使用せずに複数のコントロールをレンダリングできる領域が定義されます。すべてのコントロールが、DisplayMode 属性で定義されたサイズで同じようにレンダリングされます。DividerAfter 属性と DividerBefore 属性では、オーバーフロー セクションがレンダリングされたときに表示される区切り線が定義されます。
コントロールを既定のリボンの場所に追加する場合は、グループ テンプレートと拡大/縮小を検討する必要があります。コントロールを既定の場所に追加すると、グループのレンダリングが変更される可能性があります。既定のグループ テンプレートのほとんどにオーバーフロー セクションが含まれており、このセクションはカスタム コントロールに合わせて拡大します。より高度なシナリオでは、拡大/縮小を無効にして、デザインに応じてコントロールをレンダリングできます。
<CommandUIHandlers>
<CommandUIHandler
Command="CustomTabExample.HelloWorldCommand"
CommandAction="javascript:alert('Hello, world!');" />
<CommandUIHandler
Command="CustomTabExample.GoodbyeWorldCommand"
CommandAction="javascript:alert('Good-bye, world!');" />
<CommandUIHandler
Command="CustomTabExample.LoveWorldCommand"
CommandAction="javascript:alert('I love you, world!');" />
</CommandUIHandlers>
</CommandUIExtension>
CommandUIHandlers 要素には、すべての CommandUIHandler 要素が含まれます。この CommandUIHandler 要素では、アクションに対するリボンのコントロールの対応方法が定義されます。Command 属性は、コントロールで定義された Command 属性と共に使用されるコマンドの一意の名前です。CommandAction 属性には、コントロールに対して実行されるアクションが含まれます。これは、ECMAScript (JavaScript、JScript)、URL、または以前 UrlAction 要素に含まれていたすべてのアクションに対して可能になっています。
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="MyCustomRibbonTab"
Location="CommandUI.Ribbon.ListView"
RegistrationId="101"
RegistrationType="List">
...
</CustomAction>
</Elements>
リボンをカスタマイズするときは、リボン XML と共に CustomAction 要素を使用します。カスタム アクションの詳細については、「カスタム アクション」を参照してください。カスタマイズが適用される場所は、Location 属性によって CustomAction に通知されます。次の表ではその値について説明します。
値 |
説明 |
CommandUI.Ribbon |
指定した RegistrationId のすべての場所にカスタマイズが表示されます。 |
CommandUI.Ribbon.ListView |
リスト ビュー Web パーツが存在するときにカスタマイズが表示されます。 |
CommandUI.Ribbon.EditForm |
編集フォームにカスタマイズが表示されます。 |
CommandUI.Ribbon.NewForm |
新しいフォームにカスタマイズが表示されます。 |
CommandUI.Ribbon.DisplayForm |
表示フォームにカスタマイズが表示されます。 |