委任コントロールをカスタマイズする
この例では、サイトのページに表示される検索ボックス用の委任コントロール候補を作成して実装する基本プロセスを紹介します。このコントロールでは、コントロールをアクティブ化する Web サイトの検索ボックスに使用される代替テキストおよび代替イメージ ファイルを指定します。
検索ボックス アイコンおよび代替テキストを変更するには
既定の \FEATURES\ContentLightup フォルダを \Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES ディレクトリにコピーして、NewSearchBox という名前のフォルダを作成します。
NewSearchBox フォルダで、コピーした Feature.xml ファイルを開き、Local_Drive:\Program Files\Microsoft Visual Studio 8\Common7\Tools にある guidgen.exe を実行して Feature に新しい GUID を生成します。次に示すように、Scope 属性を Web に設定し、Feature が Web サイトレベルでアクティブ化されるようにします。
<?xml version="1.0" encoding="utf-8"?> <Feature Id="9E16894A-998F-4928-97B3-FCB35EAD1C49" Title="Standard User Interface Items" Description="Provides several standard user interface components and links" Version="12.0.0.0" Hidden="TRUE" DefaultResourceFile="core" Scope="Web" xmlns="https://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="controls\SearchArea.xml" /> </ElementManifests> </Feature>
ステップ 1 にある Controls サブフォルダ内の SearchArea.xml ファイルを変更し、代替の .ascx ファイルを参照するようにします。また、次に示すように、代替テキストと Sequence 値 (100 未満) を指定します。
<?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="https://schemas.microsoft.com/sharepoint/"> <Control Id="SmallSearchInputBox" Sequence="99" ControlSrc="~/_controltemplates/mySearchArea.ascx"> <Property Name="SearchTextToolTip">Enter text here</Property> <Property Name="SearchImageToolTip">Go!</Property> </Control> </Elements>
\TEMPLATE\CONTROLTEMPLATES で SearchArea.ascx ファイルをコピーして、コピーしたファイルの名前を mySearchArea.ascx に変更します。
コピーした .ascx ファイルの最後の方にある <img> タグの、src 属性の値を変更し、代替イメージ ファイルを参照するようにします。テスト用には、以下の例のように \TEMPLATE\IMAGES にインストールされている既定のイメージ ファイルのいずれかを使用できます。例では gosearch.gif を FOLDER.GIF に置き換えています。
<INPUT Type=TEXT id='idSearchString' size=25 style='vertical-align: 2' name='SearchString' display='inline' maxlength=255 ACCESSKEY=S class='ms-searchbox' onKeyDown="return SearchKeyDown(event, <%=strEncodedUrl%>);" title=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SearchTextToolTip),Response.Output);%>> <IMG SRC="/_layouts/images/blank.gif" width=4 height=1 alt=""> <a target='_self' href='javascript:' onClick="javascript:SubmitSearchRedirect(<%=strEncodedUrl%>);javascript:return false;" title=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SearchImageToolTip),Response.Output);%> ACCESSKEY=O ID=onetIDGoSearch> <img border='0' src="/_layouts/images/FOLDER.GIF" style='vertical-align: 1'alt=<%SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SearchImageToolTip),Response.Output);%>></a> </span> </nobr>
コマンド プロンプトでローカル ドライブの \Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN に移動し、展開に Feature をインストールするコマンド、指定したサブサイトで Feature をアクティブ化するコマンド、および Microsoft インターネット インフォメーション サービス (IIS) をリセットするコマンドを入力して、変更を適用します。
stsadm -o installfeature -filename NewSearchBox\Feature.xml stsadm -o activatefeature -filename NewSearchBox\Feature.xml -url https://Server/Site/Subsite iisreset
指定したサブサイトのホーム ページに移動し、検索ボックスに対する変更を確認します。