wiegele
I'm new here

UrlCreatorProvider SchedulerContext

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

0 Kudos
2 Replies
marza
I'm new here

Hallo Dirk,

vielleicht hilft Dir dieser Beitrag weiter?

Viele Grüße

Marian Zaplatynski

0 Kudos
rednoss
I'm new here

Hallo Dirk,

benötigst Du noch weitere Hilfe oder habt Dir die Antwort von Marian bereits geholfen?

In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere

Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung

gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Rene

0 Kudos