IPB Fórum: 2 oldal egy sql-lel - IPB Fórum

Ugrás a tartalomhoz

Oldal 1 / 1
  • Nem indíthatsz témát.
  • Nem szólhatsz hozzá ehhez a témához.

2 oldal egy sql-lel

#1 Felhasználó nem aktív   Hektor34 

  • Új Tag
  • PipaPipa
  • Csoport: Tag
  • Hozzászólás: 19
  • Csatlakozott: 2008.11.26

Elküldve: 2008 december 04 - 18:45

tehát a következö lenne a kérdésem.

van két oldalam: A oldal és B oldal

B oldal egy klón. ugyanaz mint a A oldal csak másik tárhelyen van és az sql-jük közös.

hogy lehet azt megcsinálni hogy a B oldalon vagyis a másolaton ne jelenjen meg minden fórum topic? tehát 1-2 topicot szeretném ha nem lehetne látni a klón oldalon.

melyik php fájl kezeli ezt? szeretném "eltüntetni" a másolt oldalról.
segitségeteket köszönöm

Szerkesztve Hektor34 által: 2008 december 04 - 18:45

0

#2 Felhasználó nem aktív   Lightning 

  • Adminisztrátor
  • Csoport: Admin
  • Hozzászólás: 9.661
  • Csatlakozott: 2005.11.29

Elküldve: 2008 december 04 - 19:32

A témák, hozzászólások és a többi az adatbázisban vannak.
Egyébként ha leklónozód az oldalt a Google alaposan büntetni fog érte, már ami a pozícióid illeti.
0

#3 Felhasználó nem aktív   Nitaro 

  • Törzstag
  • Csoport: Moderátor
  • Hozzászólás: 523
  • Csatlakozott: 2008.11.23

Elküldve: 2009 február 24 - 19:32

Sziasztok!

Segítsetek légyszíves, elakadtam.

Azt szeretném kivitelezni, hogy adott 2 IPB, mindenben megegyeznek (SQL, PHP, verzió) és mi lenne a megoldás arra, hogy aki regisztrál X fórumra, az automatikusan regisztrálódjon Y fórumba is?

Kipróbáltam az IP.Converget, melyet a Kliens részlegről sikerült letöltenem.
Ezzel a lehetőséggel az a problémám, hogy ugyebár regisztrálni kell egy e-mail címmel, jelszó meg miegymás, de ezek után be kell lépnem X fórumba és meg kell adnom egy felhasználónevet melyet a jövőben használni szeretnék és ha ez megtörtént, akkor regisztrál be az adatbázis ibf_ prefixes részlegébe, addig csak a cvg_ prefix részlegben támolyog a felhasználó nem növelve a felhasználók számát. És ezt persze vica versa meg kell csinálnom.

De, én nem szeretném ennyire megmahinálni a dolgokat csak szimplán legyen minden a régiben.
User jön, regel X fórumon és automatikusan egyúttal belekerüljön Y fórum adatbázisába is.

Nem szeretnék semmit sem átadni, csupán a felhasználó regisztrációs adatait.



Kivitelezhető ez? Ha igen, hogyan?
2 napja vagyok rajta az ügyön, de kezdek belefáradni, a google elpártolt tőlem. Ami hasznosat találtam, az is mind a Convergeről szól.

PhpBBre pedig egész egyszerűen kivitelezhető!





Segítségeteket előre is megköszönvén,



üdvözlettel:
Nitaro
0

#4 Felhasználó nem aktív   Lightning 

  • Adminisztrátor
  • Csoport: Admin
  • Hozzászólás: 9.661
  • Csatlakozott: 2005.11.29

Elküldve: 2009 február 24 - 21:37

A legjobb, ami eszembe jut az, hogy keresd meg azt a művelet sort, ami a felhasználó adatait elmenti és ismételd meg csak a másik fórum táblájára írd át.
De ez is egy olyan dolog, amit átprogramozással ezer meg ezer féle képpen meg lehet oldalni.
0

#5 Felhasználó nem aktív   Nitaro 

  • Törzstag
  • Csoport: Moderátor
  • Hozzászólás: 523
  • Csatlakozott: 2008.11.23

Elküldve: 2009 február 24 - 21:46

Találtam egyet, de, valahogy már az elején láttam, hogy baromság, de kisebb átalakítással talán működhet:

-----------------------------------------------------------------------------
I have seen many members and non members ask how to sync IPB with another IPB.
The answer always the same wait for IP.Converge, if you want the answers for IP.Converge when, how, why, what, etc. check here.

ok let's start:
You have 2 forums
ForumsA & ForumsB

open conf_global.php on ForumsA
look for:
$INFO['sql_host']			=	'localhost';
$INFO['sql_database']			=	'ForumsA';
$INFO['sql_user']			=	'ForumsA';
$INFO['sql_pass']			=	'ForumsA';
$INFO['sql_tbl_prefix']			=	'ibf_';

add below:
$INFO['sql_host2']			=	'localhost';
$INFO['sql_database2']			=	'ForumsB';
$INFO['sql_user2']			=	'ForumsB';
$INFO['sql_pass2']			=	'ForumsB';
$INFO['sql_tbl_prefix2']			=	'ibf_';

Save ForumsA conf_global.php

open /modules/ipb_member_sync.php
look for:
function on_create_account($member, $converge)
	{
		global $ipsclass;

Add After:
		$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'=>'Member ID in Use!'));
	}
$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'=>'Member Name in Use!'));
	}
$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'=>'Member Display Name in Use!'));
	}
$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 Address in Use!'));
	}

		$ipsclass->DB2->force_data_type = array( 'name' => 'string' );
		$ipsclass->DB2->do_insert( 'members', $member );
		
		$ipsclass->DB2->close_db();

Save modules/ipb_member_sync.php

Change this line:
$this->ipsclass->Error(array('MSG'=>'asdf'));

asdf to an Error Message you want shown to the member.

open sources/action_public/register.php
look for:
$member['password'] = trim($this->ipsclass->input['PassWord']);
			
			$this->modules->on_create_account($member);

Replace With:
$this->modules->on_create_account($member, $converge); $member['password'] = trim($this->ipsclass->input['PassWord']);

Save sources/action_public/register.php
This takes the members info from ForumA and inserts into ForumB database.

open /modules/ipb_member_sync.php
look for:
	function on_group_change( $id, $new_group )
	{
		global $ipsclass;
				 if ($new_group != 3) {
					   return;
				  }
		//---- START

Add After:
		$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();

Save modules/ipb_member_sync.php
This updates ForumB's groups when the user in ForumA has been moved to a different group.

Right now this is a One Way Sync.
If you want ForumB to sync to ForumA just do the same edits to ForumB.

Next Update will include:

Idézet

| - on_delete: Is called when member deleted (single, multiple)
| - on_email_change: When email address change is confirmed
| - on_profile_update: When profile is updated (msn, sig, etc)
| - on_pass_change: When password is updated
| - on_signature_update: When the users signature is changed
| - on_name_change: When the member's name has been changed


Might not be all of those but at least 2 more.

If you want to use more forums just do the edits to the other forums.
Be Advised you will need to add DB3, DB4, etc to the queries and conf_global so you can sync to those respective DB's

-----------------------------------------------------------------------------


Nos, már a legelső szerkesztésnél elakadtam : open /modules/ipb_member_sync.php
Amit kér, hogy keressek ki, nem találtam sehol ( 1.3-tól 3.0-ig semmi, ami érdekes).

Ebben tudna valaki segíteni? Mert jónak látszik, csak valahogy nekem nem nagyon megy... :blush:



Meg persze, gondolom a következő szerkesztést ( open /modules/ipb_member_sync.php) már a másik fórumban kell csinálni egyértelműen, de az előtte lévő regisztrációt is?

A srác nem a tutorial írásáról lehetett híres... :angry:
0

#6 Felhasználó nem aktív   Nitaro 

  • Törzstag
  • Csoport: Moderátor
  • Hozzászólás: 523
  • Csatlakozott: 2008.11.23

Elküldve: 2009 február 25 - 22:24

Nos, nagyon úgy fest a dolog, hogy senkinek sincs olyan problémája az egész világon, mint nekem... :blink:

function on_create_account($member, $converge)
	{
		global $ipsclass;


Ez az, ami nekem nincs...nekem csak ilyenem van:

	function on_create_account($member)
	{
		global $DB, $std, $ibforums;





Senkinek semmi ötlet amúgy? :(
0

#7 Felhasználó nem aktív   Lightning 

  • Adminisztrátor
  • Csoport: Admin
  • Hozzászólás: 9.661
  • Csatlakozott: 2005.11.29

Elküldve: 2009 február 25 - 23:19

Az egyes verziók között lehetnek eltérések itt - ott - amott.
Hogy nézne ki, ha minden verzió után változatlan marad a forráskód? :D
0

#8 Felhasználó nem aktív   Nitaro 

  • Törzstag
  • Csoport: Moderátor
  • Hozzászólás: 523
  • Csatlakozott: 2008.11.23

Elküldve: 2009 február 25 - 23:30

Jah, elég érdekes lenne... :)

De, a lényegen nem változtat...

function on_create_account($member, $converge)
	{
		global $ipsclass;


Ezt kellene megtalálnom, de egyszerűen nincs, mert csupán ez van helyette:
	function on_create_account($member)
	{
		global $DB, $std, $ibforums;


Ami a legidegesítőbb, hogy találtam egy MOD-ot is erre, de, ahogy átnéztem, annyit szűrtem le az egészből, hogy végülis amit leírtam nemrég, ugyanaz, csak MODba van beleépítve és annak is a global $ipsclass-ra lenne szüksége.

Megnéztem a gépemen 1.3.1-től 3.0-ig minden ipb_member_sync.php fájlt, de mindegyikben a global $DB, $std, $ibforums van...szóval így egyszerűen nem fog menni.

Neked sincs semmi ötleted?

Senki sem panaszkodott, hogy nem működne...egyszerűen csak az én tesztfórumaim vannak megáldva ezekkel a változókkal?
0

#9 Felhasználó nem aktív   Lightning 

  • Adminisztrátor
  • Csoport: Admin
  • Hozzászólás: 9.661
  • Csatlakozott: 2005.11.29

Elküldve: 2009 február 27 - 22:35

Én nem cserélném ki, mert a paraméterek és a globális változók is eltérők. Duplán nem működne.
0

#10 Felhasználó nem aktív   Nitaro 

  • Törzstag
  • Csoport: Moderátor
  • Hozzászólás: 523
  • Csatlakozott: 2008.11.23

Elküldve: 2009 március 02 - 14:05

Hogy őszinte legyek semmi ötletem sincs...

De, hogy még a hivatalos IPB oldalon sem tudnak semmi sem mondani rá, jobban mondva telibe $z@rnak bele, ez azért több, mint kedves.
Az IZE-n meg leírom, hogy nem akarok Converget használni, mert annak külön bejelentkezési oldal kell, erre mit ajánlanak? Simple use IP. Converge...pff...amerikai logika.

Addig vagy fontos, míg vásárolni akarsz egy licenszt... :blink:


Azért kösz a segítséget! :)


Van egy olyan érzésem, hogy mikor már leteszek róla egy az egyben, meglesz a megoldás...
Mindig ez van! :D
0

#11 Felhasználó nem aktív   Lightning 

  • Adminisztrátor
  • Csoport: Admin
  • Hozzászólás: 9.661
  • Csatlakozott: 2005.11.29

Elküldve: 2009 március 02 - 21:24

Akkor ezzel kéne kezdeni. Tegyél le róla és megvan a megoldás. :mrgreen:
0

#12 Felhasználó nem aktív   Nitaro 

  • Törzstag
  • Csoport: Moderátor
  • Hozzászólás: 523
  • Csatlakozott: 2008.11.23

Elküldve: 2009 március 03 - 22:10

Már letettem róla...most pedig várok... :D
0

Téma megosztása:


Oldal 1 / 1
  • Nem indíthatsz témát.
  • Nem szólhatsz hozzá ehhez a témához.

1 felhasználó olvassa ezt a témát.
0 felhasználó, 1 vendég, 0 anonim felhasználó