Arvind
Juneja
Współtwórca @
Fangol.pl | Blogger
@ Fitback.pl
Temat: Migracja użytkowników z 1.0 do 1.5 - rozwiązanie
Długo się męczyłem ale w końcu się udało.Robi się to tak:
1) Eksportujemy z J! 1.0 tabelę Jos_Users
2) Importujemy do J! 1.5 tabelę Jos_Users (bez pierwszej linii bo zawiera ona admina który już jest, nie wiem czemu ale zastąpienie go innym wszystko psuje)
I mamy gotową tabelę użytkowników jednak to nie koniec. Joomla ma jeszcze dwie inne tabele (tak, to przez nie nie wiedziałem o co chodzi..):
jos_core_acl_aro
jos_core_acl_groups_aro_map
i aby uzupełnić te dwie tabele prawidłowo znalazłem w sieci skrypt autorstwa VipArt:
<?php
require_once('class.db.php');
define(_DB_HOST, 'localhost');
define(_DB_USER, 'root');
define(_DB_PASS, '');
define(_DB_NAME, 'joomla_1_5_2');
$db = new DB();
if (!$db->connect()) die('Cannot connect to db');
// this is for the new Joomla 1.5 database which should be UTF8
$db->query('set NAMES utf8');
$sql = 'select * FROM jos_users';
$q = $db->query($sql);
while ($row = mysql_fetch_assoc($q)) {
$id = $row['id'];
$name = $row['name'];
$query1 = 'INSERT INTO jos_core_acl_aro (section_value, value , name)
VALUES (\'users\', '.$id.', \''.$name.'\')';
$db->query($query1);
}
// exclude administrator
$sql = 'SELECT * FROM jos_core_acl_aro WHERE id <> 10';
$q = $db->query($sql);
while ($row = mysql_fetch_assoc($q)) {
$id = $row['id'];
// REGISTERED = 18
$q1 = 'INSERT INTO jos_core_acl_groups_aro_map (group_id, section_value, aro_id)
VALUES
(18, \'\', '.$id.')
';
// echo '<br>'.$q1;
$db->query($q1);
}
?>
i biblioteke do niego:
<?php
class DB {
var $connected;
var $db;
var $error;
function DB(){
// Cia tipo creatorius...
$this->connected = 0;
}
function Connect() {
if ($this->connected == 1) return 1;
$this->db = mysql_connect(_DB_HOST, _DB_USER, _DB_PASS);
if (empty($this->db)) {
$this->connected = 0;
return mysql_error ();
}
if (!mysql_select_db (_DB_NAME)) {
$this->connected = 0;
return mysql_error ();
}
$this->connected = 1;
return 1;
}
function Free(){
if ($this->connected == 0) return 0;
$this->connected = 0;
mysql_close ($this->db);
}
function query ($par) {
if ($this->connected == 0) $this->Connect();
$rez = mysql_query($par);
$this->error = mysql_error();
if (mysql_error()) return mysql_error();
else return $rez;
}
// 2004.04.02 16:32
function result ($par, $row=0, $col=0) {
if ($this->connected == 0) $this->Connect();
$rez = mysql_result(mysql_query($par), $row, $col);
$this->error = mysql_error();
if (mysql_error()) return mysql_error();
else return $rez;
}
function NumRows($par) {
if ($this->connected == 0) $this->Connect();
$rez = mysql_query($par);
$this->error = mysql_error();
if (mysql_error()) return mysql_error();
else return mysql_num_rows($rez);
}
} // DB class galas
?>
i po odpaleniu tego skryptu wszystko się pięknie uzupełnia :)
i działa! :)
p.s. importowanie tych dwoch tabel nie działa, sprawdziłem, nie próbujcie :)
uff.. mogę iść spać.Arvind Juneja edytował(a) ten post dnia 21.11.08 o godzinie 03:38