我以前使用的(在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'
來源
2014-02-18 20:16:43
Jan
謝謝。現在我已經學會了將這些文件存儲在模塊中。我認爲這是一個很好的解決方案,因爲頁面模板也存儲在模塊中。我將在稍後嘗試此腳本。 – Pavel
什麼是在模板中使用這些資源的最佳方式。有沒有解決上下文路徑等問題的API?我的意思是玉蘭api。我已經看到gsp中的一些很好的功能,它檢查路徑解析之前資源是否存在。 – Pavel
$ {cmsfn.link(yourResource)}應該爲您提供包含上下文路徑的相對或絕對鏈接。 TemplatingFunctions的所有方法都通過cmsfn暴露http://nexus.magnolia-cms.com/content/sites/magnolia.public.sites/ref/5.2.2/apidocs/index.html?info/magnolia/templating/functions/ TemplatingFunctions.html – Jan