Useful Velocity Methods
Values#
isSet() — is the field set?
#if($UtilMethods.isSet($content.variable)).contains() checks if the field contains a value. Used with check boxes, radio boxes and drop downs; these add a comma to the content, so you can't use .equals()
#if($content.officeOrDepartment.contains('Value')).equals() checks string values:
#if($term.equals('Fall'))For variables:
#if(!$dateMonth.equals($currentMonth))Request Object#
Request parameter: This will get the value of id, if it is passed in via URL or a POST. For more, see Request, Response, Session.
$request.getParameter("id")Looping#
Count within a loop:
$velocityCountThis variable is updated automatically in the for-loops, it starts with value: 1. To check if equal to a value:
#if($velocityCount == 1)Date Formatting#
Month:
$date.format('MMMM', $content.date))Year:
$date.format('yyyy', $content.date))MM/DD/YYY:
$date.format('MM/dd/yyyy', $content.endSeason)
#set($dateYear = $date.get('yyyy'))
#set($nextYear = $webapi.parseInt($dateYear) + 1)
## returns current year+1Another formatting for date:
$UtilMethods.dateToHTMLDate($content.gameDatetime.toString(),'EEE MMM dd hh:mm:ss z yyyy','M/d/yyyy')
## Eg: 7/6/2006
$UtilMethods.dateToHTMLDate($content.gameDatetime.toString(),'EEE MMM dd hh:mm:ss z yyyy','hh:mm:ss a')
## Eg: 11:30 AMContainers#
Empty container check
#if($CONTAINER_NUM_CONTENTLETS == 0)Lists#
.size() Can be used to determine if a content query brought any results..
#if($list.size() > 0)Folders#
.findFolder() - Returns Folder where link was created:
#if($webapi.findFolder($content.form2LinkURL)=='/about_us/departments_and_offices/forms/admissions/international/')With a variable:
#set($folder='international')
#if($webapi.findFolder($content.form1LinkURL)==$render.eval('/admissions/admissions_forms/$folder/'))Random Generator#
Start with a query that pulls so many items — e.g., 5 — then we use the generator to randomly pick one:
#set($list = $utilMethods.randomList($list,1))
#set($content = $list.get($math.toInteger(0)))If selecting only one random item, then we don't need to loop through the list; we can go straight to $content.{variable}
Strings#
Replace string:
$string2=$string1.replaceAll("/", "//")
## replaces all / with //Substring and string index:
$VTLSERVLET_URI.substring(0, $VTLSERVLET_URI.indexOf('/',1))
$VTLSERVLET_URI.indexOf('/',1))The above example starts looking for / from the position 1, not including the character in 0.
Phone Formatter:
$stringsapi.formatPhoneNumber('12:34-56789001')