Vai al contenuto
  • 0

Anni e custom field


trattore

Domanda

Mi serve una mano, sto creando un profilo siderbar da mettere nel blocco delle pagine, solo che non sò proprio come prelevare singoli custon field, e sopratutto come prelevare l'età degli utenti...grazie in anticipo.

Link al commento
Condividi su altri siti

8 risposte a questa domanda

Messaggi raccomandati

  • 2

per l'utente loggato prova con

\IPS\Member::loggedIn()->age()
{{$member = \IPS\Member::loggedIn();}}
{{if $member->bday_year}}<br><span class='ipsType_light'>{lang="member_age" pluralize="$member->age()"}</span>{{endif}}

Invece per i campi profilo puoi utilizzare la funzione "profileFields"

{{$gruppi	= array('4');}}
{{$ordine	= 'member_id DESC';//oppure 'RAND()' o ancora 'last_visit DESC'}}
{{$members	= \IPS\Db::i()->select('m.member_id',array('core_members','m'),'pp_main_photo <> "" AND bday_year <> "" AND ('. \IPS\Db::i()->in( 'member_group_id', $gruppi ) . ' OR ' . \IPS\Db::i()->findInSet( 'mgroup_others', $gruppi ) . ')',$ordine,array( 0, 5 ));}}
{{foreach $members as $member}}
{{$member = \IPS\Member::load( $member );}}
{$member->age()}
{{$ggg=print_r($member->profileFields(),1);}}
<textarea>{$ggg}</textarea>
{{if $pf=$member->profileFields() AND isset($pf['core_pfieldgroups_1']['core_pfield_1'])}}
{$pf['core_pfieldgroups_1']['core_pfield_1']}...
{{endif}}
{{endforeach}}

trat.png.91a752f28e45a56c0464370f78d87ef

Altrimenti se vuoi verificare direttamente tramite la query che un campo non sia vuoto potresti provare con:

{{$members	= \IPS\Db::i()->select('m.member_id',array('core_members','m'),'pp_main_photo <> "" AND bday_year <> "" AND pf.field_1 <> "" AND ('. \IPS\Db::i()->in( 'member_group_id', $gruppi ) . ' OR ' . \IPS\Db::i()->findInSet( 'mgroup_others', $gruppi ) . ')',$ordine,array( 0, 5 ))->join(array('core_pfields_content','pf'),'pf.member_id=m.member_id');}}

nota bene: si utilizza una "join" per integrare un altra tabella in questo caso per i campi profilo, e pf.field_1 <> "" per dare istruzione nella clausola WHERE

Modificato da BomAle
  • Like 2
Link al commento
Condividi su altri siti

  • 1

Perfetto!!! basta inserire questo codice.. PER I PROFILI SINGOLI

{{$member = \IPS\Member::loggedIn();}}
{{if $pf=$member->profileFields() AND isset($pf['core_pfieldgroups_ID FIELD']['core_pfield_ID FIELD'])}}
{$pf['core_pfieldgroups_ID GRUPPO']['core_pfield_ID FIELD']}
{{endif}}

GRAZIE ANCORA

Link al commento
Condividi su altri siti

  • 1

in ogni modo provo a ottenere informazioni a riguardo perchè differentemente dalla 3.x la variabile member offre solo alcuni parametri limitati alla tabella core_members (senza ad esempio avere la possibilità di ricavare i campi profilo direttamente dal metodo load).

  • Like 1
Link al commento
Condividi su altri siti

  • 0
Inviato (modificato)
{{$gruppi	= array('4');}}
{{$members	= \IPS\Db::i()->select('member_id','core_members','pp_main_photo <> "" AND ('. \IPS\Db::i()->in( 'member_group_id', $gruppi ) . ' OR ' . \IPS\Db::i()->findInSet( 'mgroup_others', $gruppi ) . ')');}}
{{foreach $members as $member}}{{$member = \IPS\Member::load( $member );}}{$member->age()}{{endforeach}}

Questo estrae gli anni in qualsiasi pagina finalmente ho risolto... ora devo solo trovare il modo di prelevare fi custon field singolarmente

Modificato da trattore
Link al commento
Condividi su altri siti

  • 0

RETIFICO, funziona ma rilasciando un tot di utenti, ho preso spunto sul codice di ale..ma quello che voglio è rilasciare una singola età per l utente loggato....

Link al commento
Condividi su altri siti

  • 0

finalmente funziona utilizzando questo

{{$member = \IPS\Member::loggedIn();}}

{$member->age()}

grazie mille! ora sarebbe perfetto trovare la soluzione dei field, prelevarli singolarmente... GRAZI ALE!

  • Like 1
Link al commento
Condividi su altri siti

  • 0
Il 8/3/2016 at 01:49, BomAle dice:

Invece per i campi profilo puoi utilizzare la funzione "profileFields"


{{$gruppi	= array('4');}}
{{$ordine	= 'member_id DESC';//oppure 'RAND()' o ancora 'last_visit DESC'}}
{{$members	= \IPS\Db::i()->select('m.member_id',array('core_members','m'),'pp_main_photo <> "" AND bday_year <> "" AND ('. \IPS\Db::i()->in( 'member_group_id', $gruppi ) . ' OR ' . \IPS\Db::i()->findInSet( 'mgroup_others', $gruppi ) . ')',$ordine,array( 0, 5 ));}}
{{foreach $members as $member}}
{{$member = \IPS\Member::load( $member );}}
{$member->age()}
{{$ggg=print_r($member->profileFields(),1);}}
<textarea>{$ggg}</textarea>
{{if $pf=$member->profileFields() AND isset($pf['core_pfieldgroups_1']['core_pfield_1'])}}
{$pf['core_pfieldgroups_1']['core_pfield_1']}...
{{endif}}
{{endforeach}}

trat.png.91a752f28e45a56c0464370f78d87ef

Altrimenti se vuoi verificare direttamente tramite la query che un campo non sia vuoto potresti provare con:


{{$members	= \IPS\Db::i()->select('m.member_id',array('core_members','m'),'pp_main_photo <> "" AND bday_year <> "" AND pf.field_1 <> "" AND ('. \IPS\Db::i()->in( 'member_group_id', $gruppi ) . ' OR ' . \IPS\Db::i()->findInSet( 'mgroup_others', $gruppi ) . ')',$ordine,array( 0, 5 ))->join(array('core_pfields_content','pf'),'pf.member_id=m.member_id');}}

nota bene: si utilizza una "join" per integrare un altra tabella in questo caso per i campi profilo, e pf.field_1 <> "" per dare istruzione nella clausola WHERE

ciao ale grazie mille, ho provato a inserire il tutto ma rilascia tutti i dati degli utenti, posso anche scegliere di visualzizzare un singolo field e funziona, ma io cerco il modo come per l'età di prelevare il singolo fild dell'utente loggato che visualizza il sito, prima sulla vecchia versione bastava inserire una cosa così {$member='core_pfield_26'} e tirilasciava il dato

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.