我的文档类型包含“动态下拉”字段,我想用一些动态数据填充它。我无法弄清楚如何做到这一点(找不到任何足够的信息,文档,关于此的例子)。从我发现的链接中我能够做到以下事情:
1)我在 / hippo:configuration / hippo:frontend / cms / cms-services 中创建了名为 SitemapValueListProvider 的服务,具有以下属性:
plugin.class = com.test.cms.components.SitemapService
valuelist.provider = service.valuelist.custom
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)对于提供以下属性的字段 / hippo:namespaces / cms / TestItem / editor:templates / _default_ / dynamicdropdown 文件类型:(使用控制台)
plugin.class = com.test.cms.components.TestPlugin
但仍然无法动态获取数据。什么都没发生。
我正在使用HippoCMS 10社区版
答案 0 :(得分:0)
你完全走在正确的轨道上,我无法发现任何明显的原因导致这种情况无效。你能仔细检查一下吗?
HTH。