Sticker di Discourse

Installa questo componente del tema


Discourse Stickers v1.0

Ciao :wave:

Con questo componente del tema puoi aggiungere adesivi ai post e ai messaggi di chat…

Come funziona?

Aggiunge un pulsante nel compositore che apre la modale degli adesivi.

Modale degli adesivi

Quando fai clic su un adesivo, verrà aggiunto al compositore.
Il codice markdown dell’immagine verrà inserito in [wrap=sticker] img [/wrap], il che significa che le immagini degli adesivi possono essere formattate separatamente dalle altre immagini.

Gli adesivi vengono sempre inseriti in una nuova riga e contengono titolo e dimensione. La dimensione è attualmente fissa a 180x180px. Ogni adesivo ha un’ombra che rende l’immagine più simile a un vero adesivo…
Nel compositore e nei post, le informazioni meta al passaggio del mouse sono nascoste tramite CSS.


Come configurare?

Per prima cosa devi caricare le immagini che vuoi utilizzare come adesivi. Carica semplicemente queste immagini in un post di un argomento.
Lavoreremo con queste immagini di cui abbiamo bisogno dell’URL dell’immagine e dell’URL markdown.

Esempio:
Ho caricato l’immagine in un post. Uso la versione ottimizzata dell’URL dell’immagine. Si trova qui :arrow_down_small: ma puoi usare qualsiasi URL dell’immagine.

L’URL di caricamento markdown tra parentesi :arrow_down_small:


Impostazioni

immagini adesivi
Nelle impostazioni delle immagini degli adesivi puoi configurare gli adesivi…

titolo: Questo è il titolo dell’immagine e l’alt. Verrà inserito anche nel titolo del codice markdown.

emoji: Verrà inserito nell’angolo in alto a destra di ogni adesivo nella modale degli adesivi.

previewUrl: Questa è l’immagine mostrata nella modale degli adesivi.

markdownUrl: Questo è l’URL markdown dell’immagine caricata in precedenza.



Discourse Stickers v2.0

Ciao :wave:

Con questo componente del tema puoi aggiungere adesivi a post, risposte e messaggi di chat.

La versione 2.0 introduce un gestore di adesivi ridisegnato con caricamento nativo delle immagini, gruppi di adesivi, visibilità basata su categoria e controlli specifici per la chat.

Come funziona?

Il componente aggiunge un pulsante adesivi al compositore. Facendo clic su di esso si apre il selettore di adesivi.

Quando selezioni un adesivo, viene inserito direttamente nel compositore.

Per i post e le risposte normali, gli adesivi sono racchiusi in:

[wrap=sticker]![Titolo adesivo|180x180](immagine)[/wrap]

Questo consente di formattare le immagini degli adesivi separatamente dalle immagini normali.

Gli adesivi pubblicati non sono cliccabili e non apriranno la lightbox di Discourse.


Selettore di adesivi

Il selettore di adesivi supporta i gruppi se hai una raccolta più ampia di adesivi.

Se sono configurati più gruppi, viene visualizzata una barra di filtro nella parte superiore del selettore.

Gli adesivi senza gruppo vengono automaticamente inseriti sotto Altro.

Se non sono disponibili adesivi per il contesto attuale, il selettore visualizza uno stato vuoto.


Come configurare?

La configurazione degli adesivi è stata completamente ridisegnata nella v2.0.

Non è più necessario caricare le immagini in un argomento prima o copiare manualmente gli URL delle immagini.

Vai semplicemente alle impostazioni del componente e aggiungi un adesivo. Il campo Immagine ti consente di caricare direttamente l’adesivo.

Impostazioni adesivi

Ogni adesivo può ora avere le seguenti proprietà:

Titolo

Il nome dell’adesivo. Viene utilizzato come tooltip e testo alternativo dell’adesivo.

Gruppo

Facoltativo. Usa i gruppi per organizzare i tuoi adesivi e filtrarli nel selettore.

Lascia vuoto per inserire l’adesivo sotto Altro.

Badge emoji

Facoltativo. Visualizza una piccola emoji nell’angolo dell’adesivo.

Puoi usare un’emoji reale o un shortcode di Discourse come :heart: o :smile:.

Immagine

L’immagine dell’adesivo.

Carica l’immagine direttamente utilizzando l’impostazione. La stessa immagine viene utilizzata sia per il selettore che per l’adesivo pubblicato.

Categorie

Facoltativo. Limita l’adesivo a categorie specifiche.

Se vengono selezionate delle categorie, l’adesivo apparirà solo nel compositore di post/risposta normale quando una di quelle categorie è selezionata.

Lascia vuoto per rendere l’adesivo disponibile in tutte le categorie.

Questa impostazione non influisce sulla chat.

Nascondi dai messaggi diretti

Quando abilitato, l’adesivo non sarà disponibile nelle chat private/dirette.

Canali chat

Facoltativo. Limita l’adesivo a specifici canali di chat pubblici.

Inserisci gli ID dei canali separati da virgole.

Ad esempio, se l’URL del canale è:

/chat/c/nome-canale/123

usa:

123

Lascia vuoto per rendere l’adesivo disponibile in tutti i canali di chat pubblici/di categoria.


Aggiornamento dalla v1.x

Se stai già usando una versione precedente del componente, non è necessario ricreare la tua raccolta di adesivi.

La v2.0 include una migrazione delle impostazioni che converte automaticamente la vecchia configurazione sticker_images nel nuovo formato.

La migrazione preserva:

  • titoli degli adesivi
  • badge emoji
  • immagini degli adesivi caricate esistenti

Le immagini caricate esistenti vengono risolte nuovamente ai loro upload originali di Discourse e popolate nel nuovo campo Immagine.

Le vecchie impostazioni previewUrl e markdownUrl non sono più richieste.

Semplicemente aggiorna il componente e i tuoi adesivi esistenti dovrebbero essere migrati automaticamente.


17 Mi Piace

Ciao Don :wave:

Bel lavoro! Ho dato una rapida occhiata : )

Gestire gli sticker è un po’ noioso, specialmente la parte di anteprima, poiché non esiste un layout o una funzionalità specifica dedicata a questo (come invece c’è per avatar ed emoji personalizzate), ma capisco che richiederebbe molto più lavoro.

Il filtro dell’ombra è disabilitato quando una gif è ferma e non appare come uno sfondo quadrato sull’immagine centrale qui (un jpg rettangolare che attiva un lightbox):

chrome_k71dGHbeLH

L’effetto filtro è davvero bello, ma lo metterei come impostazione opzionale :slight_smile:

Il selettore di sticker utilizza contenuti giustificati come:

XXX
 X

Ma penso che preferirei l’allineamento a destra:

XXX
X

Opinione molto personale, ovviamente :v:

5 Mi Piace

Grazie per il feedback @Canapin :slight_smile:

Ho aggiunto una nuova impostazione per questo…
Screenshot 2023-10-03 at 16.04.17

Anche questo è stato fatto… Molto meglio :slight_smile:

7 Mi Piace

Aggiornamento: DEV: Adding DTooltip to sticker picker modal images · VaperinaDEV/discourse-stickers@b6c30eb · GitHub

5 Mi Piace

Sarebbe possibile limitare questo a determinate categorie? (E, a tal proposito, avere adesivi diversi per categoria?)

1 Mi Piace

Se gli amministratori potessero creare gruppi di sticker e gli utenti potessero personalizzare la selezione degli sticker in base a ciascun gruppo dei loro argomenti preferiti.
Inoltre, consiglia in base all’icona installata quando un utente utilizza un’icona in un articolo, ma penso che questa sia una funzionalità difficile.

Posso chiedere cosa devo fare per far sì che l’adesivo sia nella riga di testo, non su una nuova riga? (Ho forked questo repository)

Ciao :waving_hand:

Sì, devi rimuovere \n dall’inizio e dalla fine di questa riga.


Ciao @mattdm :waving_hand: Scusa per il ritardo. Sì, penso che sia probabilmente possibile mostrare il pulsante nel composer per categoria. Devo verificarlo.

Il componente è già un po’ complesso da configurare. Non sono sicuro con questo. :thinking:

Ciao :waving_hand: Sì, questo è un altro livello. :slightly_smiling_face: Non sono sicuro che sia possibile ora con questa implementazione.

1 Mi Piace

Grazie per la risposta!
Ma dopo la modifica, l’adesivo non viene visualizzato, come questo

Oh, scusa, mi sono sbagliato. Penso che dovresti rimuovere anche [wrap=sticker] e [/wrap]. Visualizzerà l’immagine inline, quindi probabilmente non mancherà. :thinking:

Il [wrap=sticker] serve solo per aggiungere uno stile all’immagine dello sticker.

Capisco, il display inline non può usare [wrap=sticker]?
Funziona, grazie!

ps: Mi stavo chiedendo se fosse possibile nascondere markdownUrl nel Composer, dato che sarà un URL lungo e occuperà troppo spazio?

Discourse Stickers v2.0

Questa versione rappresenta una modernizzazione piuttosto significativa del componente. Oltre a numerosi miglioramenti interni, la configurazione degli adesivi è stata riprogettata per rendere molto più semplice la gestione di collezioni di adesivi più numerose.

:artist_palette: Impostazioni degli adesivi completamente riprogettate

Il cambiamento più importante nella v2.0 riguarda la configurazione degli adesivi stessi.

La vecchia versione memorizzava gli adesivi come un’impostazione JSON contenente valori come:

  • title

  • emoji

  • previewUrl

  • markdownUrl

Nella v2.0, questo è stato sostituito con il tipo di impostazione objects nativo di Discourse.

Ogni adesivo è ora un oggetto configurabile a tutti gli effetti con i propri campi:

  • Titolo - il nome dell’adesivo / testo del suggerimento

  • Gruppo - opzionalmente organizza gli adesivi in gruppi

  • Badge emoji - opzionalmente visualizza una piccola emoji nell’angolo

  • Immagine - carica l’adesivo direttamente tramite l’impostazione

  • Categorie - opzionalmente limita gli adesivi a categorie specifiche

  • Nascondi dai messaggi diretti - controlla se un adesivo è disponibile nei messaggi diretti

  • Canali di chat - opzionalmente limita gli adesivi a canali di chat pubblici specifici

Ciò rende la configurazione degli adesivi molto più facile da comprendere e mantenere, specialmente per collezioni più numerose.

:bento_box: Gruppi di adesivi e filtro

Ora puoi assegnare gli adesivi a un Gruppo.

Quando sono disponibili più gruppi, il selettore degli adesivi visualizza automaticamente una barra di filtro in alto.

Puoi passare tra:

  • Tutti

  • gruppi individuali

  • Altro per gli adesivi senza gruppo

Il filtro viene generato dinamicamente dagli adesivi attualmente disponibili per l’utente.

:label: Adesivi specifici per categoria

Gli adesivi possono ora essere opzionalmente assegnati a categorie Discourse specifiche.

Se a un adesivo sono configurate delle categorie, apparirà nel compositore di post/risposte regolari solo quando viene selezionata una di quelle categorie.

Se non sono configurate categorie, l’adesivo rimane disponibile ovunque.

:speech_balloon: Maggiore controllo sugli adesivi nella Chat

La v2.0 aggiunge un maggiore controllo sulla disponibilità degli adesivi nella Chat di Discourse.

Ora puoi:

  • nascondere singoli adesivi dai messaggi diretti;

  • limitare gli adesivi a canali di chat pubblici specifici;

  • lasciare vuoto l’impostazione del canale per rendere un adesivo disponibile in tutti i canali di chat pubblici/di categoria.

Ciò consente agli amministratori di mantenere set di adesivi diversi per diverse parti della propria community.

:prohibited: Gli adesivi pubblicati non sono più cliccabili

Gli adesivi pubblicati sono ora trattati come immagini non interattive.

Non aprono più la lightbox di Discourse quando vengono cliccati.

Ciò si applica sia a:

  • adesivi nei post regolari;

  • adesivi pubblicati nella Chat.

L’obiettivo è far sì che gli adesivi si comportino più come contenuti di adesivi/reazioni effettivi piuttosto che come immagini caricate normali.

:empty_nest: Migliore stato vuoto

Se non sono disponibili adesivi per il contesto corrente, il selettore ora visualizza uno stato vuoto appropriato invece di mostrare semplicemente un selettore vuoto.

Ad esempio, questo può accadere quando le restrizioni di categoria o di Chat impediscono la disponibilità di qualsiasi adesivo.

:counterclockwise_arrows_button: Le configurazioni degli adesivi esistenti vengono migrate

Una delle parti più importanti della v2.0 è che le installazioni esistenti non hanno bisogno di ricreare la propria collezione di adesivi.

La vecchia impostazione JSON sticker_images viene migrata automaticamente al nuovo formato objects quando il componente viene aggiornato.

I titoli e i valori emoji degli adesivi esistenti vengono preservati.

Più importante ancora, anche le immagini degli adesivi caricate esistenti vengono migrate automaticamente.

Quindi, se hai già configurato decine di adesivi, l’aggiornamento alla v2.0 non dovrebbe richiederti di ricaricarli tutti di nuovo.

La vecchia proprietà markdownUrl non è più necessaria e non viene trasferita perché il nuovo campo Image rappresenta il caricamento effettivo su Discourse.


3 Mi Piace