Alfresco:定义新的控制参数

2024-03-07

我正在开发一个自定义表单控件,需要定义一个名为字符串类型的新控制参数helptext。我了解如何在我的 share-config-custom 中调用它,如何在我的自定义表单控件中使用它,但不知道如何最初声明它。

我看到其他控制参数使用以下格式field.control.params.${param},但无法找到其中任何一个的定义位置。对现有控制参数的文件搜索会返回数十个文件。

在使用控制参数之前,在哪里以及如何声明它们?

编辑:收到一些好的答案后,我仍然遇到同样的错误。下面是我的代码摘录:

共享配置自定义

<set appearance="title" label-id="Opportunity Registration Form" id="info"/>
<field set="info" label-id="Program Name" id="orpWorkflow:programName">
  <control template="/org/alfresco/components/form/controls/textfieldcustom.ftl">
    <control-param name="helptext">"Help text goes here."</control-param>
  </control>
</field>

文本字段自定义.ftl

<div class="form-field">
   <#if form.mode == "view">
      <div class="viewmode-field">
         <#if field.mandatory && !(field.value?is_number) && field.value == "">
            <span class="incomplete-warning"><img src="${url.context}/res/components/form/images/warning-16.png" title="${msg("form.field.incomplete")}" /><span>
         </#if>
         <span class="viewmode-label">${field.label?html}:</span>
         <#if field.control.params.activateLinks?? && field.control.params.activateLinks == "true">
            <#assign fieldValue=field.value?html?replace("((http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?\\^=%&:\\/~\\+#]*[\\w\\-\\@?\\^=%&\\/~\\+#])?)", "<a href=\"$1\" target=\"_blank\">$1</a>", "r")>
         <#else>
            <#if field.value?is_number>
               <#assign fieldValue=field.value?c>
            <#else>
               <#assign fieldValue=field.value?html>
            </#if>
         </#if>
         <span class="viewmode-value"><#if fieldValue == "">${msg("form.control.novalue")}<#else>${fieldValue}</#if></span>
      </div>
   <#else>
      <label for="${fieldHtmlId}">${field.label?html}:<#if field.mandatory><span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></#if></label>
      <input id="${fieldHtmlId}" name="${field.name}" tabindex="0"
             <#if field.control.params.password??>type="password"<#else>type="text"</#if>
             <#if field.control.params.styleClass??>class="${field.control.params.styleClass}"</#if>
             <#if field.control.params.style??>style="${field.control.params.style}"</#if>
             <#if field.value?is_number>value="${field.value?c}"<#else>value="${field.value?html}"</#if>
             <#if field.description??>title="${field.description}"</#if>
             <#if field.control.params.maxLength??>maxlength="${field.control.params.maxLength}"</#if> 
             <#if field.control.params.size??>size="${field.control.params.size}"</#if> 
             <#if field.disabled && !(field.control.params.forceEditable?? && field.control.params.forceEditable == "true")>disabled="true"</#if> />
      <@formLib.renderFieldHelp field=field />
	  <script type="text/javascript">//<![CDATA[
      (function()
      {
         new Alfresco.CustomYUIObject("${fieldHtmlId}").setOptions(
         {
            helpText:"${helpText}"
         }).setMessages(
            ${messages}
         );
      })();
      //]]></script>
	  <div class="format-info">
            <span class="date-format">${msg("${field.control.params.helpText}")}</span>
      </div>
   </#if>
</div>

错误信息

Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> helpText  [in template "org/alfresco/components/form/controls/textfieldcustom.ftl" at line 36, column 25]

您传递的变量在 FTL 文件中定义,该文件(FTL 文件)是从 share-config-custom.xml 引用的。让我们更深入地了解一下。

共享配置-custom.xml
这里我们声明控制参数。

 <field-visibility>
             <show id="fieldName"/>
 </field-visibility>
 <appearance>
     <field id="fieldName" label="Name of Field">
            <control template="/path/to/ftl/textarea.ftl" />    
                <control-param name="helpText">Description of field</control-param>
            </control>
     </field>

 </appearance>



你的自定义模板.ftl
这是你的参数第一次出现的位置

<script type="text/javascript">//<![CDATA[
      (function()
      {
         new Alfresco.CustomYUIObject("${fieldHtmlId}").setOptions(
         {
            helpTest:"${field.control.params['helpText']}",
         }).setMessages(
            ${messages}
         );
      })();
      //]]></script>

自定义YUIObject.js
您可以在组件上使用 javascript 执行某些操作。

(function() {
    var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event;
    var $html = Alfresco.util.encodeHTML;
    Alfresco.CustomYUIObject = function ExportDMSD_constructor(htmlId) {
        Alfresco.CustomYUIObject.superclass.constructor.call(this,
                "Alfresco.CustomYUIObject", htmlId, [ "button", "container",
                        "datasource", "datatable", "paginator", "history",
                        "animation" ]);
        return this;
    };
    YAHOO.extend(Alfresco.CustomYUIObject, Alfresco.component.Base);
    YAHOO.lang.augmentObject(Alfresco.CustomYUIObject.prototype, {
        options : {
         helpText:null
        },
        onReady : function ExportDMSD_onReady() {
            console.log(this.options.helpText);//Its the javascript place where you can access yout variable,register and event and do javascript things
        }
    });
})();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Alfresco:定义新的控制参数 的相关文章

  • 处理表单的最佳实践

    我想知道处理表单处理的最佳实践是什么 就我而言 我做了类似的事情 if the user hasn t submited the form 显示表格 else if there are form errors 显示错误 再次显示表格 els
  • (jQuery) 在 cookie 中单击时保存复选框状态

    关于此功能有很多主题 但我似乎无法让它工作 我在谷歌上搜索了这个具体案例 有一堆链接让我来到这里 但奇怪的是我似乎无法让它们工作 我所做的唯一工作如下 http dl dropbox com u 2238080 a old z htm ht
  • 如何通过 JavaScript 设置输入值?

    我有 id txt1 的输入字段 但我无法从 JavaScript 更改该值
  • Laravel 表单标签中内联“必需”星号

    我正在尝试为 Laravel 中的必填字段添加红色星号 但我不确定如何将它们添加到标签中 我目前正在做的是 Form label took act or sat Did you or will you take the SAT or ACT
  • 如何在 PHP、HTML 表单和 Javascript 之间传递布尔值

    我有一个 PHP 程序 它使用 HTML 表单并使用 JavaScript 进行验证 HTML 表单中有一个隐藏字段 其中包含一个布尔值 该值由 PHP 设置 由 JavaScript 在提交时进行验证 然后传递到另一个 PHP 页面 当我
  • 表单方法=“获取”漂亮的URL

    所以我使用这个 HTML 表单作为一个简单的搜索字段
  • 使用 Javascript 提交表单

    我的一些表单是用Javascript JQuery提交的 所以不会发生页面刷新 但我注意到我的两台计算机之间的浏览器存在奇怪的行为 在一台计算机 以及我测试过的所有浏览器 上 我的表单提交按预期执行 我的另一台电脑 Mac 时好时坏 我将提
  • 如何迭代视图的元素

    我有一个带有收音机 输入和按钮的视图 当我单击它时 我想检查所有输入是否包含信息 如何迭代活动中视图的元素并检查每个文本视图是否满足上述要求 谢谢 我在一些目前没有的代码中做了类似的事情 但从记忆中它应该是这样的 假设父视图 LinearL
  • 您可以强制 HTML 表单对相对 URL 使用 HTTPS 吗?

    我有一个网站 其中每个页面都通过 HTTPS 提供服务 在其中一个页面上 我有一个表单 其操作属性设置为相对 URL 包含表单的页面只能通过 HTTPS 访问 表单发布到的页面只能通过 HTTPS 访问 但在 IE 中 我收到一条安全警告
  • 当表单操作转到第三方网站时将数据传递到“谢谢”页面

    我有一个网络表单 它收集用户的邮政编码作为字段之一并将其发布到第三方网站
  • 在 Spring MVC 中使用一系列项目处理表单发布

    我正在尝试将一些数据从客户端发送到服务器 并将其处理为文件下载 我使用简单的 HTML 表单 因为我想初始化文件下载 而不是 AJAX 其中一个表单字段是一组项目 另外两个是名称和描述字符串 在提交表单之前 我将此字段序列化为字符串 JSO
  • 提交表单时 ng-required 不起作用

    我在带有 required 属性的输入文本框中包含以下代码 但是当我跳出该字段或提交表单时 它不会阻止表单提交并通知用户该字段是必填字段 div class col sm 8 div
  • 是否可以使用 CSS 设置禁用的 INPUT 元素的样式?

    我需要风格disabled
  • .js.erb VS .js

    将 Rails 应用程序的 javascript 放入 js erb 文件而不只是将其放入 application js 文件有什么好处 我有一个企业创建按钮 因此我应该将代码放入 create js erb 文件中 还是使用以下方法将其放
  • 谷歌浏览器自动填充所有密码输入

    我的问题 我必须打开谷歌来自动填充我网站上的登录信息 但是现在每当我想编辑我的帐户信息或编辑其他用户帐户信息 作为管理员 时 它都会尝试自动填充该登录数据 它在奇怪的地方填充了我的数据 问题似乎是 Chrome 会自动用某种密码填充任何输入
  • 在 Delphi XE 中将类作为过程的参数传递

    我需要做的是这样的 procedure A type of form var form TForm begin form type of form Create application form showmodal freeandnil f
  • JQuery 表单提交不发送帖子

    我在使用 JQuery 提交表单时遇到问题 当按下提交按钮时 表单会正确提交 但是当我尝试使用时 somebutton click function form myForm submit 我还尝试从 Chrome 控制台调用表单提交 表单未
  • 设置表单的父级

    我有一个 Windows 表单 我想从中打开一个状态表单 上面写着 正在保存 然后保存完成后消失 我想将这个小状态表单放在调用表单的中间 我尝试将 StartPosition 属性设置为 CenterParent 但它不起作用 我从其他表单
  • 使用 AWS API Gateway 和 Lambda 从 multipart/form-data 获取非文件正文

    我正在尝试从multipart form data POST通过 API 网关连接到我的 AWS Lambda Web 服务 超文本传输 协议POST具有内容类型 multipart form data 和 URL 编码的正文 文件数据也在
  • Symfony2:twig 中的 form_widget 调用抛出异常“可捕获的致命错误......必须是 Symfony\Component\Form\FormView 的实例”

    当我在控制器操作中创建一个表单时 如下所示 form this gt createFormBuilder gt add field name gt getForm return array form gt form 我尝试在树枝模板中渲染此

随机推荐

  • 带光标的可扩展列表视图

    我想制作一个可扩展的列表视图 但适配器将光标作为输入而不是数组列表 我想在崩溃时实现动画 https github com idunnololz AnimatedExpandableListView https github com idu
  • 是否可以禁用 cdkDrag 子元素上的拖动?

    我正在使用 Angular Material 中的 Angular CDK 拖放 请参阅文档here https material angular io cdk drag drop overview 我想知道是否有可能禁用在子元素上拖动cd
  • Django Rest框架-无法序列化查询集

    我尝试序列化查询集 def do self reservations Reservation objects all serializer ReservationSerializer data reservations many True
  • golang 类型映射的匿名字段

    我想我可以通过使用匿名字段来创建有序的地图类型 type customMap struct map string string ordered string 我可以在哪里参考地图customMapInstance key 并迭代ordere
  • Docker-swarm >> 无法连接到 docker 引擎端点

    docker version 1 9 1 swarm version 1 0 1 为什么要将 3 个虚拟机 桥接网络 连接到 swarm docker info 显示所有节点 状态待定 3 个主机中的 1 个是manager所有输出均来自该
  • 确定 JavaScript 属性是否定义了 getter 或 setter?

    给定一个对象和属性名称 是否可以确定该属性是使用 getter 还是 setter 定义的 还是完全透明的 如果属性上尚未定义 getter setter 我只想定义一个 getter setter 我需要它在 WebKit Firefox
  • Git init --bare - 不在工作树上工作

    我正在按照这里的例子http wiki dreamhost com Git http wiki dreamhost com Git 基本上我想创建一个 git 存储库 我可以从桌面推送到服务器上 在主机上 host mkdir projec
  • UILocalNotification:播放保存在文档目录中的自定义音频文件

    目前我正在创建一个警报应用程序 它可以从服务器播放自定义音频剪辑 我的实现计划是在本地保存所有音频剪辑 然后相应地设置 soundName 但我有一些问题 目前 我在将音频文件保存在捆绑目录中时遇到问题 只能将文件保存在文档目录中 是否可以
  • 相当于ORACLE在mysql中的并行查询

    mysql中有没有与ORACLE相同的并行查询的等效方法 甲骨文之道 select FULL emp PARALLEL emp 35 emp name from emp 在mysql中 完整 emp 并行 emp 35 将被视为评论 MyS
  • 在 Java 中嵌入 XQuery

    我需要从 Java 中的 MusicXML xml 文件中检索一些详细信息 我设法用java读取xml文件 但通过网络服务 当我运行代码时我必须在线 连接到互联网 我遇到了 XQuery 您可以轻松地从 XML 文件中提取信息 但我需要在j
  • GNU 制定通配符替代方案吗?

    我想选择目录中的所有文件 但使用 FreeBSD 的 make 在 GNU 中 使这种方法有效 FILES wildcard c 我使用的是 FreeBSD 的 make 而不是 GNU make 所以我正在寻找可以在 FreeBSD 的
  • 从 DOM 中删除同级元素时创建块元素的平滑过渡

    我有一个容器 其工作方式类似于 mac os 中的通知 元素被添加到队列中 并在一定的超时后被删除 这很有效 但有一个不和谐的视觉副作用 当它们从 DOM 中删除时 UI 会出现锯齿状更新 因为堆栈中的下一个元素会填充前一个元素创建的空白
  • Web API Swagger 文档导出为 PDF

    根据文档 http swagger io open source integrations http swagger io open source integrations 有插件Java to 将 Swagger 文档导出为 PDF 我只
  • 如何在组件中查找元素?

    我想知道如何使用以下命令找到组件内的元素Renderer 在 angular1 中我会去 link scope element attributes gt var outsideBox element find outside box 这返
  • 简单文件复制的正确 Java 配置是什么

    我对 Spring 非常陌生 对 Spring Integration 更陌生 所以如果这是一个非常基本的问题 我深表歉意 我想构建一个非常基本的日志文件处理器来学习诀窍 与此非常相似 example http forum spring i
  • Python:用于从各种格式加载音频元数据的功能最丰富的库是什么?

    我正在寻找一个功能丰富的优秀库 用于从各种音频格式 MP3 FLAC OGG WAV 等 读取元数据 我已经看过 Mutagen 但文档几乎不存在 而且它似乎无法加载基本信息 例如艺术家和音频标题 艺术家和音频标题编码是否正确 它无法满足哪
  • AppCode 工作区和 TFS 命令行客户端工具

    我可以使用 AppCode 创建一个工作区 并成功签入和签出 TFS 这一切都很好 但是当我使用TFS 的跨平台命令行客户端 http msdn microsoft com en us library gg413282 28v vs 100
  • perl 如何将 perl 脚本的列表形式系统调用的 STDOUT 附加到文件

    My bosswrap pl将生成元素中包含空格的任意数组 它通过系统调用重复发送数组wrapped pl 它根据数组创建 STDOUT 随后 bosswrap pl必须附加 STDOUTwrapped pl到一个文件bosswrap pl
  • Android - 拍摄照片并通过 Intent 使用自定义名称将其保存到自定义目的地

    我有一个程序可以通过 Intent 打开相机来拍照 这么多部分已经可以正常工作了 但是 我希望它将它保存到具有特定文件名的特定文件夹中 文件名是可选的 但它确实很有帮助 这就是我到目前为止所拥有的 这是打开相机的代码行 TODO camer
  • Alfresco:定义新的控制参数

    我正在开发一个自定义表单控件 需要定义一个名为字符串类型的新控制参数helptext 我了解如何在我的 share config custom 中调用它 如何在我的自定义表单控件中使用它 但不知道如何最初声明它 我看到其他控制参数使用以下格