UrlFactory für eigene Such-Anwendung
Author: arkaetsc
Publication Date: 2/18/2014 12:04
Hallo zusammen,
ich versuchen gerade eine UrlFactory zu erstellen, um Inhalte (Seiten) als JSON unserer Such-Anwendung zur Verfügung zu stellen.
Gewünscht ist es die JSON-Dateien "flach" in einen Ordner zu legen und als Dateinamen die UID der jeweiligen Inhalts-Seite zu verwenden.
Im Forum konnte ich dazu folgenden Thread mit sehr ähnlichen Anforderungen finden https://community.e-spirit.com/message/13519, leider ohne Lösung.
Aktuell verwenden wir die FirstSpirit Version 5.0.424.
Ich habe testweise versucht die Demo UrlFactory aus der Dokumentation in ein bestehendes Modul einzubinden, leider ohne Erfolg.
Bei der Generierung kann die Factory zwar für die Pfaderzeugung ausgewählt werden, sie hat aber keinen Einfluss auf die Erzeugten Dateien.
Ich hatte erwartet, das mit der Factory jede Datei den Namen "23032.json" bekommt.
Habe ich vielleicht einen Fehler beim Einbinden oder beim bauen des Moduls gemacht?
Vielleicht hat jemand einen Tipp für mich, komme irgendwie nicht weiter.
module.xml
<!DOCTYPE module SYSTEM "lib/module.dtd">
<module>
<name>FirstSpirit Test-Module</name>
<version>5.0.210.55494_87</version>
<description>FS5 Module</description>
<vendor>Test</vendor>
<components>
<library>
<name>XML Meta-Data Creator</name>
<description>Creates an XML structure with meta data.</description>
<resources>
<resource>lib/test-firstspirit.jar</resource>
<resource>lib/stax-api-1.0.1.jar</resource>
</resources>
</library>
<public>
<name>Search URLs Creator</name>
<class>de.espirit.firstspirit.generate.UrlCreatorSpecification</class>
<configuration>
<UrlFactory>de.test.firstspirit.search.SearchUrlFactory</UrlFactory>
</configuration>
</public>
</components>
</module>
SearchUrlFactory.java (Code aus der Demo-UrlFactory mit abgeänderten Werten bei "getUrl" für die Variablen "name" und "extension")
/** * Search engine-optimized path factory. */
public class SearchUrlFactory implements UrlFactory {
private PathLookup _pathLookup;
private boolean _useWelcomeFilenames;
/**
* Initialize fields based on various settings and a {@link PathLookup} object.
* @param settings Settings provided in module.xml file in section {@code ..}.
* The key is the tag name (converted to lower case), value is the text child node. E.g. {@code value}.
* @param pathLookup Path lookup for user defined paths.
*/
@Override
public void init(final Map settings, final PathLookup pathLookup) {
_pathLookup = pathLookup;
final String useWelcomeFilenames = settings.get("usewelcomefilenames");
_useWelcomeFilenames = useWelcomeFilenames == null || "yes".equalsIgnoreCase(useWelcomeFilenames) || "true".equalsIgnoreCase(useWelcomeFilenames);
}
/**
* Build the URL for a content-producing store element.
* @param contentProducer A store element.
* @param templateSet The target template set.
* @param language The target language.
* @param pageParams Page parameters, used for content projection, etc.
* @return The URL for the {@code contentProducer}, based on target template, target language and optional page parameters.
*/
@Override
public String getUrl(final ContentProducer contentProducer, final TemplateSet templateSet, final Language language, final PageParams pageParams) {
final String name = "23032"; // testValue getName(contentProducer, templateSet, language, pageParams);
final String extension = "json"; // testValue contentProducer.getExtension(templateSet);
int len = name.length();
if (!extension.isEmpty()) {
len += extension.length();
len ++; // for dot
[...]
Viele Grüße
Alex
Tags: generierung, module_development, url, urlfactory
-
Author: Peter_Jodeleit - 2/18/2014 13:04
Ergänze mal im Abschnitt "<configuration>" dieses Fragment: <UseRegistry>no</UseRegistry>
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire