如何在adobe cq5中设置全局属性

时间:2015-12-03 01:26:18

标签: adobe cq5 aem

我正在adobe cq5上开发组件,需要一些帮助/建议。我想创建一个电话号码组件,其中一部分使用电话号码前缀。我希望页面作者能够设置前缀的范围(即它们需要内容管理),但我不希望他们每次添加电话号码组件时都必须重新指定此列表。前缀列表需要全局维护而不是组件级属性。我知道如何设置和使用组件级属性,而不是全局属性。有人能告诉我如何或指出我在一个例子的正确方向?

3 个答案:

答案 0 :(得分:1)

您是否考虑过使用设计对话框而不是编辑对话框?这可以解决您的问题。 There是关于此主题的一些信息。

答案 1 :(得分:1)

创建对话框的一部分是您正在分配<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title id="titleTag"><%: Page.Title %> 401(k) Account</title> <asp:PlaceHolder runat="server"> <%: Scripts.Render("~/bundles/modernizr") %> </asp:PlaceHolder> <link runat="server" id="StyleLink1" rel="stylesheet" type="text/css" href="~/Content/Site_vsta.css" /> <link runat="server" id="Link1" rel="stylesheet" type="text/css" href="/Content/Site.css"/> <link runat="server" id="Link2" rel="stylesheet" type="text/css" href="~/Content/datepicker.css" /> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <script src="Scripts/bootstrap-datepicker.js" type="text/javascript"></script> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager runat="server"> <Scripts> <%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%> <%--Framework Scripts--%> <asp:ScriptReference Name="MsAjaxBundle" /> <asp:ScriptReference Name="jquery" /> <asp:ScriptReference Name="bootstrap" /> <asp:ScriptReference Name="respond" /> <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" /> <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" /> <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" /> <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" /> <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" /> <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" /> <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" /> <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" /> <asp:ScriptReference Name="WebFormsBundle" /> <%--Site Scripts--%> </Scripts> </asp:ScriptManager> <div class="container"> <asp:TextBox ID="DateTextbox" runat="server" CssClass="m-wrap span12 date form_datetime" ClientIDMode="Static"></asp:TextBox> </div> <script type="text/javascript"> $(document).ready(function () { var dp = $('#<%=DateTextbox.ClientID%>'); dp.datepicker({ changeMonth: true, changeYear: true, format: "dd.mm.yyyy", language: "tr" }).on('changeDate', function (ev) { $(this).blur(); $(this).datepicker('hide'); }); }); </script> </form> </body> </html> ,它使对话框能够理解您要存储值的位置。

这通常采用name的形式,人们忘记的是./foo字段是路径规范。您也可以指定name的名称,该名称将提供您正在寻找的功能。

然后要使用这些数据,您需要在同一个地方查看代码。属性对象此时不会拥有它,因为它只提供您所在资源的关系属性。

答案 2 :(得分:0)

如果您因任何原因无法使用设计对话框,我认为其他选项可能是使用参考组件。

https://docs.adobe.com/docs/en/aem/6-0/author/page-authoring/default-components/editmode.html#Reference