As I have been continuing down the rabbit-hole that is Discourse dev, I came to something that I could use some clarification on if possible. I could be missing something extremely obvious, but here’s where I need some help:
If I print out Object.keys(attrs) in a createWidget(), I get a list like:
id,username,avatar_template,post_count,primary_group_name,primary_group_flair_url,primary_group_flair_color,primary_group_flair_bg_color,topic
I have a few questions:
-
How are widget attributes established? It seems like each
createWidget()has its own set of attributes and I’m having trouble tracking down where they come from and how they are determined. -
How do I get an attribute that isn’t a part of a widget’s
attrsby default? For example, in the above list, how would I addtrust_levelto that attribute object? -
Can the addition of an attribute be done in the context of a theme component or would it require a proper plugin or modifying core Discourse?
I can provide more details on the exact scenario that prompted these questions if that helps. I just wanted to keep it brief if I can.
Also worth mentioning, I’ve read the “Rendering Attributes” section of A tour of how the Widget (Virtual DOM) code in Discourse works and still haven’t quite found the answers for my specific scenario.