<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Scripting</title><link>https://community.telligent.com/community/11/w/developer-training/65562/scripting</link><description /><dc:language>en-US</dc:language><generator>14.0.0.586 14</generator><item><title>Scripting</title><link>https://community.telligent.com/community/11/w/developer-training/65562/scripting</link><pubDate>Mon, 08 Jul 2019 15:24:30 GMT</pubDate><guid isPermaLink="false">8f52ec4d-854c-472a-b523-5615b6dbb3ec</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65562/scripting#comments</comments><description>Current Revision posted to Developer Training by Ben Tiedt on 07/08/2019 15:24:30&lt;br /&gt;
&lt;p&gt;The Verint Community offers [[Getting Started|many ways to customize the platform]]. Script-based customization enables direct, on-site, fully integrated options using the community web interface.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_is_a_script" name="What_is_a_script"&gt;&lt;/a&gt;What is a script?&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Scripted" name="Scripted"&gt;&lt;/a&gt;Scripted&lt;/h3&gt;
&lt;p&gt;Scripted customizations are written with common Web technologies like HTML, CSS, JavaScript and a simple server-side scripting languages [[Using Velocity|Velocity]] and [[Using Server-side Javascript|Server-side Javascript]].&lt;/p&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
## Say hello 10 times
#foreach($i in [1..10])
   &amp;lt;li&amp;gt;Hello from a Widget!&amp;lt;/li&amp;gt;
#end
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="API_consumers" name="API_consumers"&gt;&lt;/a&gt;API consumers&lt;/h3&gt;
&lt;p&gt;Scripted customizations have full access to the Platform API in two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[api-documentation:Script APIs|Script API]] on the server-side via, called directly by the scripted customization&amp;#39;s [[Using Velocity|Velocity]] or [[Using Server-side Javascript|server-side Javascript]] scripts.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[[api-documentation:REST API Documentation|REST API]] on the client side with [[Using Ajax|JavaScript]].&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;#set ($unreadCount = $core_v2_notification.List(&amp;quot;%{ IsRead = &amp;#39;false&amp;#39;, PageSize = 1, PageIndex = 0 }&amp;quot;).TotalCount)

Hello from a Widget!

You have ${unreadCount} unread notifications.&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Upgrade-safe" name="Upgrade-safe"&gt;&lt;/a&gt;Upgrade-safe&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;have a strict separation from the non-UI components of the platform. As&amp;nbsp;scripts only have access to public, supported, platform APIs which are already guaranteed to be upgrade-safe,&amp;nbsp;scripts themselves are also upgrade-safe. A&amp;nbsp;script written against a current version of the platform will continue to work in future versions of the platform, even as other platform APIs are introduced.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Localizable" name="Localizable"&gt;&lt;/a&gt;Localizable&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;are fully localizable. All language strings that a&amp;nbsp;script needs to display to a user are defined by the scripted customization, along with one or more sets of default translations of those resources.&amp;nbsp;Scripted resources can be exported, translated, and re-imported to introduce greater localization to existing scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/8117.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023131v1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configurable" name="Configurable"&gt;&lt;/a&gt;Configurable&lt;/h3&gt;
&lt;p&gt;Scripted customizations&amp;nbsp;are fully configurable by administrators and non-developers. Scripts can define as much or as little configuration options as necessary, and use that configuration as it needs. Scripted customizations use [[Using Dynamic Configuration|dynamic configuration]] to expose configuration options.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7127.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Distributable" name="Distributable"&gt;&lt;/a&gt;Distributable&lt;/h3&gt;
&lt;p&gt;Scripts support importing and exporting&amp;nbsp;as XML files individually or as larger packages of scripted items. A scripted customization export contains all components of the customization, including its metadata, implementation scripts, configuration definition, language resources,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;and even all related attachments&lt;/strong&gt;. Exports can be imported into other&amp;nbsp;Verint Community environments.&lt;/p&gt;
&lt;h3&gt;&lt;a id="In-browser_Editable" name="In-browser_Editable"&gt;&lt;/a&gt;In-browser Editable&lt;/h3&gt;
&lt;p&gt;All scripted customizations&amp;nbsp;can be fully managed, edited, and authored in the browser using studios: [[Working with Widget Studio|Widget Studio]], [[Working with Theme Studio|Theme Studio]], and [[Working with Automation Studio|Automation Studio]]. Studios are used to create, review, edit, import, export, and delete scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4377.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0486.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a id="Where_are_scripts_used" name="Where_are_scripts_used"&gt;&lt;/a&gt;Where are scripts used?&lt;/h2&gt;
&lt;p&gt;Server-side scripting is used by [[Themes|themes]] in [[Working with Theme Studio|Theme Studio]], [[Widgets|widgets]] in [[Working with Widget Studio|Widget Studio]], and [[Automations|automations]] in [[Working with Automation Studio|Automation Studio]].&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_languages_are_used_for_scripts" name="What_languages_are_used_for_scripts"&gt;&lt;/a&gt;What languages are used for scripts?&lt;/h2&gt;
&lt;p&gt;Scripted customizations many potential languages.&lt;/p&gt;
&lt;p&gt;For server-side execution,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Velocity|Velocity]]. Velocity is a templating language best suited to formatting text, for example, the content of a rendered [[Widgets|widget]].&lt;/li&gt;
&lt;li&gt;[[Using Server-side Javascript|Server-side Javascript]]. Server-side javascript is a server-side implementation of ECMAScript 5.1 and is best suited for data processing, for example, the logic of an [[Automations|automation]].&lt;/li&gt;
&lt;li&gt;[[Using LESS|LESS]]. LESS is a processed form of cascading style sheets and is resolved to CSS server-side. It is used to generate CSS for web-based UI styling of HTML.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For configuration,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Dynamic Configuration|Dynamic Configuration]]. Dynamic configuration is an XML-based format for defining configuration metadata exposed by scripted customizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For client-side functionality,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Javascript&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Scripting</title><link>https://community.telligent.com/community/11/w/developer-training/65562/scripting/revision/5</link><pubDate>Mon, 08 Jul 2019 15:21:53 GMT</pubDate><guid isPermaLink="false">8f52ec4d-854c-472a-b523-5615b6dbb3ec</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65562/scripting#comments</comments><description>Revision 5 posted to Developer Training by Ben Tiedt on 07/08/2019 15:21:53&lt;br /&gt;
&lt;p&gt;The Verint Community offers [[Getting Started|many ways to customize the platform]]. Script-based customization enables direct, on-site, fully integrated options using the community web interface.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_is_a_script" name="What_is_a_script"&gt;&lt;/a&gt;What is a script?&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Scripted" name="Scripted"&gt;&lt;/a&gt;Scripted&lt;/h3&gt;
&lt;p&gt;Scripted customizations are written with common Web technologies like HTML, CSS, JavaScript and a simple server-side scripting languages [[Using Velocity|Velocity]] and [[Using Server-side Javascript|Server-side Javascript]].&lt;/p&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
## Say hello 10 times
#foreach($i in [1..10])
   &amp;lt;li&amp;gt;Hello from a Widget!&amp;lt;/li&amp;gt;
#end
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="API_consumers" name="API_consumers"&gt;&lt;/a&gt;API consumers&lt;/h3&gt;
&lt;p&gt;Scripted customizations have full access to the Platform API in two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[api-documentation:Script APIs|Script API]] on the server-side via, called directly by the scripted customization&amp;#39;s [[Using Velocity|Velocity]] or [[Using Server-side Javascript|server-side Javascript]] scripts.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[[api-documentation:REST API Documentation|REST API]] on the client side with [[Using Ajax|JavaScript]].&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;#set ($unreadCount = $core_v2_notification.List(&amp;quot;%{ IsRead = &amp;#39;false&amp;#39;, PageSize = 1, PageIndex = 0 }&amp;quot;).TotalCount)

Hello from a Widget!

You have ${unreadCount} unread notifications.&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Upgrade-safe" name="Upgrade-safe"&gt;&lt;/a&gt;Upgrade-safe&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;have a strict separation from the non-UI components of the platform. As&amp;nbsp;scripts only have access to public, supported, platform APIs which are already guaranteed to be upgrade-safe,&amp;nbsp;scripts themselves are also upgrade-safe. A&amp;nbsp;script written against a current version of the platform will continue to work in future versions of the platform, even as other platform APIs are introduced.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Localizable" name="Localizable"&gt;&lt;/a&gt;Localizable&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;are fully localizable. All language strings that a&amp;nbsp;script needs to display to a user are defined by the scripted customization, along with one or more sets of default translations of those resources.&amp;nbsp;Scripted resources can be exported, translated, and re-imported to introduce greater localization to existing scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/8117.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023131v1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configurable" name="Configurable"&gt;&lt;/a&gt;Configurable&lt;/h3&gt;
&lt;p&gt;Scripted customizations&amp;nbsp;are fully configurable by administrators and non-developers. Scripts can define as much or as little configuration options as necessary, and use that configuration as it needs. Scripted customizations use [[Using Dynamic Configuration|dynamic configuration]] to expose configuration options.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7127.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Distributable" name="Distributable"&gt;&lt;/a&gt;Distributable&lt;/h3&gt;
&lt;p&gt;Scripts support importing and exporting&amp;nbsp;as XML files individually or as larger packages of scripted items. A scripted customization export contains all components of the customization, including its metadata, implementation scripts, configuration definition, language resources,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;and even all related attachments&lt;/strong&gt;. Exports can be imported into other&amp;nbsp;Verint Community environments.&lt;/p&gt;
&lt;h3&gt;&lt;a id="In-browser_Editable" name="In-browser_Editable"&gt;&lt;/a&gt;In-browser Editable&lt;/h3&gt;
&lt;p&gt;All scripted customizations&amp;nbsp;can be fully managed, edited, and authored in the browser using studios: [[Working with Widget Studio|Widget Studio]], [[Working with Theme Studio|Theme Studio]], and [[Working with Automation Studio|Automation Studio]]. Studios are used to create, review, edit, import, export, and delete scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4377.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0486.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a id="Where_are_scripts_used" name="Where_are_scripts_used"&gt;&lt;/a&gt;Where are scripts used?&lt;/h2&gt;
&lt;p&gt;Server-side scripting is used by [[Themes|themes]] in [[Working with Theme Studio|Theme Studio]], [[Widgets|widgets]] in [[Working with Widget Studio|Widget Studio]], and [[Automations|automations]] in [[Working with Automation Studio|Automation Studio]].&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_languages_are_used_for_scripts" name="What_languages_are_used_for_scripts"&gt;&lt;/a&gt;What languages are used for scripts?&lt;/h2&gt;
&lt;p&gt;Scripted customizations many potential languages.&lt;/p&gt;
&lt;p&gt;For server-side execution,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Velocity|Velocity]]. Velocity is a templating language best suited to formatting text, for example, the content of a rendered [[Widgets|widget]].&lt;/li&gt;
&lt;li&gt;[[Using Server-side Javascript|Server-side Javascript]]. Server-side javascript is a server-side implementation of ECMAScript 5.1 and is best suited for data processing, for example, the logic of an [[Automations|automation]].&lt;/li&gt;
&lt;li&gt;[[Using LESS|LESS]]. LESS is a processed for of cascading style sheets and is also resolved to CSS server-side. It is used to generate CSS for web-based UI styling of HTML.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For configuration,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Dynamic Configuration|Dynamic Configuration]]. Dynamic configuration is an XML-based format for defining configuration metadata exposed by scripted customizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For client-side functionality,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Javascript&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Scripting</title><link>https://community.telligent.com/community/11/w/developer-training/65562/scripting/revision/4</link><pubDate>Mon, 08 Jul 2019 15:20:44 GMT</pubDate><guid isPermaLink="false">8f52ec4d-854c-472a-b523-5615b6dbb3ec</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65562/scripting#comments</comments><description>Revision 4 posted to Developer Training by Ben Tiedt on 07/08/2019 15:20:44&lt;br /&gt;
&lt;p&gt;The Verint Community offers [[Getting Started|many ways to customize the platform]]. Script-based customization enables direct, on-site, fully integrated options using the community web interface.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_is_a_script" name="What_is_a_script"&gt;&lt;/a&gt;What is a script?&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Scripted" name="Scripted"&gt;&lt;/a&gt;Scripted&lt;/h3&gt;
&lt;p&gt;Scripted customizations are written with common Web technologies like HTML, CSS, JavaScript and a simple server-side scripting languages [[Using Velocity|Velocity]] and [[Using Server-side Javascript|Server-side Javascript]].&lt;/p&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
## Say hello 10 times
#foreach($i in [1..10])
   &amp;lt;li&amp;gt;Hello from a Widget!&amp;lt;/li&amp;gt;
#end
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="API_consumers" name="API_consumers"&gt;&lt;/a&gt;API consumers&lt;/h3&gt;
&lt;p&gt;Scripted customizations have full access to the Platform API in two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[api-documentation:Script API Documentation|Script API]] on the server-side via, called directly by the scripted customization&amp;#39;s [[Using Velocity|Velocity]] or [[Using Server-side Javascript|server-side Javascript]] scripts.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[[api-documentation:REST API Documentation|REST API]] on the client side with [[Using Ajax|JavaScript]].&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;#set ($unreadCount = $core_v2_notification.List(&amp;quot;%{ IsRead = &amp;#39;false&amp;#39;, PageSize = 1, PageIndex = 0 }&amp;quot;).TotalCount)

Hello from a Widget!

You have ${unreadCount} unread notifications.&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Upgrade-safe" name="Upgrade-safe"&gt;&lt;/a&gt;Upgrade-safe&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;have a strict separation from the non-UI components of the platform. As&amp;nbsp;scripts only have access to public, supported, platform APIs which are already guaranteed to be upgrade-safe,&amp;nbsp;scripts themselves are also upgrade-safe. A&amp;nbsp;script written against a current version of the platform will continue to work in future versions of the platform, even as other platform APIs are introduced.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Localizable" name="Localizable"&gt;&lt;/a&gt;Localizable&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;are fully localizable. All language strings that a&amp;nbsp;script needs to display to a user are defined by the scripted customization, along with one or more sets of default translations of those resources.&amp;nbsp;Scripted resources can be exported, translated, and re-imported to introduce greater localization to existing scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/8117.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023131v1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configurable" name="Configurable"&gt;&lt;/a&gt;Configurable&lt;/h3&gt;
&lt;p&gt;Scripted customizations&amp;nbsp;are fully configurable by administrators and non-developers. Scripts can define as much or as little configuration options as necessary, and use that configuration as it needs. Scripted customizations use [[Using Dynamic Configuration|dynamic configuration]] to expose configuration options.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7127.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Distributable" name="Distributable"&gt;&lt;/a&gt;Distributable&lt;/h3&gt;
&lt;p&gt;Scripts support importing and exporting&amp;nbsp;as XML files individually or as larger packages of scripted items. A scripted customization export contains all components of the customization, including its metadata, implementation scripts, configuration definition, language resources,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;and even all related attachments&lt;/strong&gt;. Exports can be imported into other&amp;nbsp;Verint Community environments.&lt;/p&gt;
&lt;h3&gt;&lt;a id="In-browser_Editable" name="In-browser_Editable"&gt;&lt;/a&gt;In-browser Editable&lt;/h3&gt;
&lt;p&gt;All scripted customizations&amp;nbsp;can be fully managed, edited, and authored in the browser using studios: [[Working with Widget Studio|Widget Studio]], [[Working with Theme Studio|Theme Studio]], and [[Working with Automation Studio|Automation Studio]]. Studios are used to create, review, edit, import, export, and delete scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4377.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0486.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a id="Where_are_scripts_used" name="Where_are_scripts_used"&gt;&lt;/a&gt;Where are scripts used?&lt;/h2&gt;
&lt;p&gt;Server-side scripting is used by [[Themes|themes]] in [[Working with Theme Studio|Theme Studio]], [[Widgets|widgets]] in [[Working with Widget Studio|Widget Studio]], and [[Automations|automations]] in [[Working with Automation Studio|Automation Studio]].&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_languages_are_used_for_scripts" name="What_languages_are_used_for_scripts"&gt;&lt;/a&gt;What languages are used for scripts?&lt;/h2&gt;
&lt;p&gt;Scripted customizations many potential languages.&lt;/p&gt;
&lt;p&gt;For server-side execution,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Velocity|Velocity]]. Velocity is a templating language best suited to formatting text, for example, the content of a rendered [[Widgets|widget]].&lt;/li&gt;
&lt;li&gt;[[Using Server-side Javascript|Server-side Javascript]]. Server-side javascript is a server-side implementation of ECMAScript 5.1 and is best suited for data processing, for example, the logic of an [[Automations|automation]].&lt;/li&gt;
&lt;li&gt;[[Using LESS|LESS]]. LESS is a processed for of cascading style sheets and is also resolved to CSS server-side. It is used to generate CSS for web-based UI styling of HTML.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For configuration,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Dynamic Configuration|Dynamic Configuration]]. Dynamic configuration is an XML-based format for defining configuration metadata exposed by scripted customizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For client-side functionality,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Javascript&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Scripting</title><link>https://community.telligent.com/community/11/w/developer-training/65562/scripting/revision/3</link><pubDate>Fri, 21 Jun 2019 20:45:18 GMT</pubDate><guid isPermaLink="false">8f52ec4d-854c-472a-b523-5615b6dbb3ec</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65562/scripting#comments</comments><description>Revision 3 posted to Developer Training by Ben Tiedt on 06/21/2019 20:45:18&lt;br /&gt;
&lt;p&gt;The Verint Community offers [[Getting Started|many ways to customize the platform]]. Script-based customization enables direct, on-site, fully integrated options using the community web interface.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_is_a_script" name="What_is_a_script"&gt;&lt;/a&gt;What is a script?&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Scripted" name="Scripted"&gt;&lt;/a&gt;Scripted&lt;/h3&gt;
&lt;p&gt;Scripted customizations are written with common Web technologies like HTML, CSS, JavaScript and a simple server-side scripting languages [[Using Velocity|Velocity]] and [[Using Server-side Javascript|Server-side Javascript]].&lt;/p&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
## Say hello 10 times
#foreach($i in [1..10])
   &amp;lt;li&amp;gt;Hello from a Widget!&amp;lt;/li&amp;gt;
#end
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="API_consumers" name="API_consumers"&gt;&lt;/a&gt;API consumers&lt;/h3&gt;
&lt;p&gt;Scripted customizations have full access to the Platform API in two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[api-documentation:Widget API Documentation|Widget API]] on the server-side via, called directly by the widget&amp;#39;s [[Using Velocity|Velocity]] or [[Using Server-side Javascript|server-side Javascript]] scripts.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[[api-documentation:REST API Documentation|REST API]] on the client side with [[Using Ajax|JavaScript]].&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;#set ($unreadCount = $core_v2_notification.List(&amp;quot;%{ IsRead = &amp;#39;false&amp;#39;, PageSize = 1, PageIndex = 0 }&amp;quot;).TotalCount)

Hello from a Widget!

You have ${unreadCount} unread notifications.&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Upgrade-safe" name="Upgrade-safe"&gt;&lt;/a&gt;Upgrade-safe&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;have a strict separation from the non-UI components of the platform. As&amp;nbsp;scripts only have access to public, supported, platform APIs which are already guaranteed to be upgrade-safe,&amp;nbsp;scripts themselves are also upgrade-safe. A&amp;nbsp;script written against a current version of the platform will continue to work in future versions of the platform, even as other platform APIs are introduced.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Localizable" name="Localizable"&gt;&lt;/a&gt;Localizable&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;are fully localizable. All language strings that a&amp;nbsp;script needs to display to a user are defined by the scripted customization, along with one or more sets of default translations of those resources.&amp;nbsp;Scripted resources can be exported, translated, and re-imported to introduce greater localization to existing scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/8117.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023131v1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configurable" name="Configurable"&gt;&lt;/a&gt;Configurable&lt;/h3&gt;
&lt;p&gt;Scripted customizations&amp;nbsp;are fully configurable by administrators and non-developers. Scripts can define as much or as little configuration options as necessary, and use that configuration as it needs. Scripted customizations use [[Using Dynamic Configuration|dynamic configuration]] to expose configuration options.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7127.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Distributable" name="Distributable"&gt;&lt;/a&gt;Distributable&lt;/h3&gt;
&lt;p&gt;Scripts support importing and exporting&amp;nbsp;as XML files individually or as larger packages of scripted items. A scripted customization export contains all components of the customization, including its metadata, implementation scripts, configuration definition, language resources,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;and even all related attachments&lt;/strong&gt;. Exports can be imported into other&amp;nbsp;Verint Community environments.&lt;/p&gt;
&lt;h3&gt;&lt;a id="In-browser_Editable" name="In-browser_Editable"&gt;&lt;/a&gt;In-browser Editable&lt;/h3&gt;
&lt;p&gt;All scripted customizations&amp;nbsp;can be fully managed, edited, and authored in the browser using studios: [[Working with Widget Studio|Widget Studio]], [[Working with Theme Studio|Theme Studio]], and [[Working with Automation Studio|Automation Studio]]. Studios are used to create, review, edit, import, export, and delete scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4377.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0486.png"&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a id="Where_are_scripts_used" name="Where_are_scripts_used"&gt;&lt;/a&gt;Where are scripts used?&lt;/h2&gt;
&lt;p&gt;Server-side scripting is used by [[Themes|themes]] in [[Working with Theme Studio|Theme Studio]], [[Widgets|widgets]] in [[Working with Widget Studio|Widget Studio]], and [[Automations|automations]] in [[Working with Automation Studio|Automation Studio]].&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_languages_are_used_for_scripts" name="What_languages_are_used_for_scripts"&gt;&lt;/a&gt;What languages are used for scripts?&lt;/h2&gt;
&lt;p&gt;Scripted customizations many potential languages.&lt;/p&gt;
&lt;p&gt;For server-side execution,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Velocity|Velocity]]. Velocity is a templating language best suited to formatting text, for example, the content of a rendered [[Widgets|widget]].&lt;/li&gt;
&lt;li&gt;[[Using Server-side Javascript|Server-side Javascript]]. Server-side javascript is a server-side implementation of ECMAScript 5.1 and is best suited for data processing, for example, the logic of an [[Automations|automation]].&lt;/li&gt;
&lt;li&gt;LESS. LESS is a processed for of cascading style sheets and is also resolved to CSS server-side. It is used to generate CSS for web-based UI styling of HTML.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For configuration,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[Using Dynamic Configuration|Dynamic Configuration]]. Dynamic configuration is an XML-based format for defining configuration metadata exposed by scripted customizations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For client-side functionality,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Javascript&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Scripting</title><link>https://community.telligent.com/community/11/w/developer-training/65562/scripting/revision/2</link><pubDate>Fri, 21 Jun 2019 19:31:18 GMT</pubDate><guid isPermaLink="false">8f52ec4d-854c-472a-b523-5615b6dbb3ec</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65562/scripting#comments</comments><description>Revision 2 posted to Developer Training by Ben Tiedt on 06/21/2019 19:31:18&lt;br /&gt;
&lt;p&gt;The Verint Community offers [[Getting Started|many ways to customize the platform]]. Script-based customization enables direct, on-site, fully integrated options using the community web interface.&lt;/p&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h2&gt;&lt;a id="What_is_a_script" name="What_is_a_script"&gt;&lt;/a&gt;What is a script?&lt;/h2&gt;
&lt;h3&gt;&lt;a id="Scripted" name="Scripted"&gt;&lt;/a&gt;Scripted&lt;/h3&gt;
&lt;p&gt;Scripted customizations are written with common Web technologies like HTML, CSS, JavaScript and a simple server-side scripting languages [[Using Velocity|Velocity]] and [[Using Server-side Javascript|Server-side Javascript]].&lt;/p&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
## Say hello 10 times
#foreach($i in [1..10])
   &amp;lt;li&amp;gt;Hello from a Widget!&amp;lt;/li&amp;gt;
#end
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="API_consumers" name="API_consumers"&gt;&lt;/a&gt;API consumers&lt;/h3&gt;
&lt;p&gt;Scripted customizations have full access to the Platform API in two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[[api-documentation:Widget API Documentation|Widget API]] on the server-side via, called directly by the widget&amp;#39;s [[Using Velocity|Velocity]] or [[Using Server-side Javascript|server-side Javascript]] scripts.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[[api-documentation:REST API Documentation|REST API]] on the client side with [[Using Ajax|JavaScript]].&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="brush: velocity"&gt;&lt;code&gt;#set ($unreadCount = $core_v2_notification.List(&amp;quot;%{ IsRead = &amp;#39;false&amp;#39;, PageSize = 1, PageIndex = 0 }&amp;quot;).TotalCount)

Hello from a Widget!

You have ${unreadCount} unread notifications.&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a id="Upgrade-safe" name="Upgrade-safe"&gt;&lt;/a&gt;Upgrade-safe&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;have a strict separation from the non-UI components of the platform. As&amp;nbsp;scripts only have access to public, supported, platform APIs which are already guaranteed to be upgrade-safe,&amp;nbsp;scripts themselves are also upgrade-safe. A&amp;nbsp;script written against a current version of the platform will continue to work in future versions of the platform, even as other platform APIs are introduced.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Localizable" name="Localizable"&gt;&lt;/a&gt;Localizable&lt;/h3&gt;
&lt;p&gt;Scripts&amp;nbsp;are fully localizable. All language strings that a&amp;nbsp;script needs to display to a user are defined by the scripted customization, along with one or more sets of default translations of those resources.&amp;nbsp;Scripted resources can be exported, translated, and re-imported to introduce greater localization to existing scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/8117.png"&gt;&lt;img src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023131v1.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Configurable" name="Configurable"&gt;&lt;/a&gt;Configurable&lt;/h3&gt;
&lt;p&gt;Scripted customizations&amp;nbsp;are fully configurable by administrators and non-developers. Scripts can define as much or as little configuration options as necessary, and use that configuration as it needs. Scripted customizations use [[Using Dynamic Configuration|dynamic configuration]] to expose configuration options.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/7127.png"&gt;&lt;img src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v2.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Distributable" name="Distributable"&gt;&lt;/a&gt;Distributable&lt;/h3&gt;
&lt;p&gt;Scripts support importing and exporting&amp;nbsp;as XML files individually or as larger packages of scripted items. A scripted customization export contains all components of the customization, including its metadata, implementation scripts, configuration definition, language resources,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;and even all related attachments&lt;/strong&gt;. Exports can be imported into other&amp;nbsp;Verint Community environments.&lt;/p&gt;
&lt;h3&gt;&lt;a id="In-browser_Editable" name="In-browser_Editable"&gt;&lt;/a&gt;In-browser Editable&lt;/h3&gt;
&lt;p&gt;All scripted customizations&amp;nbsp;can be fully managed, edited, and authored in the browser using studios: [[Working with Widget Studio|Widget Studio]], [[Working with Theme Studio|Theme Studio]], and [[Working with Automation Studio|Automation Studio]]. Studios are used to create, review, edit, import, export, and delete scripted customizations.&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/4377.png"&gt;&lt;img src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v3.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-12-83/0486.png"&gt;&lt;img src="/resized-image/__size/640x480/__key/communityserver-wikis-components-files/00-00-00-12-83/pastedimage1561145023132v4.png" alt=" " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Scripting</title><link>https://community.telligent.com/community/11/w/developer-training/65562/scripting/revision/1</link><pubDate>Fri, 14 Jun 2019 17:09:12 GMT</pubDate><guid isPermaLink="false">8f52ec4d-854c-472a-b523-5615b6dbb3ec</guid><dc:creator>Ben Tiedt</dc:creator><comments>https://community.telligent.com/community/11/w/developer-training/65562/scripting#comments</comments><description>Revision 1 posted to Developer Training by Ben Tiedt on 06/14/2019 17:09:12&lt;br /&gt;
&lt;p&gt;TBD&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>