问题标签 [aem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5667 浏览

email - Adobe CQ5 - 自定义邮件功能

我在 Adob​​e CQ5 中有一个要求。我必须创建一个包含一些字段的表单(比如注册表单)。现在,在创建表单后,我必须将详细信息邮寄到特定的电子邮件。我需要知道的事情是。

  1. 如何创建自定义电子邮件模板?
  2. 现在使用模板如何使用通过表单捕获的数据创建电子邮件?
  3. 如何配置电子邮件设置?

请提供您对此的想法。可能对很多人都有帮助。提前致谢。

0 投票
1 回答
2500 浏览

file-upload - 如何使用 CQ5 文件上传组件?

我需要有关通过文件上传文件的帮助。实际上我想创建一个表单(使用 cq5 表单组件),用户可以在其中上传文件(文本或任何内容),然后单击提交按钮后该文件将保存在 jcr 中。同时用户可以从不同的页面下载该文件。

我在表单中添加了内置的 cq5 文件上传组件,但问题是,文件没有保存在 jcr 中。请帮助我如何在 jcr 中保存文件或如何在 jcr 中保存文件的引用。

0 投票
1 回答
7753 浏览

velocity - 将用户定义的 java 对象传递给速度脚本引擎

我在 CQ5 中使用速度模板。我安装的速度脚本引擎可以识别预定义的 CQ 对象。我想知道如何将用户定义的 java 对象传递给速度脚本引擎。我尝试了类似的东西:http: //groovy.codehaus.org/JSR+223+Scripting+with+Groovy

但它不起作用..请帮我解决这种情况

提前致谢

0 投票
3 回答
2543 浏览

single-sign-on - Adobe CQ5: SSO without LDAP?

A customer of ours has just purchased CQ5 and would like to externalize all of its security. We'd like to use an STS server for SSO and then leverage a custom authorization/attribute provider instead of the CQ5 repository. Ultimately, we do not want to use LDAP in any way.

Here is how we envision this (some pieces already working):

  1. User browses to CQ5 Dispatcher running in Apache
  2. Apache filter redirects user to STS site where login is completed.
  3. User is redirected back to Apache with SAML Claims.
  4. User ID token is placed as cookie into browser. (everything is working up to here)
  5. CQ5 captures that cookie based on the SSO configuration (working)
  6. Problem starts here: From here, we want to call a custom authorization provider for the user's attributes, roles, groups etc...

We have tried to figure out how to do this and can't seem to find the missing link.

Do we need to create a custom login module? Do we need to create a custom principal provider? Do we somehow use the existing LDAP capability in CQ5 but have it call a custom class which leverages the external auth source?

If anyone here has any idea how to do this, their karma quotient would be full for the year if they could share it. I'm not sure if this is a basic thing you do with JAAS or even where to put my classes after I've created them.

We've worked really hard on this so far and seem to be close, but we keep hitting dead-ends.

Thanks so much if you have an idea where to begin!!

-joe

0 投票
1 回答
1071 浏览

adobe - 克隆 parsys 组件功能

我希望获取组件libs/foundation/components/parsys/colctrl/...并修改其文本,以便我可以将其用于 css 选项卡。我将它重新创建为apps/-site-/components/content/tabsys/(以及所有它的子文件夹/components/etc。我唯一没有改变的是tabsys/tabctrl/virtual/2tabs/cq:editConfig/cq: formParameters(同样适用于 3tabs/):

在 Sidekick 中,我现在有一个 Tabs 组件选项,其选项与 Columns 相同。但是,当我将任何选项卡拖入内容区域时,我没有任何边框内容区域可以将内容块拖入;只有编辑/删除/新建栏。当我单击编辑时,我应该有一个我想要的列数的下拉列表(列组件有它供参考)。我错过了什么?

0 投票
3 回答
1991 浏览

adobe - CQ5 库组件复制,而不是在 Apps 文件夹中覆盖

当您将 libs 文件夹中的默认组件克隆到您的应用程序时,它应该会覆盖前者,但对我来说,它是在 Sidekick 中复制组件的选项。

我复制了libs/foundation/components/parsys/并将其移至apps/-site-/components/content以便我可以为其添加功能。但是,当我在 Sidekick 中查看 Columns 组件(即/parsys/colctrl/组件)时,它会重复我的选项。我现在有两次“两列”、“三列”和“列控制”列表。

想法?

0 投票
1 回答
2093 浏览

jackrabbit - Jackrabbit 跨连接节点搜索

我在 Jackrabbit 存储库中标记了对象(实际上是 Adob​​e/Day CQ 的 CRX,但我认为这是 Jackrabbit 代码):

  • 资产:标签= A,B
    • 子资产数据 1:标签 = A、C、E
    • 子资产数据 2:标签 = D、E

我想查询父资产的一组标签和一个孩子的并集,即“B C”将匹配资产,因为我们在父资产和孩子 1 中有这些,但“CD”不匹配,因为没有组合父节点和一个匹配的子节点,因为 C 和 D 被拆分为不同的子数据节点。

有没有办法在 Jackrabbit 中做到这一点?我们可以编写一个 XPath 查询

但这不起作用,因为 XPath 似乎不能保证*加入的子资产是相同的,即这意味着“任何孩子都有 C/D”,因此将匹配我的资产,因为 1+ 孩子有 C 和 1+孩子们有一个 D。相反,我可以使用 JCR-SQL2

SELECT DISTINCT在 JCR-SQL2 中没有:如果我搜索“B E”,我将返回此资产两次,因为它与资产 + 子 1 和资产 + 子 2 匹配。

我可以在 Java 中对任一查询结果进行后处理,即过滤掉第一种情况的误报匹配或过滤掉第二种情况的重复结果,但我很担心这会如何影响分页性能:我需要扫描更多节点不需要清除坏节点,我需要扫描很多以计算分页的正确结果大小。对于第二个 SQL2 案例,这应该更便宜,因为如果我的搜索是有序的,我可以仅根据节点路径发现重复项,并且所有重复项都是连续的,所以我可以通过廉价扫描找到给定页面的数据价值,只希望不阅读每个结果的整个节点,但即使对于简单的仅路径情况,我也不知道扫描所有结果以获取分页计数的成本。

我们考虑的另一个选项是将标签非规范化为单个节点。在这种情况下,为了保持搜索准确,这意味着在每个子节点中创建一个新的 combine_tags 属性并仅针对该组子节点执行所有搜索。但是,如果我们匹配同一资产下的两个子节点,这仍然会遇到明显的问题。

感谢您的任何建议。这已经是一个大型实例,需要进一步扩展。我已经看到其他问题说 ModeShape 是一个 JCR 实现,SELECT DISTINCT但我认为切换到 ModeShape 必须是最后的手段,如果确实可以在 ModeShape 上托管 CQ。


我们现在提出的一个想法是计算资产标签和子标签的每个并集并将标签组合成单个字符串,然后将每个值写入资产的多值属性,即资产 + child1 = "ABC E"和资产 + child2 = "ABD E",所以我们得到

  • 资产:标签= A,B;tagUnions = "ABC E", "ABD E"

只要我们定义了将标签组合成字符串的固定顺序(例如字母顺序),我们就可以使用搜索任何组合tagUnions LIKE '%B%C%'(除了在实际情况下我会在标签之间使用适当的分隔符)。虽然这会起作用,但据我们所见,我真的不喜欢它:每个资产+子项可能有大量标签,所有标签的名称都比单个字母长,这意味着我们最终会得到长字符串来执行LIKE所有的查询它们可能无法有效地被索引。

另一种做法是制作位掩码:定义 A=1、B=2 等,并在此处存储一个多值整数数组,然后进行按位比较。然而,这可能仅限于 64 个不同的标签,并且由于我们有 1,000 多个标签,我认为我们无法做到这一点——即使 JCR 支持按位运算,我希望它不会。

因此,我仍在为此寻找类似数据库的干净解决方案。你已经错过了我提出的赏金,但仍有滴答声、投票和感谢任何帮助。

0 投票
1 回答
3724 浏览

extjs - 从 CQ5 组件对话框中引用 ExtJS 中的当前对话框

我是 CQ5 和 ExtJS 的新手,这是我的场景:

我创建了一个带有自己用于创作的对话框的新组件。在对话框中,我添加了一个带有我创建的自定义 xtype 的复选框字段。我想做的是:

每当检查复选框/未选中复选框时,我都想动态地添加/删除一个标签到现有对话框中以显示进一步的创作选项。

我已经看到了如何处理 ExtJS 的 Window 和 TabPanel,但我不知道如何获取我所在的对话框的引用,以便我可以操作它(添加/删除选项卡)。

我尝试了 CQ.Ext.WindowMgr.getActive() 来查看这是否让我获得了我的窗口/对话框,但它并没有给我我所期望的。

有任何想法吗?谢谢!

0 投票
2 回答
505 浏览

adobe - 页面上最多需要一个组件实例

我用 Day CQ5 开发网站。我正在开发模板、组件和页面,但遇到了问题。在站点的页面上可以是一个组件的实例,并且需要防止添加其他实例。我怎样才能做到这一点?也许有人遇到过这个问题?

0 投票
5 回答
10732 浏览

element - CQ5中如何限制multifield中的元素个数?

我用 Day CQ5 开发了这个网站,但遇到了一个问题。我正在创建一个组件,以及它的对话。我在对话框中使用了组件元素“multifield”,其中包含几个元素“pathfield”。如何设置特定数量的元素“pathfield”并删除按钮“+”和“-”?