Changes

Jump to: navigation, search

SSlogic

2,785 bytes added, 15:16, 20 August 2020
no edit summary
[[Web Page View Field|Web Page View]] fields can use a unique [[SmartSimple ]] logic interpreter. Web page logic gives you the ability to display certain content or perform certain actions only when specified conditions are met.[[SmartSimple ]] logic follows uses the following templatesyntax
<pre>
<!--@sslogic(CONDITION)-->
* The content to be displayed (the middle line) can either be in plaintext or in HTML.
* Be sure there are quotes (single quotes or double) around the variable and value. Note: Your choice in the use of quotes depends on the variable's contents. E.g. names containing apostrophes should use double quotes when referencing that variable.* SSlogic does not support nested logic statements. In other words, you cannot put an sslogic statement within another sslogic statement.* NOTE: You cannot use sscalculation syntax within an sslogic statement. The sslogic syntax will manage the calculating. It does not require additional syntax prompts.
'''Example:'''
 * The following code sample will display a Christmas tree image if and only if it the month is currently December: 
<pre>
<!--@sslogic(month(now())=12)-->
<img src='"images/xmasstree.jpg" alt="" /><!--@end--></pre> * Precede the equal sign with an exclamation point to test for '''Not Equal'''* The following will display a message for all provinces except Ontario: <pre><!--@sslogic("@province@"!="Ontario")--> You are outside of Ontario
<!--@end-->
</pre>
'''==Else Logic:'''==
* Often, you will want to display one of two texts--one text in the case that a condition is met and another in the case that the condition is not met. This is achieved through the use of an "else" operator.
* The following sample code will display one message if a user is male and another if the user is female:
 
<pre>
<!--@sslogic('"@sex@'"='"M'")-->
You are a guy.
<!--@else-->
</pre>
* The following will display 2 check boxes. If the gender is male the first check box (Male) will be ticked. If the gender is female the second check box will be ticked:
The following will display 2 check boxes. If the gender is male the first check box (Male) will be ticked. If the gender is female the second check box will be ticked:
<pre>
<!--@sslogic('@parent.owner.clientgender@'='Male')-->
<input checked="checked" type="checkbox" checked/> Male <input type="checkbox"/> Female
<!--@else-->
<input type="checkbox"/> Male <input checked="checked" type="checkbox" checked/> Female
<!--@end-->
</pre>
==Multiple Options ("else if" syntax):==You can use multiple sslogic statements "else if" operators if there are more than just 2 options:  <nowiki><!--@sslogic(</nowiki>''condition 1'')-->aaa <nowiki><!--@else if(</nowiki>''condition 2'')-->bbb <nowiki><!--@else if(</nowiki>''condition 3'')-->ccc <nowiki><!--@else-->ddd </nowiki> <nowiki><!--@end--></nowiki></nowiki></nowiki></nowiki> '''Example:''' <pre><!--@sslogic("@possibility@"="Yes")--> This will happen for certain.<!--@else if("@possibility@"="No")--> This is not happening. <!--@else if("@possibility@"="Maybe")--> This may or may not happen.<!--@else--> No-one knows what will happen.<!--@end--></pre> <!--per support ticket 17150 - Else if for sslogic -->==Multiple Conditions==* You can include more than one condition: 
<pre>
<!--@sslogic('@possibilityyear@'='Yes2008'AND ('@month@'='1' OR '@month@'='2'))--> This will happen for certainis only displayed if the year is 2008 and the month is either Jan or Feb.
<!--@end-->
</pre>
<!--@sslogic('@possibility@'='No')-->=Fields Storing Single Quotes or Double Quotes== This is not happening* SSlogic can be used to display fields that may have single quotes or double quotes stored within them.<!--@end-->* The escape[] function is used to achieve this:
<pre><nowiki><!--@sslogic('@possibility@escape[$123456$]'!='Maybe')--></nowiki> This may or may not happen.</pre><pre><nowiki><!--@endsslogic('escape[@Field Name@]'!='')--></nowiki>
</pre>
* NOTE: You must wrap the function using single quotes
==Using Object Lists==
* Object [[Web_Page_View_Field_Variables#List|Lists]] can also be used in SSlogic.
You can include more than one condition:
<pre>
<!--@sslogic('@year@'"[#(?object=contact::criteria='2008' AND ('@month@'rolename='1' OR '@month@Supervisor'::groupfunction='2'count)~userid~#]">0)--> This There is only displayed if the year is 2008 and the month is either Jan or Feb.at least one Supervisor<!--@else--> There are no Supervisors
<!--@end-->
</pre>
==Using With SSattach==
* SSlogic can be used to determine which pdf file is appended to the Web Page View using '''ssattach'''
* The following example will attach ''myfilefooter.pdf'' if the Type/Template is Contract, and ''myotherfilefooter.pdf'' if not:
<pre>
<!--@sslogic("@type@"=’contact’"Contract") --> <!--@ssattach(after;/files/1234/123/myfilefooter.pdf )-->
<!--@else-->
<!-- @ssattach(after;/files/1234/123/myotherfilefooter.pdf )-->
<!--@end-->
</pre>
:: '''''Note:''' [[ssattach]] can be used without sslogic if you want the same pdf file attached to the Web Page View in all cases.''
==Notes==
* SSlogic can be used in workflow e-mails at Level 1 only.
* In general, double quotes (") should be used to enclose variables rather than single quotes ('). If the content includes an apostrophe (equivalent to a single quote) it will disrupt the processing. Double quotes are less common as content. You may want to add an [[Removing Special Characters|onchange]] to the source field to prevent entry of double quotes.
 
==See Also==
* [[Web Page View Field]]
* [[Web Page View Field Variables]]
* [[sscalculation]]
</pre>
[[Category:Custom Fields]][[Category:Variables]]
Smartstaff
5
edits

Navigation menu