これは驚くほど困難だったので、他の誰かが同じ問題を抱えている場合に私が行ったことを投稿すると思いました。
あなたは、単にそのようなあなたの株式-config.xmlの株-CONFIG-custom.xmlを更新することによって、この機能を提供することができ、ハッシュされたホームフォルダを使用していない場合:
<item type="link" id="repository">/repository#filter=path|/User%2520Homes/{userid}</item>
ただし、場合ハッシュされたホームフォルダを使用すると、状況が少し難しくなります。 XMLファイルを変更する代わりに、Webスクリプトを作成してユーザーのホームフォルダパスを取得し、共有テンプレートファイルを変更してリポジトリへのリンクを置き換えます。以下に、サンプルWebスクリプトとこれを行うために必要なテンプレートファイルの変更を示します。
hfp.get.desc.xml
<webscript>
<shortname>Home Folder Path</shortname>
<description>Description here.</description>
<format default="json">argument</format>
<url>/demo/get-home-folder-path</url>
<authentication>user</authentication>
</webscript>
hfp.get.js
このスクリプトは、ノードツリーを横断し、フォルダのパスを一緒に置きます。
var myPerson = person;//used people.getPerson("patrick.j.gillespie") for testing
var currentNode = myPerson.properties.homeFolder;
var myDir = currentNode.properties["{http://www.alfresco.org/model/content/1.0}name"];
var count = 0;
while (count < 100) { // prevent an infinite loop
currentNode = currentNode.parent;
if (currentNode === undefined || currentNode === null) {break;}
if (currentNode.properties === undefined) {break;}
myDir = currentNode.properties["{http://www.alfresco.org/model/content/1.0}name"] + "/" + myDir;
count++;
}
if (count === 100) { //something went wrong
myDir = "";
}
model.homeFolder = myDir;
hfp.get.json.ftl
{
"homeFolder": "${homeFolder}"
}
最後に、あなたは「共有/ WEB-INF /クラスにある "屋外-template.ftl" ファイルを、/変更する必要がありますalfresco/templates/org/alfresco/include "を参照してください。ファイルの下部に、以下のコードを追加します。上記のWebスクリプトを呼び出してホームフォルダのパスを取得し、リポジトリリンクをホームフォルダのリンクに更新します。
<script type="text/javascript">
var callback = {
success: function(res) {
var data = YAHOO.lang.JSON.parse(res.responseText);
var homeFolder = "";
var hfIndex = data.homeFolder.indexOf("/User Homes/");
if (hfIndex !== -1) {
homeFolder = data.homeFolder.substr(hfIndex+12);
}
var repoLinks = $("a[title='Repository']");
for (var ii = 0; ii < repoLinks.length; ii++) {
repoLinks.get(ii).href = "/share/page/repository#filter=path|/User%2520Homes/" + homeFolder;
}
}
};
var sUrl = Alfresco.constants.PROXY_URI + "demo/get-home-folder-path";
var postData = "";
var getData = "";
var request = YAHOO.util.Connect.asyncRequest('GET', sUrl+getData, callback, postData);
</script>
もっと良い方法があるかもしれませんが、見つけられませんでした。私はおそらく後でそれを改良するでしょう、そして、これはほとんどの場合、出発点として使用されるべきですが、誰かが同様の問題を抱えている場合に備えて私はそれを投稿したいと考えました。
私はこれが最終的に(クライアント側でリンクを動的に更新する)ことになると思います。 header-min.jsの "replaceUriTokens"はリンクが設定されているようです。しかし、それを変更することで、Alfrescoを更新する際に、ワームの蓋が開く可能性があります。また、私はまだホームフォルダのパスを取得する方法を見つける必要があります(おそらくAJAX呼び出しを介してカスタムWebスクリプトで)。私はこれについて少し考えなければならないでしょう。 – patorjk