This post if part of a series about the File System Toolkit - a custom content delivery API for SDL Tridion.
This post describes a few examples of Toolkit API.
The example above must backed by (1) the following tags definition in toolkit.properties file:
and (2) the tag class implementation, for example:
The result content of the code above will be:
Simple query on Publication Id, Custom Meta that retrieves ComponentMeta models:
Example 2:
Complex criteria using date range, Publication Id, Custom Meta that retrieves Page meta models. The following query retrieves PageMeta models from either publication 6 or 8 that have CustomMeta 'ReleaseDate' in a certain period of time AND that have CustomMeta 'Type' either 'Article' or 'News':
Example 3:
Pagination and Sorting example:
This post describes a few examples of Toolkit API.
Model Factory
The following example retrieves a Page model and a Component model.ModelFactory modelFactory = ModelFactory.INSTANCE; TcmUri tcmUri = new TcmUri(6, 1225, 64); PageMeta model = modelFactory.getModel(tcmUri); tcmUri = new TcmUri(6, 52); ComponentMeta componentMeta = modelFactory.getModel(tcmUri);
Link Resolving
The following examples resolve Binary, Component and Page links.LinkFactory linkFactory = LinkFactory.INSTANCE; Link link = linkFactory.getBinaryLink(6, 84); if (link.isResolved()) { String url = link.getUrl(); } // link to a Component link = linkFactory.getComponentLink(6, 52); // link to a Component from a Page link = linkFactory.getComponentLink(6, 1138, 1118); // link to a Page link = linkFactory.getPageLink(6, 55);
Component Presentation Factory
The following example retrieves a Component Presentation by ids but also using highest linking priority.ComponentPresentationFactory factory = ComponentPresentationFactory.INSTANCE; ComponentPresentationMeta dcpMeta = factory.getComponentPresentationWithHighestPriority(6, 1151); if (dcpMeta != null) { // unresolved content String content = dcpMeta.getContent(); } dcpMeta = factory.getComponentPresentation(6, 52, 1117);
Component Presentation Assembler
The following example shows a returns the resolved Component Presentation content. If there are any tags in the content, they are resolved.ComponentPresentationAssembler assembler = ComponentPresentationAssembler.INSTANCE; String content = assembler.getContent(6, 1151, 1117);
Tag Handling
The following snippet executes tags found in the content. It replaces them with the actual output from the tags.TagFactory tagFactory = TagFactory.INSTANCE; String content = tagFactory.executeTags("some <mytag>quick brown fox</mytag> content");
The example above must backed by (1) the following tags definition in toolkit.properties file:
tag.name.1=mytag tag.class.1=some.tag.example.MyTag
and (2) the tag class implementation, for example:
package some.tag.example; import com.mitza.toolkit.dynamic.TagRenderer; public class MyTag implements TagRenderer { public String doTag(String tagBody) { // do actual processing here return tagBody == null ? null : tagBody.toUpperCase(); } }
The result content of the code above will be:
content = "some QUICK BROWN FOX content"
Dynamic Query
Example 1:Simple query on Publication Id, Custom Meta that retrieves ComponentMeta models:
Criterion criterion = new AndCriteria( new CustomMetaCriterion("Type", "Article"), new PublicationCriterion(13) ); Query query = new Query(criterion); List<ComponentMeta> componentMetas = query.executeComponentQuery();
Example 2:
Complex criteria using date range, Publication Id, Custom Meta that retrieves Page meta models. The following query retrieves PageMeta models from either publication 6 or 8 that have CustomMeta 'ReleaseDate' in a certain period of time AND that have CustomMeta 'Type' either 'Article' or 'News':
Criterion criterion = new AndCriteria( Arrays.asList( new OrCriteria( new PublicationCriterion(6), new PublicationCriterion(8) ), new CustomMetaCriterion("ReleaseDate", new Date(1450673126000L), new Date(1550673206000L), false), new OrCriteria( new CustomMetaCriterion("Type", "Article"), new CustomMetaCriterion("Type", "News") ) ) ); Query query = new Query(criterion); List<PageMeta> pageMetas = query.executePageQuery();
Example 3:
Pagination and Sorting example:
Criterion criterion = new CustomMetaCriterion("String", "LOLEK2"); Query query = new Query(criterion); query.addSort("Type", SortDirection.ASCENDING); query.addSort(SortColumn.LAST_PUBLISH, SortDirection.DESCENDING); query.setPage(2); query.setPageSize(25); List<String> uris = query.executeQuery();
Comments