Adesivi Discourse

Installa questo componente del tema


Discourse Stickers v1.0

Ciao :wave:

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

Come funziona?

Posiziona un pulsante nel composer che apre la modale degli sticker.

Modale Sticker

Quando clicchi su uno sticker, viene aggiunto al composer.
Il codice markdown dell’immagine viene inserito dentro [wrap=sticker] img [/wrap], il che significa che le immagini degli sticker possono essere stilizzate separatamente dalle altre immagini.

Gli sticker vanno sempre a capo e contengono titolo e dimensione. La dimensione è ora fissa a 180x180px. Ogni sticker ha un’ombra che rende l’immagine più simile a uno sticker…
Nel composer e nei post, le informazioni meta al passaggio del mouse sono nascoste con CSS.


Come configurare?

Innanzitutto devi caricare le immagini che vuoi usare per gli sticker. Carica semplicemente queste immagini in un post di un argomento.
Lavoreremo con queste immagini: ci servono l’URL dell’immagine e l’URL markdown.

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

L’URL markdown del caricamento all’interno delle parentesi :arrow_down_small:


Impostazioni

immagini sticker
Nelle impostazioni delle immagini sticker puoi configurare gli sticker…

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 sticker nella Modale Sticker.

previewUrl: Questa è l’immagine mostrata nella Modale Sticker.

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



Discourse Stickers v2.0

Ciao :wave:

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

La versione 2.0 introduce un gestore di sticker ridisegnato con caricamenti di immagini nativi, gruppi di sticker, visibilità basata su categorie e controlli specifici per la chat.

Come funziona?

Il componente aggiunge un pulsante sticker al composer. Cliccandolo si apre il selettore di sticker.

Quando selezioni uno sticker, viene inserito direttamente nel composer.

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

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

Questo permette di stilizzare le immagini degli sticker separatamente dalle immagini normali.

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


Selettore sticker

Il selettore sticker supporta i gruppi quando hai una collezione di sticker più ampia.

Se sono configurati più gruppi, viene visualizzata una barra di filtro in cima al selettore.

Gli sticker senza gruppo vengono automaticamente inseriti sotto Altro.

Se non sono disponibili sticker per il contesto corrente, il selettore mostra uno stato vuoto.


Come configurare?

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

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

Vai semplicemente alle impostazioni del componente e aggiungi uno sticker. Il campo Immagine ti permette di caricare lo sticker direttamente.

Impostazioni sticker

Ogni sticker può ora avere le seguenti proprietà:

Titolo

Il nome dello sticker. Viene usato come tooltip e testo alternativo dello sticker.

Gruppo

Opzionale. Usa i gruppi per organizzare i tuoi sticker e filtrarli nel selettore.

Lascia vuoto per inserire lo sticker sotto Altro.

Badge emoji

Opzionale. Visualizza una piccola emoji nell’angolo dello sticker.

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

Immagine

L’immagine dello sticker.

Carica l’immagine direttamente usando l’impostazione. La stessa immagine viene usata sia per il selettore che per lo sticker pubblicato.

Categorie

Opzionale. Restringi lo sticker a categorie specifiche.

Se sono selezionate delle categorie, lo sticker apparirà solo nel composer di post/risposta normale quando una di quelle categorie è selezionata.

Lascia vuoto per rendere lo sticker disponibile in tutte le categorie.

Questa impostazione non influisce sulla chat.

Nascondi dai messaggi diretti

Quando attivato, lo sticker non sarà disponibile nelle chat private/messaggi diretti.

Canali chat

Opzionale. Restringi lo sticker a canali chat pubblici specifici.

Inserisci gli ID dei canali separati da virgole.

Ad esempio, se l’URL del canale è:

/chat/c/channel-name/123

usa:

123

Lascia vuoto per rendere lo sticker disponibile in tutti i canali chat pubblici/di categoria.


Aggiornamento da v1.x

Se stai già usando una versione precedente del componente, non hai bisogno di ricreare la tua collezione di sticker.

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

La migrazione preserva:

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

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

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

Aggiorna semplicemente il componente e i tuoi sticker 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