Upcoming SlideShare
×

Like this presentation? Why not share!

# Velocity tips and tricks

## on Apr 20, 2010

• 2,160 views

Presentation from dotCMS Boot Camp 2010. This covers simple solutions to common problems in Velocity. Learn basic velocity syntax and frequently used dotCMS view tools.

Presentation from dotCMS Boot Camp 2010. This covers simple solutions to common problems in Velocity. Learn basic velocity syntax and frequently used dotCMS view tools.

### Views

Total Views
2,160
Views on SlideShare
2,148
Embed Views
12

Likes
0
28
0

### 2 Embeds12

 http://www.slideshare.net 8 http://static.slidesharecdn.com 4

### Report content

• Comment goes here.
Are you sure you want to
Your message goes here

## Velocity tips and tricksPresentation Transcript

• Velocity  Tips  and  Tricks     Simple  Solu5ons  to   Common  Problems   Wed.,  April  14,  2010
• Velocity  ABC   •  Variables:   –  #set(\$thumbWidth  =  55)   –  #set(\$varString  =  ‘ The  width  is‘)   –  #set(\$varString  =  “\${varString}  \${thumbWidth}  px“)   •  Proper5es:   –  \$news.shortSummary   –  \$news.expireDate   •  Methods:   –  #set(\$_today  =  \$date.getDate())   –  #set(\$_todayFormated  =  \$date.format('yyyyMMddHHmmss', \$_today))
• Velocity  ABC   •  If  /  ElseIf  /  Else  statements   #if(\$condi5on_1)          Condi5on  1  was  met   #elseif(\$condi5on_2)          Condi5on  2  was  met   #else            Another  condi5on  was  met   #end   •  AND  /  OR     #if(\$condi5on_1  &&  \$condi5on_2)    …    #end   #if(\$condi5on_1  ||  \$condi5on_2)    …  #end   View slide
• Velocity  ABC   •  Lists   #set(\$mylist  =  [])   \$mylist.add("asd")   \$mylist.add(123)   \$mylist.get(0)   •  Maps   #set(\$contentList  =  \$!{contents.getEmptyList()})     #set(\$item  =  \$!{contents.getEmptyMap()})     #set(\$_dummy  =  \$item.put('guid',  \$!content.get('iden5ﬁer')))     #set(\$_dummy  =  \$item.put('5tle',  \$content.get(\$5tleField)))   #set(\$_dummy  =  \$!contentList.add(\$item))     View slide
• Velocity  ABC   •  Lists  and  Foreach     #foreach(\$item  in  \$myList)        \$item.5tle  <br/>     #end   •  Velocity  Comments   ##  Commen5ng  one  line   #*      Commen5ng                Mul5ple  lines   *#
• Velocity  and  dotCMS   •  Useful  variables:   –  \$EDIT_MODE   –  \$CONTAINER_NUM_CONTENTLETS   –  \$VTLSERVLET_URI
• Velocity  and  dotCMS   •  View  Tools  are  conﬁgured  in:   –  dotCMSWEB-­‐INFtoolbox.xml   •  Three  types  of  view  tools:   –  Velocity  view  tools:  org.apache.velocity.tools….   –  dotCMS  view  tools:   com.dotmarke5ng.viewtools….   –  Customized  view  tools:  plugins
• Velocity  and  dotCMS   •  Velocity  View  Tool   samples:   –  MathTool   –  ListTool   –  DateTool   hpp://velocity.apache.org/tools/devel/javadoc/
• Velocity  and  dotCMS   •  dotCMS  View  Tool   samples:   –  CategoriesWebAPI   –  WebAPI   –  ContentsWebAPI   hpp://www.dotcms.org/api/
• Velocity  and  dotCMS   •  org.apache.velocity.tools.generic.MathTool:   –  java.lang.Number  add(java.lang.Object  num1,   java.lang.Object  num2)   –  java.lang.Number  div(java.lang.Object  num1,   java.lang.Object  num2)   –  java.lang.Double  getRandom()   –  java.lang.Number  max(java.lang.Object  num1,   java.lang.Object  num2)   –  java.lang.Number  sub(java.lang.Object  num1,   java.lang.Object  num2)
• Velocity  and  dotCMS   •  org.apache.velocity.tools.generic.ListTool:   –  java.lang.Boolean  contains(java.lang.Object  list,   java.lang.Object  element)     –  java.lang.Object  get(java.lang.Object  list,  int  index)     –  java.lang.Boolean  isEmpty(java.lang.Object  list)     –  java.lang.Integer  size(java.lang.Object  list)
• Velocity  and  dotCMS   •  org.apache.velocity.tools.generic.DateTool:   –  java.u5l.Date  getDate()   –  java.lang.Integer  getDay(java.lang.Object  date)   –  java.lang.Integer  getMonth(java.lang.Object  date)   –  sta5c  java.u5l.Date  getSystemDate()   –  java.lang.Integer  getYear(java.lang.Object  date)   –  java.u5l.Date  toDate(java.lang.Object  obj)   –  java.lang.String  toString()
• Velocity  and  dotCMS   •  CategoriesWebAPI:   –  List<Category>  getChildrenCategoriesByKey(String   key)   –  Category  getCategoryByKey(String  key)   –  Category  getCategoryByName(String  name)   –  List<Category>  getChildrenCategories(Category  cat)   –  List<Category>  getChildrenCategories(Inode  inode)   –  List<Category>  getChildrenCategories(String  inode)   –  String  getCategoryKeyByContentlet(String   contentletInode)
• Velocity  and  dotCMS   •  WebAPI:   –  int  parseInt(String  num)   –  int  parseInt(int  num)   –  String  toString(long  num)   –  boolean  isSet(String  input)   –  List<String>  splitString(String  str,  String  sep)   –  String  encodeURL(String  url)   –  List<Contentlet>  getContentletsByCategory(String   catInode)   –   String  getContentIden5ﬁer(String  parsePath)   –  String  getUserFullName()
• Velocity  and  dotCMS   •  ContentsWebAPI:   –  Contentlet  getContentByInode(String  inode)   –  Structure  getStructureByType(String  structureType)   –  Structure  getStructureByInode(String  structureInode)   –  Field  getFieldByName(Structure  st,  String  ﬁeldName)   –  List<Contentlet>  getContents(String  structureType,   String  categoryName)   –  List<Category>  getContentletCategories(String  inode)     –  List  getEmptyList()
• Examples   •  Dynamic  Banner   •  Category  Example   •  News  Pull   •  Simple  Year  Archive