Penso che sia possibile. Nel gestore di eventi dpg_displaypage, devi utilizzare $.ajax() per chiamare la tua API esterna. Inoltre, penso che tu debba aggiungere la tua API esterna all’impostazione di Discourse content security policy script src.
Sembra che questo plugin sia ancora mantenuto, ma ho individuato un problema sul mio server: la pagina di login non è visibile quando il plugin è abilitato. Spero di riuscire a risolvere il problema.
Se il plugin è abilitato sul mio server, confermo che la pagina di login appare vuota; se lo disabilito, la pagina di login torna a visualizzarsi normalmente. Se un utente è già loggato, il problema non si presenta e il server funziona correttamente.
Cerco aiuto o supporto per risolvere la questione. Sono disponibile a fornire ulteriori informazioni necessarie per l’analisi del problema.
Grazie, Jordan.
Sì, avrò bisogno di ulteriori informazioni, poiché ho controllato le mie varie istanze di Discourse e non sono riuscito a riprodurre il problema.
Quando dici che “la pagina di accesso non è visualizzabile”, ti riferisci al popup di accesso, giusto?
Per favore, forniscimi maggiori dettagli e/o screenshot. Inoltre, se possibile, inviami un messaggio privato e forniscimi l’URL della tua istanza di Discourse.
Ciao Syl,
Grazie per la risposta.
Quando ho abilitato il plugin discpage e accedo all’istanza di Discourse senza aver effettuato l’accesso, mi viene mostrata una pagina completamente vuota. Vedi sotto:
Ho anche controllato di recente i log della console e ho notato alcuni errori relativi a discpage. Anche se per me non significano nulla. Forse per te sì…
Grazie per aver segnalato il problema. Il bug è stato registrato qui:
Finché il bug non verrà risolto, una soluzione temporanea consiste nel disabilitare l’impostazione “accesso richiesto” di Discourse.
AGGIORNAMENTO: il bug è ora risolto.
Ciao Syl,
È un po’ imbarazzante
scusa se sono diretto, ma stavo dando un’occhiata al codice sorgente del plugin, solo per curiosità, senza avere alcuna competenza di programmazione, e sono confuso dal formato del file lib. Immagino che non sia una scelta tecnica (ma cosa ne so io
), e riesco a immaginare e capire da dove derivi.
Ho la sensazione che tu sia nel mezzo del processo, e il lavoro è già ottimo, quindi non voglio assolutamente sembrare ingrato, ma potresti considerare di condividere una versione più leggibile del tuo lavoro?
A mio avviso, sul lungo termine, il ritmo degli aggiornamenti del core può essere difficile da seguire per gli autori dei plugin; potrebbe tranquillizzare chi potrebbe utilizzare le funzionalità del tuo plugin ma esita a costruire qualcosa affidandosi alle spalle di così poche persone, e perché no, potrebbe persino generare buona volontà e interesse?
Grazie mille comunque ![]()
Ciao Benjamin,
Il codice sorgente del plugin è stato rilasciato in forma minificata perché ne sono imbarazzato. È il risultato di un esperimento di R&D e necessita di un’ampia rifattorizzazione. Ho rimandato il compito finché il plugin non avrà suscitato qualche interesse.
![]()
Bene, puoi considerarmi nella colonna “molto interessato”!
Penso che sia una variazione molto carina rispetto alla funzionalità di base “citazione”.
Sto cercando un incentivo per spingere i miei utenti a impegnarsi in alcune analisi di discorsi (che è abbastanza simile al tuo caso d’uso Castafiore, penso, anche se molto meno divertente, ahimè!), e spero che questo design possa spingerli verso la modalità di scrittura.
Finora tutto bene!
Le mie due parole:
- opinione personale sull’intestazione: preferirei mantenerla centrata, mi sembra che integri meglio le pagine statiche del plugin in un discorso globalmente “normale”.
- caso particolare: potrebbe essere utile specificare una categoria dei balloon per ogni categoria statica, nel caso in cui più categorie statiche abbiano diversi permessi di lettura/scrittura.
- mi sto perdendo qualcosa o i tag
[dpgb id=titre] [/dpgb](che, credo, vengono trasformati in balloon) devono essere inseriti manualmente? Ho provato sinceramente (e senza successo!) a usare il pulsante citazione del compositore, argh
. Probabilmente è necessario perché lo slug del tag deve essere impostato 
- l’impostazione
discpage hide tagspotrebbe diventarehide discpage tags? Non capisco davvero la difficoltà nel nascondere solo i tag dpg-****, ma penso che potrebbero intasare un po’ l’elenco dei suggerimenti durante la creazione di un argomento.
prossimo passo: il test di coinvolgimento degli utenti!
Grazie @Benjamin_D, il tuo feedback è molto apprezzato.
L’allineamento dell’intestazione deve adattarsi a:
- Pagine Discourse normali (max-width = 1110px),
- Pagine statiche DiscPage (max-width = 782px, poiché 1110px è troppo ampio per una pagina statica dove non è possibile inserire barre laterali, widget o immagini),
- Layout diviso di DiscPage, con una pagina statica a sinistra e argomenti a destra (max-width = 100%).
Ho effettuato numerosi test, sia con allineamento fisso dell’intestazione sia con allineamento dipendente dal layout, e sono giunto alla conclusione che un allineamento permanente a sinistra fosse la strada da seguire.
Tuttavia, sarò lieto di valutare qualsiasi idea tu possa proporre. Assicurati di considerare i tre casi sopra menzionati.
Questa funzionalità è già supportata; vedi questo paragrafo nella documentazione:
In realtà, è possibile impostare più categorie in questo campo. Chiamiamo PageCat la categoria della pagina statica a cui appartiene il balloon. Se sono presenti più di una categoria balloon in questo campo, DiscPage prenderà la prima che è sia un fratello di PageCat (stesso genitore immediato) sia il genitore immediato di PageCat. Se non viene trovata alcuna categoria del genere, DiscPage prenderà la prima categoria dell'elenco. Questa funzionalità consente di associare [categoria pagina statica, categoria balloon], il che è utile, ad esempio, per forum multilingue o per impostare pagine statiche con diversi permessi di gruppo.
Concordo sul fatto che non sia facile da comprendere. Qualsiasi idea su come migliorare la formulazione è benvenuta.
Sì, i balloon devono essere inseriti manualmente utilizzando una sintassi testuale.
Quando hai provato per la prima volta il plugin, perché pensavi che il pulsante di citazione potesse essere d’aiuto? (Sono interessato al tuo stato mentale in quel momento)
La funzionalità hide discpage tags è già implementata: i tag di DiscPage sono nascosti per impostazione predefinita in tutte le pagine e i widget di Discourse. In altre parole, se riesci a vedere un tag di DiscPage da qualche parte (quando DiscPage è abilitato), si tratta di un bug.
L’impostazione discpage hide tags è molto diversa: consente a chi non desidera abilitare i tag nella propria istanza di Discourse, ma è stato costretto a farlo per utilizzare DiscPage, di simulare un’istanza senza tag.
In realtà, è soprattutto il max-width = 1110px che conserverei, anche se, nella visualizzazione divisa, la pagina statica sotto l’intestazione occupa il 100%. Ho commentato il blocco html.dpg header.d-header .wrap e non sembra poi così male avere un po’ di spazio bianco attorno all’intestazione sopra la pagina statica divisa (anche se i pulsanti “modifica titolo” e “pagina” sembrano un po’ persi lassù, nel layout non diviso).
Sono un idiota, RTFM
(in mia difesa, probabilmente l’ho fatto l’anno scorso e ho dimenticato
)
Non ricordavo che DiscPage nascondesse la categoria a palloncino (avendola appena testata come amministratore), ma è una funzionalità eccellente.
Quindi, se ho capito bene, nel caso di più {categorie di pagine statiche, diritti degli utenti}, si dovrebbe rendere una categoria a palloncino associata una sottocategoria di quella statica (il che ha senso dal punto di vista dei diritti), oppure avere entrambe le categorie come sottocategorie della stessa terza categoria genitore. Non è fondamentale, ma funzionerebbe anche se quella statica fosse una sottocategoria di quella a palloncino?
Probabilmente solo la forma a palloncino dell’icona, in combinazione con il fatto che probabilmente non ho mai usato il pulsante di citazione del compositore, e forse ho pensato: “Ehi, era lì prima?” Quindi l’ho provato ![]()
Non mi importa dover scrivere alcune righe di “codice”, ma posso sentire i miei utenti urlare da qui. Forse per ora semplicemente non si imposteranno le pagine statiche. A volte sento che ogni colpo di tastiera può essere la goccia che fa traboccare il vaso… ![]()
Certo, scusa… Lo attribuirò alla mia leggera febbre; non so perché pensassi che non fossero nascosti, forse ho intravisto uno di essi nella casella a discesa dei tag nella parte a palloncino dello schermo diviso? Ora capisco la virgola finale che ho visto mentre provavo tutto il possibile, persino taggando gli argomenti a palloncino!
Sarebbe possibile permettere agli utenti di creare e modificare i propri post statici? In tal caso, la restrizione amministrativa potrebbe essere gestita esclusivamente tramite le impostazioni di sicurezza delle categorie.
Modifica:
forse no, modificare i tag_groups sembra richiedere un vincolo StaffConstraint ![]()
Potrei permettere a un utente di livello di fiducia 4 di impostare un balloon modificando a = User.current()) && a.admin in User.current()) && a.trust_level >= 4, ma il tag non verrà creato finché un amministratore non modifica la pagina statica… ![]()
Sarebbe ottimo: un moderatore di categoria in grado di modificare il gruppo di tag della propria categoria ![]()
A proposito, ho notato che il plugin checklist sembra interferire con discpage (qualcosa riguardo a getmodel())
Preferisco il layout attuale. Tuttavia, dovrebbe esserci un modo semplice per personalizzarlo. Ci penserò.
No, questa combinazione non è supportata.
Come hai già intuito, la creazione di pagine statiche non è limitata agli amministratori, ma l’inserimento di palloncini sì. Il motivo è che non esiste un modo diretto per creare tag in Discourse (vedi questa discussione). Per farlo, ho scelto di utilizzare l’API tag group, che è riservata agli amministratori. Esistevano soluzioni alternative, ma ognuna presentava i propri svantaggi.
Ti riferisci a questo plugin? Cosa non va?
Infatti, con entrambi i plugin abilitati, aggiornando una pagina statica, in un certo senso disattiva discpage (restituendo un layout normale) e la console genera un errore:
Uncaught (in promise) TypeError: postModel is undefined
checklistSyntax javascripts/discourse/initializers/checklist:29
Entrambi i plugin funzionano correttamente separatamente
Grazie @Benjamin_D. Il problema è stato segnalato qui:
AGGIORNAMENTO: è stato risolto nell’ultima versione (1.0.38).
Ciao @syl, mi dispiace essere il messaggero di brutte notizie
, ho individuato un altro problema di compatibilità, un po’ più grave: con discpage abilitato, un link di invito porta a una pagina vuota (invece che alla pagina di registrazione).
Il console del browser segnala:
r.site.categories is undefined
Disabilitando il plugin, il link di invito funziona come al solito.
Grazie mille per aver segnalato questo, @Benjamin_D. Si tratta di un altro bug con la modalità “accesso richiesto”, quindi ho riaperto la precedente issue su GitHub. Fino a quando non verrà corretto, un’alternativa è disabilitare la modalità “accesso richiesto”.
MODIFICA: questo è stato corretto nell’ultima versione (1.0.38)
Ciao @syl!
Penso che il recente cambiamento delle rotte dei tag
abbia rotto qualcosa ![]()
almeno il link nelle bolle dovrebbe ora puntare verso /tag/dpg-xxx e non verso /tags/dpg-xxx
Grazie @Benjamin_D, questo è stato risolto nella versione 1.0.38.

