SharePoint 2010 グローバル ナビゲーションのルートを消したい追加!

こんにちは、前回の投稿の続きというか、追記です。
SharePoint のグローバル ナビゲーション (トップ リンク バー) について、ルートのリンクを消す方法をご紹介しました。

前回ご紹介した方法では、思い通りに動作しない点があったので、内容を追加します。
前回の記事で動作を確認した環境では、トップ レベルサイトのナビゲーション設定で、[現在のナビゲーション] にリンクが何もありませんでした。そのため、ご紹介した設定を行うことで、グローバルリンクからトップレベル サイトのリンクが表示されなくなったと思っていたのですが、[現在のナビゲーション] にリストやライブラリへのリンクが存在する場合、それもグローバル ナビに表示されてしまいます。

nav3

バリエーションを利用する場合、トップレベル サイトはバリエーション ルートとしてのみ利用するため [現在のナビゲーション] を全部手動で消してもいいのですが。
そうしなくても、トップレベル サイトのリンクをグローバル ナビゲーションから非表示とする方法を他にご紹介しておきます。

前回の投稿では、マスターページ内でサイトマップデータソースのプロパティを変更しましたが、それは行わずに、CSS に次の編集を加えます。

※ SharePoint Designer 2010 で スタイルを編集した場合は、corev4.css がサイト コレクション 内に保存され、そのサイト コレクション内のみに編集内容が適用されます。ハイブ内にある corev4.css をメモ帳などで直接編集した場合はサーバー全体に変更が反映されますし、サポート外のカスタマイズとなるのでご注意ください。私は、別ファイルで CSS ファイルを作成してその中に下記 CSS を記述しました。

.s4-tn li.static > a {
display: none !important;
}
.s4-tn li.static > ul a {
display: block !important;
}

以上、「グローバルナビゲーションのルートを消したい」への追記でした。

奥田理恵

広告

SharePoint 2010 グローバル ナビゲーションのルートを消したい

こんばんは、奥田です。
今日は SharePoint のグローバル ナビゲーションについてです。

グローバル ナビゲーション (トップ リンク バー) は既定ではサイト コレクションのトップ レベル サイトが一番左に表示されます。
今週は SharePoint 2010 のちょっとしたデモ環境を作っているのですが、その中でバリエーションを利用しており、トップ レベルサイト (バリエーションのルートサイト) のリンクがグローバル ナビに出てほしくないなぁと。
ということで、出ないように変更してみました。

マスターページ内の SharePoint:aspMenu コントロールについて、SharePoint:aspMenu コントロールが参照するサイト マップデータソースのプロパティを変更することで、トップ リンク バーにサイト コレクションのトップ レベル サイトを非表示にするよう設定しました。
(私は v4.master のコピーを作成しコピーに編集しました)

行った手順は下記です。

<サイト コレクションのトップをグローバルナビから非表示にする設定>

1. 編集するマスターページを SharePoint Designer 2010 で開く
2. トップリンク バーのデータソースを変更するため、スマートタグから [新しいデータ ソース] とする

nav1

3. [サイトマップ] を選択して任意の ID をつける
4. ソースコード上で、<SharePoint:AspMenu ID=”TopNavigationMenuV4” (トップ リンク バー) を探し、その下にある <asp:SiteMapDataSource runat=”server” ID=”mySiteMap” /> タグを探す。
タグのプロパティ画面などで、<asp:SiteMapDataSource runat=”server” ID=”mySiteMap” /> タグに次の設定を行う。
・ ShowStartingNode = FALSE
・ StartingNodeUrl = サブサイトのURLなどを指定

<SharePoint:AspMenu ID=”TopNavigationMenuV4″ Runat=”server”  EnableViewState=”false” DataSourceID=”topSiteMap” AccessKey=”<%$Resources:wss,navigation_accesskey%>” UseSimpleRendering=”true” UseSeparateCss=”false” Orientation=”Horizontal” StaticDisplayLevels=”2″ MaximumDynamicDisplayLevels=”1″ SkipLinkText=”” CssClass=”s4-tn”/>
<asp:SiteMapDataSource runat=”server” ID=”mySiteMap” ShowStartingNode=”False” StartingNodeUrl=”../../SubSite/SitePages/Home.aspx” />

以上の設定で、グローバルナビゲーションからトップ レベル サイトが表示されなくなりました♪

奥田理恵