Ok, então, segui uma direção diferente de tentar usar os plugins de portfólio. Não tenho certeza se devo postar isso aqui ou em um novo tópico - se sim, por favor, me avisem!
Alguém pode dar uma olhada nisso e me dizer o que estou fazendo de errado (e espero que por quê / como consertar)? Passei horas e horas lendo tutoriais, escrevendo e fazendo edições nisso, mas sou muito iniciante e cheguei a um ponto em que não sei mais o que tentar.
O objetivo: exibir uma lista de tópicos de uma categoria específica na página de resumo de um usuário.
Neste caso de uso, é para um fórum de RPG onde os usuários criarão personagens para postar histórias. Quero que este plugin mostre quais personagens um usuário criou para que ninguém precise cavar muito fundo. Todas as fichas de personagem serão armazenadas no mesmo fórum. Então, acho que só preciso criar uma lista de tópicos que obtenha tópicos do usuário correto e do fórum correto.
Tenho usado o seguinte como referência:
https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949
Aqui está minha tentativa. Até agora, o cabeçalho da lista de tópicos (tópico/respostas/atividade) está aparecendo no lugar certo, mas não está sendo preenchido com tópicos.
<script type="text/discourse-plugin" version="0.8">
const ajax = require('discourse/lib/ajax').ajax;
const Topic = require('discourse/models/topic').default;
const User = require('discourse/models/user').default;
// Precisamos de ajax, Topic e User
api.registerConnectorClass('above-user-summary-stats', 'character-list', {
// above-user-summary-stats é o plugin outlet, character-list é o nome do componente personalizado
setupComponents(args, component) {
const store = getOwner(this).lookup("service:store");
return ajax(userPath(`/topics/created-by/${this.username_lower}.json`)).then(function (result) {
// linhas retiradas do summary() no modelo user.js; tentando encontrar o nome de usuário do perfil do usuário que estamos visualizando para que possamos acessar o json dos tópicos que eles criaram
let characterList = [];
// array vazio para adicionar tópicos
result.topic_list.topics.forEach.category_id(4)(function(topic){
// tópicos apenas da categoria específica que queremos
// por volta daqui o tutorial do kris tinha algumas linhas para associar usuários ao tópico. Eu ignorei porque não preciso que os usuários além do postador original sejam exibidos com o tópico. Isso é importante?
//topic.posters.forEach(function(poster){
//poster.user = $.grep(featuredUsers, function(e){ return e.id == poster.user_id; })[0];
//});
characterList.push(Topic.create(topic));
// adicionar tópicos à lista de tópicos
});
component.set('characterList', characterList);
// Configurar nosso componente com os tópicos do array
}); // fim ajax
} // fim setupComponents
});
</script>
<script type="text/x-handlebars" data-template-name="/connectors/above-user-summary-stats/character-list">
<div class="custom-character-list-wrapper">
{{topic-list topics=characterList showPosters=false}}
</div>
</script>