1

Alfresco Share は、そのインターフェイスの外部で変更されたコンテンツを追跡しないため、最近変更された RSS/Dashlet が役に立たなくなります。最近変更されたアイテムのリストを取得するためにサイト内で使用できる RSS の作成に取り組んでいます。

現在、ファイルのリストを取得する作業を行っているところですが、Webscript にあまり慣れていないため、少しつまずいています。サイトのコンテンツを取得してからファイルの配列を作成するこのコードを手に入れました。私が直面している問題は、多くのサブフォルダーが存在する可能性があり、それらを適切にトラバースする方法がわからないことです。

var folder = companyhome.childByNamePath("/Sites/foo/documentLibrary");

var docs = new Array();

print(folder);
print("iterating...");
var children = folder.children;
for (i=0; i<children.length; i++)
{
  var c = children[i];
  if (c.isContainer)
  {
    print(c.name + " is a folder, traversing...");
    var subfolder = companyhome.childByNamePath("/Sites/foo/documentLibrary/" + c.name.toString());
    var subchildren = subfolder.children;
    for (j=0; j<subchildren.length; j++)
    {
      var d = subchildren[j];
      if (d.isDocument) docs.push(d);
    }
  }
  if (c.isDocument) docs.push(c);
}

print(docs);

最後に、変更された時刻で並べ替えてから、プレゼンテーション用に切り刻みます。コンテンツを取得するのは難しい部分であるという前提で操作しています:)

4

2 に答える 2

0

実際には非常に簡単です。docsummary dashlet/js ファイル (Recently Modified Dashlet) のコードを見ると、起動していることがわかります。

slingshot/doclib/doclist/documents/site/" + Alfresco.constants.SITE + "/documentLibrary?max=50

したがって、必要なのは、利用可能なサイトのリストだけであり、listSites(nameFilter, sitePresetFilter)のサービスがあるということです。

すべてのサイトを返すlistSites(null, null)を使用できます。したがって、サイトをループして Web スクリプトを起動するだけです。

于 2013-06-05T14:28:52.180 に答える