質問者
コンテンツクエリWebパーツにて特定のサイトやリストから新着情報を取得したい

質問
-
初めて投稿します。よろしくお願いいたします。
コンテンツクエリWebパーツにて、クエリ条件を以下のように指定したいと思っています。
・指定した特定のサイトのリストから新着情報を取得したい
たとえば、TESTという名前の親サイトと、TEST01、TEST02・・・と子サイトがある場合、
親のTESTサイトと子のTEST02とTEST04からのみ新着情報を取得したいといった感じです。
・リストの種別を複数指定したいor特定のリストから新着情報を取得したい。
カスタムリストだけでなく、お知らせリストなどからも新着情報を取得するか、
特定の指定したリストからのみ新着情報を取得したい。
webpart ファイルをエクスポートし、設定をするのだということは、大体調べてみて理解はしたのですが、
HTMLやXML等、Web系のプログラムは今まで携わったことがなく、ファイルにどのように記載してよいかわかりません。
上記二つの条件は、それぞれ単体でもよいですし、組み合わせた場合の記述方法も判ればありがたいです。
素人で申し訳ございませんが、仕事でMOSSのコンテンツ作成を急きょすることになりましたので、よろしくおねがいいたします。2009年7月7日 6:27
すべての返信
-
はじめまして。
「記載する」と書かれているということは、コンテンツのクエリWebパーツ(以下CQ)をベースに、
カスタムWebパーツを自作されようとしているということでしょうか?とすれば、これは結構(いやかなり?)ハードルが高いです。
Webパーツをエクスポートして内部(XML)を編集して可能なのは、あくまで表示スタイルの変更のみです。
CQの機能そのものを拡張することは出来ないと思います。スタイル変更に関してはこちらが参考になると思います。
http://sharepoint.boo.jp/index.php?e=176以下は、あくまで標準のCQを前提にしています。
>・指定した特定のサイトのリストから新着情報を取得したい
>たとえば、TESTという名前の親サイトと、TEST01、TEST02・・・と子サイトがある場合、
>親のTESTサイトと子のTEST02とTEST04からのみ新着情報を取得したいといった感じです。残念ながら不可です。
「特定のサイトのみ」および「特定のサイトとその配下全て」という指定は可能ですが、
「配下の特定のサイト」を選択することは出来ません。なんとか実現するとすれば…
非常に無理矢理な方法ですが、TEST、TEST02、TEST04 の新着情報は「お知らせ」
リストテンプレートで作成し、それ以外のサイトはカスタムリストテンプレートで作成すれば
一応、実現できます。
CQはコンテンツのテンプレートを指定して情報を拾ってくるので、この場合「お知らせ」を
指定すれば、TEST、TEST02、TEST04 の新着情報のみを拾ってくれます。>・リストの種別を複数指定したいor特定のリストから新着情報を取得したい。
> カスタムリストだけでなく、お知らせリストなどからも新着情報を取得するか、
> 特定の指定したリストからのみ新着情報を取得したい。リストの複数種類指定は、標準のCQでは無理です。
「どのタイプのリスト/ライブラリか」を選択することが大前提になっている為です。一方、特定のリストから新着するのは簡単です。
Webパーツのプロパティで、特定のリストを指定することができます。参考:http://sharepoint.boo.jp/index.php?e=29
お役に立てれば幸いです。
saruhiko2009年7月7日 10:56 -
返答、ありがとうございます。
表示スタイル関係については、記載していただいているリンク先なども参考にさせていただき、
色々と変更することは可能でしたが、やはりクエリ条件の編集は難しいのでしょうか。
MicrosoftのCQ Webパーツの操作方法自習書(http://download.microsoft.com/download/d/7/a/d7af83ad-fa61-470a-96fb-e42431488eaf/MOSS2007_Selfstudy_ContentsQuery.pdf)にて、
webpartファイルの上書きプロパティ(QueryOverride、WebsOverride、ListsOverride)を編集することで、
標準の設定項目だけではなく、色々クエリ条件を指定することができるとありましたので、
その記述方法が分かればと思ったのですが。
自習書では、複数コンテンツタイプを表示する記述例は書かれていました。
しかし、QueryOverrideやWebsOverrideにて特定の複数サイトからアイテムが取得することが可能と書かれているのですが
記述例がないため、XML等あまり知識がないので、どのように記述するのかわからずにいました。
ご意見をいただいたところによると、これらに書かれてる、特定の複数サイトからのアイテム取得というところは
特定のサイト以下そのサブサイトから・・・と読み替えるべきものなのでしょうか?
現在構築しているサイトの構成上、親サイト下に子サイトが複数あり、親サイト上のCQに新着情報としてあげたいサイト(もしくはリスト)
を絞り込みたいと思っているのですが。
かなり厳しそうですね・・・2009年7月8日 7:19 -
どうも。
ええと。正直に白状しますが、知りませんでした(汗)
確かに出来る、と書いてありますね。
外観の変更しか出来ないものと思い込んでいました。
いや、勉強になりました(感謝)
さて、調べてみると、technet をはじめ随所に「可能である」旨の記述はあるのですが…
サンプルが全くないですね!
海外のサイトも探って見ましたが、どれもこれもデザインの変更ばかり。
「複数のテンプレートからデータを取得する」
「特定の複数サイトからデータを取得する」
ニーズないんですかね?(苦笑)
で、調査の過程で、こんなツールを見つけました。
Lightning Conductor Web Part vs Content Query Web Part
http://www.lightningtools.com/lightning-conductor-web-part/content-query-web-part.aspx
有料版、強力CQWPです。
説明を読む限り、U/Iからの設定だけで、TETSUOさんのニーズがほぼ満たせそうです。
しかし、サーバライセンスで600$します。
この値段か高いか安いかは判断に困るところですが…。
企業ユースなら、法外という値段でもないですね。
開発の手間を考えればむしろ割安かも?
とりあえず試用版はフリーでダウンロード出来るようですので、試されては如何でしょうか?
saruhiko2009年7月8日 16:16 -
どうも×2
上のレスを書いてから、ふと思いつきまして…。
CQWPのカスタマイズではないのですが、「特定の情報ソースから新着を表示する」
という目的を達成するだけでしたら、CQWPではなく、RSSを利用する方法もあります。
MOSSのコンテンツは全てRSSを生成してくれます。
これを RSS リーダ WEBパーツに設定してやれば「特定のコンテンツ」「複数のコンテンツタイプ」
どちらも容易に実現できます。
ただ、難点、というか致命的な欠点は、MOSS標準のRSS Webパーツは、
ひとつのフィードしか設定できない上、そもそもMOSS自身のRSSフィードを表示できないことです(苦笑)
しかし、Codeplex でこんなWebパーツが提供されています。
SharePoint RSS Aggregator Web Part
http://rssaggregator.codeplex.com/
これ、使えませんかね?
saruhiko2009年7月8日 16:27