Vai al contenuto
  • 0

Campo utente personalizzato


Vallo

Domanda

Ciao a tutti,

avrei una domanda per quanto riguarda la personalizzazione dei compi del profilo utente.

Ho letto la guida presente nel sito ufficiale, ma non ho trovato la risposta che sto cercando: https://invisioncommunity.com/4guides/members-and-groups/custom-profile-fields-r172/

Vorrei creare un campo "Nickname" dove l'utente dovrà inserire un suo nickname. Vorrei che però quel campo sia affiancato ad un altro campo contenente una spunta. Se l'utente metterà la spunta, quando il nickname verrà mostrato nel profilo, verrà affiancato da una piccola immagine.

Utilizzando la sezione "display formatting" però non riesco a capire se posso accedere ad altri dati di altri campi per poter aggiungere o rimuovere una piccola icona al testo che viene mostrato all'interno del campo personalizzato nickname.

 

Spero di essere stato chiaro!?

Link al commento
Condividi su altri siti

8 risposte a questa domanda

Messaggi raccomandati

  • 0
  • Admin

Se ho capito bene tu vuoi creare due campi extra agli utenti, un checkbox (con una spunta, quindi campo singolo) e un input con il nickname giusto? Quando uno flagga il checkbox e inserisce il nickname appare il nome utente?

Non è una cosa che permette di fare semplicemente IP.Board, però si potrebbe ottenere un risultato lavorando sul template customFieldsDisplay creando una condizione, andrebbe però visto come estrarre il dato da fargli confrontare... Nell'altro caso, creare un hook personalizzato, mi potresti spiegare a cosa ti serve far flaggare la casella?

 

Link al commento
Condividi su altri siti

  • 0
Inviato (modificato)

Scusami, forse non mi sono spiegato molto bene io, cerco di farti un esempio in modo da toglierti ogni dubbio.

Sotto ogni avatar, nella lista di informazioni pubbliche di ogni utente, vorrei mostrare un nuovo campo chiamato “macchina”. Ogni utente può inserire il modello della propria macchina, in modo da mostrarlo a tutti. Nell’impostazioni del profilo peró, accanto al field di testo “macchina”, vorrei però inserire un check box chiamato “d’epoca”. Se un utente inserisce il modello della sua macchina, e in aggiunta spunta il check box, quando verrà mostrato il modello della sua macchina, verrà mostrata anche una piccola icona subito a fianco del testo del modello della macchina. Una cosa de tipo:

Modello: Ferrari?

Se invece non viene spuntata il check box verrà semplicemente mostrato il campo modello, ma senza icona a fianco. Esempio:

Modello: Ferrari

 

Spero di essere stato un po’ più chiaro adesso!?

Modificato da Vallo
Link al commento
Condividi su altri siti

  • 0
  • Admin

Ho fatto diverse prove senza risultati, mi sto informando se è possibile effettuare questa cosa senza la creazione di un hook.

Link al commento
Condividi su altri siti

  • 0
2 ore fa, Askancy ha scritto:

Ho fatto diverse prove senza risultati, mi sto informando se è possibile effettuare questa cosa senza la creazione di un hook.

Oh, grazie per l’interesse!?

per caso sai dirmi dove posso trovare guide base per la creazione di hook? Alla fine è questione di inserire due campi nel profilo, quindi non penso che sia una cosa troppo complicata da programmare nonostante sia un neofita nel mondo di questa piattaforma.

Conosco già un po’ di php, ma non ho assolutamente idea su dove iniziare a mettere le mani per creare un hook compatibile su invision.

Link al commento
Condividi su altri siti

  • 0
Il 15/3/2020 at 19:36, Vallo ha scritto:

Oh, grazie per l’interesse!?

per caso sai dirmi dove posso trovare guide base per la creazione di hook? Alla fine è questione di inserire due campi nel profilo, quindi non penso che sia una cosa troppo complicata da programmare nonostante sia un neofita nel mondo di questa piattaforma.

Conosco già un po’ di php, ma non ho assolutamente idea su dove iniziare a mettere le mani per creare un hook compatibile su invision.

Devi utilizzare qualche hook che ti permette di creare campi personalizzati con icone. Se non hai tanta esperienza con php è meglio non toccare nulla altrimenti salta tutto

Link al commento
Condividi su altri siti

  • 0

Per creare una hook devi scaricare developer tool e seguire la guida base ma lo consiglio se vuoi cimentarti anche per altre modifiche e soprattutto installando in un ambiente locale non di produzione (visibile al pubblico).

però se utilizzi un tema unico ti conviene modificare direttamente nel modulo admincp il template specifico...

Link al commento
Condividi su altri siti

  • 0
  • Admin
5 minuti fa, BomAle ha scritto:

però se utilizzi un tema unico ti conviene modificare direttamente nel modulo admincp il template specifico...

Visto che hai creato diverso hook, conosci un modo per estrarre il dato?, facciamo caso che il dato di trova nel campo 26

Qualcosa simile a questo, che ovviamente da errore perché sembra che IPS\DB::i non usi il where (certo che potevano un po' allinearla la documentazione con code, strong... Non ci si capisce nulla):

{{if \IPS\Db::i()->select('field_26', 'core_pfields_content')->where('member_id', $author->member_id)->first() == '1'}}
	check
{{else}}
	no
{{endif}}

 

Link al commento
Condividi su altri siti

  • 0

meglio se utilizza la classe member in questo caso $author->profileFields()

Cita

$member->profileFields(): Return the custom profile fields for the member as an array of profile field objects.

https://invisioncommunity.com/4docs/advanced-usage/development/working-with-members-r179/

in ogni caso restituisce un array e basta individuare l'id X del gruppo a cui appartiene e l'id Y stesso del campo per risalire al valore

$author->profileFields()['core_pfieldgroups_X']['core_pfield_Y']
Modificato da BomAle
  • Like 1
Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora
  • Chi sta navigando   0 utenti

    • Nessun utente registrato visualizza questa pagina.
×
×
  • Crea Nuovo...

Informazioni importanti

Abbiamo inserito dei cookies nel tuo dispositivo per aiutarti a migliorare la tua esperienza su questo sito. Puoi modificare le impostazioni dei cookie, altrimenti puoi accettarli cliccando su continua. to insert a cookie message.