0

私はマグノリアcmsを学んでいます。リソース モジュールを使用しようとしています。私は実際に2つの問題を抱えています。

  1. 大量のファイルをアップロードできません。いくつかのファイルがありますが、しばらくするとさらにアップロードする必要があります。モジュールのインポート機能で、xml ファイルをアップロードする必要があります。しかし、それを正しく生成する方法がわかりません。JCR 経由でインポートしようとしましたが、その後、リソース アプリでそれらのファイルが表示されません。ファイル システム内のファイルを検索するようにモジュールを構成しようとしました: fileSystemLoader をクラス info.magnolia.module.resources.loaders.FileSystemResourceLoader に設定し、いくつかのパスを設定しました。私にとってもうまくいきませんでした。たぶん、ファイルのアップロード機能をいつアクティブにする必要があるのか​​ わかりません。アプリケーションの起動時に機能しませんでした。

  2. テンプレートでこれらのリソースを適切に使用するにはどうすればよいですか? どの ftl タグを使用すればよいですか?

STK モジュールは使用しません。

あなたが私を助けることに決めたら、あなたの忍耐に感謝します.

マグノリア バージョン: 5.2 CE

JDK アイスティー: 1.7.0_51

OS: Linux/OpenSUSE 12.3

4

1 に答える 1

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'
于 2014-02-18T20:16:43.147 に答える