Stiamo spostando una grande community su Discourse da vb3.
Molti nomi utente - circa 1.200 - contengono il punto esclamativo “!” e non sono riuscito a trovare alcuna opzione per riabilitarlo.
Abbiamo già abilitato “nomi utente unicode” senza successo.
Esiste una soluzione pronta per questo problema?
Non ho preso io la decisione, ma ci sono molti sistemi per cui un ! non è un carattere valido per un nome utente. È molto probabile che se provassi a consentirlo in un plugin (o in una fork, che sarebbe un’idea molto, molto brutta se volessi mai più aggiornare Discourse), sarebbe difficile.
Il ! ha significati speciali in diversi contesti e sospetto che se cambiassi semplicemente il validatore del nome utente, un sacco di altre cose si romperebbero.
Capisco. È comunque qualcosa che dovrebbe essere affrontato. Tutte le altre soluzioni BB consentono quel carattere nel nome utente ed è comune nelle community di gioco. Il nome utente e l’ID utente dovrebbero essere mantenuti come entità separate per non avere tali limitazioni. Abbiamo circa 95.000 membri e contattare 1.200 di loro per cambiare il proprio nome utente sarà una vera seccatura. Grazie comunque per l’aiuto!
Ho fatto dozzine, forse più di cento importazioni. Presto molta attenzione alle persone che chiedono informazioni sulle importazioni qui. Questa è la prima volta che ricordo qualcuno che si lamenta di questo.
Puoi dire a tutti di provare sia il loro nome utente che il loro indirizzo email (molti di loro non lo sapranno nemmeno). È una buona scommessa che tu abbia altri nomi utente che sono cambiati.
Questo ti darà tutti i nomi utente che sono cambiati:
Vale la pena sottolineare che nomi e nomi utente non sono la stessa cosa. I nomi utente vengono utilizzati nei percorsi degli URL, ad esempio:
https://meta.discourse.org/u/pfaffman/summary
Un punto esclamativo non è un carattere valido in un URL, mentre caratteri come ?& hanno scopi speciali nella struttura dell’URL e quindi non possono far parte di un nome utente. Questo non è specifico di Discourse, qualsiasi sistema che utilizza il nome utente nella struttura dell’URL deve rispettarlo.
Un nome utente non può contenere un punto esclamativo, ma il nome può farlo, cosa che puoi dare priorità nell’interfaccia utente.
Oltre a ciò, i nomi utente sono destinati all’uso nelle @menzioni, quindi ci si aspetta che i nomi utente siano semplici e facili da digitare; ecco perché consentiamo solo caratteri ASCII per impostazione predefinita (anche se ciò può essere esteso all’unicode tramite l’impostazione unicode_usernames, ma ancora senza punteggiatura).
Nota che questo script di migrazione utilizza la classe base dello script di migrazione non di massa, che fa questo con ogni record utente generato dal metodo a cui hai collegato:
che rimuove eventuali caratteri non validi dai nomi utente.
Ci sono molti punti nel codice che danno per scontate determinate cose sui nomi utente (parsing di @menzioni, modifica dei nomi utente, ecc.), motivo per cui imponiamo queste restrizioni.
Come dice Stephen, i nomi utente non sono il posto dove mostrare la personalità dell’utente; i campi nome e flair lo sono
Ci sono ancora parecchi casi limite che sono difficili da gestire in questo modo.
I nomi non sono univoci, se diamo priorità nel layout al nome potete immaginare come andrebbe in una bacheca piena di adolescenti immaturi che giocano e trollano tutto il giorno
Va benissimo dire che potrebbe essere un problema a bassa priorità, tuttavia è qualcosa che chiaramente potrebbe beneficiare di qualche riflessione e lavoro e certamente non è una “funzionalità” o qualcosa che dia un vantaggio rispetto alla possibilità di scegliere un nome univoco senza forti limiti come qualsiasi altro software bb che esiste da tempo.
Ti dispiacerebbe condividere alcuni dei progetti CMS open source che hai utilizzato? Possiamo dare un’occhiata e vedere come gestiscono i permalink e i riferimenti utente, imparare dai loro sforzi.
Anche se… mi chiedo se i Sistemi di Gestione dei Contenuti siano esattamente nello stesso contenitore dei Forum della Community?
Inoltre, la menzione dei caratteri speciali che vengono codificati non è qualcosa di unico dei CMS, è semplicemente una codifica standard: Percent-encoding - Glossary | MDN
vBulletin 3 non ha quelle funzionalità e vBulletin 5… non ho idea se abbia quella funzionalità dato che è un software chiaramente rimasto indietro in termini di funzionalità moderne.
Quando pinghi qualcuno su Discourse compare un suggerimento automatico. Non c’è bisogno di preoccuparsi di dover digitare il nickname completo.
Modifica: Alla fine significa decodificare l’elenco degli utenti prima di suggerirlo, se lo si desidera davvero, o codificare l’input (l’utente che scrive la parziale) in modo che possa cercare correttamente il nome utente.
Voglio dire, possiamo discutere su quanto lavoro e impegno ci voglia, ma non su “se” sia possibile.
In ogni caso, non so se sia solo il media a comunicare male l’umore, ma tutte queste risposte recenti sono sembrate un po’ “ostili”. Le persone vengono su meta.discourse per chiedere aiuto e suggerire cose da migliorare. Se non sei d’accordo, puoi semplicemente ignorare il thread e andare avanti.
Inoltre, ho dimenticato di aggiungere. Se ci sono PR aperte per Discourse, posso provare a lavorarci in un fork e aprire una PR. Certo, non sono uno sviluppatore Ruby, ma ho diversi anni di esperienza come ingegnere software / ingegnere di piattaforma. Sarò felice di provare a contribuire
Solo aggiorno per il futuro, ! non sono un elemento proibito negli URL come menzionato sopra. Non so da dove provenga questa idea.
Tuttavia, Ruby sembra usare ? e ! nelle sue funzioni, il che è una cosa strana ad essere onesti (almeno nei miei oltre 20 anni di ingegneria del software) ma ogni linguaggio ha le sue cose
Il che potrebbe suggerire perché ! è proibito. Dovrò scavare più a fondo nel codice sorgente di discourse per capire se questo era un problema specifico che non poteva essere risolto o solo qualcosa che è stato eccessivamente proibito per evitare potenziali problemi tra nomi utente e ruby che impazziscono in alcuni casi limite.
Mi dispiace per aver ripreso questa vecchia discussione, ma ho lo stesso problema e la mia ipotesi è che |, [ e ] siano anche caratteri illegali per i nomi utente e non possano essere abilitati in qualche modo?
Sto per migrare un vecchio forum di giochi da phpBB3 a Discourse e molti nomi utente sono come Clan|Nickname o [Clan]Nickname.
Modificherei lo script per cercare quelli e sostituirli con un carattere legale come _ o -. Penso che li eliminerà semplicemente. Puoi guardare il codice del nome utente suggerito.
Quando ho migrato il mio primo forum a Discourse ho notato che i caratteri illegali, a partire dagli spazi vuoti, ma anche altri, venivano sostituiti da _. Ma in questo forum il carattere illegale più comune era lo spazio vuoto e non molto spesso, quindi non era il problema che potrebbe essere ora. Comunque, questo non può essere un ostacolo. Forse inserirò il vecchio nome utente nel campo del nome. Vedremo - quando avrò risolto l’altro problema che il mio container di importazione non si costruisce…