標準機能でグラフィカルな階層型リンク集をつくる

書籍で、リンクリスト+記号で(擬似的な)ツリー式リンク集を作成する方法をご紹介しました。その応用編。

SharePoint標準の「リンク」は、「リンクリスト」であれ「概要リンクWebパーツ」であれ、階層化という概念がありません(グループ化はできますけど)
そのため、サイトマップのような樹形図を構成するには向きません。

かといって、樹形図を TABLE タグで表現するのは、酷く面倒です。メンテナンス性も良くありません。
そこで、罫線を利用してリンクをつくります。

これはこれでそれなりに実用的なのですが、ひとつ問題があります。
あくまでテキストなので、表示する環境に依存するのです。

という訳で、画像を利用してもう少しリッチな階層リンクを作ります。
こんな感じです。

この仕組は、以下で構成されています。
1. 画像ファイル
2. カスタムリスト
3. ワークフロー
4. リンクリスト

こちらが画像。
余白部分の長さが違う三種類の画像です。


levelicons.zip

この画像を、適当なライブラリにアップロードし、そのURLを取得します。
次は、カスタムリストにこの URL を登録しておきます。
直接ワークフローに URL を組み込んでもよいのですが、複数のサイトで流用をすることを考えると、外部化しておいた方が使い勝手が良いでしょう。

そして本体になるリンクリストです。
デフォルトのリンクリストに、

1. linktitle列(一行テキスト)
2. level列(選択肢)
3. link列(拡張リッチテキスト)

の三列を追加しておきます(もちろん名前はご自由に)
(2)の選択肢には、上のマスタで各画像の URL につけたタイトルを設定します。

このリンクリストに ShrepointDesigner でワークフローを設定します。
設定そのものはごく簡単です。
Level列の値に応じて、カスタムリストから該当する path列の値(画像のURL)を取得します。
この値と、自身にある linktitle、URL 値を組み合わせて画像つき+リンクのタグを組立て、それをリッチテキスト列 link に設定します。

注意点として、SharePointのリンク列は、内部的には [http://sharepoint.com , テキスト] という形式でリンク情報を保持しているのですが、ワークフローから参照した場合、前半のだけが返ります。
つまり、リンクの「説明」値は取得出来ません。
別に列 linktitle を設けて、ユーザ自身に適切なテキストを設定して貰う必要があります。
オプションで必須にしておくと良いかもしれません。

2010/06/20 訂正
間違いでした。「URL」ではなく、「URL(編集メニュー付きのURL) 」列の値をとれば、 [http://sharepoint.com , テキスト] を取得出来ます。
ただし、 あくまで , で区切られた一行テキスト値ですので、これを分解する必要があります。
そして、SharePoint Designerでこれを行うには、かなり工夫が必要です。

また、コンテンツタイプの管理を有効化して、link も直接ユーザが編集できないようにしておきます。

これで、アイテム(リンク)が作成・編集されると、ワークフローが選択肢に応じたアイコンリンクを作成します。
あとは、以下のスタイルを適用して、背景を白に統一し、ヘッダー列を消して完成です。

.ms-viewheadertr{
display:none;
}
.ms-alternating{
background-color:#FFFFFF;
}


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9