Não é possível montar o "post-avatar" na saída do plugin "topic-above-post-stream"

Após passar por este guia “Guia para iniciantes no desenvolvimento de temas do Discourse”, tentei montar o widget post-avatar no plugin outlet “topic-above-post-stream” na página do post e ele não apareceu na página.

Abaixo está o código que adicionei

<script type="text/x-handlebars" data-template-name="/connectors/topic-above-post-stream/post-page">
    <div class="post-detail">
      {{mount-widget widget="post-avatar"}}
    </div>
</script>

Estou perdendo alguma coisa?

1 curtida

Você provavelmente está perdendo atributos que o widget requer para ser exibido… por exemplo, como ele sabe para qual usuário você quer mostrar o avatar neste contexto?

Olhando para o widget original aqui:

ele espera:

  • template
  • username
  • name
  • url

Então você teria que obter os dados que deseja em seu plugin outlet, e então passá-los para o widget… algo como

{{mount-widget widget="post-avatar" args=(hash username=this.username)}}

dito isso… o que você está tentando alcançar mais especificamente? se você apenas quer mostrar um avatar, usar o helper de avatar pode ser uma maneira melhor de ir… isso se pareceria com:

{{avatar user imageSize="large"}}

neste caso, você ainda precisaria garantir que user esteja presente, porque é assim que ele sabe para qual usuário exibir.

3 curtidas

Olá @awesomerobot

Obrigado pela sua resposta,

Pretendo exibir o avatar do usuário acima do texto de cada postagem na página de postagem. No entanto, não consegui obter os dados do usuário de que preciso para o “topic-above-post-stream” plugin outlet. Portanto, após adicionar o código abaixo no arquivo common/head_tag.html, um ícone de lixeira é exibido no “topic-above-post-stream” plugin outlet.

<script type="text/x-handlebars" data-template-name="/connectors/topic-above-post-stream/custom-post-page">
    <div class="post-detail header">
      {{mount-widget widget="post-avatar" args=(hash username=this.username)}}
    </div>
</script>