我试图从AEM社区的车把框架中获取名为 userAdmin 的上下文。 userAdmin上下文检查登录用户是成员还是主持人。
我们已经在第54行的/ libs / social / console / components / hbs / sitenavbar / sitenavbar.hbs 中包含此代码。使用以下userAdmin上下文,仅当记录时才会显示“管理”链接在用户中是主持人/社区管理员
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Tags</th>
<th>Date Created</th>
<th>Views</th>
</tr>
{% for result in searchResults %}
<tr>
<td>{{ result.system_name }}</td>
<td>{{ result.system_description }}</td>
<td>
{% for tag in result.system_tags %}
{{tag}}
{% endfor %}
</td>
<td>{{ result.system_date_created }}</td>
<td>{{ result.system_hits }}</td>
</tr>
{% endfor %}
</table>
问题
我无法在第36行的/libs/social/messaging/components/hbs/messagebox/buttons.hbs中获取相同的 userAdmin 上下文,我想要新的仅当登录用户是主持人/社区管理员
时,才会显示消息按钮{{#if userAdmin}}
<li><a href="{{adminUrl}}">{{i18n "Administration"}}</a></li>
{{/if}}
你能不能帮我找出一种方法,让你可以将sitenavbar中的上下文提供给任何其他SCF组件,如messagebox或论坛。我还尝试过使用{{../userAdmin}}和{{@root userAdmin}}等选项
任何建议或帮助都会很棒。
答案 0 :(得分:4)
此资源类型通过SocialComponent公开此数据(或getter)。全局只隐藏少量对象。因此,您需要定义自己的社交组件并实现(或扩展现有组件,如果某些bundle导出它)这样的getter。您可以在here中引用示例scf项目(例如github),也可以在adobe documentation中查看。
您可以通过附加.social.json(例如/content/community-components/en/forum/jcr:content/content/forum.social.json)找到当前路径上下文中可用的所有对象。这将是公开可以在模板中使用的所有变量(上下文)。