Login
Nome utente:

Password:

Ricordami



Password persa?

Registrati ora!
Navigazione
Utenti Online
10 utente(i) online
(3 utente(i) in Tutorial)

Iscritti: 0
Ospiti: 10

altro...
Tutorial :: Sviluppo e Hack :: Sviluppo moduli

Attivazioni utenti personalizzato!


Attivazioni utenti personalizzato!
slyss
Come creare le nostre pagine di attivazione manuale utenti, senza dover passare tramite la lenta procedura di amministrazione xoops.
Creati le tue pagine di attivazioni utenti!
Profilo Autore: slyss
Ciao a tutti come già segnalato in questo post mi sono "costruito" un blocchetto WAITING CONTENT personalizzato. Ora ho aggiunto una nuova interessante funzione che magari può esservi utile. Il problema è il seguente: a me capita che alcuni dei miei utenti non riescano a completare la registrazione in quanto il provider ricevente (di solito americani ed imparticolare aol.com) non lascia passare le mail arrivate tramite form o comunque automatiche. Quindi mi ritrovo con utenti reali ma non ancora autorizzati ad entrare che non ricevono la mail di conferma. Ecco cosa ho fatto:

Open in new window

Quando ci sono degli utenti inattivi appare una nuova scritta ACTIVATE

Premendo ACTIVATE si viene indirizzati ad una pagina da me realizzata:



In questa nuova pagina potrete:
- attivare i profili singolarmente (un click - una attivazione)
- attivare tutti i profili automaticamente con un unico click
- cancellare un utente in caso di email chiaramente fasulla (es: pippo@pluto.com)


Spero che questa cosa vi sia utile (soprattutto per siti di grandi community) anche perchè salta il noioso (e lungo) passaggio di dover far tutto tramite amministrazione.

Ho fatto questo hack per xoops 2.2.x ma è facilmente modificabile anche per xoops 2.0.x. Questo hack si applica inserendo 3 nuovi files nella root del sito.

Ciao sly

Cosa c'è da fare:

PRIMO FILE: activation1.php

Aprite il vostro blocco note di fiducia, create un nuovo documento bianco e salvatelo come activation1.php (ovviamente il nome activation1.php è personalizzabile secondo le vostre preferenze)

ora incollate questo:


<?php

include 'mainfile.php';
include 
XOOPS_ROOT_PATH.'/header.php';

//Hack by Stefano Silvestrini - aka slyss xoopsitalia.org
//stefanoitalia at gmail dot com
//Activation hack for xoops 2.2.x
// 09/01/2007
global $xoopsDB;

$sql "SELECT uid, uname, loginname, email FROM ".$xoopsDB->prefix("users")." WHERE level = 0 ORDER by uid ASC";

echo
"
<div align='center'>
<br /><br /><br />
ATTIVAZIONE PROFILI by Stefano Silvestrini<br /><br />aka slyss - xoops italia
<br /><br />
<br />
<table border='0'>
<tr align='center'>
<td align='center'><b>UID</b></td>
<td align='center'><b>USERNAME</b></td>
<td align='center'><b>EMAIL</b></td>
<td align='center'><b>ATTIVA</b></td>
<td align='center'><b>CANCELLA</b></td>
</tr>
"
;

$count 0;

$result $xoopsDB->query($sql);

if(!
$result) {
       echo 
"Errore: ".mysql_error();
       exit;
       }

while(
$myrow $xoopsDB->fetchArray($result)) {

echo 
"
<tr align='center'>
<td align='center'>"
.$myrow[uid]."</td>
<td align='center'>"
.$myrow[loginname]."</td>
<td align='center'><a href='mailto:"
.$myrow[email]."'>".$myrow[email]."</a></td>
<td align='center'>(<a href='"
.XOOPS_URL."/[b][color=FF0000]activation2.php[/color][/b]?uid=".$myrow[uid]."'>X</a>)</td>
<td align='center'>(<a href='"
.XOOPS_URL."/modules/profile/admin/user.php?op=delete&id=".$myrow[uid]."'>X</a>)</td>
</tr>
"
;

$count++;


}

echo 
"</table>";

echo
"<br /><br /><a href='".XOOPS_URL."/[b][color=FF0000]activation3.php[/color][/b]'>Attivali tutti assieme!</a><br /><br />";

echo 
"<br /><br />Ci sono ".$count." utenti da attivare!<br /><br /></div>";

include 
XOOPS_ROOT_PATH.'/footer.php';

?>


ok chiudete e salvate.

SECONDO FILE: activation2.php

Aprite il vostro blocco note di fiducia, create un nuovo documento bianco e salvatelo come activation2.php (ovviamente il nome activation2.php è personalizzabile secondo le vostre preferenze)

ora incollate questo:


<?php

include 'mainfile.php';
include 
XOOPS_ROOT_PATH.'/header.php';

//Hack by Stefano Silvestrini - aka slyss xoopsitalia.org
//stefanoitalia at gmail dot com
//Activation hack for xoops 2.2.x
// 09/01/2007
global $xoopsDB;

$uid = empty( $_GET['uid'] ) ? intval$_GET['uid'] ) ;


echo
"
<div align='center'>
<br /><br /><br />
ATTIVAZIONE PROFILI by Stefano Silvestrini<br /><br />aka slyss - xoops italia
<br /><br />
<br />"
;


$sql_update "UPDATE ".$xoopsDB->prefix("users")." SET level = 1 WHERE uid = '".$uid."'";

$result_update $xoopsDB->queryF($sql_update);

if(!
$result_update) {
       echo 
"Errore update: ".mysql_error();
       exit;
       }


echo 
"<br /><br />UTENTE ATTIVATO!<br /><br />
<form>
    <input type='button' value='Go Back' onclick='history.back()'>
    </form>
</div>"
;

include 
XOOPS_ROOT_PATH.'/footer.php';

?>
ok chiudete e salvate.

TERZO FILE: activation3.php

Aprite il vostro blocco note di fiducia, create un nuovo documento bianco e salvatelo come activation3.php (ovviamente il nome activation3.php è personalizzabile secondo le vostre preferenze)

ora incollate questo:


<?php

include 'mainfile.php';
include 
XOOPS_ROOT_PATH.'/header.php';

//Hack by Stefano Silvestrini - aka slyss xoopsitalia.org
//stefanoitalia at gmail dot com
//Activation hack for xoops 2.2.x
// 09/01/2007
global $xoopsDB;

$sql "SELECT uid, uname, loginname, email FROM ".$xoopsDB->prefix("users")." WHERE level = 0 ORDER by uid ASC";

echo
"
<div align='center'>
<br /><br /><br />
ATTIVAZIONE PROFILI by Stefano Silvestrini<br /><br />aka slyss - xoops italia
<br /><br />
<br />
<b>UID - USERNAME - EMAIL</b><br /><br />"
;

$count 0;

$result $xoopsDB->query($sql);

if(!
$result) {
       echo 
"Errore: ".mysql_error();
       exit;
       }

while(
$myrow $xoopsDB->fetchArray($result)) {



echo 
"<br />".$myrow[uid]." - ".$myrow[loginname]." - <a href='mailto:".$myrow[email]."'>".$myrow[email]."</a><br />" ;


$sql_update "UPDATE ".$xoopsDB->prefix("users")." SET level = 1 WHERE uid = '".$myrow[uid]."'";

$result_update $xoopsDB->queryF($sql_update);

if(!
$result_update) {
       echo 
"Errore update: ".mysql_error();
       exit;
       }

$count++;


}


echo 
"<br /><br />Attivati ".$count." utenti!<br /><br /></div>";

include 
XOOPS_ROOT_PATH.'/footer.php';

?>


ok chiudete e salvate.

Ok, ora vi basterà crearvi un link a www.vostrosito.com/../../activation1.php per vedere il risultato.
NB: il codice per il waiting content non è presente in questa guida. Appena lo pubblicherò vi farò sapere.

Ciao sly e fatemi sapere!!!! Spero che questa guida faccia anche da "scuola" a chi vuole avvicinarsi maggiormente a xoops.



ATTENZIONE: non mi assumo nessuna responsabilità di alcun tipo. Fate dei backup prima di fare prove. Nel mio caso con extended profile in xoops 2.2.x ho inserito i 3 files dentro profile/admin/ in modo che sono gli admin abbiano accesso a queste funzioni:

screeshot 2:

Open in new window

screeshot 2:

Open in new window
<< SQL per newbie
API: RSS | RDF | ATOM
Copyright© slyss & Xoops Italia
I commenti sono di proprietà degli autori. Si declina ogni responsibilità sul loro contenuto.
Sostieni XoopsItalia!
Ultimi Tutorial
Ultime Traduzioni
XOOPS ITALIA © 2002-2010 - Powered by XOOPS