Alfresco中的电子邮件模板更改

时间:2016-04-03 16:57:00

标签: alfresco alfresco-share alfresco-webscripts

我正在尝试编辑发送给任务受理人的电子邮件task-edit的链接。我在文件wf-emails.html.ftl中看到,但在Alfresco管理员帐户中的Data Dictionary -> Email Templates -> Workflow Notification中。如何通过Alfresco的模块编辑此文件(例如,在放大器中的一体机)...

我放入了

  

模块-context.xml中

  <bean id="customSpacesBootstrap" parent="spacesStoreImporter" singleton="true" >
        <property name="useExistingStore">
            <value>true</value>
        </property>
        <property name="bootstrapViews">
            <list>
                <props>
                    <prop key="path">/${spaces.company_home.childname}/${spaces.dictionary.childname}/${spaces.templates.email.childname}</prop>
                    <prop key="location">alfresco/module/repo-amp/bootstrap/config_email_templates.xml</prop>
                </props>
            </list>
        </property>
    </bean>
  

config_email_templates.xml

<view:view xmlns:view="http://www.alfresco.org/view/repository/1.0"
           xmlns:cm="http://www.alfresco.org/model/content/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0"
           xmlns:emailserver="http://www.alfresco.org/model/emailserver/1.0">

    <cm:folder view:childName="cm:My First Folder">
        <app:uifacets />
        <cm:name>My First Folder</cm:name>
        <app:icon>space-icon-default</app:icon>
        <cm:title>My First Folder</cm:title>
        <cm:description></cm:description>
        <cm:contains>
            <cm:content view:childName="cm:custom_email_template.ftl">
                <view:aspects>
                    <cm:titled />
                    <cm:author />
                    <app:inlineeditable />
                </view:aspects>
                <view:properties>
                    <app:editInline>true</app:editInline>
                    <cm:description>This is a custom email template.</cm:description>
                    <cm:content>contentUrl=classpath:alfresco/module/repo-amp/bootstrap/custom_email_template.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_</cm:content>
                    <cm:title>My first email template</cm:title>
                    <cm:author>Me</cm:author>
                    <cm:name>custom_email_template.ftl</cm:name>
                </view:properties>
                <view:associations></view:associations>
            </cm:content>
        </cm:contains>
    </cm:folder>
</view:view>

并在

  

custom_email_templates.ftl

我把模板用于编辑。 但电子邮件没有编辑。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

来自Alfresco documentation

  

XML导入只能替换/更新/删除已设置UUID的文件。

如果您想要替换现有节点,则必须更多地了解import strategy

<bean id="myModule.bootstrap" class="org.alfresco.repo.module.ImporterModuleComponent"  parent="module.baseComponent">
    <property name="uuidBinding">
        <value>REPLACE_EXISTING</value>
    </property>

...

当然,您需要知道要替换的文件的 uuid

<view:properties>
    <sys:node-uuid>b7c6b88a-e5fd-4ccf-b134-69a2460c3b89</sys:node-uuid>
....

答案 1 :(得分:0)

下面: Alfresco Login Reset Repo AMP https://github.com/teqnology/alfresco-login-reset-repo

您将找到有关如何添加自定义电子邮件模板的源代码示例。 更具体地说,电子邮件模板位于名为的文件中: alfresco-email-template-bootstrap.acp

最后,这里是文件service-context.xml,其中包含有关如何导入自定义acp的此类引导程序文件的信息(其中包含您的自定义电子邮件模板)。 &#39; 希望这可以帮助。 欢呼声。

长话短说,您应该在您的maven项目中进行此设置:

  • 您的电子邮件模板打包为acp(您可以使用旧的Alfrecso Explorer界面导出您的ftl模板):src/main/amp/config/alfresco/bootstrap/emailtemplate.acp
  • 您的service-context.xml文件声明此处的acp文件的引导导入:src/main/amp/config/alfresco/module/<yourmoduleid>/context/service-context.xml

从那里你可以通过Alfresco JS API自由使用它,例如:

  var mailTemplates = search.xpathSearch("/app:company_home/app:dictionary/app:email_templates/cm:custom-email-template/cm:youremailtemplate.ftl");
 if(mailTemplates.length > 0){
   mail.parameters.template = mailTemplates[0];
 }else{
    mail.parameters.text = "Rollback to plain text if template is not found";
 }