ダイナミックコンテンツとは、固定・静的なものではなく、ユーザーの操作に応じて変化する Web サイトコンテンツのことです。Web サイトを頻繁に更新しなくても、ダイナミックコンテンツを使用することで、サードパーティサービスからのデータを Web サイト上に表示できます。
例えば、Zoho Sites と Zoho Creator など、2 つの異なるアプリケーションを連携させて、Web サイト上にダイナミックコンテンツを表示できます。
Web サイトにダイナミックコンテンツを挿入する手順
サイトビルダー左上の + アイコンをクリックします。
ドロップダウンから App をクリックします。
設定から Dynamic Content を選択します。
表示したい位置まで Dynamic Content をドラッグ&ドロップします。
[Edit] をクリックします。すると、適切なダイナミックコンテンツを選択できる Dynamic Content Listing ページに移動します。
対象のダイナミックコンテンツをクリックして、既存のコードを編集するか、新しいカスタムコードを作成します。ビュー、関数、スタイルシートを編集できます。
HTML
CSS
JavaScript
Deluge Script - 25 以上の Zoho アプリを連携させる Zoho 独自のスクリプト言語
Face - Zoho Sites 用に設計されたテンプレート言語
ダイナミックコンテンツを構成する 4 つのコンポーネント
FUNCTIONS
次は、Zoho Creator に保存されているデータを取得する、'fetchPartners' という名前の関数です。
//START
records = zoho.creator.getRecords('David','partners','Partner_View');
return records;
//END
説明:
criteria = 'ID=='.concat(id);
records = zoho.creator.getRecords('David', 'partners', 'Partner_View', criteria);
record = records.get(0);
return record;
//END
ビュー
各 Dynamic Content のインスタンスにはメインの表示ファイルがあり、そこから利用可能なビューを読み込みます。
ビュー: main
{% partners = functions.execute('fetchPartners') %}
<div>
<center><h3>Partners</h3></center>
</div>
<divdc-container='パートナー-地域'>
{% for partner in partners %}
<div>
<h2 style='cursor: pointer'dc-param-id='{{ パートナー。ID }}'dc-bind-クリック='真'dc-表示する='パートナー'dc-target='パートナー-地域'>
{{ パートナー。名前 }}
</h2>
<p>{{ partner.email }}</p>
</div>
{% endfor %}
</div>
説明:
|
属性 |
説明 |
|
dc-container |
DC ビューを読み込むコンテナを定義します。値は英数字で、 一意である必要があります。 |
|
dc-bind-クリック |
HTML 要素にクリックイベントをバインドします。値は '真' または コールバック関数の名前のいずれかである必要があります。 |
|
dc-表示する |
HTML 要素がクリックされたときに読み込む DC ビュー名を定義します。 dc-bind-クリック = '真' の場合は必須です。 |
|
dc-target |
dc-表示する で定義された DC ビューを読み込むコンテナを 定義します。 値は dc-container のいずれかである必要があります。 |
|
dc-param-<param-名前-差し込み項目> |
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。名前 }}</h2>
<p>{{ partner_details.phone }}</p>
<img alt='{{ partner_details。名前 }}' src='{{ partner_details。画像 }}'/>
<div style='cursor: pointer'dc-表示する='main'dc-target='パートナー-地域'>
back
</div>
</div>
説明:
DC ビュー関数
{% records = functions.execute('fetchPartners') %}
例:
{% records = functions.execute('fetchPartners',param1,param2, ..) %}
以下は、Dynamic Content ビューで利用できるオブジェクトと関数です。
|
プロパティ |
説明 |
|
display_name |
ログイン中ユーザーの表示名 |
|
email_address |
ログイン中ユーザーのメールアドレス |
|
groups |
ユーザーが所属しているポータルグループの表示名リスト
|
例:
{% if user %}
{'display_name':'{{ user.display_name }}','email_address':'{{ user.email_address }}'}
{% endif %}
オブジェクト: request_object
request_object の値に基づくリクエストは、ビューでキャッシュが有効になっている場合は動作しません。
|
プロパティ |
説明 |
|
domain_name |
リクエストのドメイン部分 |
|
uri |
リクエストのURIパス |
|
パラメーター |
パラメーターのコレクション |
|
ヘッダー |
リクエストヘッダーのコレクション |
|
cookies |
Cookieのコレクション |
例:
{% partner_id = request_object。パラメーター。id %}
動的コンテンツ内で関数を呼び出すために使用します。
例:
{% assign variable_name = functions。実行する('dc_function_name', param1, param2, ...) %}
{% response_object。setStatus(status_code) %}
{% response_object。setCookie(cookie_name, cookie_value, path, max_age) %}
JAVASCRIPT
以下は、JavaScript で利用可能な API メソッドです。
|
Method |
説明 |
|
$DX。取得する |
DC ビューに対して HTTP GET リクエストを送信します。 引数として Request オブジェクトを受け取ります。下表を参照してください。 |
|
$DX。post |
DC ビューに対して HTTP POST リクエストを送信します。引数として Request オブジェクトを受け取ります。 詳細は下表を参照してください。 |
|
Property |
説明 |
|
url |
ビューの URL。 |
|
params |
ビューに送信するパラメーター(JSON オブジェクト)。 object |
|
handler |
レスポンスが正常に返された場合に呼び出されるコールバック関数です。 XMLHttpRequest が this 参照として渡されます。 |
|
ヘッダー |
リクエストヘッダーのコレクション。 |
|
args |
handler に渡される引数(JSON オブジェクト)。 |
以下は、main.js で init 関数を上書きし、ビューの読み込みを自前で処理する例です。
define( function() {
function showPartner(設定){
$DX。取得する({
url: '/dcapp/' + 設定。dc_name + '/partner',
params : 設定。params,
handler: function (){
設定。target。innerHTML = this。responseText
}
}
);
}
function init(context, params){
var dc_name = context。getAttribute('data-dc-名前');
//the 属性 data-dc-名前 of the root DC element has the DC 名前
var dc_home_page = context。getAttribute('data-ホーム-page') ||
'main';
//the 属性 data-dc-名前 has the 初期設定 表示する 名前
$DX。取得する({
url: '/dcapp/' + dc_name + '/' + dc_home_page ,// いいえ I18N
handler: function (){
context。innerHTML = this。responseText
}
}
);
}
返品する {
showPartner : showPartner,
init : init
}
})
$DX。取得する({
url: '/dcapp/' + <dc_name> + '/function/' + <dc_function_name >,
handler: function (){
//code to handle function 取得する
}Zoho Sites からフォームデータを取得する
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。