ダイナミックコンテンツ

ダイナミックコンテンツ

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

Dynamic content とは、Webサイト上で固定されていない、ユーザーの操作に応じて変化するコンテンツを指します。dynamic content を利用することで、Webサイトを毎回更新せずに、サードパーティサービスからのデータを表示できます。

例えば、Zoho SitesとZoho Creatorのような異なる2つのアプリケーションを連携させて、Webサイト上にdynamic contentを表示することが可能です。

Webサイトにdynamic contentを挿入する手順 

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



  1.  ドロップダウンからAppをクリックします。


  1. 設定からDynamic Contentを選択します。

     


  1. 「Dynamic Content」をドラッグ&ドロップし、表示したい場所に配置します。Dynamic Content 名前を入力してください。



  1. 「編集」をクリックします。「Dynamic Content Listing」ページに移動し、該当するダイナミックコンテンツを選択できます。





  1. 該当するダイナミックコンテンツをクリックすると、既存コードの編集やカスタムコードの作成が可能です。ビュー、関数、スタイルシートの編集もできます。

       
 

ダイナミックコンテンツを活用するために知っておくべき重要なコンセプトがいくつかあります。
  1. HTML
  2. CSS
  3. JavaScript
  4. Deluge Script - Zohoのスクリプト言語で、25以上のZohoアプリを連携します
  5. Face - Zoho Sites向けにデザインされたテンプレート用の言語

 

動的コンテンツの4つの要素:



1. 関数 - Deluge関数は、サードパーティサービスと連携してデータを取得します。異なるアプリケーション間のインターフェースとして機能します。
詳細はDeluge ヘルプドキュメントをご参照ください。また、Delugeコンソールにアクセスし、Deluge関数の実装を体験できます。

 

2. スタイルシート - スタイルシートは、Webページの外観やデザインを決定します。このコンポーネントを使用することで、DC表示用のスタイルルール(CSS)を定義できます。これらのルールはstyle.cssファイルで作成してください。


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

 

4. Views-ViewsはFaceテンプレート言語で作成します。動的コンテンツは通常Face言語で記述し、静的コンテンツはHTMLの関数に基づいて表示されます。Face言語の詳細についてはこちらをご覧ください。

 

以下は、Zoho Creatorと連携してWebサイト上に動的コンテンツを設定するサンプルコードです。これを利用して、動的コンテンツに他の機能を追加できます。

FUNCTIONS 

関数は、タスクを実行するコードの行です。再利用可能であるため効率的です。実行するタスクによって値を返す場合と返さない場合があります。

関数を使用すると、DRE(Dynamic Runtime Environment)のinvokeUrlメソッドを利用して、Zohoおよび外部サービスへアクセスできます。

 

'fetchPartners'という関数は、Zoho Creatorに保存されているデータを取得します。

データ = Zoho.creator。getRecords('David','partners','Partner_View');
返品する データ;

説明:

DRE機能 'Zoho.creator。getRecords'を使用して、Zoho Creatorからデータを取得しています。この関数は下記の引数で呼び出され、パートナー情報を含むデータのリストを返します。

David - 担当者名
partners - アプリケーションのリンク名
Partner_View - レポートのリンク名

次に、'fetchPartnerDetails' という関数の別の例を紹介します。この関数は以下の引数で呼び出されます。
criteria = 'ID=='.concat(id);
データ = Zoho.creator。getRecords('David', 'partners', 'Partner_View', criteria);
データ = データ.取得する(+10、-10);
返品する データ;

説明:
データの取得元としてZoho Creatorを利用する際、DRE関数「Zoho.creator。getRecords」に条件を引数として指定します。この関数は、指定した条件に一致するデータを返します。この動的コンテンツ関数には「id」という引数があり、そのidを利用してデータをリストとして取得します。

このリンクを参照して、関数を利用した連携の作成方法など、詳細情報をご確認ください。

     

ビュー

 

各動的コンテンツのインスタンスにはメイン表示ファイルがあり、利用可能なビューが読み込まれます。

すべてのビューは初期設定でキャッシュされます。ビューがユーザーやリクエストごとに異なる場合は、キャッシュを無効にすることを推奨します。動的コンテンツの編集オプションにて、キャッシュの有効化・無効化を設定してください。



この例では、メインページにすべてのパートナー名を表示します。各パートナー名が表示された後、ユーザーは任意のパートナー名をクリックして、その詳細情報を確認できます。それでは、どのように動作するかを見てみましょう。

 

表示: main

{% partners = functions.実行する('fetchPartners') %} <div>       <center><h3>パートナーh3>center> div> <divdc-container='パートナー-地域'>       {% for パートナー in partners %}       <div>         <h2 style='cursor: pointer'dc-param-id='{{ パートナー.ID }}'dc-bind-クリック='真'
            dc-表示する='パートナー'dc-target='パートナー-地域'>             {{ パートナー.名前 }}         h2>       <p>{{ パートナー.メール }}p>       div>     {% endfor %} div>

説明:

「main」表示するでは、DC関数'fetchPartners'をfunctions.実行する()メソッドで呼び出しています。これにより、パートナーの一覧が返されます。その後、HTMLとしてレンダリングします。Dynamic Contentの表示するは、リクエストやレスポンスを処理するためのオブジェクトやメソッドを利用可能にします。これらのオブジェクトやメソッドについては、次に詳しく説明します。

メモ: 'dc'属性は、HTMLタグ上で他の表示するに遷移するために使用されています。

属性

説明

dc-container

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

dc-bind-クリック

HTML要素にクリックイベントをバインドします。値は「真」またはコールバック関数の名前のいずれかを指定します。

dc-表示する

HTML要素がクリックされたときに表示するDCの名前を定義します。dc-bind-クリックが「真」の場合は必須です。

dc-target

dc-表示するで定義したDC表示するを読み込むコンテナを指定します。値はdc-containerのいずれかを指定してください。

dc-param-

DC 表示するに送信するパラメーターを定義します。複数指定が可能で、指定したdc-param属性はすべてDC表示するに送信されます。

例:dc-param-pid='123'は、DC表示する内でrequest_object.パラメーター.pidとして参照できます。



 表示する: パートナー

{% partner_id = request_object.パラメーター.id %} {% partner_details = functions.実行する('fetchPartnerDetails', partner_id) %} <div>
      <h2>{{ partner_details.名前 }}h2>     <p>{{ partner_details.電話番号 }}p>       <img alt='{{ partner_details.名前 }}' src='{{ partner_details.画像 }}'/>     <div style='cursor: pointer'dc-表示する='main'dc-target='パートナー-地域'>戻る div> div>

説明:

この表示する「パートナー」では、DC 関数「fetchPartnerDetails」を functions.実行する() メソッドで呼び出しています。この呼び出しは「partner_id」と一致するパートナーを返します。その後、HTML として表示します。


DC 関数の表示


Dynamic Content で作成した関数は、支払明細 functions.実行する( ) メソッドを利用して実行できます。

例:
{% データ = functions.実行する('fetchPartners') %}
上記のスニペットはfetchPartners DRE関数を実行し、返品する値を「データ」変数にストアします。このデータ変数をコード内で使用し、Webサイト上にデータを表示します。一部の関数にはパラメーターがあります。パラメーター値は、以下のように関数名の後に追加する必要があります。

 

例:

{% データ = functions.実行する('fetchPartners',param1,param2, ..) %}
メモ: function_nameは必須で、常に最初のパラメーターである必要があります。

下記は、ダイナミックコンテンツ表示で利用可能なオブジェクトと関数です。

Object: ユーザー

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

プロパティ

説明

display_name

ログイン中のユーザーの名前

email_address

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

groups

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


:

{% if ユーザー %}       {'display_name':'{{ ユーザー.display_name }}','email_address':'{{ ユーザー.email_address }}'}. {% endif %}

オブジェクト: request_object

request_objectの値に基づくリクエストは、表示対象でキャッシュが有効な場合は動作しません。

プロパティ

説明

domain_name

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

uri

リクエストのURIパス

パラメーター

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

ヘッダー

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

cookies

cookiesのコレクション

例:

{% partner_id = request_object.パラメーター.id %}

Function: functions.実行する

これは、ダイナミックコンテンツで関数を呼び出す際に使用します。

例:

{% assign variable_name = functions.実行する('dc_function_name', param1, param2, ...)%}.
メモ: dc_function_nameは、Dynamic Contentアプリで作成した関数の名前です。

Function: response_object。setStatus
この関数は、表示するレスポンスのステータスコードを設定する際に使用します。
例:
{% response_object。setStatus(status_code) %}
メモ: status_code - 有効なHTTPステータスコードを指定してください。

Function: response_object。setCookies
この関数は、表示するレスポンスにCookieを設定する際に使用します。
例:
{% response_object。setCookies(cookie_name, cookie_value, path, max_age) %}

 
JAVASCRIPT


組み込みのJavaScript関数を使用して、スタンダードUIのイベント処理を実行します。詳細なUIイベント処理を行いたい場合は、動的コンテンツのデフォルト設定を上書きしてください。

JavaScriptでは、main表示が初期設定で読み込まれます。初期設定の機能は、main.jsファイルにinit関数を書き込むことで上書きできます。

初期状態では、Dynamic Contentアプリはmain.jsファイルからinit関数の実行を試みます。init関数が存在しない場合、DCアプリはmainファイル(/表示)に保存されているコンテンツを読み込みます。


init関数は2つのパラメーターをサポートします。1つ目は動的コンテンツのコンテキスト(ルート要素)、2つ目はクエリパラメーターオブジェクトです。

これらのパラメーターは、ページURLに含めるか、dc-param-属性を要素に追加することで渡せます。 たとえば、
dc-bind-クリック = 'showPartner' style= 'cursor:pointer:'> と表示内で指定できます。


メモ:JavaScriptファイルは、Webサイト上で動的に読み込まれます。使用するのはRequireJsです。作成するスクリプトは、RequireJsのdefineタブに準拠する必要があります。RequireJs defineタブの詳細については、こちらをご参照ください 


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


メソッド

説明

$DX.取得する

HTTP取得リクエストをDCに送信します。

Request Objectを引数として渡します。詳細は下記の表をご参照ください。

$DX。post

HTTP POSTリクエストをDCに送信します。

Request Objectを引数として渡します。詳細は下記の表をご参照ください。


Request Object

プロパティ

説明

url

表示するURL

params

表示する先へ送信するパラメーター(JSONオブジェクト)

handler

正常にレスポンスが返された場合、このコールバック関数が呼び出され、XMLHttpRequestが'this'参照として渡されます。

ヘッダー

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

args

handlerに送信する引数(JSONオブジェクト)


'init'関数のオーバーライド

main.jsで'init'関数をオーバーライドし、表示するの読み込み中を自ら処理する例です。

define( function() { function showPartner(設定){ $DX.取得する({ url: '/dcapp/' + 受注傾向などを分析。dc_name + '/パートナー', params : 受注傾向などを分析。params, handler: function (){ 受注傾向などを分析。target。innerHTML = this。responseText } } ); } function init(context, params){ var dc_name = context。getAttribute('data-dc-名前'); //ルートDC要素の属性 data-dc-名前 にはDC名が設定されています var dc_home_page = context。getAttribute('data-ホーム-page') || 'main'; //属性 data-dc-名前 には初期表示する名前が含まれています $DX.取得する({ url: '/dcapp/' + dc_name + '/' + dc_home_page ,// I18N対象外 handler: function (){ context。innerHTML = this。responseText } } ); } 返品する { showPartner : showPartner, init : init } })
DC関数の呼び出しとJSからの表示

以下は、main.jsから関数を呼び出す例です。 ヘッダーコードや同一ドメイン上のJSファイルからもDC関数やDC表示をRESTエンドポイントとして呼び出すことができます。

  
$DX.取得する({
url: '/dcapp/' + + '/function/' + ,
handler: function (){
//関数取得後の処理コード
}


Zoho Sitesからフォームデータを取得する

Zoho Sitesサービスへの接続は、動的コンテンツの外部連携タブで作成してください。Zoho Sitesのフォームデータを読み取るには、scopeとしてZohoSites.siteforms.readを選択します。接続が確立されたら、その接続名を関数の'invokeurl'で使用します。フォームIDは、Zoho Sitesビルダーのフォーム編集URLから取得してください。

フォームデータ取得のサンプルコード
headers_map = Map();
headers_map。put('X-Site-Id','786783XXX');
resp = invokeurl [
url :'https://sites.Zoho.com/zs-site/api/v1/zsforms/' + formid + '/formdata'
種類 :POST
ヘッダー:headers_map
connection:'{{sites_connection_name}}'
];
返品する resp;
フォームレスポンスデータのサンプル
{.
'output': {
       
'status_message': '完了',
       
'status_code': '+10、-10',
       
'form_data': {
           
'form_status': '+10、-10',
           
'form_records': [
               
{
                   
'record_id': '1561166000000141011',
                   
'data': {
                       
'field_SxBhr3xijI4MBySlKotoZA': {
                           
'field_value': 'mdxxxx@gmail。com',
                           
'field_type': 'メール'
                       
},
                       
'field_oxcQgkusaiBu_AusENvyJA': {
                           
'field_value': 'Ram',
                           
'field_type': '名前'
                       
}
                   
},
                   
'last_updated_time': '2023-07-14T09:40:03Z',
                   
'zs_form_id': '1561166000000140071'
               
}
          
],
           
'form_meta': {
               
'form_properties': {
                   
'form_link_name': '新規-Form',
                   
'submit_action': {
                       
'ダウンロードする': 無効,
                       
'ドメイン': '',
                       
'rel': '',
                       
'linkType': 'fileLink',
                       
'href': '/POWER%20OF%20PATIENCE。pdf',
                       
'件名': '',
                       
'url': '/POWER OF PATIENCE。pdf',
                       
'target': ''
                   
},
                   
'form_name': 'ファイルダウンロード'
               
},
                   
'項目': [
                   
{
                       
'field_id': 'field_oxcQgkusaiBu_AusENvyJA',
                       
'field_link_name': '名前',
                       
'field_label': '名前',
                       
'data_type': '名前',
                       
'種類': 'テキスト'
                   
},
                   
{
                       
'field_id': 'field_SxBhr3xijI4MBySlKotoZA',
                       
'field_link_name': 'メール',
                       
'field_label': 'メール',
                       
'data_type': 'メール',
                       
'種類': 'テキスト'
                   
}
               
]
           
}
       
},
       
'extra': {
           
'no_of_pages': '1',
           
'total_record': '2'
       
},
       
'api_kind': 'フォームデータ'
    
}
}

Zoho Creator、Zoho CRM などへのデータ送信

フォームデータは、Zoho CRM や Creator など他のアプリケーションに送信できます。以下は、データをCreatorに送信するサンプルコードです。Sitesフォームから取得したデータはマップのリストに変換され、Creatorへ送信されます。SitesとCreatorで項目リンク名が同じであることを前提としています。Zoho Creator への接続を作成すると、コードが実行可能です。
headers_map = Map();
headers_map。put('X-Site-Id','786783XXX');
sites_api_response = invokeurl [
種類 :POST
ヘッダー:headers_map
connection:'{{sites_connection_name}}'
];

form_records = sites_api_response.取得する('form_data').取得する('form_records');
form_meta = sites_api_response.取得する('form_data').取得する('form_meta').取得する('項目');
form_header = Map();
function_response = Map();

for each meta in form_meta {
form_header。put(meta.取得する('field_id'),meta.取得する('field_link_name'));
}

for each form_record in form_records {
creator_record = Map();
form_data = form_record.取得する('data');
項目 = form_data。keys();
for each field_key in 項目 {
creator_record。put(form_header.取得する(field_key),form_data.取得する(field_key).取得する('field_value'));
}
creator_response = Zoho.creator。createRecord('{{owner_name}}','{{app_name}}','{{form_name}}',
creator_record,Map(),'{{creator_connection_name}}');

function_response。put(form_record.取得する('record_id'), creator_response);
}
返品する function_response;

このドキュメントは、Zoho Sites のダイナミックコンテンツ機能について理解するためのガイドです。本機能は、特定の顧客要件を満たす多くの可能性を提供します。さらにご不明な点がございましたら、サポートチームが喜んでお手伝いします。サポート@zohosites.com までお問い合わせいただければ、できるだけ早くご回答いたします。






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

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

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

    Zoho CRM Training



            Zoho Campaigns Resources

              Zoho WorkDrive Resources




                • Desk Community Learning Series


                • Digest


                • Functions


                • Meetups


                • Kbase


                • Resources


                • Glossary


                • Desk Marketplace


                • MVP Corner


                • Word of the Day


                • Ask the Experts









                                • Related Articles

                                • 接続

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