Eintrag zu Globale Einstellungen -> URL-Einstellungen -> SEO-URLs hinzufügen
Hallo,
wenn ich eine StoredUrl auf einem Element via
URLProperties.setStoredUrl(url, element, language, templateSet, null)
setze, wird diese korrekt gespeichert. Allerdings erscheint die Seitenreferenz dann nicht in der Liste im SiteArchitect unter Globale Einstellungen -> URL-Einstellungen -> SEO-URLs.
Ich habe in der API-Dokumentation auch nach längerem Suchen nicht gefunden wie das gehen könnte. So fehlt uns aber die Übersicht welche Seiten eine SEO-URL gesetzt haben.
Weiß jemand wie man den Eintrag dort via API hinzugefügt bekommt?
Dane und viele Grüße
Fabian
-
Hallo Fabian,
kann es sein, dass es ein Caching Problem ist?
Wenn Du den SiteArchitect nach dem Speichern nochmals öffnest, geht es dann?
Und wenn nicht, sind die URLs nach einem Neustart des FirstSpirit Servers da? [bzw. nachdem das Projekt 30min nicht genutzt wurde bzw. über den RepositoryViewer zurückgesetzt wurde]Wenn es ein Caching Problem ist und das für Euch problematisch ist, stell bitte ein Ticket ein beim Customer Support ein.
Zwei allgemeine Anmerkungen zu SEO URLs (die wahrscheinlich nicht weiterhelfen):
Im Dialog ALT-P (Karteikarte gespeicherte URLs) im SiteArchitect sollten immer die korrekten URLs angezeigt werden
Im ContentCreator (Navigation oben links über das Hamburger Menü und dann das Kontextmenü des Knotens über die drei Punkte) sollten ebenfalls immer die korrekten URLs angezeigt werden. (für diese Funktionalität muss aber im ServerManager im Projekt die Projekt-Komponente "CXT Content Creator: URL Configuration ProjectApp" hinzugefügt und konfiguriert werden)Viele Grüße,
Holger0 -
Hallo Holger,
vielen Dank für deine ausführliche Antwort und Erklärungen.
Ich habe noch ein bisschen weiter getestet und es scheint mir kein Cache-Problem zu sein.
Was ich mich grundsätzlich frage, ist, ob die API-Methode
URLProperties.setStoredUrl(url, element, language, templateSet, null)
grundsätzlich ausreicht, eine URL als SEO-URL zu hinterlegen.
Wenn ich eine SEO-URL über die GUI hinzufüge (egal ob SiteArchitect oder ContentCreator) wird diese direkt in der Übersicht im SiteArchitect unter Globale Einstellungen -> URL-Einstellungen -> SEO-URLs angezeigt.
Außerdem wird Sie auch direkt der Ausgabe von
context.requireSpecialist(de.espirit.firstspirit.agency.UrlAgent.TYPE).getSEOUrls()
hinzugefügt. Bei einem Setzen der StoredUrl über die API erscheint sie dort auch nicht.
Daher frage ich mich, ob ich das Konzept mit den storedUrls/SEO-URLs richtig verstanden habe.
Viele Grüße
Fabian0 -
Hallo Fabian,
ich habe es nun lokal ausprobiert und hier funktioniert es. Da mir nicht bewusst ist, dass es in letzter Zeit an dieser Stelle einen Bugfix gab, nehme ich an, dass irgendetwas in deinem Skript fehlt (z.B. das Speichern der URLProperties nach dem Setzen der URL?)
Sicherheitshalber hier mein Testskript, mit dem ich verschiedene URLs für meine Test-Seitenreferenz gesetzt habe (UID "test"):
import de.espirit.firstspirit.agency.StoreAgent;
import de.espirit.firstspirit.agency.StoreElementAgent;
import de.espirit.firstspirit.access.store.globalstore.URLProperties;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.sitestore.PageRef;
storeAgent = context.requestSpecialist(StoreAgent.TYPE);
storeElementAgent = context.requestSpecialist(StoreElementAgent.TYPE);
templateset = context.project.templateSets.get(0);
language = context.project.languages.get(0);
urlProperties = storeAgent.getStore(Store.Type.GLOBALSTORE).getChildren(URLProperties.class).getFirst();
element = storeElementAgent.loadStoreElement("test",PageRef.UID_TYPE,false);
urlProperties.setLock(true);
urlProperties.setStoredUrl("/testurl/",element,language,templateset,null);
urlProperties.save("stored test url");
urlProperties.setLock(false);Kannst Du anhand dieses Testskriptes es auch bei Dir zum Laufen bringen? (einfach bei der Definition von element eine gültige UID einer PageRef eingeben oder alternativ eine Pageref mit der UID "test" anlegen)
Viele Grüße,
Holger0 -
Hallo Holger,
VIELEN DANK!
Das ist mir jetzt unangenehm, aber ich habe tatsächlich nicht daran gedacht, die URLProperties zu speichern nach dem Setzen der URL. Bin ich überhaupt nicht drauf gekommen.Mit deinem Testskript konnte ich jetzt erfolgreich URLs setzen und sie erscheinen dann auch wie erwartet in der Übersicht.
Viele Grüße
FabianP.S.: Ich finde es wirklich klasse, dass es jetzt (wieder) die Möglichkeit gibt, hier in der Community Fragen zu stellen und von euch Antworten zu bekommen. Oft braucht man ja nur einen Denkanstoß oder einen Beispielcode, um mit einem Problem weiter zu kommen.
0
Please sign in to leave a comment.
Comments
4 comments