Quantcast
Channel: Yet Another Tridion Blog
Viewing all articles
Browse latest Browse all 215

Toolkit - Examples

$
0
0
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.

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;

importcom.mitza.toolkit.dynamic.TagRenderer;

publicclassMyTagimplements 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(
newCustomMetaCriterion("Type","Article"),
newPublicationCriterion(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(
newOrCriteria(
newPublicationCriterion(6),
newPublicationCriterion(8)
),
newCustomMetaCriterion("ReleaseDate",new Date(1450673126000L),new Date(1550673206000L),false),
newOrCriteria(
newCustomMetaCriterion("Type","Article"),
newCustomMetaCriterion("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();




Viewing all articles
Browse latest Browse all 215

Trending Articles