Hallo zusammen,
wie komme ich in einem SchedulerContext an den UrlCreatorProvider ?
Ich benötige die URL eines PageRef.
pageRef.getUrl(urlCreatorProvider, language, templateSet, pageParams, 1);
Ich habe auch schon ein paar Dinge wie dieses gefunden.
this.context.getProperty(GenerateTaskExecutor.CONTEXT_KEY_URLCREATOR);
Nur leider ist das in einer nicht supporteten API und auch noch deprecated(UrlCreator).
Server-Version: 5.0.606.65744
Kann mir einer beschreiben wie ich die URL einer Seite im SchedulerContext erhalten kann?
Hier meine Methode die eigentlich im ScriptContext läuft, jetzt muss ich die Methode umbauen und als Modul laufen lassen, das Modul läuft wiederum in einem Task.
private String getRelPageURL(PageRef linkTarget, Long contentId, Long pageGroupIndex, Language language){
try {
UrlCreatorProvider urlCreatorProvider = context.getUrlCreatorProvider();
urlCreatorProvider.getUrlCreator().setUrlPrefix("/FIRSTspiritWeb/praefix/");
List<TemplateSet> templateSets = this.context.getProject().getTemplateSets();
this.context.logDebug("In getRelPageURL " + contentId + " " + language);
for (TemplateSet templateSet : templateSets) {
if (templateSet.getUid().equals("html")){
this.context.logInfo("All News " + linkTarget.getReferenceName() + "linkTarget instanceof-> " + linkTarget.getClass() );
if ( linkTarget != null && linkTarget instanceof PageRef)
{
PageParams pageParams = new PageParams(0, true);
if (contentId != null && contentId.longValue() > 0) {
pageParams = linkTarget.getMultiPageParams(language, templateSet).getPageParams(Collections.singletonMap("contentId", contentId));
} else if (pageGroupIndex != null && pageGroupIndex.intValue() >= 0) {
pageParams = linkTarget.getMultiPageParams(language, templateSet).getPageParams(pageGroupIndex.intValue());
}
return linkTarget.getUrl(urlCreatorProvider, language, templateSet, pageParams, 1);
}
}
}
return "";
} catch (Exception e) {
this.context.logError("getRelPageURL " + contentId + language,e);
return "";
}
}
Danke fürs lesen