im电竞app官网最新下载帮助中心

CheckMarket 脚本语言 (CSL)

CheckMarket 提供了一种强大的脚本语言来增强您的调查和报告,称为CheckMarket 脚本语言或简称CSL

您可以在电子邮件调查报告中im体育官app使用它。

im体育的脚本语言为您提供了极大的自由来im体育官app使用变量(占位符)、进行计算、显示或隐藏某些文本块等等。所以戴上你的计算思维帽,让im体育深入挖掘……

变量

脚本语言中的变量用双大括号括起来,像这样: {{someVariable}} 。它们不区分大小写,因此 {{SomeVariable}} 与 {{someVariable}} 相同。

等级制度

这些变量是分层的,因此您可以im体育官app使用点符号从顶层对象向下导航来浏览它们。这里有些例子:

  • 调查中的问题:{{survey.questions}}
  • 调查中第一个问题的文本:{{survey.questions.1.text}}
  • 问题 1 中第二个答案选择的文本:{{survey.questions.1.answerChoices.2.text}}
  • ……

在哪里可以找到

调查变量:可以在您的问题、电子邮件、通知等文本编辑器的“变量”下拉列表中找到
这是调查界面变量的列表

报表变量:在 ReportBuilder 中,您可以im体育官app使用展开按钮在文本编辑器中找到这些变量展开图标在右侧“评论”下的属性窗格中。在这里您会找到“变量”菜单:

CSL 可以用在什么地方?

CSL 几乎可以在任何地方im体育官app使用。在调查报告电子邮件中。您甚至可以在电子邮件的主题行或“发件人”字段或“收件人”字段中im体育官app使用它。im体育所说的电子邮件是指所有电子邮件:邀请、提醒、感谢电子邮件和通知。您只需直接在文本中键入 CSL 代码。开始的一个好方法是复制并粘贴一个示例,然后对其进行调整以满足您的需要。

运营商

im体育的脚本语言 CSL 支持的不仅仅是变量。im体育官app使用特殊运算符,您可以实现自己的逻辑。

在 CSL 中,运营商是第一位的!

在CSL中写1=1是:

{{eq 1 1}}

“eq”代表“等于”。在它后面,im体育放置了两个要检查的参数,用空格分隔。所有 CSL 运营商都是这样工作的!

'eq' 运算符需要两个参数。如果你需要先做一些额外的操作,你需要im体育官app使用括号来对参数进行分组,如下所示:

{{eq (add 1 1) 2}}

当你有括号时,其中的内容首先完成。所以在这种情况下,首先完成“添加”,然后由“eq”运算符评估结果。

这是一个im体育官app使用“if”语句的示例:

{{#if (eq contact.customFields.department 'HR')}} You work in HR! {{/if}}

在上面的示例中,im体育检查当前联系人名为“部门”的自定义字段是否 等于“HR”。如果是这样,im体育显示一个文本。如果没有,则不显示任何内容。

运营商名单

您可以根据自己的逻辑im体育官app使用块运算符来显示/隐藏内容。

操作员 描述
如果 im体育官app使用 if 助手有条件地显示一个块。如果其参数返回 false、null、“”、0 或 [],则该块将不可见。
{{#if (and title description)}} This text is only visible if there's a title AND a description. {{/if}}
如果+其他 如果不满足第一个条件,则指定要显示的 else 块。
{{#if contact}} <h1>{{contact.firstName}} {{contact.lastName}}</h1> {{else}} <h1>Unknown respondent</h1> {{/if}}
否则如果 im体育官app使用else if组合多个 #if 块。系统将按顺序评估每个“如果”,直到找到一个为真或到达“其他”。一旦“if”块之一为真,其他块将被忽略,即使它们也为真。
{{#if contact}} <h1>{{contact.firstName}} {{contact.lastName}}</h1> {{else if respondent.questions.yourName}} <h1>{{respondent.questions.yourName}}</h1> {{else}} <h1>Unknown respondent</h1> {{/if}}
除非 im体育官app使用unless助手作为if助手的逆函数。如果不满足条件(如果值为 false、null、“”、0 或 []),将显示其内容
{{#unless response}} <h3 class="warning">Warning: There's no response!</h3> {{/unless}}
每个 im体育官app使用内置的each助手遍历列表。在块内,您可以im体育官app使用来引用被迭代的元素,或立即im体育官app使用底层属性。
<ul> {{#each report.elements}} <li>{{title}}</li> {{/each}} </ul>
每个+其他 each运算符一起,您可以选择提供一个else部分,该部分仅在列表为空时显示。
{{#each report.elements}} <h2>{{title}}</h2> {{else}} <p>No elements in this list!</p> {{/each}}
评论 im体育官app使用注释块添加内部注释,或暂时阻止某些 CSL 执行。
{{!-- Everything inside this block will not be shown or executed --}}

您可以im体育官app使用逻辑运算符检查和比较变量。这些运算符最常用于#if等块运算符或显示逻辑中。

CSL 条件是要么为true要么为false 的 陈述

这是一个将返回true 的简单示例:

{{eq 1 1}}

翻译:“eq”代表“等于”。在 CSL 中,运营商总是放在第一位。其他两项是正在比较的内容,因此它表示“1 等于 1”。这是真实的。

这是一个将返回false 的示例:

{{eq 1 2}}

它说“1 等于 2”。这是错误的

操作员 描述
当量 如果两个参数相等则返回真。
eq 1 1
如果两个参数不相等,则返回 true。
ne 1 2
lt 如果第一个参数小于第二个参数,则返回 true。
lt 9 12
GT 如果第一个参数大于第二个参数,则返回 true。
gt 15 12
如果第一个参数小于或等于第二个参数,则返回 true。
le 12 12
如果第一个参数大于或等于第二个参数,则返回 true。
ge 12 12
包含 如果第一个参数的文本包含第二个参数,则返回 true。
contains respondent.questions.comment "unhappy"
如果所有参数都为真,则返回真。
and (eq 1 1) (lt 2 3)
或者 如果任何参数为真,则返回真。
or (eq 1 1) (eq 1 3)
不是 反转结果。如果内部条件为假则返回真,如果内部条件为真则返回假。例如,检查受访者是否为联系人。如果他们不是联系人,这将返回 true。
not contact

im体育官app使用数学运算符来处理数字。您可以执行计算或控制数字的显示方式。

操作员 描述
添加 添加两个或多个数字。
10 + 5 = {{add 10 5}} Result: 10 + 5 = 15
减去 减去两个或多个数字。
10 - 5 = {{subtract 10 5}} Result: 10 - 5 = 5
将两个或多个数字相乘
10 * 5 = {{multiply 10 5}} Result: 10 * 5 = 50
划分 将两个或多个数字相除
10 / 5 = {{divide 10 5}} Result: 10 / 5 = 2
平均的 平均两个或多个数字。
The average of the numbers 1,2,3,4 = {{average 1 2 3 4}} Result: (1+2+3+4) / 4 = 2.5
开方 计算一个数的平方根
The square root of 25 is {{sqrt 25}} Result: The square root of 25 is 5
战俘 计算第一个参数的第二个参数的幂
Three to the power of two is {{pow 3 2}} Result: Three to the power of two is 9
模组 计算第一个参数除以第二个参数后的余数
5 % 4 = {{mod 5 4}} Result: 5 % 4 = 1
腹肌 返回数字的绝对值
The absolute value of -10 is {{abs -10}} Result: The absolute value of -10 is 10
圆形的 将数字四舍五入到指定的位数。如果未指定数字,则数字四舍五入为 0 位。
The first rounded value is {{round 25.9999}}, the second is {{round 12.123456 2}} Result: The first rounded value is 26. The second is 12.12
地面 数字向下舍入到最接近的整数。
{{floor 25.9999}} Result: 25
天花板 将数字向上 舍入到下一个整数。
{{ceiling 25.13}} Result: 26
随机的 在指定的数字之间生成一个随机数。
A random number between 5 and 10 is {{random 5 10}} Result: A random number between 5 and 10 is eg 8
随机+排除 生成一个随机数,不包括某些值。您可以根据需要添加任意数量的排除值。
A random number between 5 and 10, excluding 7 and 8 is {{random 5 10 exclude="7,8"}} Result: A random number between 5 and 10, excluding 7 and 8 is eg 9
数数 获取列表/数组中 项目的数量。
There are {{count report.elements}} elements in this report Result: There are 3 elements in this report
k 将数字格式化为K表示法。
{{k 12468}} Result: 12K
十二月 明确选择小数点分隔符
{{dec 12.3 ","}} Result: 12,3

im体育官app使用日期运算符来显示或操作日期和时间。

操作员 描述
当前日期 以调查所有者的日期格式和时区返回当前日期和时间。
Today is {{currentDate}}. Result: Today is 08/17/2000 4:14 PM.
.iso 添加到任何日期以获取 ISO 格式的日期。这种格式是机器可读的。用于预填充后填充
Today is {{currentDate.iso}}. Result: Today is 2000-08-17 16:14.
。世界标准时间 添加到任何日期以获取 UTC 时区中ISO 8601 格式的日期。这种格式是机器可读的。在向数据库或 API 发送日期时im体育官app使用。
Today is {{currentDate.utc}}. Result: Today is 2000-08-17T14:14Z.
。日期 添加到任何日期以仅获取不包括时间的日期的日期部分。
Today is {{currentDate.date}}. Result: Today is 08/17/2000.
。时间 添加到任何日期以仅获取不包括日期的日期的时间部分。
The time now is {{currentDate.time}}. Result: The time now is 4:14 PM.
。相对的 添加到任何日期以获得相对日期,用文字描述。
You were born {{contact.dateOfBirth.relative}}. Result: You were born 30 years ago.

提示:im体育官app使用 .relative.styled 获取相对日期,将原始日期作为工具提示。

。年
。月
.month.text
。天
.星期几
.dayOfWeek.文本
。小时
……
添加到任何日期以仅获取日期的那部分。
You were born in {{contact.dateOfBirth.year}}. Result: You were born in 1970.
regionalSettings.timezoneOffsetHours 获取调查所有者的本地时区与 UTC(协调世界时)之间的时差。这是基于调查所有者的用户配置文件。
My UTC offset is {{regionalSettings.timezoneOffsetHours}} hours. Result: My UTC offset is 4 hours.
日期格式 im体育官app使用指定格式 显示日期。
Your birthdate: {{dateFormat contact.dateOfBirth "MMM d yy"}} Result: Your birthdate: Feb 12 87

您可以im体育官app使用的格式的一些示例:

i: 2000-08-17 I: 2000-08-17 16:32:32 a: 2000-08-17 16:32 d: 08/17/2000 D: Thursday, August 17, 2000 f: Thursday, August 17, 2000 16:32 F: Thursday, August 17, 2000 16:32:32 g: 08/17/2000 16:32 G: 08/17/2000 16:32:32 m: August 17 r: Thu, 17 Aug 2000 23:32:32 GMT s: 2000-08-17T16:32:32 t: 16:32 T: 16:32:32 u: 2000-08-17 23:32:32Z U: Thursday, August 17, 2000 23:32:32 y: August, 2000 dddd, MMMM dd yyyy: Thursday, August 17 2000 dddd, MMMM dd: Thursday, August 17 M/yy: 8/00 dd-MM-yy: 17-08-00
添加日期 将特定时间跨度添加到日期。
指定日期、要添加的单位数(可以im体育官app使用负值进行减法)和单位。
单位可以是以下之一:年、月、日、小时、分钟和秒。
We'll reply before {{dateFormat (dateAdd respondent.dateResponded 3 "day") "D"}}. Result: We'll reply before Thursday, August 17, 2000.

注意:日期始终以 ISO 8601 格式返回。如果您想以漂亮的方式呈现它,请im体育官app使用dateFormat

日期差异 计算两个日期之间的差异
指定开始和结束日期以及单位。单位可以是年、月、日、小时、分钟或秒。
We've invited you {{dateDiff contact.dateInvited currentDate "day"}} days ago. Result: We've invited you 3 days ago.
日期在时区 显示特定时区的日期。
{{dateInTimeZone respondent.dateResponded "Mountain Standard Time"}} Result: 2020-12-09 10:05

提示:要以更易于im体育的格式显示日期,还可以im体育官app使用dateFormat运算符:

{{dateFormat (dateInTimeZone respondent.dateResponded "Mountain Standard Time") "g"}} Result: 12/9/2020 10:05 AM (depending on your date and time settings)

所有支持的时区都可以在im体育的时区列表中找到。

im体育官app使用文本运算符更改文本的呈现方式。

操作员 描述
大写字母 将文本转换为大写字母。
{{upperCase "Some text"}} Result: SOME TEXT
小写字母 将文本转换为小写字母。
{{lowerCase "Some TEXT"}} Result: some text
修剪 删除文本开头和结尾的空格
{{trim " Some text "}} Result: Some text
代替 用另一组字符替换字符串中的一系列字符。此运算符接受三个术语:要搜索的文本、要查找的文本和替换文本:{{replace textToSearch textToFind replaceWith}}
{{replace "I love blue." "blue" "red"}} Result: I love red.

此运算符不区分大小写,并将替换所有出现的搜索词。

分裂 根据字符拆分文本并返回一部分。此运算符接受三个术语:要拆分的文本、要拆分文本的字符(定界符)、要返回的部分的索引:{{split textToSplit characterToSplitOn index}}
这是im体育提取第二项的逗号分隔字符串的示例:
{{split "Blue,Red,Green" "," 2}} Result: Red.
左边 提取一段文本的第一个字符
{{left "Some text" 2}} Result: So
正确的 提取一段文本的最后一个字符
{{right "Some text" 3}} Result: ext
子串 从一段文本中提取字符。该运算符接受三个参数:文本、第一个字符的索引和要提取的字符数。省略最后一个参数以提取其余文本。
{{substring "Some text" 3}} / {{substring "Some text" 3 5}} Result: me text / me te
.未格式化 从文本中删除格式。
{{survey.questions.myDataLabel.text. unformatted }} Result: Example text with a part in italics.

将它放在变量的末尾以去除 HTML 格式并将所有内容显示为纯文本

网址编码 使文本适合 URL
{{urlEncode "Some text?"}} Result: Some%20text%3F

当在可能包含空格、斜杠或其他特殊字符的 URL 中im体育官app使用变量时,应im体育官app使用此选项。数字不需要进行 url 编码。
例如,在指向外部 URL 的分支中或在感谢页面上的链接中im体育官app使用此运算符。您还可以将“.urlEncoded”添加到变量的末尾。例如:

{{survey.questions.myDataLabel.text. urlEncoded }}
json编码 使文本适合 JSON
{{jsonEncode 'Test "123"'}} Result: Test \"123\"

这应该在创建 JSON 时im体育官app使用,并且文本可能包含反斜杠、双引号或其他特殊字符。您还可以将“.jsonEncoded”添加到变量的末尾。例如:

{{survey.questions.myDataLabel.text. jsonEncoded }}
散列 将文本转换为64 个字符的哈希码
{{hash "Some text"}} Result: 4C2E9E6DA31A64C70623619C449A040968CDBEA85945BF384FA30ED2D5D24FA3

此运算符im体育官app使用 SHA-256 哈希算法生成 64 个字符的哈希值。
如果您传递多个值,它们将被连接为一个字符串,然后进行哈希处理。这样,您可以添加一个所谓的盐值,使您的哈希值更难被猜测。结合后填充。一个例子:

{{hash respondent.questions.name respondent.questions.birthdate "some salt value"}}

当受访者单击链接时,im体育官app使用模式和弹出窗口显示额外信息。对较长的文本或图像im体育官app使用模态框,对少量信息或解释单词im体育官app使用弹出框。

注意:这些运算符仅在调查界面和报告中受支持。

操作员 描述
图标 显示一个小图标。从Font Awesome指定一个标识符。
{{icon "far fa-star"}}
模态的 显示打开模态窗口的链接。
Click {{modal "here" "This text is inside the modal window."}} for more info. Result: Click here for more info. Result inside the modal window: This text is inside the modal window.

也可以添加图标。

Click {{modal "here" "This text is inside the modal window." icon="fas fa-info-circle"}}!

如果模态窗口中的文本很长,您还可以im体育官app使用#modal 变体:

{{#modal "click here"}} This text can be longer and contain markup, quotes and variables. {{/modal}}
工具提示 将鼠标移到某物上时显示工具提示或文本气球
This is a {{tooltip "NPS" "Net Promotor Score"}} question. Result: This is a NPS question. Result inside tooltip: Net Promotor Score

注意:由于手机上没有鼠标,它是通过点击激活的。

默认情况下,工具提示显示在链接上方。您可以通过指定“左”、“右”或“底”来覆盖此位置。

{{tooltip "Click here" "Displayed on the right" position="right"}}

也可以添加图标。 添加要用作最后一个参数的图标的FontAwesome类。

{{tooltip "Click here" "Some text" position="top" icon="fas fa-info-circle"}}

如果工具提示中的文本很长,您还可以im体育官app使用#tooltip 变体:

{{#tooltip "Click here"}} This text can be longer and contain markup, quotes and variables. {{/tooltip}}
弹窗 与工具提示相同,但只能通过单击激活,而不是将鼠标移到它上面。
This is a {{popover "NPS" "Net Promotor Score"}} question. Result: This is a NPS question. Result inside popover: Net Promotor Score
灯箱 显示图像的小版本。当它被点击时,一个大版本的图像通过填满屏幕显示出来,并使页面的其余部分变暗。
{{
#lightbox
}}
CheckMarket 徽标
{{
/灯箱
}}

在图像之前添加 {{#lightbox}} 并在图像之后添加 {{/lightbox}} 以使其可点击。单击时,图像将全屏显示。 (可选)在同一个灯箱内添加多个图像以创建画廊。

您还可以在灯箱内显示图像而不im体育官app使用图像,而是im体育官app使用文本:

{{lightbox "CheckMarket logo" "https://www.checkmarket.com/wp-content/ uploads/2016/03/CheckMarket-logo.png"}}
二维码 显示 URL 或文本片段的二维码。您可以选择提供以像素为单位的大小。最大尺寸为 270。
{{qrCode "https://www.checkmarket.com/" 100}}

结果:
二维码

您也可以im体育官app使用变量。例如,如果您有优惠券代码,请在名为“优惠券”的联系人自定义字段中im体育官app使用:

{{qrCode contact.customFields.coupon 100}}

有关更多示例和信息,请参阅以下文章:
工具提示、弹出窗口和模态窗口

im体育官app使用自定义临时变量将大函数拆分成更小的部分。这些变量不存储在任何地方,它们仅在同一页面内暂时可用。

操作员 描述
保存一个临时值。您需要指定名称和值。
{{set "mySum" (add 1 2)}}

要保存大段文本,您还可以im体育官app使用#set 变体:

{{#set "myText"}} This sample text can be longer and contain markup, quotes and variables. {{/set}}

您可以通过传递多个值来组合文本,如下所示:

{{set "greeting" "Hello " contact.firstName "!"}}

注意:此时没有返回结果。im体育官app使用下面的函数检索此变量。

得到
{{get "mySum"}} Result: 3

im体育官app使用您通过set运算符指定的名称检索临时值。

从联系人列表中查找信息,就好像它是一个数据库,并将该信息返回到调查、通知和报告中。

操作员 描述
联系人列表查询 许多用户想在数据库中查找一些东西。此功能使您可以将联系人列表用作一种数据库。例如,员工输入他们的员工编号,然后从联系人列表中检索他们的部门、级别和经理。
contactListLookup函数有4 个术语:
  1. 要搜索的联系人列表 ID
  2. 要搜索的字段
  3. 要搜索的值(不区分大小写)
  4. 要返回的字段
{{contactListLookup 1234 "customFields.1" "Emp4574" "email"}} Result: [email protected]

您可以选择指定一个额外的术语“包含”来查找部分匹配而不是完全匹配。例如,“ACME”也将匹配“ACME Corporation”。

{{contactListLookup 1234 "customFields.2" "ACME" "email" "contains"}} Result: [email protected]

但它可以比联系人(人)走得更远。更抽象地思考,你可以查找任何东西。例如,将商店列表放在联系人列表中,当有人进入他们的城市时,您返回该城市中的位置地址,或者有人选择他们的商店,商店经理的电子邮件地址放在“收件人”字段中通知不满意的客户。任何类型的查找都成为可能!

查询字符串查询 从 URL 中提取查询字符串参数。
{{queryStringLookup "https://example.com?code=123" "code"}} Result: 123
USStateTo缩写 获取给定美国州的缩写。
{{USStateToAbbreviation "Texas"}} Result: TX
USStateFrom缩写 从缩写中获取美国州名。
{{USStateFromAbbreviation "TX"}} Result: Texas

您可以组合所有这些运算符来创建更高级的逻辑。最常见的例子是组合“and”、“or”和“not”。为此,您真的必须考虑真假。每个项目都经过评估,然后im体育官app使用运算符进行比较。

例如:

{{eq 1 1}}

这是真的。 1 等于 1。

im体育官app使用

{{and (eq 1 1) (eq 2 2)}}

这是真的。 1 等于 1,2 等于 2。

im体育官app使用

{{or (eq 1 2) (eq 2 2)}}

这是真的。 1等于 1,2 等于 2。如果 任何一项 为真,则“或”为真。

im体育官app使用

{{not ( or(eq 1 3) (eq 2 2))}}

这是错误的。 1 不等于 3,但 2 等于 2。“不”反转结果。简化后,代码可以看作:

{{not (or false true)}}

or为真,因为其中一项为真,所以你得到:

{{not (true)}}

'Not' 使真变成假:

{{false}}

例子

您可以组合所有这些运算符来创建更高级的逻辑。im体育有一个页面,其中包含您可以在调查中im体育官app使用的有用的 CSL 代码片段。它们是一个很好的起点。即使您没有找到完全符合您要求的代码,通常也有一些您可以稍微更改以实现您想要的代码。

调查 CSL 片段

2条评论

加入对话
  • allan cheung - 2019 年 4 月 回复

    在调查中是否有如何im体育官app使用 checkmarket 脚本语言的示例?

    Pieter De Witte - 2019 年 4 月 回复

    是的,有一个关于在调查中im体育官app使用 CSL 的页面。
    您可以在问题、文本/媒体、通知等中im体育官app使用这些变量。

留下一个回复

您的电子邮件地址不会被公开。