ダイナミックコンテンツとは、ユーザーのアクションに基づいて変化する、固定されていないまたは静的でないウェブサイトのコンテンツのことを指します。ウェブサイトでダイナミックコンテンツを使用すると、ウェブサイトを毎回更新することなく、サードパーティのサービスからデータを表示することができます。
例えば、Zoho SitesとZoho Creatorのような2つの異なるアプリケーションを統合して、ウェブサイトでダイナミックコンテンツを表示することができます。
ウェブサイトにダイナミックコンテンツを挿入する手順
ウェブサイトビルダーの左上隅にある+アイコンをクリックします。
ドロップダウンからアプリを選択してください。
オプションからダイナミックコンテンツを選択します。
ドラッグアンドドロップダイナミックコンテンツを表示したい場所にドロップしてください。
クリックEditをクリックします。そうすると、ダイナミックコンテンツリストページに移動します。そこで適切なダイナミックコンテンツを選択できます。
関連する動的コンテンツをクリックして、既存のコードを編集するか、カスタムのコードを作成してください。ビュー、関数、スタイルシートを編集することができます。
HTML
CSS
JavaScript
Deluge Script - Zohoのスクリプト言語で、25以上のZohoアプリをリンクします
Face - Zoho Sites向けに設計されたテンプレート用の言語
ダイナミックコンテンツの4つの要素
機能
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; //終了
説明:
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
ビュー
ダイナミックコンテンツの各インスタンスには、メインビューファイルがあり、利用可能なビューを読み込みます。
表示: メイン
{% 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>
説明:
属性 |
説明 |
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>
説明:
DCビュー関数
{% records = functions.execute('fetchPartners') %}
{% records = functions.execute('fetchPartners') %}
例:
{% records = functions.execute('fetchPartners',param1,param2, ..) %}
{% records = functions.execute('fetchPartners',param1,param2, ..) %}
以下は、ダイナミックコンテンツビューで使用できるオブジェクトと関数です。
プロパティ |
説明 |
display_name |
ログインユーザーの名前 |
email_address |
ログインユーザーのメールアドレス |
groups |
ポータルグループに所属するユーザーの表示名リスト 例 |
例:
{% if user %} {'表示名':'{{ user.display_name }}','メールアドレス':'{{ user.email_address }}'} {% endif %}
オブジェクト:request_object
プロパティ |
説明 |
ドメイン名 |
リクエストのドメイン部分 |
uri |
リクエストのURIパスです |
パラメーター |
パラメーターのコレクション |
ヘッダー |
リクエストヘッダーのコレクション |
クッキー |
クッキーのコレクション |
例:
{% partner_id = request_object.parameters.id %}
{% partner_id = request_object.parameters.id %}
これは、動的コンテンツで関数を呼び出すために使用されます。
例:
{% assign variable_name = functions.execute('dc_function_name', param1, param2, ...) %}
{% assign variable_name = functions.execute('dc_function_name', param1, param2, ...) %}
{% response_object.setStatus(status_code) %}
{% response_object.setStatus(status_code) %}
{% response_object.setCookies(cookie_name, cookie_value, path, max_age) %}
JavaScript
以下は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 } })
$DX.get({
url: '/dcapp/' + <dc_name> + '/functions/' + <dc_function_name >,
handler: function (){
//関数getを処理するコード
}
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。