*こちらの記事は、Yuan Yuan Dengさんの協力の下に作成しました。
Oracle Content Management(OCM)とは
製品の詳細はこちらを参照ください
目次
3. Starter Template を利用した新規サイトの作成
5. 既存サイトのソースコードをOCMテーマのフォルダ構造にあわせて登録する
はじめに
*この記事は個人のブログであり、製品として全ての動作が保証されているわけではありません
このチュートリアルは、既存のサイトからOracle Content Management (OCM)のエンタープライズ・サイトを作成する手順をステップ・バイ・ステップで説明します。エンタープライズ・サイトを作成する場合、アセットおよび多言語サイト機能を利用できます。
この記事は、多言語サイトの作り方も同時に説明しています。
新規、または既存のCMSをOCMに置き換えてみませんか?
前提条件/事前準備
-
Oracle Content Management (OCM)のバージョンは 23.7.1 で作成しています
-
OCMユーザー権限を有すること。具体的には、次のロールが付与されていること
-CECContentAdministrator
-CECDeveloperUser
-CECEnterpriseUser
-CECRepositoryAdministrator
-CECServiceAdministrator -
OCMインスタンスは、OCMユーザーロールでテーマやサイトの作成ができるように設定されていること。詳細は、下記スクリーンショットを参照ください。
-
OCM 管理者により、デフォルト・テンプレートがインスタンスにインストールされ、全てのデフォルト・テンプレートがユーザーに共有されていること。このチュートリアルでは、StarterTemplateを利用します。
既存サイトのソースコードの取得
既存サイトのソースコードの取得
移行したいWebサイトからソースコードを取得します。
このガイドでは、例としてBootstrap theme Clean Blogのソースコードを使用します。次のページをアクセスし、「Free Download」をクリックし、ソースコードを取得します。
https://startbootstrap.com/theme/clean-blog/
ダウンロードしたstartbootstrap-clean-blog-gh-pages.zipを、任意のフォルダに解凍します。
または、次のURLからソースコードを入手できます。(サイトのソースコードはstartbootstrap-clean-blog-6.0.9/distにあります。)
https://github.com/StartBootstrap/startbootstrap-clean-blog/archive/refs/tags/v6.0.9.zip
このガイドでは、既存サイトの二つのページ、ホームページ(Blog一覧ページ)、Blog詳細ページの移行を例として説明します。
リポジトリ、ローカリゼーション・ポリシーの作成
エンタープライズ・サイトを作成する前に、リポジトリを作成する必要があります。リポジトリを使用すると、必要なすべてのアセットを1箇所で管理できます。
またリポジトリのローカリゼーション・ポリシーを指定できます。ローカリゼーション・ポリシーでは、翻訳の必須の設定、必要に応じて、アセットの必須言語および使用されるオプションの言語が定義されます。
リポジトリの作成
ここでは、デジタル・アセットを管理するためのリポジトリを作成します。
-
Webブラウザを起動し、OCMにログインします。
-
左サイト・ナビゲーションから「ADMINISTRATION」の下の「コンテンツ」をクリックし、コンテンツの管理画面に切り替えます。プルダウンリストは自動的に「リポジトリ」が選択されます。右上の「作成」ボタンをクリックします。
-
「アセット・リポジトリ」を選択します。
4. 名前とデフォルト言語を指定します。ここでは、名前にDemo Repositoryを入力し、アセット・タイプにImageを選択し、デフォルト言語を英語(en)に設定し、「保存」をクリックします。
5. リポジトリが作成されていることを確認します。
ローカリゼーション・ポリシーの作成
このチュートリアルでは、作成するサイトを多言語(英語と日本語)で作成します。ここでは、アセットの必須言語および使用されるオプションの言語が定義されるローカリゼーション・ポリシーを作成します。
-
リポジトリの作成と同じ画面で、上のプルダウンリストから「ローカリゼーション・ポリシー」を選択し、「作成」をクリックします。
-
名前と言語を指定します。ここでは、名前にDemoPolicyと、必須言語は英語(en)、日本語(ja)とします。「保存」をクリックします。
Starter Template を利用した新規サイトの作成
ここでは、StarterTemplateを利用して新しいサイトを作成します。
新しいサイトの作成
-
リポジトリは先ほど作成したDemo Repositoryを選択し、ローカリゼーション・ポリシーは先ほど作成したDemoPolicyを選択します。デフォルト言語は英語(en) とします。「次」をクリックします。
-
名前をDemoSiteとし、サイトの接頭辞は自動的に生成されます。「終了」をクリックします。
1つのOCMインスタンスで、サイトの名前はユニークにする必要があります。名前が重複するサイトを作成すると、エラーとなり作成に失敗します。
-
DemoSiteThemeテーマが作成されていることを確認します。
StarterTemplateを利用してサイトを作成すると、新しいサイト(DemoSite)と、新しいサイトのテーマ(DemoSiteTheme)が作成されます。 なお、通常のテンプレートの場合、新しいサイトのみが作成され、新しいテーマは作成されません。新しいサイトは、テンプレートに含まれるテーマを参照する形になります。
テーマをデスクトップに同期
テーマを設定すると、サイト内のページ間に統一感がもたらされます。テーマには、サイトのコンテンツ、外観、および動作を設計するために使用されるページ・レイアウトが含まれています。ページ・レイアウトを編集するには、作成された新しいテーマを、同期マネージャを利用してデスクトップに同期します。
DemoSiteTheme テーマをデスクトップに同期する
-
ローカルPC上の同期マネージャを開き、「オプション」アイコンをクリックし、「プリファレンス」でサイト・アセットの同期を有効化にチェックを入れます。
-
ローカルPC上の同期マネージャを開き、「オプション」アイコンをクリックし、「クラウドから同期化するフォルダの選択」をクリックして、事前に登録したアカウントを選択します。
【確認】DemoSiteThemeのフォルダ構造を確認する
DemoSiteThemeのフォルダ構造を確認します。OCMのテーマには、CSS、JS、その他の静的ファイルを含む「assets」フォルダがあります。また、テーマで使用されるページレイアウトを含むフォルダ「layouts」フォルダがあります。
- assets: JavaScript、CSS、イメージ、およびレイアウトで参照されるその他のサポート・ファイル。
- designs: design.cssおよびdesign.jsonファイル。これらは、コンポーネントのスタイル・オプションを指定するために使用されます。
- layouts: ページ・テンプレートのためのHTMLファイル。これらは、サイトのページを表示するために使用されます。
※注意: すべてのHTMLファイルは、このように見えるファイルの先頭にDOCTYPE要素を持つ必要があります: <!DOCTYPE html> - publish: 公開されたサイト内でテーマが使用されると、このディレクトリがリストされ、このディレクトリにファイルのコピーが含まれます。
- responsepages: エラー(404)を処理するための特別なページ。
※注意: サイト内のページに「エラー・ページ」のフラグが付けられている場合、テーマからの404エラー・メッセージは無視され、指定された「エラー・ページ」がかわりに使用されます。 - viewport.json: テーマの「ビューポート」設定を指定します。
- components.json: テーマ内で使用される、カスタム・コンポーネントを記録します。
- _folder_icon.png:管理UI上でテーマをサムネイル表示するときの画像。
既存サイトのソースコードをOCMテーマのフォルダ構造にあわせて登録する
既存サイトのソースコードの構造は、OCMテーマのフォルダ構造と異なる可能性があります。ここでは、既存サイトのソースコードをOCMテーマのフォルダ構造にあわせて登録します。
DemoSiteThemeフォルダ構造の変換
-
<Bootstrap theme Clean Blog の解凍フォルダ>の中のHTMLファイルを、DemoSiteTheme/layoutsフォルダにコピーします。ここでは、次のファイルをDemoSiteTheme/layoutsフォルダにコピーします。ファイルが既に存在する場合、置き換えます。
・about.html
・contact.html
・index.html
・post.html
-
<Bootstrap theme Clean Blog の解凍フォルダ>の中のCSSファイルを、DemoSiteTheme/assets/cssフォルダにコピーします。ここでは、<styles.css >を、DemoSiteTheme/assets/cssフォルダにコピーします。ファイルが既に存在する場合、置き換えます。
-
<Bootstrap theme Clean Blog の解凍フォルダ>の中のJavaScriptファイルをDemoSiteTheme/assets/jsフォルダにコピーします。
・scripts.js
-
<Bootstrap theme Clean Blog の解凍フォルダ>/assetsの中の画像ファイルを、DemoSiteTheme/assets/imgフォルダにコピーします。
-
DemoSiteTheme/layouts/index.htmlをテキストエディタで開きます。cssファイル、jsファイル、画像ファイルのパスを、変換先のフォルダ階層にあわせて更新します。例えば、
<変更前><!-- Core theme CSS (includes Bootstrap)--> <link href="css/styles.css" rel="stylesheet" />
<変更後>
<!-- Core theme CSS (includes Bootstrap)--> <link href="../assets/css/styles.css" rel="stylesheet" />
<変更前>
<!-- Core theme JS--> <script src="js/scripts.js"></script>
<変更後>
<!-- Core theme JS--> <script src="../assets/js/scripts.js"></script>
<変更前>
<!-- Page Header --> <header class="masthead" style="background-image: url('assets/img/home-bg.jpg')">
<変更後>
<!-- Page Header --> <header class="masthead" style="background-image: url('../assets/img/home-bg.jpg')">
-
DemoSiteTheme/layouts/index.htmlをブラウザで開きます。正しくレンダリングされることを確認します。
-
同じ手順で、DemoSiteTheme/layouts/post.htmlをテキストエディタで開きます。cssファイル、jsファイル、画像ファイルのパスを、変換先のフォルダ階層にあわせて更新します。
レイアウトファイルの構造をOCM Themeに変更
ここでは、OCMのThemeのフォルダ構造を使用するように変更された「DemoSiteTheme」テーマのレイアウトファイルの構造もOCM Themeの構造に変更します。
レイアウトファイルのパスをOCM Themeのルートパスに変更
-
スタイルシートのURLに_scs_theme_root_を追加します。
<変更前><!-- Core theme CSS (includes Bootstrap)--> <link href="../assets/css/styles.css" rel="stylesheet" />
<変更後>
<!-- Core theme CSS (includes Bootstrap)--> <link href="_scs_theme_root_/assets/css/styles.css" rel="stylesheet" />
-
jsのURLに_scs_theme_root_を追加し、JQueryライブラリを追加します。
<変更前>
<!-- Core theme JS--> <script src="../assets/js/scripts.js"></script>
<変更後>
<!-- Core theme JS--> <script type="text/javascript" src="_scs_theme_root_/assets/plugins/jquery.min.js"></script> <script src="_scs_theme_root_/assets/js/scripts.js"></script>
-
imageのURLに _scs_theme_root_ を追加します。
<変更前><!-- Page Header --> <header class="masthead" style="background-image: url('../assets/img/home-bg.jpg')">
<変更後>
<!-- Page Header --> <header class="masthead" style="background-image: url('_scs_theme_root_/assets/img/home-bg.jpg')">
”_scs_theme_root_”はOCMのThemeが使用されている環境にあわせて、自動的に変換されます。今回の場合、
“_scs_theme_root_” → “_themes/DemoSiteTheme”
と変換されます。 -
同じ手順で、DemoSiteTheme/layouts/post.htmlをテキストエディタで開きます。cssファイル、jsファイル、画像ファイルのURLに _scs_theme_root_を追加します。
-
コピーしたファイル、フォルダがOCM上に同期されるのを待ちます。
レイアウトファイルに事前定義済タグを追加する
-
<head>タグ直下に、下記の様にコードを追加します。
<変更前>
<head>
<変更後>
<head> <!-- Avoid FOUC issue in FF with async loading of style sheets --> <style> body { opacity: 0; }</style>
-
</head>タグの直前に、下記の様にコードを追加します。
<変更前>
</head>
<変更後>
<!-- Custom styles for this template --> <link rel="stylesheet" type="text/css" href="_scs_theme_root_/designs/_scs_design_name_/design.css"> <!--$SCS_RENDER_INFO--> <!--$SCS_SITE_HEADER--> <!--$SCS_PAGE_HEADER--> </head>
-
</body>タグの直前に、下記の様にコードを追加します。
<変更前>
</body>
<変更後>
<script data-main="/_sitescloud/renderer/renderer.js" src="/_sitescloud/renderer/require.js"></script> <!--$SCS_PAGE_FOOTER--> <!--$SCS_SITE_FOOTER--> <!-- Avoid FOUC issue in FF with async loading of style sheets --> <style> body { opacity: 1; }</style> </body>
-
DemoSiteTheme/layouts/index.html ファイルを保存します。同じ手順で、DemoSiteTheme/layouts/post.htmlを編集します。DemoSiteTheme/layouts/about.htmlファイル、DemoSiteTheme/layouts/contact.htmlファイルはこのガイドで使用されないため削除します。編集したファイルがOCM上に同期されるのを待ちます。
※コードの動作説明
-
[!--$SCS_THEME_NAME--]
サイトのために現在選択されたテーマの名前に置き換えます。このトークンを含むURLが現在のテーマを参照するので、テーマがコピーされるのを許可します。 -
[!--$SCS_DESIGN_NAME--]
サイトのために現在選択されたデザインの名前に置き換えます。レイアウトをテーマの中で複数デザインとして利用されることを許可します。 -
<script data-main="/_sitescloud/renderer/renderer.js" src="/_sitescloud/renderer/require.js"></script>
SCS のレンダリングコードをロードするスクリプトタグ。ページエディタを起動するためには、このタグを含む必要があります。 -
<!--$SCS_RENDER_INFO-->
ページ階層やコンポーネントレンダリングの情報を含むスクリプトタグ。レイアウトページの<head>セクション内に配置します。 -
<!--$SCS_SITE_HEADER-->
編集画面の設定→SEOプロパティ→「ヘッダー」で入力された情報を読み込むスクリプトタグ。レイアウトページの<head>セクション内に配置します。 -
<!--$SCS_PAGE_HEADER-->
編集画面の各ページ毎の設定→「ページ・ヘッダー」で入力された情報を読み込むスクリプトタグ。レイアウトページの<head>セクション内に配置します。 -
<!--$SCS_SITE_FOOTER-->
編集画面の設定→SEOプロパティ→「フッター」で入力された情報を読み込むスクリプトタグ。レイアウトページの<body>セクションの最後に配置します。 -
<!--$SCS_PAGE_FOOTER-->
編集画面の各ページ毎の設定→ 「ページ・フッター」で入力された情報を読み込むスクリプトタグ。レイアウトページの<body>セクションの最後に配置します。 - サイトが配信(オンライン)になると、下記トークンに置き換えられます
/_themes/ ⇒ /_themesdelivery/
/_sitescloud/ ⇒ /_sitesclouddelivery/