我正在学习玉兰花。我正在尝试使用资源模块。我实际上有两个问题。
无法上传一堆文件。我有一些文件,但在一段时间内我将不得不上传更多文件。模块导入功能要我上传一个xml文件。但我不知道如何正确生成它。试图通过JCR导入,但之后我无法在资源应用程序中看到这些文件。试图配置模块来搜索文件系统中的文件:我将fileSystemLoader设置为类info.magnolia.module.resources.loaders.FileSystemResourceLoader并设置一些路径。它也不适合我。也许我只是不明白应该在什么时候激活文件上传功能。在应用程序启动时,它不起作用。
如何在我的模板中正确使用这些资源?我应该使用什么ftl标签?
我不使用STK模块。
如果您决定帮助我,请感谢您的耐心等待。
Magnolia版本:5.2 CE
JDK冰茶:1.7.0_51
操作系统:Linux / OpenSUSE 12.3
答案 0 :(得分:2)
我之前使用(在4.5.x上)脚本通过groovy模块执行任务。它也适用于5.2。
import static groovy.io.FileType.FILES
import info.magnolia.jcr.util.NodeUtil
import org.apache.commons.lang.StringUtils
import info.magnolia.cms.util.ContentUtil
class Globals {
static def folderName = '//some/folder/in/filesystem/on/server'
}
def loadImageFolder() {
session = ctx.getJCRSession("resources")
parentFolder = session.getNode("/templating-kit/jelinek-image/obrazky-produkty")
new File(Globals.folderName).eachFileRecurse(FILES) {
name = it.name
// set file name
extension = StringUtils.substringAfterLast(name, '.')
name = StringUtils.substringBeforeLast(name, '.')
// persist
resource = NodeUtil.createPath(parentFolder,name , "mgnl:content")
// persistResource
resource.setProperty("mgnl:template", "resources:binary")
resource.setProperty("extension", extension)
binary = resource.addNode("binary", "mgnl:resource")
binary.setProperty("jcr:data", new FileInputStream(it.absolutePath))
binary.setProperty("extension", extension)
binary.setProperty("fileName", name)
binary.setProperty("jcr:mimeType", "image/"+extension)
binary.setProperty("size", it.length())
}
session.save()
}
loadImageFolder()
return 'done'