mark_weigelt
Elite Observer

Remote-Links mit Advanced URL Creator (FS 5.0.318)?

Jump to solution

Hallo,

ich habe zwei FirstSpirit-Projekte. Aus dem einen Projekt soll mit einem Remote-Link ein Verweis auf das andere Projekt gesetzt werden.

  <FS_REFERENCE name="link" hFill="yes" sections="no" useLanguages="no">

    <FILTER>

      <ALLOW type="pageref"/>

    </FILTER>

    <LANGINFOS>

      <LANGINFO lang="*" label="Link"/>

    </LANGINFOS>

    <PROJECTS>

      <CATEGORY name="default">

        <SOURCES>

          <FOLDER name="root" store="sitestore"/>

        </SOURCES>

      </CATEGORY>

    </PROJECTS>

  </FS_REFERENCE>


Die Ausgabe erfolgt über $CMS_VALUE(ref(link).url)$

 

In beiden Projekten wird der Advanced URL Creator verwendet.

Leider wird der Link immer nur als Default-Pfad erzeugt - also ein Pfad aus den Referenznamen. Meine Erwartung war, dass ich einen Pfad aus den Anzeigenamen zurückbekomme!?

Bei Links innerhalb der jeweiligen Projekte funktioniert der Advanced URL Creator einwandfrei.

Ist das Verhalten ein Bug oder müssen neben der Einstellung für den Advanced URL Creator noch weitere Einstellungen vorgenommen werden, damit ein Remote-Link funktioniert?

FirstSpirit-Version: 5.0.318

Danke und viele Grüße

Mark

0 Kudos
1 Solution

Accepted Solutions

Ja, die Liste mit den gänderten Konfigurationen muss auch wieder zurückgeschrieben werden.

[EDIT] Ich würde vorschlagen, die Änderung nicht im Auftrag vorzunehmen, sondern einmal per Skript und dann persistent zu speichern (Project.save()).

Peter

View solution in original post

0 Kudos
6 Replies
Peter_Jodeleit
Crownpeak employee

Dafür muss in der Remote-Konfiguration die zu verwendende URL-Strategie konfiguriert werden: setUrlCreator(..)

Peter
0 Kudos

Hallo Herr Jodeleit,

ich bekomme den Link leider immer noch nicht richtig hin...

Ich habe vor dem Generierungsauftrag ein Skript hinzugefügt, das den URL-Creator setzen soll:

//!Beanshell

import de.espirit.firstspirit.access.project.RemoteProjectConfiguration;

for(rpc : context.getProject().getRemoteProjectConfigurations()) {

    rpc.setUrlCreator("Advanced URLs");

}

Es wird dennoch weiterhin der Default-Link erzeugt!?

Ist dass der richtige Ansatz? Und was muss ich noch tun, damit das Setzen des URL Creators auch übernommen wird?

Danke und viele Grüße

Mark

0 Kudos

Ja, die Liste mit den gänderten Konfigurationen muss auch wieder zurückgeschrieben werden.

[EDIT] Ich würde vorschlagen, die Änderung nicht im Auftrag vorzunehmen, sondern einmal per Skript und dann persistent zu speichern (Project.save()).

Peter
0 Kudos

Vielen Dank. Als Menü-Skript klappt es:

//!Beanshell

import de.espirit.firstspirit.access.project.Project;

import de.espirit.firstspirit.access.project.RemoteProjectConfiguration;

import java.util.List;

String urlCreatorName = "Advanced URLs";

// get project

Project project = context.getProject();

// get remote project configurations

List rpcList = project.getRemoteProjectConfigurations();

// lock project

project.lock();

// set url creator

for(RemoteProjectConfiguration rpc : rpcList) {

    rpc.setUrlCreator(urlCreatorName);

}

// set remote project configurations

project.setRemoteProjectConfigurations(rpcList);

// save project

project.save();

// unlock project

project.unlock();

Viele Grüße

Mark

0 Kudos

Vielen Dank für diesen Thread, er hat uns bei der Lösung eines ähnlichen Problems geholfen.

Wir hatten einen angepassten URL Creator sowohl in Länderprojekten als auch im zentralen Remote Medien Projekt bei den Generierungsaufträgen eingestellt.

- Die lokalen Links in den Länderprojekten stimmten alle.

- Die Remote Medien wurden wie gewünscht in die Verzeichnisse geschrieben

- Nur die Links aus den Länderprojekten auf die Remote Meden ignorierten unseren angepassten URL Creator

Nachdem über das obige Skript das "setUrlCreator" ausgeführt wurde, hat es gepasst.

Aber nun fragen wir uns: Lässt sich dies nur über die API einstellen oder haben wir etwas im ServerManager übersehen (FS 5.1.507.70194)?

0 Kudos

Hallo René,

so weit ich weiß, geht das persistente Speichern der Remote-Konfiguration nur über die API.

Viele Grüße

Mark

0 Kudos