Olá! Pretendo usar minha instância do Discourse para um RPG. O componente de tema de portfólio de usuário seria perfeito para mostrar as coisas que os usuários enviaram. Especificamente, quero poder ver uma lista dos personagens, envios de lore e cenas de RPG de um usuário no perfil.
O único problema é que este componente de tema só suporta 1 categoria por vez. Tentei definir a categoria como 0 para todas as categorias e, em seguida, adicionar várias tags, mas isso fez com que a página do portfólio aparecesse em branco. Portanto, gostaria de editar e instalar várias instâncias deste componente de tema para ter várias páginas de portfólio para esses itens separados.
Tentei baixar o componente de tema e editar os arquivos (ou seja, mudar instâncias de portfólio para portfolio_2) e, em seguida, instalei a nova cópia além da original, mas nenhuma delas está funcionando.
Quando ambos estão habilitados…
Apenas uma instância do botão de portfólio é mostrada no cartão do usuário (portfolio_2)
Apenas uma instância do botão de portfólio é mostrada no perfil do usuário (portfolio_2)
A página portfolio_2 está em branco no perfil do usuário
É possível fazer isso funcionar, ou devo desistir?
Obrigado, este é um ótimo lugar para procurar. Acho que prefiro que o botão de portfólio fique no menu horizontal do perfil (ao lado de resumo, atividade, etc.), mas o maior problema que tenho é que, se houver várias tags, quero poder filtrar por tag, ou seja, os usuários clicariam em botões para ver apenas “personagens” ou “cenas” no portfólio de cada vez.
Posso acabar tentando “frankenstein” algo para este propósito a partir de ambos os componentes de tema, mas vou investigar um pouco mais primeiro. Se alguém tiver ideias adicionais, por favor, compartilhe!
Concordo 100% que este é um bom lugar para um caso de uso geral. Meu caso de uso particular é para uma comunidade centrada em role playing, onde os usuários procurariam essas informações regularmente, então quero que os botões de rastreamento de personagem e cena sejam acessíveis com o mínimo de cliques possível e altamente visíveis. Não quero criticar sua solução de forma alguma!
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.
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>