أحاول إنشاء مكون سمة يتجاوز قالب ملف تعريف المستخدم بناءً على عضوية المجموعة للمستخدم الذي يتم عرضه. أود ألا تعرض ملفات تعريف المستخدمين المجهولين منطقة #user-content على الإطلاق ما لم يكن المستخدم الحالي موظفًا. لقد أنشأت مجموعة تتم إضافة المستخدمين المجهولين إليها تلقائيًا، ولكني أواجه صعوبة في تجاوز القالب بشكل شرطي.
بناءً على تجاوز قوالب Discourse من سمة و إضافة مقاطع فيديو خلفية لملفات تعريف مستخدمين معينة كنت أحاول تجاوز user/summary.hbs بهذا الشكل:
<script type="text/discourse-plugin" version="0.8">
const TARGET_GROUP = "anon"
api.registerConnectorClass('above-user-summary-stats', 'user-summary', {
setupComponent(args, component) {
const inGroup = [...args.model.groups].filter(g => g.name === TARGET_GROUP)
const isAnon = inGroup.length ? true : false;
component.setProperties({isAnon})
}
});
</script>
<script type="text/x-handlebars" data-template-name="user/summary">
<DSection @pageClass="user-summary" @tagName="">
<div class="user-content" id="user-content">
<PluginOutlet
@name="above-user-summary-stats"
@args={{hash model=this.model user=this.user}}
/>
{{log isAnon}}
</div>
</DSection>
</script>
هذا يتجاوز القالب لجميع الملفات الشخصية، ولكن isAnon غير معرف، لذلك أعتقد أنني لا أفهم كيفية إنشاء المنطق لـ handlebars للتحقق عند تجاوز القالب بدلاً من الإضافة إلى منفذ المكون الإضافي.
هل registerConnectorClass صحيح للاستخدام لهذا؟ هل تجاوز القالب ضروري هنا؟ لقد مررت عبر واجهة برمجة تطبيقات المكونات الإضافية و User.rb وفهمت كيفية التحقق مما إذا كان المستخدم الحالي في وضع مجهول، ولكنني لم أجد أي وصول سهل بخلاف المجموعة للتحقق مما إذا كان المستخدم الذي يتم عرضه مجهولاً. أنا على دراية بـ Rails و js و handlebars ولكني جديد على Ember و Discourse.