Info wstępne: istnieją dwa fora: forum A i forum B.
By zsynchronizować forum A z B postępuj wg poniższej instrukcji.
pliki forum A:
Otwórz plik conf_global.php
Znajdź:
$INFO['sql_host'] = 'localhost'; $INFO['sql_database'] = 'ForumsA'; $INFO['sql_user'] = 'ForumsA'; $INFO['sql_pass'] = 'ForumsA'; $INFO['sql_tbl_prefix'] = 'ibf_';Dodaj niżej:
$INFO['sql_host2'] = 'localhost'; $INFO['sql_database2'] = 'ForumsB'; $INFO['sql_user2'] = 'ForumsB'; $INFO['sql_pass2'] = 'ForumsB'; $INFO['sql_tbl_prefix2'] = 'ibf_';
Zapisz i wyślij.
Otwórz plik: modules/ipb_member_sync.php
znajdź:
function on_create_account($member, $converge)
{
global $ipsclass;
Dodaj poniżej: $ipsclass->DB2 = new db_driver;
$ipsclass->DB2->obj['sql_database'] = $ipsclass->vars['sql_database2'];
$ipsclass->DB2->obj['sql_user'] = $ipsclass->vars['sql_user2'];
$ipsclass->DB2->obj['sql_pass'] = $ipsclass->vars['sql_pass2'];
$ipsclass->DB2->obj['sql_host'] = $ipsclass->vars['sql_host2'];
$ipsclass->DB2->obj['sql_tbl_prefix'] = $ipsclass->vars['sql_tbl_prefix2'];
$ipsclass->DB2->obj['use_shutdown'] = USE_SHUTDOWN;
$ipsclass->DB2->connect();
$ipsclass->DB2->do_insert( 'members_converge', $converge );
//-----------------------------------------
// Insert: MEMBERS
//-----------------------------------------
$check = $this->ipsclass->DB2->build_and_exec_query(array('select'=>'id','from'=>'members','where'=>"id=".$this->ipsclass->member['id']));
if($check['id'])
{
$this->ipsclass->DB2->close_db();
$this->ipsclass->DB->connect();
$this->ipsclass->lang['asdf'] = "";
$this->ipsclass->Error(array('MSG'=>'User ID w użyciu!'));
}
$check = $this->ipsclass->DB2->build_and_exec_query(array('select'=>'name','from'=>'members','where'=>"name=".$this->ipsclass->member['name']));
if($check['name'])
{
$this->ipsclass->DB2->close_db();
$this->ipsclass->DB->connect();
$this->ipsclass->lang['asdf'] = "";
$this->ipsclass->Error(array('MSG'=>'Login usera w użyciu!'));
}
$check = $this->ipsclass->DB2->build_and_exec_query(array('select'=>'members_display_name','from'=>'members','where'=>"members_display_name=".$this->ipsclass->member['members_display_name']));
if($check['members_display_name'])
{
$this->ipsclass->DB2->close_db();
$this->ipsclass->DB->connect();
$this->ipsclass->lang['asdf'] = "";
$this->ipsclass->Error(array('MSG'=>'Nazwa wyświetlana usera w użyciu!'));
}
$check = $this->ipsclass->DB2->build_and_exec_query(array('select'=>'email','from'=>'members','where'=>"id=".$this->ipsclass->member['email']));
if($check['email'])
{
$this->ipsclass->DB2->close_db();
$this->ipsclass->DB->connect();
$this->ipsclass->lang['asdf'] = "";
$this->ipsclass->Error(array('MSG'=>'Email Usera w użyciu!'));
}
$ipsclass->DB2->force_data_type = array( 'name' => 'string' );
$ipsclass->DB2->do_insert( 'members', $member );
$ipsclass->DB2->close_db();
Zapisz i wyślij.
Otwórz plik: sources/action_public/register.php
Znajdź:
$member['password'] = trim($this->ipsclass->input['PassWord']); $this->modules->on_create_account($member);Zamień na:
$this->modules->on_create_account($member, $converge); $member['password'] = trim($this->ipsclass->input['PassWord']);
Zapisz i wyślij.
Te zmiany mają na celu zapisywanie informacji o userach z forum A do bazy forum B.
Otwórz plik: modules/ipb_member_sync.php
Znajdź:
function on_group_change( $id, $new_group )
{
global $ipsclass;
if ($new_group != 3) {
return;
}
//---- START
Dodaj poniżej:
$ipsclass->DB2 = new db_driver;
$ipsclass->DB2->obj['sql_database'] = $ipsclass->vars['sql_database2'];
$ipsclass->DB2->obj['sql_user'] = $ipsclass->vars['sql_user2'];
$ipsclass->DB2->obj['sql_pass'] = $ipsclass->vars['sql_pass2'];
$ipsclass->DB2->obj['sql_host'] = $ipsclass->vars['sql_host2'];
$ipsclass->DB2->obj['sql_tbl_prefix'] = $ipsclass->vars['sql_tbl_prefix2'];
$ipsclass->DB2->obj['use_shutdown'] = USE_SHUTDOWN;
$ipsclass->DB2->connect();
$ipsclass->DB2->do_update( 'members', array( 'mgroup' => intval($new_group) ), 'id='.intval($id) );
$uptime = time()+300;
$ipsclass->DB2->do_update('task_manager', array('task_next_run' => $uptime), 'task_id=3');
$ipsclass->DB2->close_db();
Zapisz i wyślij.Te zmiany powodują, że przy zmianie grupy usera w forum A zmienia się w forum B.
Jeśli chcesz zsynchronizować forum B z A wykonaj te same czynności na jego plikach.
Enjoy!















