[TARIFÉ] Mon bouton Mes sujets dans le menu supérieur

Que souhaitez-vous faire ?
J’ai besoin d’un bouton dans le menu supérieur, similaire à posted, qui affiche tous les messages que vous avez créés, mais n’inclut pas les sujets d’autres utilisateurs auxquels vous avez répondu, comme le fait posted.

Il serait également agréable de pouvoir le renommer en « Mes photos » dans certaines catégories.

Cela doit fonctionner avec le plugin Aperçus des sujets afin que les résultats affichent des vignettes, ce que le code ci-dessous prend en charge.

Quand avez-vous besoin que ce soit fait ?
Pas de précipitation, mais il serait agréable d’avoir cela terminé dans un mois.

Quel est votre budget, en $ USD, que vous pouvez offrir pour cette tâche ?
J’espère que le code ci-dessous peut servir de point de départ (il s’agit d’un bouton pour afficher les messages sans réponse) et que ce sera une tâche assez simple, donc je propose 100 $.

Le plus gros problème que je rencontre en essayant de le modifier moi-même est que je ne trouve pas de moyen d’utiliser une variable de nom d’utilisateur dans la requête de recherche afin qu’elle n’affiche que les sujets de l’utilisateur actuel.

<!-- BESOIN DE RÉPONSE -->
<script type="text/discourse-plugin" version="0.8.18">
    if (I18n.translations.en) {
        I18n.translations.en.js.filters.needsreply = {title: "Pas de réponses", help: "Sujets sans réponses"};
    }

    // PERSONNALISEZ CES VALEURS
    // Définir la requête de recherche
    let search_query = '?max_posts=1';
    // Exclure certaines catégories de l'affichage de l'élément de menu « besoin de réponse »
    let excludeList = ['classifieds', 'workshops', 'staff', 'wiki','site-discussions', 'site-feedback', 'announcements', 'site-tips', 'site-support'];


    // Ajouter la classe active au bouton « Besoin de réponse »
    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'));
            }
        }),
    });

    // Supprimer le filtre max_posts et le filtre 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'a pas de catégorie
                needsreplyHref = tag ? '/latest/' + search_query + '&tags=' + tag : '/latest/' + search_query; // s'il y a un tag, construire le href avec le tag, sinon revenir à la vue « dernier » et à la requête de recherche
            }
            else if (excludeList.indexOf(category.slug) != -1) { // la catégorie est dans la liste d'exclusion, ne rien faire
                return list; // retourner la liste sans créer l'élément de navigation personnalisé
            }
            else if (!category.parentCategory) { // n'est pas une sous-catégorie
                needsreplyHref = tag ? '/c/' + category.slug + search_query + '&tags=' + tag : '/c/' + category.slug + search_query; // s'il y a un tag, construire le href avec les tags et la catégorie, sinon revenir à la requête de recherche, etc.
            } else { // est une sous-catégorie
                needsreplyHref = tag ? '/c/' + category.parentCategory.slug + '/' + category.slug + search_query + '&tags=' + tag :
                    '/c/' + category.parentCategory.slug + '/' + category.slug + search_query; // s'il y a un tag, construire le href avec les tags, la sous-catégorie et la catégorie, sinon revenir à la requête de recherche, etc.
            }
            list.push(Discourse.ExternalNavItem.create({href: needsreplyHref, name: 'needsreply'}));
            return list;
        }
    });
</script>
6 « J'aime »

@merefield penses-tu que cela pourrait s’inscrire un peu dans ce que nous faisons ?

3 « J'aime »

Oui, très probablement. David, je vais vous ajouter à une conversation.

4 « J'aime »

Toujours à la recherche d’aide sur ce sujet…

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