rl_hartges
I'm new here

Manipulieren der UrlRegistry

Hallo Community,

Im Zuge der Generierung von URLs in FirstSpirit 5.0 mittels URL UrlFactory sind bei uns einige Fragen aufgekommen:

  1. Gibt es eine Möglichkeit die Inhalte der UrlRegistry auszulesen? Wo liegt diese "Datei"?
  2. Ist es möglich die UrlRegistry bei der Generierung "bewusst" zu beeinflussen, um z.B. alle Seiten auf die oberste Ebene im Dateisystem des Webservers zu deployen.
  3. Kann man einzelne Einträge in der UrlRegistry zurückzusetzten, beispielsweise für genau eine Strukturseite, ohne aber die sonstigen gespeicherten Inhalte zu löschen. Mir ist bisher nur die Funktion "Gespeicherte URLs zurücksetzten" bekannt.

Vielen Dank und viele Grüße

Moritz Hartges

0 Kudos
4 Replies
Peter_Jodeleit
Crownpeak employee

Auslesen geht über ContentProducer.getStoredUrl(..) bzw. über die Methoden von URLProperties. Über letztere kann man auch URLs setzen bzw. löschen.

[EDIT]

Fall zwei kann man durch die Implementierung einer UrlFactory bewerkstelligen.

Peter
0 Kudos

Ich habe eine Strukturseite angelegt. Bei der Generierung werden entsprechende Dateien in der korrekten Verzeichnisstruktur angelegt.

Nachdem ich die Seite in der Struktur verschoben habe, wird die Datei weiterhin an der gleichen Stelle generiert.

Wenn ich nun die URLs für diese Seite zurücksetze, wird nur 1 URL gelöscht. Das trotz mehrerer Sprachen und Ausgabekanäle.

urlProperties.setLock( true );

urlProperties.resetStoredUrls( node );

urlProperties.setLock( false );

Außerdem wird die Seite bei der Generierung immernoch an der alten Stelle abgelegt. Gleichen geschiet, wenn ich die URLs über "Extras" -> "Gespeicherte URLs zurücksetzen" lösche.

0 Kudos

Das hört sich nach einem Bug an. Bitte wende dich damit an unseren Helpdesk.

Peter
0 Kudos
dehaatbi
Returning Observer

Mit folgendem Skript kann man auch direkt die UrlRegistry bearbeiten. Habe es genutzt um einen blockierten Pfad zu befreien, es benötigt ein Formular mit dem Input Feld sc_url, indem dann der Pfad angegeben wird.

import de.espirit.firstspirit.agency.OperationAgent;

import de.espirit.firstspirit.ui.operations.RequestOperation;

import de.espirit.firstspirit.agency.UrlRegistryAgent;

formData = context.showForm();

url = formData.get(null, "sc_url").get();

ra = context.requireSpecialist(UrlRegistryAgent.TYPE);

urlRegistry = ra.getUrlRegistry();

usages = urlRegistry.getEntries(url);

for (usage: usages){

urlRegistry.deletPath(usage);

}

requestOperation = context.requireSpecialist(OperationAgent.TYPE).getOperation(RequestOperation.TYPE);

if (usages.size() == 0){

requestOperation.perform("Nothing found with this URL!");

}

else {

requestOperation.perform("Done! Removed "+usages.size()+" entries.");

}

0 Kudos