2009년 9월 14일 월요일

[freemarker] readme.ftl テンプレートを使って [Template]

readme.ftl テンプレートを使って [Template]

Alfrescoには、スペースにreadme.htmlをいれておくと、
その内容をカスタム表示してくれるテンプレートが用意されています。


(1)readme.ftlの内容

<#-- Displays the contents of readme.html and/or the evaluated readme.ftl
                 if they exist in the current space. -->
 
<#assign htmlFilename = "readme.html"/>
<#assign ftlFilename = "readme.ftl"/>
 
<#if space?exists>
    <#if space.childByNamePath["${htmlFilename}"]?exists>
        ${space.childByNamePath[htmlFilename].content}
    </#if>
    <#if space.childByNamePath["${ftlFilename}"]?exists>
        <#include space.childByNamePath["${ftlFilename}"].nodeRef>
    </#if>
</#if>

(2)readme.html

<html>
<head>
<title>readme</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<h4>**User&Group**</h4>
<table border="1">
 <tr>
  <td>No.</td>
  <td>機能</td>

  <td>呼出html</td>
  <td>Javascript</td>
  <td>データファイル名</td>
  <td>log 又は list ファイル名</td>
 </tr>
 <tr>
  <td>1</td>

  <td>ユーザー作成</td>
  <td>create_user.html</td>
  <td>create_user.js</td>
  <td>user_data.csv</td>
  <td>create_user_log.txt</td>
 </tr>

 <tr>
  <td>2</td>
  <td>グループ作成</td>
  <td>create_group.html</td>
  <td>create_group.js</td>
  <td>group_UTF-8.csv</td>

  <td>create_group_log.txt</td>
 </tr>
 <tr>
  <td>3</td>
  <td>ユーザーをグループに登録</td>
  <td>addperson.html</td>
  <td>addperson.js</td>

  <td>user_data.csv</td>
  <td>addperson_log.txt</td>
 </tr>
 <tr>
  <td>4</td>
  <td>フォルダにグループとパーミッションをセット</td>
  <td>permission_set.html</td>

  <td>permission_set.js</td>
  <td>permission_data.csv</td>
  <td>permission_set_log.txt</td>
 </tr>
 <tr>
  <td>5</td>
  <td>フォルダのリストを取る</td>

  <td>folder_list.html</td>
  <td>folder_list.js</td>
  <td>&nbsp;</td>
  <td>folder_list.txt</td>
 </tr>
 <tr>
  <td>6</td>

  <td>グループと属するメンバーのリストを作成</td>
  <td>group_list.html</td>
  <td>group_list.js</td>
  <td>&nbsp;</td>
  <td>group_member_list.txt</td>
 </tr>
</table>
 <br>*注意*<br>

  &nbsp;&nbsp;&nbsp;&nbsp;1.データファイルはdataFolderに、
   scriptはprogramFolderにある。結果はloglistFolderにできる<br>
  &nbsp;&nbsp;&nbsp;&nbsp;2.実際に使用するときは、
   現在テスト用にしてあるフォルダ名などを変更する必要有り<br>
 </body>
</html>


(3)スペースにreadme.htmlをアップロードして、カスタム表示に
  readme.ftlテンプレートを適用すると、

readme.png

  となります。

(注)画面に表示されているJavascriptなどはテスト用に実際に作成したものです。
  呼び出しhtmlはアンカーをつければ、この画面から開くこともできます。


 nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:資格・学び

コンテナ数・ドキュメント数を表示するテンプレート [Template]

スペースのコンテナ数(サブフォルダ数)とドキュメント数を表示する
テンプレートを作成しました。

(あるスペースの下の階層の全サブフォルダ・全ドキュメントの名前と数を調べる
      必要に迫られてJavascriptを作った時に使用したものの一部です)

(1)count02.ftl を作成
 Company Home>Data Dictionary> Presentation Templates スペースにアップロード

<b>${space.name} children count: ${space.children?size}</b><br>
<#assign countC = 0>
<#assign countD = 0>
<#assign countR = 0>
   <#list space.children as child>
      <#if child.isContainer>
             <#assign countC = countC + 1>
   <#elseif child.isDocument>
             <#assign countD = countD + 1>
      <#else>      
             <#assign countR = countR + 1>
             <#assign othername = child.name>
      </#if>
   </#list>
 ${space.name} children Container count: ${countC}<br>
 ${space.name} children Document count: ${countD}<br>
 ${space.name} children ruleFolder count: ${countR}<br>

 

(2)MyHomeのカスタム表示に、そのテンプレートを適用する

countftl04.png

countftl01.png

(注)このテンプレートでは、スペース直下のフォルダ数ドキュメント数しか表示されません。


 nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:資格・学び

バージョン履歴 [Template]

Alfrescoではコンテンツのバージョン管理ができる

(バージョンのつけ方の説明は後日にゆずる
 前回テンプレートのことを書いたので、バージョンの履歴をテンプレートで表示してみる)

(1) version を表示するテンプレートをつくり
        Company Home > Data Dictionary > Presentation Templates スペースにアップロードする

  http://wiki.alfresco.com/wiki/FreeMarker_Template_Cookbook を参考にしてテンプレート作成

(2) webclient から見ると

version02.gif


**** とても便利な機能です。


メールのテンプレートを日本語化 [Template]

2009/05/20 メールのテンプレートを日本語化

(1)Alfrescoではwebclientのアクション・JavaScript・workflowなどいろいろな場面から
  メールを出すことができる。
    Company Home > Data Dictionary > Email Templates スペースに
    そのためのメールテンプレートが用意されている。

  今回はそれを日本語化したものを作ってみた。
  それを上記スペースにアップロードしておけば、利用時に選択できる。

mail_ftl.jpg

(2) invite_user_email.ftl ---->  invite_user_emai_ja.ftl

**テンプレートの内容**

あなたは、スペース '${space.name}' に招待されました。
招待したのは '${person.properties.firstName}<#if person.properties.lastName?exists>

${person.properties.lastName}</#if>'.

権限は the role of: ${role} です。

スペースへのリンク:
<#assign ref=space.nodeRef>
<#assign workspace=ref[0..ref?index_of("://")-1]>
<#assign storenode=ref[ref?index_of("://")+3..]>
http://yourserver:8080/alfresco/navigate/browse/${workspace}/${storenode}

お知らせでした。

Alfresco


(3) notify_user_email.ftl ----->  notify_user_email_ja.ftl

**テンプレートの内容**

新しい投稿 '${document.name}'が、スペース'${space.name}' に届きました。
届けたのは '${person.properties.firstName}<#if person.properties.lastName?exists>

${person.properties.lastName}</#if>'.

ドキュメントへのリンク:
http://yourserver:8080/alfresco${document.url}

スペースへのリンク:
<#assign ref=space.nodeRef>
<#assign workspace=ref[0..ref?index_of("://")-1]>
<#assign storenode=ref[ref?index_of("://")+3..]>
http://yourserver:8080/alfresco/navigate/browse/${workspace}/${storenode}

お知らせでした。

Alfresco

(3) 利用例

mail_ftl_rei01.jpg

mail_ftl_rei02.jpg

(4) Alfresco では テンプレートとして freemarker がよく使用される
  参考URL       http://freemarker.org/
   マニュアルのURL  http://freemarker.org/docs/index.html

  (注意) ftl ファイルはテキストファイルだが、UTF-8で保存するこ

댓글 없음:

댓글 쓰기