User login-registrazione e form
Salve a tutti,avrei una domanda per quanto riguarda la registrazione di nuovi utenti su drupal e su openPublic..In pratica ho creato una semplice pagine dove ho inserito il blocco di login sulla second sidebar...vorrei gentilmente sapere:
1)come faccio a non usare,diciamo,il "login block" predefinito ma creare un form tutto mio con i campi che voglio io(tipo nome cogome CF ecc.) e inserirlo nella parte centrale della pagina?
2)una volta cliccato "registra",drupal(o open public) inseriscono l'utente nel database interno..come faccio a trovare la parte di codice che fa sta cosa,in modo da modificarlo e reindirizzare i dati su un altro database da me creato?Grazie mille a tutti per l'aiuto

Risposte
Ciao, sono cose un po
Ciao, sono cose un po complesse e molto dipende nella conoscenza del php....
Comunque se digiti in google site:drupal.org/project login avrai il risultato dei moduli di login. Il primo betterlogin te lo consiglio perchè l'ho gia utilizzato.
Per creare campi aggiuntivi vai in Administration | Configuration | People | Account settings cioè admin/config/people/accounts/fields e visti la casella di usa in registrazione
Con login destination e uno snippet code puoi reindirizzare l'utente.
Ma per inserire dai in database esterno la cosa si fa complessa
https://api.drupal.org/api/drupal/modules%21user%21user.module/function/...
Grazie mille per la
Grazie mille per la risposta..gentilmente,anche se sono nuovo e conosco pochissimo php,inizio a capirne la sintassi..ora,ho scoperto che drupal inserisce gli utenti nel db chiamato "user"..diciamo che creo un nuovo db chiamato "userCopia"...come modifico(o comunque dove) il codice per cambiare questo db?
Puoi mettere il codice nel
Puoi mettere il codice nel template del tema:
stackoverflow . com/questions/20703107/drupal-7-register-form-alter-submit
per cambiare database:
db_set_active('mydb');
db_query('SELECT * FROM table_in_anotherdb');
// cambi datatbase quando finite le query
db_set_active('default');
quindi la funzione diventerebbe:
function bartik_form_alter_submit($form, &$form_state) { if (isset($form_state['values']['user_type'])){ $LastCreatedUsername = $form_state['values']['name']; $fetch_uid_arr = db_select('users', 'u') ->fields('u', array('uid')) ->condition('name', $LastCreatedUsername, '=') ->execute() ->fetchAssoc(); $uid = $fetch_uid_arr['uid']; $rid = $form_state['values']['user_type']; db_set_active('mydb'); $nid = db_insert('users_roles') ->fields(array('uid' => $uid,'rid' => $rid,)) ->execute(); db_set_active('default'); } }Vorrei cercare di inserire il
Vorrei cercare di inserire il codice nel modulo esistente più che nel template..ho provato a modificare settings.php e anche user.api.php(che dovrebbe essere proprio il modulo di registrazione e inserimento nel db) ma non va..dove sbaglio?forse ho sbagliato anche a creare in 2 db e importare le tabelle?
un problema per volta. Per
un problema per volta.
Per quanto riguarda gli utenti credo sia molto più semplice seguire la risposta precedente, aggiungo che
con Drupal è molto semplice aprire un GRUPPO di utenti tutto nuovo, oltre registrati ed amministratori, e quindi attribuirgli i privilegi richiesti, quindi non agirei mai sul database sarei completamente fuori strada.
--
per quanto riguarda l'aspetto delle pagine agirei di css ed adotterei un template idoneo al progetto per poi apportare qualche modifica ma di lieve entità.
Innanzi tutto grazie per le
Innanzi tutto grazie per le risposte..il mio problema è che,durante linstallazione drupal richiedeva un database esistente,e io ne ho creato uno su mysql col nome "drupal"..in questo modo il cms si è creato tutte le tabelle che gli servono per funzionare,tra cui la tabella user dove si salva tutti gli utenti(di qualsiasi tipo)..ora,siccome per neccessità lavorativa devo creare un 2database esterno in cui salvarmi anche qui gli utenti,allora su mysql ho creato un database col noem drupal2..questo perchè la mia intenzione è:quando qalcuno crea un nuovo profilo,inserendo nome email password conferma password ecc,poi clicca su "crea nuovo profilo"..ecco quando clicca vorrei che drupal funzioni normalmente,quindi inserisce i dati nuovi dell'utente nella tabella user,ma allo stesso tempo lo inserisca anche nel 2database..potrei dire grezzamente che voglio un secondo database con la tabella user come copia della tabella user del db interno di drupal..quasi come una sicurezza in più..come faccio a catturare la chiamata al metodo insert() di drupal in modo da "duplicare il codice" e permettergli di inserire l'utente anche nel 2db?
i dati nuovi dell'utente
i dati nuovi dell'utente nella tabella user,ma allo stesso tempo lo inserisca anche nel 2database
----------
questo è molto diverso da quanto hai chiesto finora, credo c'entri poco con drupal semmai con mysql.
Mi dispiace di essermi
Mi dispiace di essermi espresso male...ora che spero sia più caro,avete consigli su come risolvere?
Scusate riguardo alla
Scusate riguardo alla registrazione degli utenti avrei anche io una domanda.
Ho creato una procedura di registrazione per ogni utente che desideri scrivere un commento nella pagina web. Fino quí non c'é nulla di strano o speciale.
La cosa diventa strana perché si iscrivono in modo costante persone con nomi utenti molto strani: molto lunghi e con una successione continua di lettere e a volte di lettere e numeri.
Esempio: afgajhsjhsjkaskusa o cvnsmxcvk56cnvc32j
A me sembra strano, perché normalmente un essere umano crea un nome utente corto o comunque che sia simile a un nome o cognome e per questo facil da ricordare.
Dopo che vengono attivati, in qualsiasi caso, non tornano piú a connettersi.
Cosa credete che sia ? Qualche sistema automatico che si registra ?
Che problemi potrei avere? Che il database si riempia e resti senza spazio?
@DR: 1° apri un nuovo 3D per
@DR: 1° apri un nuovo 3D per un nuvo argomento, non costa nulla, è gratis, ma rimane ordinato il forum, dato che l'argomento non c'azzecca con il topic aperto.
2° Mai sentito parlare di bot? Mai visto un codice captcha? Mai pensato a cosa potessero servire?quindi, rispondendo alle tue domande:
Sono dei bot.
Esattamente!
Bella domanda...
Se hai dei limiti di spazio, potrebbe essere uno dei problemi.
[quote]@DR: 1° apri un nuovo
[quote]@DR: 1° apri un nuovo 3D per un nuvo argomento, non costa nulla, è gratis, ma rimane ordinato il forum, dato che l'argomento non c'azzecca con il topic aperto.
2° Mai sentito parlare di bot? Mai visto un codice captcha? Mai pensato a cosa potessero servire?quindi, rispondendo alle tue domande:[/quote]
Mah ??? Eh, va bene faró cosí. Grazie
quelle iscrizioni non sempre
quelle iscrizioni non sempre sono boot, spesso sono umani ovvero spammer
qualsiasi sito appena frequentato riceve iscrizioni di spammer ...
neanche con il bazooka te ne liberi, occorre renderli inoffensivi, ad esempio dandogli una categoria di privilegi che non possano far niente, al massimo proveranno ad attivare l'account ma essendo già attivo non potranno far niente.
perchè lo fanno?
mahh ricordati che lo spammer mente, lo spammer mente sempre e in caso di dubbio valgono le prime due regole.
--i dati nuovi dell'utente
--i dati nuovi dell'utente nella tabella user,ma allo stesso tempo lo inserisca anche nel 2database
Hai due possibilità...inserisci un trigger nella tabella drupal_users che va ad inserire i dati nella tabella drupal_users2, oppure crei un modulo che ha un hook che si aggancia alla registrazione dell'utente..
ciao
marco