我有文檔類型,其中包含「動態下拉」字段,我想用一些動態數據填充它。我無法弄清楚如何去做(找不到任何足夠的信息,文件,關於這方面的例子)。從我發現我能夠做以下的事情鏈接:
1)我已經創建的服務稱爲SitemapValueListProvider在/河馬:配置/河馬:前端/ CMS/CMS服務,具有以下特性:
plugin.class = com.test.cms.components.SitemapService
valuelist.provider = service.valuelist.custom如何用動態值填寫Hippo CMS中的動態下拉菜單?
2)在CMS項目創建的類com.test.cms.components.SitemapService
public class SitemapService extends Plugin implements IValueListProvider {
private final static String CONFIG_SOURCE = "source";
public SitemapService(IPluginContext context, IPluginConfig config) {
super(context, config);
String name = config.getString(IValueListProvider.SERVICE, "service.valuelist.custom");
context.registerService(this, name);
}
@Override
public ValueList getValueList(String name, Locale locale) {
ValueList valuelist = new ValueList();
if ((name == null) || (name.equals(""))) {
System.out.println("No node name (uuid or path) configured, returning empty value list");
} else {
valuelist.add(new ListItem("custom4", "Custom Value 4"));
valuelist.add(new ListItem("custom5", "Custom Value 5"));
valuelist.add(new ListItem("custom6", "Custom Value 6"));
}
return valuelist;
}
@Override
public List<String> getValueListNames() {
List<String> list = new ArrayList<>(1);
list.add("values");
return list;
}
@Override
public ValueList getValueList(IPluginConfig config) {
if (config == null) {
throw new IllegalArgumentException("Argument 'config' may not be null");
}
return getValueList(config.getString(CONFIG_SOURCE));
}
@Override
public ValueList getValueList(String name) {
return getValueList(name, null/*locale*/);
}
}
3)在CMS項目創建的類com.test.cms.components.TestPlugin
public class TestPlugin extends Plugin{
public TestPlugin(IPluginContext context, IPluginConfig config) {
super(context, config);
context.registerService(this, "service.valuelist.custom");
}
}
4)對於現場/河馬:命名空間/ CMS/TestItem /編輯:文件類型的模板/ _default_/dynamicdropdown只要下列性質:(使用控制檯)
plugin.class = com.test.cms.components.TestPlugin
但仍無法動態地獲得數據。完全沒有任何反應。
我正在使用HippoCMS 10社區版
謝謝!我已啓用額外的日誌記錄,現在我有下一個日誌:
[AbstractRepeater.onBeforeRender:134]中繼器的子組件org.apache.wicket .markup.repeater.RepeatingView:selectDropdownItem有一個非安全的子級id dropdownListViewItem- 0。安全的兒童標識符只能由數字組成。 – Nur4I