Componenti personalizzati -- aggiungi pulsante o testo in qualsiasi uscita del plugin

| | | |\n|— | — | —|\n|:information_source: | Riepilogo | Aggiungi pulsante o testo ovunque|\n|:hammer_and_wrench: | Repository | https://github.com/literatecomputing/discourse-custom-components|\n|:question: | Guida all’installazione | Come installare un tema o un componente tema|\n|:open_book: | Nuovo ai temi di Discourse? | Guida per principianti all’uso dei temi di Discourse|\n\n\u003c!-- Compila "repoName" e "repoURL" per il pulsante di installazione automatica –\u003e\n\n[wrap=theme-install-button repoName="Custom Components" repoUrl="https://github.com/literatecomputing/discourse-custom-components\"]\nInstalla questo componente tema\n[/wrap]\n\n\u003c!-- Descrivi questo tema/componente in una o due frasi –\u003e\n\nAggiungi un pulsante di link o testo arbitrario in qualsiasi plugin outlet. (Ignora le filigrane nelle immagini: ho scattato questi screenshot su un sito di staging/test).\n\n\u003c!-- Aggiungi screenshot (se applicabile) –\u003e\n\n

\n\n\n\n\n\n\u003c!-- Aggiungi maggiori dettagli e spiega le impostazioni (se applicabile) –\u003e\n\nHo iniziato a sviluppare questo plugin per qualcuno che voleva visualizzare un pulsante "fai clic su questo pulsante per iscriverti in modo da poter inviare messaggi privati" sui profili utente e sulle schede utente. Volevano che il pulsante venisse visualizzato se l’utente non poteva inviare messaggi privati. Poiché non sono sempre intelligente come penso di essere, ho scritto il componente utilizzando i gruppi per determinare se il pulsante veniva visualizzato. Un problema con questo approccio era che i membri dello staff non erano nel gruppo degli iscritti, quindi ricevevano il pulsante "devi iscriverti" anche se potevano inviare messaggi privati. Inoltre, il gruppo era nascosto, quindi era impossibile usarlo comunque in un componente tema. Ho riscritto quel componente tema per utilizzare currentUser.can_send_private_messages per determinare se visualizzare il pulsante.\n\n### A chi è rivolto?\n\nSe vuoi inserire un pulsante con un link al suo interno, o del testo arbitrario che viene visualizzato o nascosto per determinati gruppi, questo ti permetterà di inserirli in qualsiasi plugin outlet. Vuoi aggiungere un pulsante di link "Devi iscriverti" tra ogni messaggio tranne quelli che non sono membri? Questo lo farà. Vuoi inserire del codice HTML arbitrario in un plugin outlet, solo per vedere come apparirà? Questo lo farà.\n\n### Come aiuta gli sviluppatori\n\nQuesto tema ha alcuni semplici esempi su come:\n- utilizzare gli oggetti di tipo tema-impostazione https://meta.discourse.org/t/objects-type-for-theme-setting/305009\n- utilizzare api.renderInOutlet (come descritto qui per inserire un componente Glimmer in un outlet controllato da un’impostazione piuttosto che creare un file nella directory connectors\n- Scrivere un semplice componente Glimmer che accede a currentUser\n- Includere un componente in un altro template (inline) per poter passare dati ad esso\n- Visualizzare HTML arbitrario da un’impostazione del tema libero dai vincoli di Markdown–Certo, forse \n[quote="Discourse, post:1, topic:82557"]\nPuoi usare l’helper html-safe di Ember qui e renderizzerà l’HTML invece del testo.\n[/quote]\n\nma se stai cercando di farlo all’interno di un \u003ctemplate\u003e all’interno di un file .gjs, funziona un po’ diversamente (come {{htmlSafe component.text}})

15 Mi Piace

Lo spazio rende il testo non in grassetto.


Ottimo componente!

5 Mi Piace

Sarebbe possibile aggiungere segnaposto agli URL dei pulsanti, ad esempio per far sì che l’URL contenga l’ID dell’argomento in cui si trova l’utente?

Non sono del tutto sicuro. Se hai un budget, ci darò un’occhiata.

Cosa farebbe il tuo pulsante se avesse l’ID dell’argomento?

Se lo scopri e vuoi fare una PR, probabilmente la accetterò.

Sono abbastanza sicuro che la risposta sia no, ma che potresti usare la soluzione alternativa descritta qui

2 Mi Piace

Ciao @pfaffman

Vogliamo aggiungere un set di pulsanti a ogni argomento per i membri del nostro gruppo di utenti dell’account aziendale.
Il pulsante attiverebbe la creazione di un nuovo PM che includerebbe l’URL corrente su cui si trova l’utente.

In questo modo i nostri clienti aziendali possono inviarci richieste per fissare, evidenziare o “sponsorizzare” argomenti specifici.

1 Mi Piace

Come sai, puoi creare un URL che aprirà un nuovo compositore di argomenti. Potresti fare in modo che sia quello il link aggiunto dal componente del tema.

Non credo sia possibile farlo senza aggiungere codice al componente del tema (ma forse lo è?). Forse qualcuno ha un’idea al riguardo e offrirà quella soluzione qui (o sull’altro argomento). In caso contrario, puoi contattarmi o pubblicare in Marketplace con la descrizione di ciò di cui hai bisogno e un budget.

3 Mi Piace