2014-02-16 52 views
0

我在學玉蘭cms。我正在嘗試使用資源模塊。我其實有兩個問題。白玉蘭cms:資源模塊正確使用

  1. 無法上傳一堆文件。我有幾個文件,但在一段時間內,我將不得不再上傳一些文件。模塊導入功能要我上傳一個XML文件。但我不知道如何正確生成它。試圖通過JCR導入,但之後我無法在資源應用程序中看到這些文件。試圖將模塊配置爲在文件系統中搜索文件:我將fileSystemLoader設置爲info.magnolia.module.resources.loaders.FileSystemResourceLoader類並設置了一些路徑。它也不適用於我。也許我只是不明白應該在什麼時候啓動文件上傳功能。在應用程序啓動時,它不起作用。

  2. 如何在我的模板中正確使用這些資源?我應該使用什麼樣的ftl標籤?

我不使用STK模塊。

感謝您的耐心,如果您決定幫助我。

玉蘭版本:5.2 CE

JDK冰茶:1.7.0_51

操作系統:Linux/openSUSE當中12.3

回答

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' 
+0

謝謝。現在我已經學會了將這些文件存儲在模塊中。我認爲這是一個很好的解決方案,因爲頁面模板也存儲在模塊中。我將在稍後嘗試此腳本。 – Pavel

+0

什麼是在模板中使用這些資源的最佳方式。有沒有解決上下文路徑等問題的API?我的意思是玉蘭api。我已經看到gsp中的一些很好的功能,它檢查路徑解析之前資源是否存在。 – Pavel

+0

$ {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