我有以下代码:
<sly data-sly-use.link="${'core.impl.view.tools.LinkUtils' @ path=properties.targetURL}"></sly>
Run Code Online (Sandbox Code Playgroud)
我想连接properties.linkType到properties.targetURL.
有什么想法可以做到吗?我在网上找到了例子,但它们似乎不适用于我的用例.
我有一个组件使用xtype="richtext"我的项目中的Rich Text Edit小部件(),它在整个站点中用作默认文本组件.
用户希望能够使用telURI方案将电话链接插入使用此组件输入的文本中.
该对话框允许他们这样做,但是当稍后在Sightly/HTL中呈现富文本编辑的内容时,将使用html上下文:
{$text @ context='html'}
Run Code Online (Sandbox Code Playgroud)
完成此操作后,将忽略my属性的值.
存储在存储库中的HTML是:
<a href="tel:04242424242">Call us!</a>
Run Code Online (Sandbox Code Playgroud)
在作者实例的页面上实际呈现的是:
<a>Call us!</a>
Run Code Online (Sandbox Code Playgroud)
在发布者上,由于链接检查器,标签会被完全删除.
更改上下文会unsafe导致href渲染,但这不是我愿意接受的解决方案.该组件在很多地方使用,我想确保XSS保护足够.
有没有办法影响htmlHTL中的上下文处理电话链接的方式?
我尝试在叠加层中添加一个额外的正则表达式apps/cq/xssprotection/config.xml:
<regexp name="onsiteURL" value="([\p{L}\p{N}\\\.\#@\$%\+&;\-_~,\?=/!]+|\#(\w)+)"/>
<regexp name="offsiteURL" value="(\s)*((ht|f)tp(s?)://|mailto:)[\p{L}\p{N}]+[\p{L}\p{N}\p{Zs}\.\#@\$%\+&;:\-_~,\?=/!]*(\s)*"/>
<regexp name="telephoneLink" value="tel:\+?[0-9]+"/>
Run Code Online (Sandbox Code Playgroud)
进一步说:
<attribute name="href">
<regexp-list>
<regexp name="onsiteURL"/>
<regexp name="offsiteURL"/>
<regexp name="telephoneLink"/>
</regexp-list>
<!-- Skipped for brevity -->
</attribute>
Run Code Online (Sandbox Code Playgroud)
但这似乎并没有影响Sightly/HTL在html上下文中转义字符串的方式.
我也试过覆盖Sling xss规则,/libs/sling/xss/config.xml但也没有运气.
怎么做到呢?
我有一个触摸UI组件,我正在AEM 6中创建一个对话框.我需要在触摸对话框中创建2个单选按钮,如果其中任何一个被选中,则所选单选按钮的相应值应为显示.但是,我不了解如何创建单选按钮选项.我在经典对话框中实现了相同的选项,其中使用了xtype = selection和type = radiogroup,但我不明白如何在触摸对话框中创建它
我正在尝试使用现有页面(使用TouchUI的路径浏览器选择)作为我的HTL页面上的弹出/模态.是否有一种方法可以使用不同的文件添加/注入HTML?它更关于在页面上播放html而不是如何构建对话窗口.
我已经看到,从 AEM 6.3 开始,标记本身就支持日期格式,如下所示:
${ 'dd~MMMM-yyyy' @ format=currentPage.jcr:created }
Run Code Online (Sandbox Code Playgroud)
(参考:https : //github.com/adobe/htl-spec/blob/master/SPECIFICATION.md#1222-dates)
我尝试使用该 jcr:created 属性以及来自后端的数据来玩这个格式化程序java.util.Date。
我的问题是,是否支持其他日期类型?比如说,java.time.LocalDate?它没有显示在我的测试页面上,虽然我不确定我是否只是缺少一些需要在 HTL 标记上指出的附加属性?
检查这个
<a href="${mybean.href}" data-sly-test="${mybean.href}">
<img src="myimage.jpg" />
</a>
Run Code Online (Sandbox Code Playgroud)
我们需要的
当data-sly-test =“ $ {mybean.href}”计算为false时,仅隐藏锚标记,而不隐藏其子元素。默认行为是,当锚标记消失时,img标记也会消失。我们只想隐藏包装标签。
我希望这样的参数
<a href="${mybean.href}" data-sly-test="${mybean.href @ hideChildren=false}">
<img src="myimage.jpg" />
</a>
Run Code Online (Sandbox Code Playgroud) 使用data-sly-list,元素按顺序打印.
在HTL中是否有一种方法可以用相反的顺序打印列表项?
例如
如果列表包含1,2,3,4我想打印4,3,2,1.
我可以在我包含的另一个文件中使用变量吗?
在我的HTL(file1.html)我有:
<sly data-sly-test.myVar="${properties.myVarFromDialog}"></sly>
<sly data-sly-include="/file2.html"></sly>
Run Code Online (Sandbox Code Playgroud)
我可以在file2.html中使用myVar吗?我没有任何价值.有没有办法从file1.html获取该值以在file2.html中使用
我有一段Sightly/HTL代码如下 -
<div class="tooltip_modal">
<div class="modal-content">
<div class="modal-header">
<span class="close">×</span>
<h5>Tooltip</h5>
</div>
<div class="modal-body">
<p>${properties.tooltip_textfield}</p>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
请注意,${properties.tooltip_textfield}硬编码到代码中.我将此代码包含在我的组件中,如下所示 -
<div data-sly-include="/custom/tooltip-modal/tooltip-modal.html" data-sly-unwrap></div>
Run Code Online (Sandbox Code Playgroud)
现在我想将一个参数传递给data-sly-include语句,这样当我的HTML代码被渲染时,应该放置传递的参数来代替${properties.tooltip_textfield}.
换一种说法 -
打电话给这个
<div data-sly-include="/custom/tooltip-modal/tooltip-modal.html" parameter= "Dummy Text" data-sly-unwrap></div>
Run Code Online (Sandbox Code Playgroud)
应该呈现这个 -
<div class="tooltip_modal">
<div class="modal-content">
<div class="modal-header">
<span class="close">×</span>
<h5>Tooltip</h5>
</div>
<div class="modal-body">
<p>Dummy Text</p>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这可能吗?提前致谢!
我试图通过创建一个变量来为div提供背景图像。
我正在仔细阅读属性,将其提供给样式标签时,它不起作用。
这是HTML
<sly data-sly-test.fileReference="${properties.title}" />
<div style="background: url(${fileReference}); background-position: center top;">
<p>${properties.title}</p>
Run Code Online (Sandbox Code Playgroud)
呈现页面后,这就是我所看到的
<div style="background: url(); background-position: center top;">
<p>my Title</p></div>
Run Code Online (Sandbox Code Playgroud)
这意味着${properties.title}内部<p>标签被接受,但不适用于内部样式元素。