Come mostrare il nome completo negli embed

Ciao ragazzi

Ho appena letto questo post How to display full name in comments embeds

Ho eseguito questi comandi.

cd /var/discourse
./launcher enter app
x86_64 arch detected.
root@discourse-app:/var/www/discourse# cd app/views/embed/
root@discourse-app:/var/www/discourse/app/views/embed# nano comments.html.erb

Nano non era installato, quindi l’ho installato e ho modificato comments.html.erb sostituendo le righe menzionate nel post di riferimento.

Poi sono uscito dal launcher e ho eseguito

./launcher rebuild app

Dopo la ricostruzione non ha fatto alcuna differenza, vedo ancora i nomi utente invece dei nomi completi negli embed.

Dove ho sbagliato?

Grazie

Benvenuto, Mark! :wave:

Ricostruire l’app scaricherà nuovamente Discourse e sovrascriverà qualsiasi modifica apportata all’interno del container.

Se desideri apportare modifiche a Discourse, modificare questi file in questo modo non è il modo corretto per farlo.

Personalizzare le funzionalità di Discourse viene solitamente fatto con un componente tema:

O un plugin:

Se hai qualche conoscenza di programmazione, ti suggerisco di dare un’occhiata a questi link. :slight_smile:


Questo link potrebbe essere particolarmente interessante:

A prima vista, sembra fare esattamente quello che stai cercando. Si limita a puntare a un altro file nella stessa cartella padre.

@Canapin Grazie per i tuoi suggerimenti.

Ho creato questo repository https://github.com/OptDev/optuma-discourse-custom-embed

ma non sto facendo molti progressi.

Eseguo questo comando e compila senza errori

./launcher enter app

Ma non sembra che io stia vedendo le modifiche che mi aspetto negli embed. Ho aggiunto un paio di nomi di classi CSS personalizzati e ho cambiato <%= post.user.username %> in <%= post.user.name %>. Apprezzerei qualche altro suggerimento nella giusta direzione per far funzionare questo. Non riesco a immaginare che sia troppo complicato sovrascrivere un file di template di un plugin da un altro plugin.

Quello che sono riuscito a fare è entrare nell’app e copiare manualmente la versione del template dei miei plugin in /var/www/discourse/app/views/embed/ quindi riavvio l’app e vedo i risultati che sto cercando.

Ho solo bisogno che succeda magicamente quando il plugin viene caricato, ed è lì che sono bloccato.

Qualche idea sul perché questo non stia sovrascrivendo il file /app/views/embed/comments.html.erb con quello che ho nel mio plugin?

after_initialize do
  ::EmbedController.prepend_view_path File.expand_path("../embed", __FILE__)
end

Okay, l’avevo capito bene, c’era solo un problema di percorso.

Ora devo solo capire come farlo prelevare da un repository git privato.

Aggiungi semplicemente il token di accesso privato all’URL clonato

@merefield Come si presenterebbe nel file app.yml?

Non importa, l’ho trovato qui. Install plugins on a self-hosted site

Una cosa da notare, nella documentazione dice di usare un “token”…

git clone https://<token>@github.com/owner/repo.git

Ho scoperto che dovevo usare il tuo nome utente GitHub e il token

git clone https://<github-username>:<token>@github.com/owner/repo.git

Alla fine il tuo plugin ha funzionato come previsto? :slight_smile:

@Canapin Sì! Ho fatto funzionare tutto. Ecco come è finito il file plugin.rb. Si è scoperto che avevo solo un problema di percorso in cui stavo inserendo la versione personalizzata del file.

Alla fine l’ho inserito in una cartella /custom_views/embed/comments.html.erb

# frozen_string_literal: true

# name: optuma_discourse_custom_embed
# about: Un semplice plugin utilizzato per personalizzare il template negli embed del forum
# version: 1.0.0
# authors: Optuma Pty Ltd
# url: https://github.com/OptDev/optuma-discourse-custom-embed
# required_version: 2.7.0

after_initialize do
  ::EmbedController.prepend_view_path File.expand_path("../custom_views", __FILE__)
end