Vai al contenuto
trattore

4.x Anni e custom field

Recommended Posts

trattore

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.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
trattore
{{$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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
trattore

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....

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
trattore

finalmente funziona utilizzando questo

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

{$member->age()}

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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
trattore
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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
trattore

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

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

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).

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora


×