メインコンテンツまでスキップ

カスタムメンバーフィルターで利用できるカスタム処理の変数

カスタム処理で独自に定義したフィルターをカスタムメンバーフィルターで使用できます。
カスタムメンバーフィルター編集画面で、カスタム処理タブを開き、適応するカスタム処理を選択してください。

Image from Gyazo

カスタムメンバーフィルターの変数

変数名種別説明
$params入力変数カスタムメンバーフィルターに設定したJSONが渡されます。
$data出力変数$data.result(真偽値)または、$data.filter(フィルタ用の文字列)のいずれかを設定します。
両方指定された場合は $data.result が優先されます。

$params

カスタムメンバーフィルターに設定したJSONが渡されます。

Image from Gyazo

$data.result

0/1 または false/true を指定します。

説明
0, falseすべてのメンバーを出力しない
1, trueすべてのメンバーを出力する
備考

$data.filterが同時に指定された場合は、$data.resultが優先されます。

$data.filter

フィルタ用の文字列を指定します。

例:member_id in [2,4,5]

形式は、Member::listのエンドポイントにかけるフィルタと同様です。
利用できる条件や記述は検索機能の使い方を参照してください。

カスタム処理の例

カスタム処理内で{date}のSmartyプラグインや$smarty.session.member_idを利用することで、カスタムメンバーフィルターを利用した日付や、メンバーで結果が変わるフィルターを作成できます。

カスタム処理の例をいくつか紹介します。

$data.result の利用例

毎月5日に全てのメンバーに出力し、5日以外は誰も出力しないフィルター。

{assign_array var="data" values=""}
{date var='day' time='now' format='d'}
{if $day == 5}
{append var="data" index="result" value=true}
{else}
{append var="data" index="result" value=false}
{/if}

$paramsと$data.resultの利用例

毎月、カスタムメンバーフィルターで指定された日に全てのメンバーに出力し、それ以外は誰も出力しないフィルター。

カスタムメンバーフィルター編集画面のJSON

{"special_day": 5}

カスタム処理

{assign_array var="data" values=""}
{date var='day' time='now' format='d'}
{if $day == $params.special_day}
{append var="data" index="result" value=true}
{else}
{append var="data" index="result" value=false}
{/if}

$data.filter の利用例

メンバーの拡張項目に「業種(business_type)」を定義し、カスタムメンバーフィルターを利用したログインメンバーと同一の「業種」のメンバーを出力するフィルター。

{assign_array var="data" values=""}

{assign_array var="method_params" values=""}
{assign_array var="request_params" values=""}
{append var="method_params" index="member_id" value=$smarty.session.member_id}
{api_method
var='member'
model='Member'
method='details'
version='1'
method_params=$method_params
request_params=$request_params
}
{if $member}
{append var="data" index="filter" value="business_type=`$member.details.business_type.key`"}
{else}
{append var="data" index="result" value=false}
{/if}

サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。