Previous month:
2008年3 月
Next month:
2008年5 月

2008年4 月 からの 5 記事

検索ボックスのカスタマイズ (1)

先日実施した MOSS UI カスタマイズ のセミナーで検索ボックスのカスタマイズについてご質問がありました。セミナーのフォローアップを兼ね、どのようなカスタマイズが可能かをご紹介しておきます。

MOSS の検索ボックスのカスタマイズでは、マスターページ編集ではなく、フィーチャ定義ファイルを編集する必要があります。

編集すべきファイルは SharePoint ハイブ(%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\12) 内の TEMPLATE\FEATURES フォルダ内にあります。このフォルダ内の "OSearchBasicFeature" もしくは "OSearchEnhancedFeature" のどちらかのフォルダにある SearchArea.xml を編集します。ちなみに、OSearchBasicFeature フォルダは SharePoint Server 2007 Standard Edition 用、OSearchEnhancedFeature フォルダは SharePoint Server 2007 Enterprise Edition 用となっているようですので、ご利用になっている MOSS の Edition によって使い分けます。

SearchArea.xml には、検索ボックスで使用する画像ファイルや高度な検索リンクを表示するなどのさまざまなプロパティが定義できるようになっています。

このファイルを編集して、IISRESET を実行すると検索ボックスへの変更が反映されます。

*** "SearchArea.xml " の例 ************************************

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <Control
        Id="SmallSearchInputBox"
        Sequence="25"
        ControlClass="Microsoft.SharePoint.Portal.WebControls.SearchBoxEx"
ControlAssembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
<Property Name="GoImageUrl">/_layouts/images/gosearch.gif</Property>
<Property Name="GoImageUrlRTL">/_layouts/images/goRTL.gif</Property>
<Property Name="GoImageActiveUrl">/_layouts/images/gosearch.gif</Property>
<Property Name="GoImageActiveUrlRTL">/_layouts/images/goRTL.gif</Property>
<Property Name="UseSiteDefaults">true</Property>
<Property Name="FrameType">None</Property>
<Property Name="ShowAdvancedSearch">true</Property>
    </Control>   
</Elements>

********************************************************************

たとえば、ファイル内の "<Property Name="GoImageUrl">/_layouts/images/gosearch.gif</Property>" は検索ボックスに既定で表示されるアイコンを表示しています。

Property タグで設定できるプロパティの詳細については、次のサイトを参照してください。
http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.portal.webcontrols.searchboxex_members.aspx

ここでは、このうち主なプロパティをご紹介します。

「ドロップダウン ボックスの表示/非表示」

次のプロパティタグを追加します。
<Property Name="DropDownMode">表示方法</Property>

表示方法に "ShowDD" を指定するとドロップダウンボックスが表示されます。Searchbox01

"HideDD_useDefaultScope" を指定すると非表示になります。Searchbox02

「高度な検索リンクの表示/非表示」

<Property Name="ShowAdvancedSearch">true</Property> の true を false に変更すると「高度な検索」リンクは非表示になります。

Searchbox03

「表示幅を変更する」

表示幅の変更には次のようなプロパティがあります。

  • <Property Name="DropDownWidth">ドロップ ダウンの幅</Property>
  • <Property Name="TextBoxWidth">検索テキスト ボックス幅</Property>

注意点

と以上のようにご紹介してきましたが、OSearchBasicFeature や OSearchEnhancedFeature は今後のサービスパックもしくはアップグレード時に上書きされる可能性があります。そのため、最もよいソリューションはこうしたフィーチャ(機能)をカスタムで実装することです。また、SearchArea.xml を直接編集するとサーバーファーム全体へ影響してしまいますが、フィーチャとして実装することで、Web アプリケーション単位でのカスタム実装が可能となります。

カスタム フィーチャを実装するには、まずは単純にコピーして必要な部分の名称などを変更すればよいです。ただ気をつけなければならないのが、SearchArea.xml 内のSequence 番号です。WSS の検索機能は、MOSS Standard がインストールされていればその機能によって上書きされ、さらに MOSS Enterprise がある場合はその検索機能で上書きされていくというように上書きされていくのですが、その優先度を示すのが Sequence 番号となっているようです。既定では次のように指定されています。数が少ない方が優先されるようです。

  • 100 - WSS 3.0 (Features/ContentLightup/Controls/SearchArea.xml)
  • 50 - MOSS 2007 Standard (Features/OSearchBasicFeature/SearchArea.xml)
  • 25 - MOSS 2007 Enterprise (Features/OSearchEnhancedFeature/SearchArea.xml)

ですから、ご自分で作成したカスタムの設定を優先するには たとえば Enterprise Edition の場合は 25 よりも小さい数にする必要があります。

フィーチャについては、次のサイトが参考になります。
http://www.microsoft.com/japan/msdn/office/2007/cc263911.aspx

また、次のような研修もありますのでご参考まで。
http://www.crie-illuminate.jp/training/CI30-H.html

カスタム フィーチャの実装と検証

では、参考までに MOSS 2007 Enterprise Edition を例に、既定の設定を変更した検索ボックスが表示されるようカスタム フィーチャとして実装してみます。

  1. SharePoint ハイブ\TEMPLATE\FEATURESフォルダ内の "OSearchEnhancedFeature" フォルダをコピーして、"MyOSearchEnhancedFeature" という名前に変更します。
  2. MyOsearchEnhancedFeature フォルダ内の "Feature.xml" をメモ帳で開き、Feature 要素(タグ)内の Id 属性に新たな GUID を指定します。なお、新しい GUIDは、Visual Studio などで生成できます。続いて同じタグ内の Title 属性と Description 属性を任意のものに変更します。
    たとえば、出来上がったファイルは次のようになります。

    ****Feature.xml****************************
    <?xml version="1.0" encoding="utf-8" ?>
    <Feature  Id="52206C80-D48A-425a-86ED-C9EC4FF05114"
              Title="カスタム表示の検索ボックス"
              Description="既定の表示を変更した検索ボックスです"
              DefaultResourceFile="spscore"
              Version="12.0.0.0"
              Scope="WebApplication"
              xmlns="http://schemas.microsoft.com/sharepoint/">
        <ElementManifests>
            <ElementManifest Location="searcharea.xml"/>
            <ElementManifest Location="searchadminlinks.xml"/>
        </ElementManifests>
    </Feature>
    *********************************************
  3. Feature.xml ファイルを上書き保存します(既定では utf-8 で保存するようにします)。
  4. 今度は "SearchArea.xml" を編集します。Control 要素のSequence属性値を25より小さい値に変更し、その他必要なプロパティを設定します。
  5. 上書き保存します。
  6. 次の stsadm.exe を実行し、新しいフィーチャを登録します。

    stsadm.exe
    -o installfeature -filename MyOSearchEnhancedFeature\feature.xml -force
  7. 必要な Web アプリケーションで フィーチャを有効化します。

    stsadm.exe
    -o activatefeature -name MyOSearchEnhancedFeature -url http://moss2007/

    なお、フィーチャの有効化は次の GUI ベースの管理画面からも操作できます。
    →"SharePoint 3.0 サーバーの全体管理"- "アプリケーション構成の管理" - "Web アプリケーション機能の管理"

    Osearchcustomfeature

  8. iisreset.exe を実行し、IIS を再起動します。


参考
http://geeksconnected.com/muhanad/Lists/Posts/Post.aspx?ID=15
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2247186&SiteID=1


Windows Server 2008 上への SharePoint インストール

検証用に MSDN 版のWindows Server 2008 を用い、 MOSS をインストールしてみました。自分の備忘録のために Windows Server 2008 への展開に関する主だった情報をまとめておきます。

インストール手順の概要

構築環境

  • 1台のWindows Server 2008 上にファーム構成インストールで SQL Server 2005 Enterprise Edition および SharePoint Server 2007 Enterprise Edition を構築
  • なお、このマシンは検証環境であるため、ドメインコントローラを兼任させている

事前準備 1

  1. Windows Server 2008 Enterprise Edition without Hyper-V をインストール
  2. ドメインコントローラに昇格 (同時に DNS サーバーをインストール)
  3. SQL Server 2005 および SQL Server 2005 SP2 をインストール
    ※インストール後、SQL Server 2005 のセキュリティ構成でリモート接続ができるよう TCP/IP と名前付きパイプを有効化
  4. IIS 7.0 を追加インストールし、ASP.NET 、IIS 6.0 管理互換などの役割を追加
    ※サーバーマネージャにて構成
  5. .NET Framework 3.0 を追加
    ※サーバーマネージャにて構成

事前準備 2

SP1 適用済みのイメージのインストールポイントを作成

  1. インストールポイントとして利用するフォルダを作成 (例.C:\Kit\MOSS_Source)
  2. 1.のインストール ポイントに 製品版 MOSS のインストールファイルを一式コピー。このとき、インストールファイル内に "Updates" フォルダが含まれていることを確認する。ここに以下の手順で抽出する更新ファイルを格納する。
  3. WSS SP1 および MOSS SP1 (OfficeServer SP1)をダウンロード
  4. 次のコマンドを使用し、WSS SP1 から更新ファイルを抽出
    <※32bit環境の場合>
    wssv3sp1-kb936988-x86-fullfile-ja-jp.exe /extract:<Updatesフォルダのパス>
  5. 次のコマンドを使用し、MOSS SP1 から更新ファイルを抽出
    <※32bit環境の場合>
    officeserver2007sp1-kb936984-x86-fullfile-ja-jp /extract:<Updatesフォルダのパス>
    ※2008.4.11 修正しました
  6. 最後に Updates フォルダに "Svrsetup.dll" がコピーされていることを確認。また、"Wsssetup.dll" は削除しておく。

展開

上記の手順で作成したインストールポイントから setup.exe を実行。あとは、通常通りの MOSS のインストール手順となる。

なお、言語パックのSP1のインストール方法については、下記の「参考にした資料」内の "SharePoint Server 2007 SP1 インストール ソースの作成" 方法を参考にしてください。

参考にした資料

Windows SharePoint Services 3.0

Office SharePoint Server 2007

その他メモ

  • WSS 3.0 は Windows Server 2008 のサーバーの役割には含まれないため、を単体でインストールする場合は、WSS 3.0 SP1 同梱のインストールモジュールを Web からダウンロードする必要がある
  • SharePoint  Server 2007 の場合は、SP1 同梱のものを作成してから展開する必要がある
  • 以前と同様、単一サーバー(スタンドアロン構成) から ファーム構成への直接アップグレードはできない。


Windows Server 2008 上に構築した場合のトラブルシューティング情報などもも以下のサイトに掲載されているようです。

参考 :「Windows Server 2008 Resource Center for SharePoint Products and Technologies


IRM との連携

「ひと目でわかる SharePoint Server 2007」の書籍にも IRM の連携方法を記載していましたが補足しておきます。なかなか改訂のチャンスがなく、今更ながらとなってしまい申し訳ありません。

RMSサーバーを構築したあと、SharePoint 側で IRM を構成しようとしても "SharePoint サーバー名$\@ドメイン名がアクセス拒否されました"という旨のメッセージが表示されて構成ができないことがあります。

この場合は、 RMS管理サイトで提供される Web サービスのアプリケーションファイルである "ServerCertification.asmx" のNTFS アクセス許可を変更しておく必要があります。このファイルは通常 RMS管理サイトのホームディレクトリ配下の "_wmcs\Certification" フォルダ内にあります。

"ServerCertification.asmx" には次の 2つのメンバーに対して "読み取りと実行" アクセス許可を割り当てる必要があります。

  • SharePoint のサーバーアカウント
  • SharePoint サイトで利用している アプリケーションプールの識別IDアカウント

SharePoint とIRM 連携に関する資料は公開されていても、後者に挙げた「アプリケーションプールの識別IDアカウントへアクセス許可を付与する」ことが記載されていないため見落とししてしまいがちです。ご注意ください。

クライアント側で注意することがあるとすれば、利用するユーザーアカウントのプロパティに電子メール アドレスが設定されていない場合です。この場合、ファイルに対して IRM のアクセス制限を設定しようとする際に「予期しないエラーが発生しました。 後で再度送信するか、またはシステム管理者に連絡してください。」というメッセージが表示され IRM が設定できません。

なお、SharePoint と IRM 連携のアーキテクチャに関しては次の資料が詳しいです。ご参考まで。

http://msdn2.microsoft.com/ja-jp/library/ms439625.aspx


【参考】http://chrissyblanco.blogspot.com/2006/07/moss-and-rms-woes.html


VSeWSS v1.1 日本語版リリース!

Visual Studio 2005 extensions for Windows SharePoint Services (VSeWSS) の v 1.1 日本語版がようやくリリースされたようです!

MSDN フォーラムにマイクロソフト 小松さんが投稿されています。

[参考]
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3094999&SiteID=7

機能的には先行リリースされていた英語版と同様だということですが、それでもこれで日本語環境ですっきりと利用できそうですね。

VSeWSS 1.1 の主なアップデートは次の通りだそうです。

  1. 新しいプロジェクト/アイテムテンプレート
  2. Visual Basic対応
  3. Solution / Featureの編集機能
  4. 配置の高速化
  5. 各国語対応

[ダウンロード]
Windows SharePoint Services 3.0 ツール: Visual Studio 2005 Extensions Version 1.1:
http://www.microsoft.com/downloads/details.aspx?FamilyID=3E1DCCCD-1CCA-433A-BB4D-97B96BF7AB63&displaylang=ja


[MISC] お知らせ

私事ですが、独立のため 3/31 をもちましてクリエ・イルミネート社を退社いたしました(エイプリルフールではありませんので、念のため)。

これまで SharePoint 関連のセミナーを数多く開催するうちに、もう少し現場よりの仕事もこなしつつ、そのノウハウをまた教育コンテンツとして反映させていくことでより役立つ技術支援を行っていきたいという思いが強くなったことが大きな理由です。

5月ごろには法人格を取る予定でおります。夏ごろまでに1人社員が増えるかなといった程度でして、しばらくは一人会社です(それまでは一旦、個人事業主としてお仕事をしてまいります)

とはいえ、まだ具体的にどのように現場のお仕事に携わるのがよいのかは模索中でして、その辺はおいおい考えていこうと思います。

また、引き続きクリエ・イルミネート社とは協業させていただきますので、一部の定期コースやセミナーなどのコンテンツ開発や講師としての登壇は引き続き行う予定です。オープン参加可能なセミナーで登壇予定のものがあれば、こちらのブログでご案内させていただくようにしたいと思っております。

首尾よく、会社設立にこぎつけましたら、こちらのブログでもご案内させていただこうと思います。

この先、どうなるかわかりませんし、いろいろと困難なこともあるかと思いますが、皆様にご支援をいただけますと幸いです。

ブログともども今後とも引き続き、よろしくお願いいたします。