Profilo utente: non soddisfacente

8 contenuti / 0 new
Ultimo contenuto
Profilo utente: non soddisfacente

Ciao

ho la necessità di gestire il "profilo" degli utenti, in modo ultradettagliato (gestire parecchi campi).
Per esempio per gestire i soci di un'associazione, quindi quote sociali, periodo di iscrizione, iscritto (si/no), dati personali, note, eccetera ....
Eventualmente riuscendo a definire dati specifici in funzione del ruolo; in pratica non ho proprio idea di come sostituire la gestione del profilo utente ....
Il modulo standard di drupal e il modulo advanced_profile non mi soddisfano poi tanto.
Ricordo di aver letto nel forum (cito a memoria, Pinolo) della possibilità di usare content_profile e quindi CCk per creare un nodo di tipo profilo.
ma il problema non è tanto quello di visualizzare i filed, ma piuttosto crearli ad hoc (per esempio non posso usare un computed_field di CCk con il modulo standard "profile" ...)
E poi :
- come faccio a reindirizzare l'utente non più al profilo di drupal ma al nuovo "profilo" (cioè nodo) per modificare i propri dati ?
- inoltre, la gestione dell'utente, dal punto di vista dei permessi/ruoli/password/e-mail è gestita SEMPRE dal modulo profile di drupal ... giusto ?

grazie
karl

Non so come si facciano le cose che chiedi, ma ho avuto anch'io questo problema e ho optato per una soluzione alternativa. Dipende però dalle tue conoscenze di php; non è richiesto nulla di folle, ma un po' di conoscenza ti permetterebbe di editare direttamente il codice di visualizzazione del profilo.

Così la gestione non sarebbe influenzata in alcun modo da altri moduli se non da quello standard di drupal, ma si può alterare completamente la disposizione del contenuto del profilo di un utente.

Non sono sicuro di aver risposto come volevi alla tua domanda, ma spero di averti dato una possibile soluzione alternativa; se credi ti possa essere utile posso darti tutti i riferimenti che mi hanno aiutato, con qualche dritta in più

mh ... si ... immagino che ti riferisci a scrivere del codice php per fare delle query specifiche ...
Non oso definirmi un programmatore PHP, leggo php ... e ho scritto anche delle procedure; diciamo che non mi spaventa.
Il problema di fondo è che non ho idea di quale file inc o php andare ad editare, piuttosto che creare nuovi content con codice php.

Tu come hai risolto ?

karl

Credo di aver trovato un tutorial interessante su content_profile
http://www.protoscopic.com/articles/drupal-how-to-content-profile-basics
lo studio un po' ... faccio dei test ...

karl

direi che l'uso dei moduli

conten_profile
auto_nodefile
me

risolve pienamente il problema che mi ero posto ...
karl

Io ti posto comunque il codice php del mio tema del profilo;
il file da aggiungere nella cartella del ema è user-profile.tpl.php(per drupal 6.x), che sovrascrive in automatico quello di sistema...
per fare un esempio ecco come ho scritto il mio file:

<?
profile_load_profile($user);
$user_recent_post_limit = 5;
$result = db_query_range(db_rewrite_sql("SELECT n.created, n.title, n.nid, n.changed FROM {node} n WHERE n.uid = %d AND n.status = 1 ORDER BY n.changed DESC"), $user->uid, 0, $user_recent_post_limit);
$user_recent_post = str_replace("<ul>", "<ul class="list_recent_post">", node_title_list($result));
?>
<div class="profile">
<h1 class="title">Profilo di "<? print $user->name; ?>"</h1>
<? if ( $user->status == 1 ) { ?>
<div class="user_status">[<span class="logged">Online</span>]</div>
<? } else { ?>
<div class="user_status">[<span class="notlogged">Offline</span>]</div>";
<? } ?>
<hr />
<div class="left">
<h2>Immagine</h2>
<? if ( $user->picture ) { ?>
<div class="picture">
<img src="/radioohm.it/<? print $user->picture; ?>" alt="User picture"/>
</div>
<? } else
echo "Nessuna";
?>
</div>
<div class="right">
<h2>Curatore/i:</h2>
<p>
<? print str_replace(", ", "<br />", check_plain($user->profile_handler)); ?>
</p>
<h2>Fonico:</h2>
<p>
<? print str_replace(", ", "<br />", check_plain($user->profile_soundoperator)); ?>
</p>
<h2>E-mail:</h2>
<p>
<a href="mailto:<?print check_plain($user->profile_email); ?>"><?print check_plain($user->profile_email); ?></a>
</p>
<h2>Orario:</h2>
<p>
<? print str_replace(", ", "<br />", check_plain($user->profile_datetime)); ?>
</p>
<h2>Facebook:</h2>
<p>
<? if ( $user->profile_facebook ) { ?>
<a href="<? print check_url($user->profile_facebook); ?>">Vedi il profilo</a>
<? } else { ?>
Non e' stato inserito un profilo Facebook
<? } ?>
</p>
<h2>MySpace:</h2>
<p>
<? if ( $user->profile_myspace ) { ?>
<a href="<? print check_url($user->profile_myspace); ?>">Vedi il profilo</a>
<? } else { ?>
Non e' stato inserito un profilo MySpace
<? } ?>
</p>
<p class="member_from">
Programma iniziato il <? print (format_date($account->created, 'custom', 'd/m/Y'));?>
(<? print (format_interval(time() - $account->created));?>)
</p>
</div>
<hr />
<div class="clear">&nbsp;</div>
<div class="under">
<h2>Descrizione:</h2>
<p>
<? print $user->profile_description; ?>
</p>
<h2 class="recent_post">>> Visualizza gli ultimi contenuti inseriti da "<? print $user->name; ?>"</h2>
<? print $user_recent_post; ?>
</div>
</div>
<? if ( $_GET["debug"] ) { ?>
<hr /><hr />
<div>
<h2>Available vars</h2>
<!--<? print "<pre>".check_plain(print_r($profile, $user->uid))."</pre>"; ?>
<hr />-->
<? print "<pre>".check_plain(print_r($user))."</pre>"; ?>
</div>
<? } ?>

Se volessi approfondire su drupal.org c'è una guida fatta benissimo e dettagliatissima a riguardo...
Auguri per il tuo lavoro...

Per le tue esigenze, potresti prendere in considerazione di usare CiviCRM accoppiato a Drupal.

Comunque, per i campi personalizzati del profilo, sì content_profile ti dà la possibilità di usare tutti i widget a disposizione di CCK, sia per il form che per la visualizzazione.
Il profilo creato con content_profile viene poi linkato alla pagina del profilo "base" dell'utente e da lì l'utente stesso può fare le modifiche, in quanto è un nodo che gli appartiene come "authorship".

No, la gestione permessi/password/username/mail è nel modulo user. Profile serve solo per estendere il profilo base con altri campi.

@3ndorama: grazie per il codice; lo studierò. Penso che lo riutilizzerò in quelche modo ...
@pinolo: grazie