ダイナミックコンテンツ

ダイナミックコンテンツ

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

      ダイナミックコンテンツとは、ユーザーのアクションに基づいて変化する、固定されていないまたは静的でないウェブサイトのコンテンツのことを指します。ウェブサイトでダイナミックコンテンツを使用すると、ウェブサイトを毎回更新することなく、サードパーティのサービスからデータを表示することができます。

例えば、Zoho SitesとZoho Creatorのような2つの異なるアプリケーションを統合して、ウェブサイトでダイナミックコンテンツを表示することができます。

ウェブサイトにダイナミックコンテンツを挿入する手順 

  1. ウェブサイトビルダーの左上隅にある+アイコンをクリックします。



  1.  ドロップダウンからアプリを選択してください。



  1. オプションからダイナミックコンテンツを選択します。



  1. ドラッグアンドドロップダイナミックコンテンツを表示したい場所にドロップしてください。



  1. クリックEditをクリックします。そうすると、ダイナミックコンテンツリストページに移動します。そこで適切なダイナミックコンテンツを選択できます。





  1. 関連する動的コンテンツをクリックして、既存のコードを編集するか、カスタムのコードを作成してください。ビュー、関数、スタイルシートを編集することができます。

 


ダイナミックコンテンツを活用するために知っておくべきいくつかの重要な概念があります
  • HTML

  • CSS

  • JavaScript

  • Deluge Script - Zohoのスクリプト言語で、25以上のZohoアプリをリンクします

  • Face - Zoho Sites向けに設計されたテンプレート用の言語

 

ダイナミックコンテンツの4つの要素



1. 機能 - これらはDeluge関数であり、サードパーティのサービスとデータをやり取りします。これらは、2つの異なるアプリケーション間のインターフェースとして機能します。
詳細については、Delugeヘルプドキュメントを参照してください。また、Deluge関数の記述において実践的な経験を得るために、Delugeコンソールを訪れてください。

 

2. スタイルシート - スタイルシートはウェブページの外観を決定するために使用されます。このコンポーネントを使用すると、スタイルルールを定義することができます (CSS) を使用してDCを表示するためのルールです。これらのルールは 'style.css' ファイルに記述する必要があります。


3. JavaScript - JavaScriptは'main.js'ファイルに記述されます。コードがクロージャーモデルに従っていることを確認してください。詳細についてはこちらを参照してください

 

4. ビュー - ビューはFaceテンプレート言語で書かれます。動的なコンテンツは通常Face言語で書かれ、静的なコンテンツはHTMLの関数に基づいて表示されます。Face言語の詳細については こちらで詳しく学びましょう。

 

Zoho Creatorを統合して、ウェブサイト上でダイナミックなコンテンツを設定するためのサンプルコードをご紹介します。これを使用して、ダイナミックなコンテンツにさらなる機能を追加してください。

機能 

 

Zoho Creatorに保存されているレコードを取得するための 'fetchPartners' という関数があります:

//START

records = zoho.creator.getRecords('David','partners','Partner_View');
return records;

//END

//開始

records = zoho.creator.getRecords('David','partners','Partner_View');
return records;

//終了

説明:

Zoho Creatorからレコードを取得するために、DRE関数 'zoho.creator.getRecords'を使用しました。この関数は以下の引数で呼び出され、パートナー情報を含むレコードのリストを返します。

David - オーナー名です
partners - アプリケーションのリンク名です
Partner_View - レポートのリンク名です

以下は、'fetchPartnerDetails'という関数の別の例です。この関数は以下の引数で呼び出されます

//START
criteria = 'ID=='.concat(id);
records = zoho.creator.getRecords('David', 'partners', 'Partner_View', criteria);
record = records.get(0);
return record;
//END

criteria = 'ID=='.concat(id);
records = zoho.creator.getRecords('David', 'partners', 'Partner_View', criteria);
record = records.get(0);
return record;
//END

説明:

DRE関数を使用しました'zoho.creator.getRecords'  Zoho Creatorからレコードを取得するために、条件を引数として渡すことでレコードを取得します。この関数は、条件に一致するレコードを返します。この動的コンテンツ関数には、'id'という引数があり、それを使用してリストとしてレコードを取得します。

このリンクを参照して、統合作成に関する詳細情報をご覧ください。


ビュー

 

ダイナミックコンテンツの各インスタンスには、メインビューファイルがあり、利用可能なビューを読み込みます。

デフォルトでは、すべてのビューはキャッシュされます。ユーザーまたはリクエストに固有のビューの場合、キャッシュを無効にすることをお勧めします。キャッシュの有効化または無効化には、動的コンテンツの編集オプションをご覧ください。



この例では、メインページにすべてのパートナー名を表示します。名前が表示されたら、ユーザーは任意のパートナー名をクリックして詳細を表示できます。以下にその方法を見てみましょう。

 

表示: メイン

{% partners = functions.execute('fetchPartners') %}
<div>
  <center><h3>パートナー</h3></center>
</div>
<div dc-container='partner-area'>
  {% for partner in partners %}
  <div>
    <h2 style='cursor: pointer' dc-param-id='{{ partner.ID }}' dc-bind-click='true' dc-view='partner' dc-target='partner-area'>
      {{ partner.name }}
    </h2>
    <p>{{ partner.email }}</p>
  </div>
  {% endfor %}
</div>

説明:


「メイン」ビューでは、functions.execute() メソッドを使用して、DC関数'fetchPartners'を呼び出します。これにより、パートナーのリストが返されます。次に、それらをHTMLとしてレンダリングします。Dynamic Contentのビューでは、リクエストとレスポンスの処理に使用されるオブジェクトとメソッドが利用可能です。これらのオブジェクトとメソッドについては、まもなく説明します。

注:HTMLタグの「dc」属性は、別のビューに移動するために使用されます。

属性

説明

dc-container

DCビューを読み込むためのコンテナを定義します。値は英数字である必要があります。

ユニークである必要があります。

dc-bind-click

HTML要素のクリックイベントをバインドします。値は 'true' またはコールバック関数の名前である必要があります。

コールバック関数。

dc-view

HTML要素がクリックされたときのDCビュー名を定義します。dc-bind-click = 'true'の場合に必要です。

HTML要素がクリックされたときのDCビュー名を定義します。dc-bind-click = 'true'の場合に必要です。

dc-target

DCビューで定義されたコンテナを定義します。

値はdc-containerの1つである必要があります。

dc-param-<param-name-placeholder>

DCビューに送信する必要があるパラメータを定義します。複数の使用方法があり、すべてのdc-param属性がDCビューに送信されます。

例:dc-param-pid='123'は、DCビューで以下のようにアクセスできます

request_object.parameters.pid



 表示: パートナー

{% partner_id = request_object.parameters.id %}
{% partner_details = functions.execute('fetchPartnerDetails', partner_id) %}
<div>
  <h2>{{ partner_details.name }}</h2>
  <p>{{ partner_details.phone }}</p>
  <img alt='{{ partner_details.name }}' src='{{ partner_details.image }}' />
  <div style='cursor: pointer' dc-view='main' dc-target='partner-area'>
    戻る
  </div>
</div>
  

説明:


この「partner」というビューでは、functions.execute() メソッドを使用して、DC(Dynamic Content)関数の「fetchPartnerDetails」を呼び出します。この呼び出しは、「partner_id」と一致するパートナーを返します。それをHTMLとしてレンダリングします。


DCビュー関数


functions.execute(<function_name>) メソッドを使用すると、Dynamic Contentで作成した関数を実行できます。

例:
{% records = functions.execute('fetchPartners') %}
{% records = functions.execute('fetchPartners') %}
上記のスニペットは、fetchPartners DRE関数を実行し、戻り値を'records'変数に格納します。このレコード変数を使用して、ウェブサイト上にデータを表示するためのコードに追加してください。一部の関数にはパラメータがあります。以下のように、関数名の隣にそのパラメータ値を追加する必要があります。

 

例:

{% records = functions.execute('fetchPartners',param1,param2, ..) %}

{% records = functions.execute('fetchPartners',param1,param2, ..) %}

注:function_nameは必須であり、常に最初のパラメータである必要があります。

以下は、ダイナミックコンテンツビューで使用できるオブジェクトと関数です。


オブジェクト:ユーザー
ビューにキャッシュが有効になっている場合、ユーザーオブジェクトの値に基づくリクエストは機能しません。

プロパティ

説明

display_name

ログインユーザーの名前

email_address

ログインユーザーのメールアドレス

groups

ポータルグループに所属するユーザーの表示名リスト


{% if user %}
        {'表示名':'{{ user.display_name }}','メールアドレス':'{{ user.email_address }}'}
{% endif %}

オブジェクト:request_object
キャッシュがビューに有効になっている場合、request_objectの値に基づくリクエストは機能しません。

プロパティ

説明

ドメイン名

リクエストのドメイン部分

uri

リクエストのURIパスです

パラメーター

パラメーターのコレクション

ヘッダー

リクエストヘッダーのコレクション

クッキー

クッキーのコレクション


例:

{% partner_id = request_object.parameters.id %} 
{% partner_id = request_object.parameters.id %} 
機能:functions.execute


これは、動的コンテンツで関数を呼び出すために使用されます 

例:

{% assign variable_name = functions.execute('dc_function_name', param1, param2, ...) %}
{% assign variable_name = functions.execute('dc_function_name', param1, param2, ...) %}
注意: dc_function_nameは、Dynamic Contentアプリで作成された関数の名前です。

関数: response_object.setStatus

この関数は、ビューレスポンスのステータスコードを設定するために使用されます。
例:
{% response_object.setStatus(status_code) %} 
{% response_object.setStatus(status_code) %} 
注意:status_code - 有効なHTTPステータスコードである必要があります

関数:response_object.setCookies

この関数は、ビューレスポンスにクッキーを設定するために使用されます。

例:
{% response_object.setCookies(cookie_name, cookie_value, path, max_age) %}

 
JavaScript


標準のUIイベント処理を実行するために、組み込みのJavaScript関数を使用します。高度なUIイベント処理を実行する場合は、動的コンテンツのデフォルトを上書きします。

JavaScriptでは、mainビューがデフォルトでロードされます。main.jsのJavaScriptファイルにinit関数を記述することで、デフォルトの機能を上書きできます。

最初に、Dynamic Contentアプリはmain.jsファイルからinit関数を実行しようとします。それが存在しない場合、DCアプリはmainファイル(/view)に保存されたコンテンツをロードします。


init関数は2つのパラメータをサポートしています。最初のパラメータは動的コンテンツのルート要素である動的コンテンツコンテキストです。2番目のパラメータはクエリパラメータオブジェクトです。これらのパラメータは、ページのURLに含めるか、dc-param- <param-name-placeholder> 属性を追加することで渡されます。 要素に<div dc-param-id ='{{record.id}}' dc-bind-click = 'showPartner' style= 'cursor:pointer:'>をビューに追加します。

 


注意: ウェブサイトではJavaScriptファイルが動的にRequireJsを使用して読み込まれます。RequireJsを使用してください。書いているスクリプトはRequireJsのdefineモジュールに従う必要があります。RequireJs defineモジュールの詳細については、このリンクを参照してください。


以下はJavaScriptで利用可能なAPIメソッドです。


メソッド

説明

$DX.get

DCビューに対してHTTP GETリクエストを送信します。

引数としてリクエストオブジェクトを受け取ります。以下のテーブルを参照してください。

$DX.post

DCビューに対してHTTP POSTリクエストを送信します。引数としてリクエストオブジェクトを受け取ります。

以下のテーブルを参照してください。


リクエストオブジェクト

プロパティ

説明

URL

ビューのURL

params

JSONとしてビューに送信するパラメータ

オブジェクト

ハンドラー

成功したレスポンス時に、このコールバック関数が呼び出されます。

XMLHttpRequest が'this'参照として呼び出されます。

ヘッダー

リクエストヘッダーのコレクション

args

JSONオブジェクトとしてハンドラに送信される引数



 ここには、main.jsが 'init' 関数をオーバーライドし、ビューの読み込みを自身で処理する例があります

define(function() { function showPartner(options){ $DX.get({ url: '/dcapp/' + options.dc_name + '/partner', params: options.params, handler: function (){ options.target.innerHTML = this.responseText } }); } function init(context, params){ var dc_name = context.getAttribute('data-dc-name'); //ルートDC要素のdata-dc-name属性にはDC名が含まれています var dc_home_page = context.getAttribute('data-home-page') || 'main'; //data-dc-name属性にはデフォルトのビュー名が含まれています $DX.get({ url: '/dcapp/' + dc_name + '/' + dc_home_page ,// No I18N handler: function (){ context.innerHTML = this.responseText } }); } return { showPartner: showPartner, init: init } })


main.js から関数を呼び出す方法の例を以下に示します。
$DX.get({
url: '/dcapp/' + <dc_name> + '/functions/' + <dc_function_name >,
handler: function (){
      //関数getを処理するコード
}

このドキュメントは、Zoho Sitesの動的コンテンツ機能を理解するのに役立ちます。動的コンテンツ機能は、顧客の特定の要件に対応するためのさまざまな可能性を開拓します。さらなる説明が必要な場合は、いつでもお手伝いいたします。お問い合わせはsupport@zohosites.comまでお願いいたします。お問い合わせにはできるだけ早く対応いたします。ご質問にお答えいたします。






    Zoho CRM 管理者向けトレーニング

    「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。

    日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。

    Zoho CRM Training



              Zoho Desk Resources

              • Desk Community Learning Series


              • Digest


              • Functions


              • Meetups


              • Kbase


              • Resources


              • Glossary


              • Desk Marketplace


              • MVP Corner


              • Word of the Day









                                • Related Articles

                                • アプリ

                                  お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 サイトの広範な届けを得て、ユーザーからのフィードバックを受けるためにアプリを使用することができます。コメントボックス、ソーシャルシェア、Instagramフィード、ダイナミックコンテンツなどのウィジェットを埋め込んで、ユーザーと対話することができます。 アプリにアクセスするには ...
                                • 接続

                                  お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 Zoho Sitesの接続は、別のZohoサービスやサードパーティのサービスにアクセスしてデータを取得するために使用されます。接続は、ダイナミックコンテンツ機能に使用されます。 タイプ デフォルトの接続:既に利用可能なサービスのリストから選択し、認証情報を提供して接続を確立できます。 ...

                                Resources

                                Videos

                                Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                eBooks

                                Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                Webinars

                                Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                CRM Tips

                                Make the most of Zoho CRM with these useful tips.