Prossimi cambiamenti all'elenco degli argomenti - come preparare temi e plugin

Mi dispiace disturbare il tuo fine settimana David, sì, ho appena visto l’API, grazie

3 Mi Piace

Ciao, ho provato a usare un value transformer per "topic-list-columns" in questo modo:

export default {
    name: "assignment-topic-list-column-modifier",

    initialize(container) {
        const router = container.lookup("service:router");

        withPluginApi("1.39.0", (api) => {
            api.registerValueTransformer(
                "topic-list-columns",
                ({ value: columns }) => {
                    if (ASSIGN_LIST_ROUTES.includes(router.currentRouteName)) {
                        columns.add("posters-recent", {
                            header: AssignHeaderCell,
                            item: AssignCell,
                            after: "posters",
                        });
                    }
                    return columns;
                }
            );
        });
    },
};

L’obiettivo è inserire un nuovo elemento e un nuovo header di colonna dopo la colonna "posters", funziona per l’elemento, ma l’header non è ancora nella posizione giusta, è stato posizionato dopo la colonna "activity".

Manca qualcosa nel mio codice? e c’è qualche documentazione che spieghi come fare correttamente?

C’è una nuova guida:

Tuttavia, potrebbe non essere molto utile in questo caso.

@NateDhaliwal grazie per le informazioni, le controllerò.

Penso che il codice dovrebbe essere così:

columns.add(
  "posters-recent",
  { header: AssignHeaderCell, item: AssignCell }
  { after: "posters" }
});

E potresti dover specificare un before:

{after: "posters", before: "replies"}
1 Mi Piace

@Arkshine grazie mille, il tuo codice funziona!!! fantastico :+1:

1 Mi Piace

Abbiamo abilitato il banner di avviso per queste deprecazioni, quindi gli amministratori della community saranno avvisati di eventuali temi o plugin che devono ancora essere aggiornati.

Abbiamo anche pubblicato una guida di riferimento con indicazioni per tutti i diversi modi in cui è possibile personalizzare il nuovo elenco di argomenti:

Ho aggiunto un link a questo dall’OP.

6 Mi Piace

David, non sono sicuro se preferisci questo argomento o l’altro, ma eccoti qui:

Il mio nuovo componente conforme (credo) fallisce quando “Enable Glimmer Topic List” è impostato su Auto…

Suggerisce che la nuova API non viene attivata su Auto… c’è qualcosa che devo fare per segnalare il Theme Component in modo che Discourse utilizzi la nuova API Glimmer quando è su Auto?

3 Mi Piace

Ho notato l’avviso qui:

Ma non sta ancora causando problemi nonostante la data che hai fornito sia passata e io sia sull’ultima build…?

Le cose sono un po’ in ritardo, ma speriamo di finire di eliminare il vecchio codice nelle prossime 1-2 settimane.

Quindi questo interromperebbe completamente i temi non ancora aggiornati? Dovremmo evitare di aggiornare? o c’è qualcosa che possiamo fare semplicemente se creiamo un fork del tema?

1 Mi Piace

Sì, impedirà l’applicazione delle loro personalizzazioni all’elenco degli argomenti.

Non lo consiglierei. Gli aggiornamenti principali di Discourse includono spesso correzioni di sicurezza e la tua community potrebbe essere vulnerabile se smetti di aggiornare.

Sembra che tu abbia capito tutto nell’altro argomento :chefs_kiss:

2 Mi Piace

I sistemi legacy topic-list e “raw handlebars” sono stati ora rimossi dal core di Discourse. Grazie a tutti coloro che hanno aiutato ad aggiornare plugin e temi per questo cambiamento! :rocket:

5 Mi Piace

Fantastico! Congratulazioni al team CDCK che ha lavorato su questo. :partying_face:

Grazie anche a te e al team per essere stati molto ricettivi alle richieste di funzionalità e così attenti alla progettazione della nuova API :heart_eyes:

Temevo che avremmo perso alcune funzionalità. Ma quello che è successo in realtà è che ne abbiamo ottenute molte di più, pur essendo significativamente più facili da usare! :rocket:

6 Mi Piace

Per quanto riguarda i template raw, ho capito bene che non è più possibile utilizzare componenti nel template con la funzione di autocompletamento (ad esempio, emoji)?

this.textManipulation.autocomplete({
      template: renderEmojiAutocomplete,

Sembra che ora si possa restituire solo HTML.
Penso che tu abbia detto che l’autocompletamento verrà rielaborato a un certo punto, ma probabilmente non a breve.

Vedi una soluzione alternativa qui? (Sto cercando di correggere Emoji Fluff TC)

3 Mi Piace

Purtroppo non abbiamo inserito un messaggio di deprecazione corretto per l’autocompletamento, ci scusiamo! Ma c’è una via da seguire: dai un’occhiata a: Autocomplete still using Raw Templates - #4 by david

2 Mi Piace