Hallo zusammen,
ich habe ein Skript geschrieben, das für zwei Felder in den Metadaten je eine speziellen String berechnet und diese dann dort speichern soll. Die Strings werden entsprechend berechnet und auch den Feldern zugewiese. Vor dem Speichern zeigt mir storeElement.getMeta() die Werte der Felder korrekt an. Dann speichere ich mit storeElement.save("Zähler URL hinzugefügt") und dann sind die gesetzten Strings wieder weg, wenn ich direkt danach noch einmal storeElement.getMeta() aufrufe.
Woran kann das liegen?
Das Skript sieht derzeit so aus:
//!Beanshell
import de.espirit.firstspirit.access.store.sitestore.PageRef;
import de.espirit.firstspirit.access.store.IDProvider;
import de.espirit.firstspirit.access.store.LockException;
import de.espirit.firstspirit.common.gui.CMSDialog;
CMSDialog.showInfoDialog("Debug: Start");
storeElement = context.getStoreElement();
if(storeElement instanceof PageRef) {
sElementStatus = storeElement.getReleaseStatus();
CMSDialog.showInfoDialog("Debug: Release-Status: " + storeElement.getReleaseStatus());
try {//Element sperren
storeElement.setLock(true, false);
if(storeElement.hasMeta()){
if(storeElement.isStartNode()){
uidPath= storeElement.getUid() + ".index";
}else{
uidPath= storeElement.getUid();
}
String urlPathDe = storeElement.getMeta().get("md_url_de").getEditor().value;
String urlPathEn = storeElement.getMeta().get("md_url_en").getEditor().value;
if(urlPathDe != null && urlPathEn != null ){
urlPathDe = urlPathDe.replace("/",".").replace("-","_").trim();
urlPathEn = urlPathEn.replace("/",".").replace("-","_").trim();
//default speichern
uidPathDe = urlPathDe +"." +uidPath;
storeElement.getMeta().get("md_sstatcounter_default_de").getEditor().value = "content.de" +uidPathDe;
//CMSDialog.showInfoDialog("DE_url" +storeElement.getMeta().get("md_sstatcounter_default_de").getEditor().value);
//englisch speichern
uidPathEn = urlPathEn +"." +uidPath;
storeElement.getMeta().get("md_sstatcounter_default_en").getEditor().value = "content.en" +uidPathEn;
//CMSDialog.showInfoDialog("EN_url" +storeElement.getMeta().get("md_sstatcounter_default_de").getEditor().value);
CMSDialog.showInfoDialog("Meta vor dem speichern: " +storeElement.getMeta());
}else{
CMSDialog.showInfoDialog("Bitte überprüfen Sie in den Metadaten die Suchmaschinen-Optimierung. Ggf. ist hier kein Wert gesetzt!");
return false;
}
//CMSDialog.showInfoDialog("isLockSupported(): "+ storeElement.isLockSupported());
storeElement.save();
CMSDialog.showInfoDialog("Meta nach dem Speichern: " +storeElement.getMeta());
if(sElementStatus == 0){
storeElement.release();
}
storeElement.setLock(false, false);
}else{
CMSDialog.showInfoDialog("Bitte überprüfen Sie in den Metadaten die Suchmaschinen-Optimierung. Ggf. ist hier kein Wert gesetzt!");
return false;
}
} catch (LockException e) {
CMSDialog.showInfoDialog(e.toString());
context.logInfo("Fehler, Objekt ist keine Seite!");
context.logInfo("=== Ende setzen des default SiteStat Counters ===");
return false;
}
}else{
context.logInfo("Fehler, Objekt ist keine Seite!");
context.logInfo("=== Ende setzen des default SiteStat Counters ===");
return false;
}
Viele Grüße
René Zoller