I guess best behaviour would be to start the composer with empty category if the user does not have the permission to create new topic in the current one? Potentially with a modal and a notice about such.
Volevo avere anche questa funzionalità, quindi ho fatto un fork del repository e ho fatto in modo che mostrasse il pulsante “Nuovo argomento” sia agli utenti anonimi che a quelli registrati. Se un utente anonimo fa clic sul pulsante, viene reindirizzato alla finestra modale di accesso/registrazione.
Ci sono alcuni nomi di classi obsoleti, quindi gli stili non vengono visualizzati come previsto. Aggiunto un PR per aggiornarli: FIX: update declarations by nolosb · Pull Request #6 · discourse/discourse-new-topic-button-theme-component · GitHub
È possibile aggiornare questo plugin alla nuova versione?
Ho appena unito un refactor di questo componente in modo che funzioni con questi aggiornamenti: Upcoming Header Changes - Preparing Themes and Plugins
Il componente dovrebbe funzionare come prima, con alcuni piccoli miglioramenti (rifletterà lo stato di bozza e reagirà alle autorizzazioni correnti di categoria e tag). Se noti nuovi problemi, faccelo sapere.
Volevo avere anche questa funzionalità, quindi ho fatto il fork del repository e ho fatto in modo che mostrasse il pulsante “Nuovo argomento” sia agli utenti anonimi che a quelli registrati. Se un utente anonimo fa clic sul pulsante, viene reindirizzato alla finestra di dialogo di accesso/registrazione.
Ho appena aggiunto una nuova impostazione show_to_anon (disabilitata per impostazione predefinita) che farà questo.
Quanto sarebbe “fattibile” aggiungere un menu a tendina simile al componente dropdown wizard di nolo?
Poiché stiamo utilizzando il wizard personalizzato per creare nuovi argomenti in categorie specifiche, vorremmo essenzialmente collegarli nei menu a tendina. Inoltre, vorremmo aggiungere alcuni collegamenti riservati allo staff (come “Nuova categoria” e “Nuovo gruppo”) al pulsante.
Ciao, non sono riuscito a utilizzare l’icona “pencil” di fontAwesome free in questo componente anche dopo averla aggiunta alle impostazioni “svg icon subset”. Hai qualche idea?
Icona gratuita “pencil” di font Awesome
Non credo ci sia un’icona pencil gratuita nella versione 5
We’re not on Font Awesome 6 yet, so you’ll need to search the version 5 set for available icons here: Find the Perfect Icon for Your Project in Font Awesome 5 | Font Awesome It looks like that icon was renamed shop in version 6, but it did exist in version 5 with a different name: store-alt. So if you update additional icons and custom tab icon to use store-alt it should work!
Penso sia lo stesso per pencil in v5 è pencil-alt
Penso che sia lo stesso per pencil in v5 sia
pencil-alt
Grazie! Funziona!
Un post è stato diviso in un nuovo argomento: Nessun pulsante Nuovo argomento
Richiesta: aggiungere un’opzione per definire i colori del pulsante (sfondo, testo + icona) sia per un tema chiaro che scuro. Poiché i nuovi argomenti fanno parte della crescita di una community, avere un pulsante colorato ha un maggiore impatto.
Grazie
È abbastanza facile da fare con CSS:
Use this code, changing the color obviously. #new-create-topic { background-color: red; }
(puoi scegliere come target temi scuri e chiari con CSS)
modifica: aggiunta di un esempio corretto
#new-create-topic {
background-color: light-dark(red,green);
}
Imposterà il colore del pulsante su rosso in un tema chiaro e su verde in un tema scuro.
Non ho ancora familiarità con il CSS in Discourse. Ho familiarità con il CSS, ma non ho ancora iniziato a esplorarlo all’interno di Discourse.
Come/dove lo aggiungo?
Penso ancora che questa potrebbe essere una funzionalità per evitare di aggiungere ulteriore complessità e per le persone che non hanno familiarità con il CSS, rende semplicemente il componente più facile da personalizzare.
Come/dove lo aggiungo?
O sul tuo tema o su un nuovo componente del tema, che deve poi essere incluso nel tuo tema:
Ho aggiunto il codice CSS nel mio post precedente.
Stavo anche testando :hover e funziona per il pulsante e il testo, ma non per l’icona, a meno che non passi il mouse sopra l’icona stessa. Sai come selezionare l’icona quando passi il mouse sopra il pulsante, anche se il mouse non è sopra l’icona?
#new-create-topic:hover {
background-color: light-dark(red,red);
color: light-dark(red,white);
}
#new-create-topic .d-icon:hover {
color: light-dark(red,white);
}
La tua seconda regola significa che stai puntando all’icona quando passi il mouse sull’icona, non sul pulsante.
Usando la sintassi SCSS, che
#new-create-topic:hover {
background-color: light-dark(red,red);
color: light-dark(red,white);
}
#new-create-topic:hover .d-icon {
color: light-dark(red,white);
}
(inoltre non c’è bisogno di light-dark(red,red); se usi lo stesso colore per chiaro e scuro)
Consiglierei SCSS poiché è più facile riordinare il nostro codice, ma è qualcosa di nuovo da imparare 😄
#new-create-topic:hover {
background-color: light-dark(red,red);
.d-icon, & {
color: light-dark(red,white);
}
}
La tua seconda regola significa che stai puntando all’icona quando passi il mouse sull’icona, non sul pulsante.
Hai ragione. Colpa mia… Grazie!
Inoltre non c’è bisogno di
light-dark(red,red);se usi lo stesso colore per chiaro e scuro
Questi sono solo test. In realtà sto usando il tema predefinito e non so se quel tema abbia entrambe le opzioni?
Per quanto riguarda SCSS, l’ho imparato qualche anno fa, ma era qualcosa che non ho mai usato veramente dato che non sono uno sviluppatore. Uso HTML e CSS abbastanza spesso, quindi ho un po’ più familiarità con questi due.
Ho trovato questo codice per apportare questa modifica, ma non sono sicuro che sia il modo migliore per farlo:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
const newTopicButton = document.querySelector('.header-create-topic');
const draftsButton = document.querySelector('.topic-drafts-menu-trigger');
if (newTopicButton && draftsButton && !document.querySelector('.fk-header-buttons')) {
const wrapper = document.createElement('div');
wrapper.className = 'fk-header-buttons';
const parent = newTopicButton.parentNode;
parent.insertBefore(wrapper, newTopicButton);
wrapper.appendChild(newTopicButton);
wrapper.appendChild(draftsButton);
}
});
</script>

