SharePoint 2013 になって、UI が変更されたディスカッション掲示板ですが、困った点としてはビューの変更が出来なくなってしまったということです。中でも個人的に特に困ったのが、投稿されたディスカッションの一覧が表示される「件名」ビューの表示件数を変更できないという点です。既定で用意されている「件名」ビューは20件でページングがされるように設定されており、他のコンテンツが載っているページに Web パーツとして配置するには少々(いや、かなり)縦長なものになってしまいます。ビューの編集は無効化されていますし、「リストの設定」からビューの編集をしようとしても、ビューの名前と URL しか変更することができません。さて、どうしたものか、というのが今回の記事です。

今回のシナリオとしては、ディスカッション掲示板を直接開いた時は、20件表示されていても構わないので、他のページに Web パーツとして配置した時には5件のみを表示したいと思います。

SharePoint Designer でビューを確認する

ブラウザでは何も設定できないことがわかったので、SharePoint Designer を利用して「件名」ビューがどういった構造になっているかを確認します。すると、CAML での記述が見当たるので、このあたりを変えると良いのかな?とあたりがつきます。

20140225-1

CAML についてもっと詳しく知りたい!という方は下記の MSDN をご確認下さい。

Introduction to Collaborative Application Markup Language (CAML)
http://msdn.microsoft.com/en-us/library/office/ms426449.aspx

<XmlDefinition><View>タグを見ていくと<RowLimit Paged="TRUE">20</RowLimit>のところに20とあるので、これが表示件数を指していますね。Pagedは指定件数でページングをするのかしないのかの設定ですね。

20140225-2

Web パーツをエクスポート

次に、SharePoint Designer を利用し、Web パーツとしてエクスポートします。ここで SharePoint Desiger を利用するのは、この Web パーツはブラウザからではエクスポートができないためです。「件名」ビューを開いている状態で、リボンメニューの「Web パーツ ツール – 書式」タブを選択し、「Web パーツの保存」グループの「ファイルへ」をクリックすると、「.webpart」ファイルをダウンロードできます。

20140225-3

テキスト エディターで編集

「.webpart」ファイルの中身は、XML となっているため適当なテキスト エディターで簡単に内容を確認することができます。見ていくと、<property name="XmlDefinition" type="string">の値が先ほど確認した CAML で書かれた<View>タグとなっており、その中にRowlimitが見つかるので、20となっているところを好きな数字に変更します、今回は5にしました。これを上書き保存します。

20140225-4

Web パーツをアップロード

あとは、貼り付けたいページを編集し Web パーツを挿入する際の「カテゴリ」の下にある「Web パーツのアップロード」から、先ほど編集した「.webpart」ファイルをアップロードします。この際、一度編集モードが解除されてしまうので、再度 Web パーツの挿入操作を行うと、リボンにアップロードした Web パーツが表示されています。

20140225-5

20140225-6

表示結果

きちんと、5件までが表示されページングも表示されていることがわかります。動作も問題ないように思えますが、標準の UI では用意されていない設定変更であるため自己責任でお願いします。

20140225-7

今回は動作確認のためページングを残したままにしていますが、ページングの設定はお好みで。これで、トップページなどに「最新のディスカッション」といった具合に表示しやすくなったかと思います。ただ、この Web パーツ、横幅もかなり使うのでページ レイアウトには少し工夫が必要ですね。

また、SharePoint 2010 から SharePoint 2013 へのアップグレードを見ていると、ディスカッション掲示板に関しては、編集したビューではトラブルが起こり易いように見えたので、あまり大胆な変更は行わないほうが良いかもしれません。