Componente tema Testo segnaposto modello argomento

Segnaposto del componente del tema per il modello dell’argomento

Questo componente del tema ti consente di visualizzare i modelli dell’argomento come segnaposti (filigrane) invece che come testo del modello modificabile.

Ciò ti permette di fornire istruzioni personalizzate come segnaposto per ogni argomento.

Ad esempio:

Questo è il testo normale del segnaposto (filigrana).

NB Puoi già modificare questo aspetto a livello di sito modificando il testo personalizzato

Vai su Amministratore >> Personalizza >> Testo

Quindi cerca il testo che vedi lì sullo schermo.
Una ricerca per “BBCode” dovrebbe darti ciò che desideri:

Quindi modifica i valori per js.composer.reply_placeholder con il testo del segnaposto che desideri visualizzare

Puoi anche impostare un modello dell’argomento in ogni categoria

Nel dialogo Modifica categoria, seleziona Modelli dell’argomento. Puoi aggiungere un modello personalizzato per la tua categoria.

Questo funziona bene MA l’utente deve eliminare il testo del modello prima di poter iniziare a scrivere il proprio post.

Questo componente del tema ti consente di visualizzare il testo del modello dell’argomento come testo segnaposto (filigrana) invece che come testo modificabile. Basta fare clic sulla casella e iniziare a scrivere.

Può essere impostato per visualizzare tutti i modelli dell’argomento come segnaposti, oppure puoi farlo caso per caso aggiungendo un indicatore [placeholder] al modello dell’argomento.

Installa il componente del tema

:hammer_and_wrench: Repo Git: https://github.com/naidihr/discourse-topic-template-placeholders

:thinking: Come installo un tema o un componente del tema?

Crediti

Grazie a @merefield per aver ristrutturato l’elemento JQuery per utilizzare il framework Ember e il nucleo di Discourse.

Si prega di notare che la versione aggiornata è stata testata per funzionare solo sulle versioni di Discourse dalla 2.4.1 in poi. Se utilizzi una versione precedente di Discourse, prova la versione originale, che è stata testata nella versione 2.3.10.
Repo della versione originale: https://github.com/naidihr/discourse-topic-template-placeholders_original

35 Mi Piace

Nota di sviluppo PS. Ho dovuto applicare una soluzione temporanea con JQuery per far funzionare questo come componente del tema. Se è possibile aggiornare il placeholder tramite il modello, sarei grato se me lo facessi sapere.

8 Mi Piace

Puoi provare qualcosa del genere

<script type="text/discourse-plugin" version="0.8">
  api.modifyClass("model:composer", {
    applyTopicTemplate() {
      this._super(...arguments);

      Ember.run.schedule("afterRender", () => {
        // esegui qui il tuo lavoro
      });
    }
  });
</script>

Questo dovrebbe consentirti di aggiungere una logica personalizzata quando Discourse applica i modelli di argomento per categoria.

Detto questo, questo approccio alla scrittura del codice è un po’ datato. Ti consiglio anche di leggere questo articolo se intendi dedicare molto tempo ai temi di Discourse. Ti semplificherà notevolmente la vita.

9 Mi Piace

Ottima idea per un componente del tema!

Ho già inviato una PR per fare quanto segue:

  • elimina la necessità di jQuery
  • elimina la preoccupazione per la tempistica (usa il framework Ember e il core di Discourse, non combatterli)
  • modifica il modello Composer per aiutare a raggiungere il risultato (come hai giustamente suggerito)

Non sarò offeso se non la unisci, ma spero che possa essere utile vedere un altro modo di fare le cose :slight_smile:

(Non posso promettere che non ci siano bug, ma sono felice di seguire qualsiasi cosa! :cowboy_hat_face:)

9 Mi Piace

Grazie Robert. Ho unito quella PR. Molto apprezzato :+1:

2 Mi Piace

Questo è letteralmente quello che stavo cercando! Sei un dio! :bowing_man: :shallow_pan_of_food: :bowing_woman: Accetta questo umile dono di emoji. :canned_food:

1 Mi Piace

Per tua informazione, questo funziona solo se prima vai nella categoria e crei un nuovo argomento. Se provi a creare un nuovo argomento dalla pagina più recente e poi selezioni una categoria dal menu a tendina, il testo non viene visualizzato.

2 Mi Piace

È previsto? È così che funziona normalmente la funzionalità del Modello di Argomento. Nel secondo caso, il Modello di Argomento non verrà considerato.

Ma sì, a mio avviso, ciò potrebbe essere migliorato anche in Discourse vanilla senza questa TC per supportare il tuo secondo caso. Personalmente ho trovato fastidioso che agli utenti non venga presentato il Modello se seguono la seconda strada.

Questa TC si limita a sfruttare il core, quindi…

Forse stiamo parlando di cose diverse, ma per me funziona così…

1 Mi Piace

Questo potrebbe essere dovuto ad altri motivi, poiché qui su Meta funziona. Se vai su /latest, apri il composer e poi selezioni la categoria marketplace, ottieni il template che abbiamo per quella categoria.

4 Mi Piace

Sì, strano. Scusa, penso che sia stato risolto. Mi stava dando fastidio da un sacco di tempo, ma ora sembra funzionare.

Ok, ora si presenta una nuova sfida. Haha.

4 Mi Piace

Ciao Robert, l’ho testato dopo il merge e funzionava, ma ora non funziona più per me? Questo riguarda l’impostazione di override, non l’uso di [placeholder]. Potresti verificare anche con la tua build?

Inoltre, nella mia versione originale, funzionava allo stesso modo se iniziavi un nuovo Argomento dalla pagina più recente e poi selezionavi la categoria.

Potrebbe essere necessario fare un rollback…?

La sto guardando ora. Dammi un po’ di tempo.

OK, la PR per la correzione è stata aperta: FIX: change the placeholder & template when switching selected Category by merefield · Pull Request #2 · naidihr/discourse-topic-template-placeholders · GitHub

Ora preleva la Categoria dalla selezione del Compositore. Ora che è fatto, sembra funzionare in tutte le situazioni, ma per favore confermate.

2 Mi Piace

Ciao Robert, ho unito quell’ultima PR e aggiornato alla versione più recente del componente del tema, ma continua a mostrare il testo del modello predefinito da me, anche se ho impostato “visualizza tutti i modelli di argomento come segnaposto”. Sono su Discourse 2.4.1. Hai altri suggerimenti?

2 Mi Piace

Funziona, ma non funziona affatto se ‘Mostra tutti i modelli di argomento come segnaposto’ è attivo, anche se mi trovo nella categoria. Mi sto pentendo di essermi offerto volontario per questo ora? :stuck_out_tongue_winking_eye:

2 Mi Piace

Nessun problema, ragazzi. Procediamo per iterazioni. :). Darò un’occhiata.

Aggiornamento: PR FIX: resolve issue with displaying all Topic Templates as Placeholders by merefield · Pull Request #3 · naidihr/discourse-topic-template-placeholders · GitHub

Quando effettuate il checkout, ricordatevi di aggiornare la pagina se modificate una impostazione.

2 Mi Piace

Ottimo Robert. L’ultima pull request l’ha risolto. Anche quando si avvia un argomento dalle pagine più recenti o dalle categorie. Tutto sembra a posto ora. Grazie per il tempo dedicato a esaminare la questione. Soluzione molto elegante _bel lavoro :wink::+1:

3 Mi Piace

Nessun problema. Un piacere. Mi scuso, il mio test iniziale avrebbe dovuto essere più approfondito. Grazie per la pazienza.

Penso che al momento siamo sulla buona strada, speriamo!

Continuate a proporre nuove grandi idee e a metterle in pratica!

3 Mi Piace

Ciao a tutti! Ci piace molto l’idea di questo componente del tema!

Ho appena provato a installarlo sulla nostra istanza di Discourse, ma sto riscontrando alcuni problemi.
Sembra che, una volta abilitato nel tema, rovini parte dello stile già presente nel tema stesso.
Ad esempio, i pulsanti nel menu a tendina dell’utente:

diventano così quando abilitato:


Inoltre, il segnaposto non sembra funzionare, sia con l’opzione ‘Visualizza tutti i tuoi modelli di argomento come segnaposto (testo watermark)’ abilitata che disabilitata.

Potrebbe essere che la nostra istanza di Discourse sia alla versione v2.3.10?

Ho dato un’occhiata al codice qui ma non riesco a capire perché il nostro stile risulti così disordinato.

Facciamo affidamento su un altro team per gestire e aggiornare la nostra istanza di Discourse, ed è un compito piuttosto impegnativo da portare a termine.

Spero in un rapido suggerimento per risolvere il problema, ma se il problema dipende dalla versione di Discourse che stiamo utilizzando, va bene lo stesso!

Grazie in anticipo :smiley: