# \[PAID\] Meu botão de Tópicos no menu superior

**URL:** https://meta.discourse.org/t/paid-my-topics-button-in-top-menu/123478
**Category:** Marketplace
**Created:** [Julho 20, 2019, 12:06am UTC](https://meta.discourse.org/t/paid-my-topics-button-in-top-menu/123478 "2019-07-20T00:06:24Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![davidkingham](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/davidkingham/32/119528_2.png) [@davidkingham](https://meta.discourse.org/u/davidkingham)
#### Post date: [Julho 20, 2019, 12:06am UTC](https://meta.discourse.org/t/paid-my-topics-button-in-top-menu/123478/1 "2019-07-20T00:06:24Z")

</div>

**O que você gostaria que fosse feito?**  
Preciso de um botão no menu superior, semelhante ao `posted`, que mostre todas as postagens que você criou, mas não inclua os tópicos de outros usuários nos quais você respondeu, como faz o `posted`.

Seria ótimo se eu pudesse renomeá-lo para ‘Minhas Fotos’ em certas categorias também.

Isso precisa funcionar com o plugin de Pré-visualização de Tópicos, para que os resultados tenham miniaturas, o que o código abaixo já faz funcionar.

**Quando você precisa que seja feito?**  
Sem pressa, mas seria bom ter pronto dentro de um mês.

**Qual é o seu orçamento, em $ USD, que você pode oferecer para esta tarefa?**  
Espero que o código abaixo possa ser usado como ponto de partida (este é para um botão que mostra postagens que não têm resposta) e que seja uma tarefa bastante simples, então oferecerei $100.

O maior problema que estou enfrentando ao modificar isso sozinho é que não consigo encontrar uma maneira de usar uma variável de nome de usuário na consulta de pesquisa, para que mostre apenas os tópicos do usuário atual.

```plaintext
<!-- PRECISA DE RESPOSTA -->
<script type="text/discourse-plugin" version="0.8.18">
    if (I18n.translations.en) {
        I18n.translations.en.js.filters.needsreply = {title: "Sem Respostas", help: "Tópicos sem respostas"};
    }

    // PERSONALIZE ESSES VALORES
    // Defina a consulta de pesquisa
    let search_query = '?max_posts=1';
    // Exclua certas categorias de mostrar o item de menu de "precisa de resposta"
    let excludeList = ['classifieds', 'workshops', 'staff', 'wiki','site-discussions', 'site-feedback', 'announcements', 'site-tips', 'site-support'];

    // Adiciona classe ativa ao botão Precisa de Resposta
    api.modifyClass('component:navigation-item', {
        active: Ember.computed("contentFilterMode", "filterMode", function () {
            let contentFilterMode = this.get('content').get('filterMode');
            if (window.location.search && window.location.search.split('&')[0] === search_query.split('&')[0]) {
                return contentFilterMode === "needsreply";
            } else {
                return this._super(contentFilterMode, this.get('filterMode'));
            }
        }),
    });

    // Remove o filtro max_posts e o filtro de tags
    api.modifyClass('controller:discovery/topics', {
        resetParams: function () {
            this.setProperties({max_posts: null});
            this.setProperties({tags: null});
            this._super();
        }
    });

    Discourse.ExternalNavItem = Discourse.NavItem.extend({
        href: function () {
            return this.get('href');
        }.property("href")
    });

    Discourse.NavItem.reopenClass({
        buildList: function (category, args) {
            let list = this._super(category, args),
                tag = args.tagId,
                needsreplyHref;

            if (!category) { // não possui uma categoria
                needsreplyHref = tag ? '/latest/' + search_query + '&tags=' + tag : '/latest/' + search_query; // se houver uma tag, construa o href com a tag, caso contrário, retorne à visualização mais recente e à consulta de pesquisa
            }
            else if (excludeList.indexOf(category.slug) != -1) { // a categoria está na lista de exclusão, não faça nada
                return list; // retorna a lista sem criar o item de navegação personalizado
            }
            else if (!category.parentCategory) { // não é uma subcategoria
                needsreplyHref = tag ? '/c/' + category.slug + search_query + '&tags=' + tag : '/c/' + category.slug + search_query; // se houver uma tag, construa o href com tags e a categoria, caso contrário, retorne à consulta de pesquisa, etc.
            } else { // é uma subcategoria
                needsreplyHref = tag ? '/c/' + category.parentCategory.slug + '/' + category.slug + search_query + '&tags=' + tag :
                    '/c/' + category.parentCategory.slug + '/' + category.slug + search_query; // se houver uma tag, construa o href com tags, subcategoria e categoria, caso contrário, retorne à consulta de pesquisa, etc.
            }
            list.push(Discourse.ExternalNavItem.create({href: needsreplyHref, name: 'needsreply'}));
            return list;
        }
    });
</script>

```

---

<div class="post-metadata">

### Author: ![P16](https://avatars.discourse-cdn.com/v4/letter/p/b19c9b/32.png) [@P16](https://meta.discourse.org/u/P16)
#### Post date: [Julho 20, 2019, 2:14am UTC](https://meta.discourse.org/t/paid-my-topics-button-in-top-menu/123478/2 "2019-07-20T02:14:01Z")

</div>

@merefield você acha que isso pode se relacionar um pouco com o que estamos fazendo?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [Julho 20, 2019, 4:53am UTC](https://meta.discourse.org/t/paid-my-topics-button-in-top-menu/123478/3 "2019-07-20T04:53:10Z")

</div>

Sim, muito provável. David, vou adicioná-lo a uma conversa.

---

<div class="post-metadata">

### Author: ![davidkingham](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/davidkingham/32/119528_2.png) [@davidkingham](https://meta.discourse.org/u/davidkingham)
#### Post date: [Julho 26, 2019, 5:33pm UTC](https://meta.discourse.org/t/paid-my-topics-button-in-top-menu/123478/5 "2019-07-26T17:33:43Z")

</div>

Ainda procurando ajuda sobre isso…

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [Agosto 25, 2019, 5:33pm UTC](https://meta.discourse.org/t/paid-my-topics-button-in-top-menu/123478/6 "2019-08-25T17:33:49Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
