|
Re: importer des utilisateurs. |
|
Xoops accro
Inscrit: 15/07/2004 11:16
|
Salut, ce champs contient juste une insertion d'une date en seconde, au moment de la création du compte, insertion effectuée avec la fonction php : time() Citation :time() retourne l'heure courante, mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT). Peux-tu nous donne un exemple de date que tu as pour ton import ? Histoire de voir quel code (ou fonction php déjà existante), il faudra utiliser pour convertir ta date formatée en date en secondes. Peux-nous dire aussi, dans quel format tu as tes données à importer pour le moment : sont-elles encore dans ta base de données, déjà dans un fichier excel ou texte ?
Posté le : 06/08/2008 15:32
|
|
|
Re: importer des utilisateurs. |
|
Newbie
Inscrit: 26/02/2007 23:12
De 67
|
Quelle rapidité, mes respects!
Un exemple de date : L'administrateur d'un de mes sites xoops s'est enregistré le 26/02/07. L'user_regdate me donne : 1172518996
Mon ancien cms quant à lui avait un champ user_regdate paramétré en varchar. Il me donnait une date claire. Si on reprend mon exemple ci-dessus, pour l'administrateur, le champ user_regdate m'aurait donné Fev 26, 2007.
La BD a déjà été exportée en .csv (excel), mais la BD SQL existe toujours!! Dans excel, la cellule est bien une date tout ce qu'il y a de plus classique.
Avec tes indications, je devrais d'ores et déjà réussir à faire quelque-chose.
Je te remercie donc infiniement.
Mok
Posté le : 06/08/2008 16:00
|
|
|
Re: importer des utilisateurs. |
|
Xoops accro
Inscrit: 15/07/2004 11:16
|
Quelques manipulations avec les dates :
<?php
$date_perso = "Feb 26, 2007";
$lstmois = array(
"Jan"=>"01",
"Feb"=>"02",
"Mar"=>"03",
"Apr"=>"04",
"May"=>"05",
"Jun"=>"06",
"Jul"=>"07",
"Aug"=>"08",
"Sep"=>"09",
"Oct"=>"10",
"Nov"=>"11",
"Dec"=>"12",
);
$arr = split(" ", $date_perso);
$jour = $arr[1];
$mois = $arr[0];
$annee = $arr[2];
$new_date = $annee."-".$lstmois[$mois]."-".str_replace("," , "", $jour);
echo "Date au format US : ".$new_date."<br />";
$my_time = strtotime($new_date);
echo "Date en secondes avec strtotime : ".$my_time."<br />";
echo "Date en secondes avec mktime : ".mktime(0, 0, 0, $lstmois[$mois], $jour, $annee)."<br />";
echo "Retour au format d'origine à partir du timestamp : ".date('M m, Y', $my_time);
?>
Ce qui nous donne à l'écran : Citation : Date au format US : 2007-02-26 Date en secondes avec strtotime : 1172444400 Date en secondes avec mktime : 1172444400 Retour au format d'origine à partir du timestamp : Feb 02, 2007
On voit qu'on peut passer sans souci de ton format à celui nécessaire à Xoops. Il suffit de transformer ça en fonction php (enfin juste le code utile), et l'ajouter au script d'import de la page précédente.
Posté le : 06/08/2008 18:43
|
|
|
Re: importer des utilisateurs. |
|
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
|
Bonsoir, La fonction mysql unix_timestamp() devrait te permettre d'effectuer la conversion dans le format integer qu'utilise Xoops. Si besoin, je peux te faire la conversion de la table users ton ancien cms vers xoops.
Posté le : 06/08/2008 22:23
|
|
|
Re: importer des utilisateurs. |
|
Newbie
Inscrit: 26/02/2007 23:12
De 67
|
Bonsoir, Je me suis lançé sans vous attendre... Tout est prêt pour la "migration". Je lance l'opération dans quelques jours (temps nécessaire pour que les utilisateurs prennent leurs dispositions et se passent de mon CMS quelques heures).
Un grand merci à vous pour votre aide.
Posté le : 09/08/2008 22:49
|
|
|
Re: importer des utilisateurs. |
|
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
|
Bonsoir, Ca me scie les genoux de lire un sujet pareil... Quel talent... je ne comprend rien... mais que c'est beau tous ces codes... Blueteen... tu es un pro A+
Posté le : 09/08/2008 23:13
|
eparcyl... tranquille.
|
|
Re: importer des utilisateurs. |
|
Régulier
Inscrit: 31/01/2007 00:00
De Noiseau (94)
|
Bonjour tout le monde !
Je viens ici car Kris m'a signaler qu'un sujet était en rapport avec mon soucis.
Je vous explique :
J'ai refait mon site Xoops et donc j'ai transférer mon ancienne base user dans la nouvelle sauf que j'ai 2 soucis : - Il faut que je revalide 1 par 1 les membres (base de 1500 membres...). - Quand je me connecte désormais j'ai le message comme quoi je suis connecté mais ensuite je me retrouve sous l'index d'un invité.
Kris m'a dit qu'il suffit de faire un requête SQL pour tout mettre à jour mais laquelle ???
Merci d'avance.
Posté le : 10/08/2008 13:19
|
Donnes et tu seras riche !
|
|
Re: importer des utilisateurs. |
|
Xoops accro
Inscrit: 25/11/2004 12:53
De 48400 Florac - France
|
En fait la réponse est très bête il me semble :
Tu vas dans SystemAdmin/Groupes/Utilisateurs enregistrés et tu sélectionnes tous les users (dans le tableau de gauche) et tu les passes en utilisateurs enregistrés. Pour les sélectionner : touches MAJ+clic gauche sur le premier et le dernier. Pour en enlever ou ajouter au cas par cas Ctrl+clic.
Philippe.
Posté le : 10/08/2008 14:02
|
|
|
Re: importer des utilisateurs. |
|
Xoops accro
Inscrit: 15/07/2004 11:16
|
eparcyl98, meuh non, juste quelques bouts de code piqués ici et là et remis en forme lordbdp, tu as importé tes membres de quelle façon ? est-ce qu'ils déjà sont affectés au bon groupe, et tu as juste ton souci d'activation, ou bien, est-ce que tu dois aussi les affecter dans un groupe (utilisateurs enregistrés par exemple) ? Ensuite pour ton autre question, tu peux passer par la base de données pour modifier ton compte utilisateur (avec phpmyadmin par exemple). Normalement ton compte utilisateur a l'identifiant 1 (uid), est-ce le cas ? Si oui, tu peux utiliser cette requête dans phpmyadmin (se placer sur la bonne base de données) afin de rétablir tes droits d'administrateur. Tu auras alors juste à te déconnecter et à la reconnexion ça devrait être bon. Change 'ton_prefix' par celui de tes tables. Tu peux changer l'uid = 1, si tu veux appliquer les droits administrateurs à un autre membre.
UPDATE `ton_prefix_users` SET `rank` = '7',
`level` = '5' WHERE `ton_prefix_users`.`uid` = 1 LIMIT 1 ;
Posté le : 11/08/2008 09:14
|
|
|
Re: importer des utilisateurs. |
|
Régulier
Inscrit: 31/01/2007 00:00
De Noiseau (94)
|
Alors voilà ce que j'ai actuellement dans ma BDD user (exemple avec moi + un membre enregsité normalement mais qui ne l'ai plus) :
-- phpMyAdmin SQL Dump
-- version 2.8.2.4
-- http://www.phpmyadmin.net
--
-- Serveur: localhost:3306
-- Généré le : Mardi 12 Août 2008 à 18:38
-- Version du serveur: 5.0.27
-- Version de PHP: 5.2.3
--
-- Base de données: `xtopfr`
--
-- --------------------------------------------------------
--
-- Structure de la table `topfr__users`
--
CREATE TABLE `topfr__users` (
`uid` mediumint(8) unsigned NOT NULL auto_increment,
`name` varchar(60) NOT NULL default '',
`uname` varchar(25) NOT NULL default '',
`email` varchar(60) NOT NULL default '',
`url` varchar(100) NOT NULL default '',
`user_avatar` varchar(30) NOT NULL default 'blank.gif',
`user_regdate` int(10) unsigned NOT NULL default '0',
`user_icq` varchar(15) NOT NULL default '',
`user_from` varchar(100) NOT NULL default '',
`user_sig` tinytext NOT NULL,
`user_viewemail` tinyint(1) unsigned NOT NULL default '0',
`actkey` varchar(8) NOT NULL default '',
`user_aim` varchar(18) NOT NULL default '',
`user_yim` varchar(25) NOT NULL default '',
`user_msnm` varchar(100) NOT NULL default '',
`pass` varchar(32) NOT NULL default '',
`posts` mediumint(8) unsigned NOT NULL default '0',
`attachsig` tinyint(1) unsigned NOT NULL default '0',
`rank` smallint(5) unsigned NOT NULL default '0',
`level` tinyint(3) unsigned NOT NULL default '1',
`theme` varchar(100) NOT NULL default '',
`timezone_offset` float(3,1) NOT NULL default '0.0',
`last_login` int(10) unsigned NOT NULL default '0',
`umode` varchar(10) NOT NULL default '',
`uorder` tinyint(1) unsigned NOT NULL default '0',
`notify_method` tinyint(1) NOT NULL default '1',
`notify_mode` tinyint(1) NOT NULL default '0',
`user_occ` varchar(100) NOT NULL default '',
`bio` tinytext NOT NULL,
`user_intrest` varchar(150) NOT NULL default '',
`user_mailok` tinyint(1) unsigned NOT NULL default '1',
PRIMARY KEY (`uid`),
KEY `uname` (`uname`),
KEY `email` (`email`),
KEY `uiduname` (`uid`,`uname`),
KEY `unamepass` (`uname`,`pass`)
) ENGINE=MyISAM AUTO_INCREMENT=1512 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1512 ;
--
-- Contenu de la table `topfr__users`
--
INSERT INTO `topfr__users` (`uid`, `name`, `uname`, `email`, `url`, `user_avatar`, `user_regdate`, `user_icq`, `user_from`, `user_sig`, `user_viewemail`, `actkey`, `user_aim`, `user_yim`, `user_msnm`, `pass`, `posts`, `attachsig`, `rank`, `level`, `theme`, `timezone_offset`, `last_login`, `umode`, `uorder`, `notify_method`, `notify_mode`, `user_occ`, `bio`, `user_intrest`, `user_mailok`) VALUES (1, '', 'lordbdp', 'xxxx1@talesofpirates.fr', 'http://www.talesofpirates.fr/', 'blank.gif', 1192580781, '', '', 'Donnes et tu seras riche.', 0, '', '', '', '', 'ad1cfea712ae6808f01c275f4c028651', 251, 1, 7, 5, 'talesofpirates', 1.0, 1218235582, 'thread', 0, 2, 0, '', '', 'Programmation et MMORPG', 0),
(2, '', 'spider974', 'xxxxx2@hotmail.fr', '', 'blank.gif', 1192603744, '', '', '', 0, 'ce6b9532', '', '', '', 'fe546279a62683de8ca334b673420696', 0, 0, 0, 1, '', 2.0, 1193751339, 'nest', 0, 1, 0, '', '', '', 1);
Si cela peut vous aider car je n'arrive même plus à accéder à la partie admin...
Posté le : 12/08/2008 18:45
|
Donnes et tu seras riche !
|
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|