Back to top

Autore Topic: [risolto] importazione utenti da csv funzione explode  (Letto 4858 volte)

pippo30

  • Visitatore
salve ho fatto il componente per importare il csv
ma ho una domanda

ho usato la funzione explode

Codice: [Seleziona]

/* Split the line by comma */
if (function_exists('str_getcsv'))
$line = str_getcsv($line);
else
$user = new JUser();
$line = “nome cognome, nomeutente, email, password”;
$properties = explode(",", $line);
$user->name = $properties[0];
$user->username = $properties[1];
$user->email = $properties[2];
$user->password = $properties[3];


i campi bastano questi o deve aggigerne sono giusti per fare in modo che l'importazione avenga correttamente???
« Ultima modifica: 23 Apr 2013, 11:26:11 da Marco31 »

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #1 il: 16 Apr 2013, 10:35:24 »
Ciao Marco31,
se intendi creare un utente di Joomla! credo manchi ancora qualche campo:
Il Gruppo di utenti al quale appartiene l'utente nuovo/importato
Se E un utente Bloccato
Se è un Utente Attivato
La Data di Registrazione... etc.. etc...
Non so se l'omissione di uno o di tutti i parametri sia "bloccante" dovresti solo provare.
Mi pare che in Joomla! 2.5.x le Tabelle interessate per la creazione di uno User siano 3 o poco più:
Users, UserGroups,User_Notes
E qualcos'altro mi pare...  ;)
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #2 il: 16 Apr 2013, 11:07:48 »
come mai con la modifica esce pagina bianca??
Codice: [Seleziona]
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controller library
jimport('joomla.application.component.controller');
 
/**
 * General Controller of JUserImporter component
 */
class JUserImporterController extends JControllerLegacy
{
        
/**
         * display task
         *
         * @return void
         */
        
function display($cachable false$urlparams = array()) 
        {
                
// set default view if not set
                
$input JFactory::getApplication()->input;
                
$input->set('view'$input->getCmd('view''JUserImporter'));
 
                
// call parent behavior
                
parent::display($cachable$urlparams);
        }
        
        
/**
         * Import task
         */
        
function importUsers($source "c:/xampp/htdocs/users2import.csv")
        {
            
/* Check the user file exists */
if (file_exists$source ) && !isset($_REQUEST['srcfile'])) {
/* Open the file */

if(!file_exists($source)) $source $_REQUEST['srcfile'];

$handle fopen($userFile,"r");
$content fread ($handle,filesize $source ));
fclose($handle);   
 
/* Get the file, line by line */
$lines explode("\n"$content);
 
/* Remove the first line (headers only) */
unset($lines[0]);
 
/* Counter of users added */
$added 0;
 
/* Iterate through each line of the data file */
foreach ($lines as $key => $line){
/* Split the line by comma */
if (function_exists('str_getcsv'))
$line str_getcsv($line);
else
$user = new JUser();
$line “nome cognomenomeutenteemailpassword”;
$properties explode(","$line);
$user->name $properties[0];
$user->username $properties[1];
$user->email $properties[2];
$user->password $properties[3];
 
/* Build a new user object */
$user = new JUser();
$user->id null;
 
/* Set the values */
$user->name $line[2];
$user->username $line[12];
$user->email $line[11];
$user->groups = array(2);
 
/* Build the password */
$salt       JUserHelper::genRandomPassword(32);
$crypted    JUserHelper::getCryptedPasswordpreg_replace("/\s/"""strtolower($line[13])) , $salt);
$newpassword$crypted ':' $salt;
 
$user->password $newpassword;
 
$user->usertype "deprecated";
$user->registerDate date('Y-m-d H:i:s');
 
if(!
$user->save()) JError::raiseError(500,$user->getError() );   
else 
$added++;
}

return 
$added;
}else{
    
JError::raiseError(403JText::_('File CSV da importare mancante.'));
    return 
false;
}
 
        
JError::raiseError(403JText::_('Ci sono stati deli errori.'));
        return 
false
        }
}

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #3 il: 16 Apr 2013, 11:09:58 »
Ciao,
a occhio e croce non vedo niente, hai attivato il Debug di Joomla! Così al posto della Pagina Bianca magari leggiamo cosa accade.. :o
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #4 il: 16 Apr 2013, 11:12:56 »
prima era così
Codice: [Seleziona]
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controller library
jimport('joomla.application.component.controller');
 
/**
 * General Controller of JUserImporter component
 */
class JUserImporterController extends JControllerLegacy
{
        
/**
         * display task
         *
         * @return void
         */
        
function display($cachable false$urlparams = array()) 
        {
                
// set default view if not set
                
$input JFactory::getApplication()->input;
                
$input->set('view'$input->getCmd('view''JUserImporter'));
 
                
// call parent behavior
                
parent::display($cachable$urlparams);
        }
        
        
/**
         * Import task
         */
        
function importUsers($source "c:/xampp/htdocs/users2import.csv")
        {
            
/* Check the user file exists */
if (file_exists$source ) && !isset($_REQUEST['srcfile'])) {
/* Open the file */

if(!file_exists($source)) $source $_REQUEST['srcfile'];

$handle fopen($userFile,"r");
$content fread ($handle,filesize $source ));
fclose($handle);   
 
/* Get the file, line by line */
$lines explode("\n"$content);
 
/* Remove the first line (headers only) */
unset($lines[0]);
 
/* Counter of users added */
$added 0;
 
/* Iterate through each line of the data file */
foreach ($lines as $key => $line){
/* Split the line by comma */
if (function_exists('str_getcsv'))
$line str_getcsv($line);
else
$line preg_split('/,/'$line);
 
/* Build a new user object */
$user = new JUser();
$user->id null;
 
/* Set the values */
$user->name $line[2];
$user->username $line[12];
$user->email $line[11];
$user->groups = array(2);
 
/* Build the password */
$salt       JUserHelper::genRandomPassword(32);
$crypted    JUserHelper::getCryptedPasswordpreg_replace("/\s/"""strtolower($line[13])) , $salt);
$newpassword$crypted ':' $salt;
 
$user->password $newpassword;
 
$user->usertype "deprecated";
$user->registerDate date('Y-m-d H:i:s');
 
if(!
$user->save()) JError::raiseError(500,$user->getError() );   
else 
$added++;
}

return 
$added;
}else{
    
JError::raiseError(403JText::_('File CSV da importare mancante.'));
    return 
false;
}
 
        
JError::raiseError(403JText::_('Ci sono stati deli errori.'));
        return 
false
        }
}

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #5 il: 16 Apr 2013, 11:13:00 »
ciao,
io sostituirei, così giusto per provare questa riga:
Codice: [Seleziona]

function importUsers($source = "c:/xampp/htdocs/users2import.csv
 
)
con una che punta magari a: http://localhost/xxx/import .csv ad esempio
 
 
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #6 il: 16 Apr 2013, 11:16:36 »
quindi l'errore (presunto) potrebbe essere qui:
Codice: [Seleziona]

$user = new JUser();
$line = “nome cognome, nomeutente, email,
password”;
$properties = explode(",", $line);
$user->name =
$properties[0];
$user->username = $properties[1];
$user->email =
$properties[2];
$user->password = $properties[3];
Hai cercato in rete altri "esempi"? giusto per confrontarli con il Codice che stai utilizzando.. :)
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #7 il: 16 Apr 2013, 11:17:30 »
quello che funzinava l'ho messo sotto ho solo cambiato

da
Codice: [Seleziona]
if (function_exists('str_getcsv'))
$line = str_getcsv($line);
else
$line = preg_split('/,/', $line);
a
Codice: [Seleziona]
if (function_exists('str_getcsv'))
$line = str_getcsv($line);
else
$user = new JUser();
$line = “nome cognome, nomeutente, email, password”;
$properties = explode(",", $line);
$user->name = $properties[0];
$user->username = $properties[1];
$user->email = $properties[2];
$user->password = $properties[3];

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #8 il: 16 Apr 2013, 11:20:33 »
capito??? nn è che abbia cambiato molto

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #9 il: 16 Apr 2013, 11:22:54 »
Ma hai già aperto lo stesso topic qui:
http://forum.mrwebmaster.it/php/34374-explode.html
Il codice è identico e non funzionante nemmeno lì... :( :o ???
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #10 il: 16 Apr 2013, 11:26:45 »
Al limite puoi usare come spunto questo script qui, funzionante, per la 1.5.x,:
http://www.paulferrett.com/php/joomla_user_import.phps
 :o
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #11 il: 16 Apr 2013, 11:27:33 »
ma li era per una cosa diversa per le virgolette sbagliate

Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #12 il: 16 Apr 2013, 11:36:57 »
Tra l'altro puoi "riprendere" spunto da qui:
http://www.zriel.com/joomla/110-import-joomla-users-from-a-csv-file-16-17-25-3
Dato che una "fetta" di codice si somiglia molto  ;)
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #13 il: 16 Apr 2013, 12:24:36 »
sembra si un problema degli apici doppi  sono sbagliati

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #14 il: 16 Apr 2013, 12:29:02 »
a me nn risulta li ho cambiati

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #15 il: 16 Apr 2013, 14:43:07 »
ho risolto ora fuziona almeno nn si vede pagina bianca


Offline BelinBelan

  • Instancabile
  • ******
  • Post: 3887
  • Sesso: Maschio
  • Niente di meno e niente di più. uguale? Forse.
    • Mostra profilo
Re:importazione utenti da csv funzione explode
« Risposta #16 il: 16 Apr 2013, 14:50:03 »
Bene! puoi mettere [RISOLTO] in alto nel titolo di questo Topic,
e se ti va puoi condividere con gli altri la soluzione postandola qui, anche per aiutare chi ne potrebbe in futuro aver bisogno.  ;)
--
Per piacere, no messaggi privati con richieste d'aiuto!!!

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #17 il: 16 Apr 2013, 14:51:35 »
provo l'imprtazione del csv poi scrivo

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #18 il: 17 Apr 2013, 11:48:10 »
$line = “nome cognome, nomeutente, email, password”;
erano le virgolette sbagiate vanno quelle sopra il due della tastiera

pippo30

  • Visitatore
Re:importazione utenti da csv funzione explode
« Risposta #19 il: 17 Apr 2013, 15:36:20 »
quello che visivamente funziona
vi allego il file php del plugin così vi rendete conto ok?? sono tutte righe di codice messe insieme usando internet ok??
 
 function importUsers($source = "e:/xampp/htdocs/import.csv")
 questo è il percoso dove deve essere salvato il file giusto??
 io carico il csv li
 perche mi dice file mancante se il csv c'è??
Codice: [Seleziona]

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controller library
jimport('joomla.application.component.controller');
 
/**
 * General Controller of JUserImporter component
 */
class JUserImporterController extends JControllerLegacy
{
        
/**
         * display task
         *
         * @return void
         */
        
function display($cachable false$urlparams = array()) 
        {
                
// set default view if not set
                
$input JFactory::getApplication()->input;
                
$input->set('view'$input->getCmd('view''JUserImporter'));
 
                
// call parent behavior
                
parent::display($cachable$urlparams);
        }
        
        
/**
         * Import task
         */
        
function importUsers($source "e:/xampp/htdocs/import.csv")
        {
            
/* Check the user file exists */
if (file_exists$source ) && !isset($_REQUEST['srcfile'])) {
/* Open the file */

if(!file_exists($source)) $source $_REQUEST['srcfile'];

$handle fopen($source,"r");
$content fread ($handle,filesize $source ));
fclose($handle);   
 
/* Get the file, line by line */
$lines explode("\n"$content);
 
/* Remove the first line (headers only) */
unset($lines[0]);
 
/* Counter of users added */
$added 0;
 
/* Iterate through each line of the data file */
foreach ($lines as $key => $line){
/* Split the line by comma */
if (function_exists('str_getcsv'))
$line str_getcsv($line);
else
$user = new JUser();
$line "nome cognome, nomeutente, email, password";
$properties explode(",",$line);
$user->name $properties[0];
$user->username $properties[1];
$user->email $properties[2];
$user->password $properties[3];

/* Build a new user object */
$user = new JUser();
$user->id null;
 
/* Set the values */
$user->name $line[2];
$user->username $line[12];
$user->email $line[11];
$user->groups = array(2);
 
/* Build the password */
$salt       JUserHelper::genRandomPassword(32);
$crypted    JUserHelper::getCryptedPasswordpreg_replace("/\s/"""strtolower($line[13])) , $salt);
$newpassword$crypted ':' $salt;
 
$user->password $newpassword;
 
$user->usertype "deprecated";
$user->registerDate date('Y-m-d H:i:s');
 
if(!
$user->save()) JError::raiseError(500,$user->getError() );   
else 
$added++;
}

return 
$added;
}else{
    
JError::raiseError(403JText::_('File CSV da importare mancante.'));
    return 
false;
}
 
        
JError::raiseError(403JText::_('Ci sono stati deli errori.'));
        return 
false
        }
}





 



Web Design Bolzano Kreatif