ブログ・フレックス・ファミリ階層やRSSフィードのURLなどデフォルトのブログ・コンポーネントをカスタマイズして、カスタム・ページをレンダリングできます。また、ブログ・ページを作成したり、コードを変更することもできます。
トピック:
必要に応じてブログ・フレックス・ファミリ階層を変更できます。属性をフィールドとしてブログ・アセット・フォームに表示する場合、必要なのは新規ブログ属性を作成し、その属性をブログ・アセット定義に追加することだけです。
注意:
ブログ・カテゴリとブログ・アセットの階層関係を参照するには、ツリー・タブを作成します。ツリー・タブを作成する手順は、『Oracle Fusion Middleware Oracle WebCenter Sitesの管理』のツリー・タブの作成に関する項を参照してください。
この項には次のトピックが含まれます:
ブログ・アセット・フォームに属性を追加するには、その属性をブログ・アセット定義に追加する必要があります。
ブログ・アセット定義に属性を追加するには:
一般管理者としてAdminインタフェースにログインし、Blogsコンポーネントが有効になっているサイトを選択します。
ブログ・アセット定義の「調査」フォームにアクセスします。
ボタン・バーで、「検索」をクリックします。
「検索」フォームで、ブログ・アセット定義の検索をクリックし、「検索」をクリックします。
「BlogAssetDef」を選択します。
「調査」フォームで、「編集」をクリックします。
「属性」フィールドで、「使用可能」リストから属性を選択し、「必須」ボタンまたは「オプション」ボタンを使用して属性を「選択済」リストに移動します。選択したボタンによって、ブログ・アセット・フォームでこの属性が必須またはオプションのいずれになるかが決定されます。
「保存」をクリックします。
選択した属性が、ブログ・アセット・フォームにフィールドとして含まれるようになります。ユーザーがブログ・アセットを作成するときに、新しい属性が必須またはオプションのフィールドとして表示されます。
ブログ・コンポーネントを別のCMサイトでも使用しますか。まず、そのサイトのブログ・ページを作成する必要があります。
Webサイトにブログ機能を追加するには:
コンテンツ管理サイトに、Webサイトでのブログ・アセットのレンダリングに使用されるページを作成します。
デフォルトのブログ・テンプレートおよびCSElementから、ご使用のサイトのテンプレートおよびCSElementにブログ・コードをコピーします。テンプレートおよびCSElementに挿入した後で、デフォルトのコードに加える必要のある変更内容は、サイトの設定方法によって決まります。
BlogsコンポーネントのSiteEntryアセットで指定されているblogsperpage
パラメータを、ご使用のサイトのSiteEntryアセットに追加します。
次のトピックを参照してください。
ブログ・ページを作成する前に、メイン・ブログ・ページ(BlogsコンポーネントではFW_RecentBlogs
ページ)、カテゴリ・ページなど、ページのタイプについて構想を練ります。また、ご使用のWebサイトのレイアウトに合致するブログ・ページを作成するため、サイトのグラフィック、ナビゲーション、機能を決定します。
ブログ・ページを作成するには:
Blogsコンポーネントは、サンプル・ブログ・ページをレンダリングするように構成されています。ただし、ほとんどの場合、ご使用のサイトのレイアウトはサンプル・ブログ・ページのレイアウトとは異なるでしょう。たとえば、サンプル・ブログ・ページでは右のナビゲーションを呼び出しますが、ご使用のサイトでは左のナビゲーションを呼び出す場合があります。テンプレートを初めからコーディングしてブログ機能を組み込むのではなく、サンプル・コードを再利用して自身のテンプレートやCSElementに挿入し、必要に応じてコードを再構成します。
注意:
サイトのレイアウトはサイトのラッパー・エレメントによってレンダリングされます。既存のページに加えて、ブログ・ページもラッパー・エレメントによってレンダリングされるようにするには、デフォルトのFW_Wrapper
エレメントからサイトのラッパー・エレメントに該当するブログ・コードをコピーします。
サイトのレイアウト・テンプレートにブログ・コードを追加するには:
一般管理者としてAdminインタフェースにログインします。
Blogsコンポーネントがインストールされているサイトを選択します。
FW_BlogLayout
テンプレートにアクセスします。
ボタン・バーで、「検索」をクリックします。
「検索」リストで、テンプレートの検索を選択します。
「検索」フィールドにFW_BlogLayout
と入力し、「検索」をクリックします。
「FW_BlogLayout」をクリックします。
レイアウト・テンプレートの「調査」フォームで、「編集」をクリックします。
Blogsコンポーネントのレイアウト・テンプレートから必要なコードをコピーし、自身のレイアウト・テンプレートに挿入します。
次の行は、ラッパーからサイトの説明を取得し、サイトをロードします。
<ics:if condition='<%=ics.GetVar("tid")!=null%>'> <ics:then> <render:logdep cid='<%=ics.GetVar("tid")%>' c="Template"/> </ics:then> </ics:if> <publication:load name='Publication' field="name" value='<%=ics.GetVar("site")%>'/> <publication:get name='Publication' field="id" output="spubid"/> <publication:get name='Publication' field="description" output="pubdesc"/>
次の行は、ページの本文を取得します。
String sContainerTName = "FW_BlogContainer";
次の行は、サイト、ページおよびアセットの説明をロードします。
String sTitle = ""; if (!"Page".equals(ics.GetVar("c"))) { %><asset:load name='t2' type='<%=ics.GetVar("c")%>' objectid='<%=ics.GetVar("cid")%>' /><% %><asset:get name='t2' field='name' output='t2Name' /><% %><asset:get name='t2' field='description' output='t2Desc' /><% sTitle += ": "+(Utilities.goodString(ics.GetVar("t2Desc")) ? ics.GetVar("t2Desc") : ics.GetVar("t2Name")); } else if (Utilities.goodString( ics.GetVar("p") )) { %><asset:load name='t1' type='Page' objectid='<%=ics.GetVar("p")%>' /><% %><asset:get name='t1' field='name' output='t1Name' /><% %><asset:get name='t1' field='description' output='t1Desc' /><% sTitle += ": "+(Utilities.goodString(ics.GetVar("t1Desc")) ? ics.GetVar("t1Desc") : ics.GetVar("t1Name")); }
次の行は、ブログ・レイアウト・テンプレートのスタイル・シートを呼び出します。このスタイル・シートは、サンプル・ブログ・ページのルック・アンド・フィールを定義します。サイトには独自のスタイル・シートが存在するため、Blogsコンポーネントのスタイル・シートから必要なパラメータをコピーして、独自のスタイル・シートに挿入します。Blogsコンポーネントのスタイル・シートと独自のスタイル・シートの間の競合を解決する必要があります。
<render:callelement elementname="FW_Blogs/CSS/blogsCSS/">
次の行は、「ブログのアーカイブ」ページの「詳細」リンクを取得するためのJavaScriptメソッドです。
<script type="text/javascript"> function getMoreBlogs(url) { var xhtReq = getXMLHttpRequest(); xhtReq.open(GET, url, true); xhtReq.onreadystatechange = function() { if(xhtReq.readyState==3) { document.getElementById('moreLink').innerHTML = ' <img src="<%=ics.GetSSVar("baseurl")%>images/wait_ax_tiny.gif/>'; } else if(xhtReq.readyState==4) { document.getElementById('archiveDiv').innerHTML = xhtReq.responseText; } }; xhtReq.send(null); } function getXMLHttpRequest() { try { return new XMLHttpRequest(); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {} alert("XMLHttpRequest not supported"); return null; } </script>
次の行は、メイン・ブログ・ページまたは指定されたアセットの本文を呼び出します。また、これらの行はブログ・サンプル・ページのヘッダーとフッターも呼び出します。サイトには独自のヘッダーとフッターが存在するため、サイトのブログ機能で必要なコードのみをコピーし、独自のヘッダーとフッターはそのまま残します。
<!--main start--> <div id="main"> <!--header start--> <%-- <div id="header"> <!--Call header from here--> </div> --%> <!--header end container start--> <div id="container"> <!--Body --> <%-- Call the container template for the current page subtype --%> <render:calltemplate tname='<%=sContainerTName%>' site='<%=sSite%>' tid='<%=ics.GetVar("tid")%>' slotname="BlogBodyContainer" c='<%=ics.GetVar("c")%>' cid='<%=ics.GetVar("cid")%>' ttype="Template"> <render:argument name=p value='<%=ics.GetVar("p")%>' /> <render:argument name=locale value='<%=ics.GetVar("locale")%>'/> <render:argument name=packedargs value='<%=ics.GetVar("packedargs")%>'/> <render:argument name=site value='<%=ics.GetVar("site")%>'/> <render:argument name=spubid value='<%=ics.GetVar("spubid")%>'/> <render:argument name=blogsperpage value='<%=ics.GetVar("blogsperpage")%>'/> </render:calltemplate> </div><!-- End of container --> </div><!-- End of main --> <!-- Footer --> <%-- <div id="footer"> <!--Call footer from here--> </div> --%> </body>
サイトのレイアウト・テンプレートに挿入したブログ・コードを要件にあわせて再構成します。
他のデフォルト・ブログ・テンプレートおよびCSElementのコードを調べ、該当するセクションを自身のテンプレートおよびCSElementにコピーします。
BlogsコンポーネントのSiteEntryアセットは、一度に1つのWebページ上に表示可能なブログ・アセットの数を指定できるblogsperpage
パラメータを指定します。このパラメータはユーザー専用サイトのSiteEntryアセットで指定できます。
注意:
ご使用のサイトのSiteEntryアセットにblogsperpage
パラメータを指定しない場合、1ページ当たりのブログ数としてデフォルトの10が使用されます。
カスタムのSiteEntryアセットにblogsperpageパラメータを追加するには:
一般管理者としてAdminインタフェースにログインします。
ブログ機能を追加するサイトを選択します。
ボタン・バーで「検索」をクリックし、サイトのSiteEntryアセットを検索します。
「検索」フォームで、SiteEntryの検索をクリックします。
「検索」をクリックします。
サイトのSiteEntryアセットを選択します。
SiteEntryアセットの「調査」フォームで、「編集」をクリックします。
「ページレット・パラメータ」フィールドで、次の項目を追加します。
名前: blogsperpage
と入力します。
値: ページに一度に表示可能なブログの数を入力します。
「保存」をクリックします。
サンプル・ブログ・ページの右側のナビゲーション・パネルには、RSSフィードのリンクが含まれています。訪問者がRSSフィードのリンクをクリックすると、サンプル・ブログ・ページで公開されているブログ・アセットのタイトルとサマリーの最新のリストがレンダリングされます。訪問者がブログのタイトルをクリックすると、選択されたブログのコンテンツ全体がレンダリングされます。RSSフィードに含まれるブログ・アセットの外部URLは、GetExternalURL
CSElementによって作成されます。
デフォルトでは、このエレメントはローカルのWebCenter SitesのURLを作成します。
http://<host name>:<port number>/<application context>/<path to file>
<host name>
は、RSSフィードのアセットにアクセス可能なWebCenter Sitesインストールのホスト名です。<port number>
は、WebCenter Sitesアプリケーションのポート番号です。<application context>
は、Blogsコンポーネントが実行されているWebCenter Sitesアプリケーションのコンテキストです。
ご使用のサイトの外部URLでRSSフィードを使用するには、GetExternalURL
エレメントのURL文字列を変更し、次の表にリストされているパラメータをfuturetense_xcel.ini
ファイルに追加して、ホスト情報およびサイトのコンテキストの値を設定する必要があります。GetExternalURL
エレメントは、futuretense_xcel.ini
ファイルからこれらのパラメータを読み取ることで、サイトのRSSフィードにリストされているブログ・アセットの外部URLを作成します。
表52-1 GetExternalURLエレメントが外部URLを作成する際に読み取るパラメータ
パラメータ | 説明 |
---|---|
|
URL命名構造の最上位レベルを指定します。たとえば、 |
|
RSSフィードのアセットにアクセス可能なWebCenter Sitesインストールのホスト名を指定します。 |
|
WebCenter Sitesアプリケーションのポート番号を指定します。 |
|
Blogsコンポーネントが実行されているWebCenter Sitesインストールのコンテキストを指定します。 |