Search the FirstSpirit Knowledge Base
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
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()).
Dafür muss in der Remote-Konfiguration die zu verwendende URL-Strategie konfiguriert werden: setUrlCreator(..)
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
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()).
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
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)?
Hallo René,
so weit ich weiß, geht das persistente Speichern der Remote-Konfiguration nur über die API.
Viele Grüße
Mark