コンテンツ クエリ Web パーツ (5.表示部分を整える)
コンテンツ クエリ Web パーツ (7.任意の列で並び替える)

コンテンツ クエリ Web パーツ (6.リンク機能を修正する)

コンテンツクエリ Web パーツを使用してサブサイトのアイテムを取得する場合、ルートのサイトコレクションが作成されていないとリンク機能が正しく動作しません。このことは以前の記事でもご紹介しました。

【参考: コンテンツ クエリ Web パーツのエラー

しかし、ルートのサイトコレクションを作成しなくてもリンク機能を有効にすることも可能です。ひとつの解決策として、その方法をご紹介しておきます。

解決策

そもそも問題となる固定のリンクの情報は、ContentQueryMain.xsl に記載されています。ここにはリンク先のアイテムにリダイレクトしてくれるはずの"CopyUtil.aspx" のURL が "/_layouts/CopyUtil.aspx" とハードコードされています。これをサイトのURLに合わせて編集してやれば、この場合の問題は解決します。

なお SharePoint Designer 2007 を使用するのがミソです。SharePoint Designer 2007 使用してこのファイルを編集することで、サイトごとに独自の編集が可能となります。

修正方法

  1. SharePoint Designer 2007 を起動し、コンテンツ クエリ Web パーツを追加したサイトを開きます。
  2. [フォルダ一覧] - [Style Library (スタイル ライブラリ)] - [XSL Style Sheets] を展開し、ContentQueryMain.xsl を右クリックしチェックアウトします。
  3. ContentQueryMain.xsl をダブルクリックします。
  4. 次のタグを見つけます。

    <xsl:value-of select="concat('/_layouts/CopyUtil.aspx?
    Use=id&amp;Action=dispform&amp;ItemId=',@ID,'
    &amp;ListId=',@ListId,'&amp;WebId=',@WebId,'
    &amp;SiteId=',$SiteId)"/>

  5. "/_layouts/CopyUtil.aspx" の部分をサイトのURLに応じて編集します。たとえば、私の環境では次のように編集しました。

    <xsl:value-of select="concat('/sites/top/_layouts/CopyUtil.aspx?
    Use=id&amp;Action=dispform&amp;ItemId=',@ID,'
    &amp;ListId=',@ListId,'&amp;WebId=',@WebId,'
    &amp;SiteId=',$SiteId)"/>

  6. 上書き保存し、マイナーバージョンとしてチェックインしておきます。

コメント

コメントの確認

コメントのプレビュー

プレビュー中です。コメントはまだ投稿されていません。

処理中...
コメントを投稿できませんでした。エラー:
コメントを投稿しました。コメントは記事の投稿者が承認してから表示されます。 さらにコメントを投稿する

入力された文字と数字は画像と一致していません。再度入力してください。

最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。

画像を読み取れない場合は 別の画像を表示してください。

処理中...

コメントを投稿

コメントは記事の投稿者が承認してから表示されます。

アカウント情報

(名前とメールアドレスは必須です。メールアドレスは公開されません。)