Více fór, stejní uživatelé

Skladiště návodů, postupů a tutoriálů k phpBB 2.0.x, phpBB 3.0.x a modifikacím.
Odpovědět
ameeck
Příspěvky: 6425
Registrován: ned 06. lis 2005 1:00:00

Více fór, stejní uživatelé

Příspěvek od ameeck » pát 04. kvě 2007 9:56:36

Máte na stránkách více fór, třeba kvůli oddělení tématiky, nebo chcete spojit síly s stránkou podobnou té vaší? A narážíte na problém, že se uživatel musí registrovat na obou fórech zvlášť? Dnes si rozebereme vcelku jednoduchý návod, jak sdílet tabulky pro uživatele a sessions ve více fórech, a umožnit tím lepší integraci těch fór.

Na začátek, jsou dvě takové "podmínky" pro správný chod takto upravených fór, první, že budete muset založit fóra nová, popř. k jednomu fóru přidávat další nová, nelze(resp. lze, ale jsou k tomu potřeba pokročilejší znalosti databází) sloučit dvě fóra dohromady. A druhá je ta, že fóra musejí být umístěny na stejné doméně(lze mít různé subdomény), jinak nebude fungovat sdílené přihlášení. Požadavky máme za sebou, ukažme si samotný postup:

Krok 1
Nainstalujte fóra, která budou součástí vašeho komplexu do stejné databáze, ale odlište je předponami tabulek, v našem příkladu to budou hlavni_, vedlejsi1_, vedlejsi2_, vedlejsiN_.

Krok 2
Nyní si vyberte, které z nainstalovaných fór bude hlavní, a u kterých upravíme tabulky pro uživatele(to bude další krok), u nás je to logicky, fórum s databází hlavni_

Krok 3
U naší "hlavní" instalace budeme muset upravit, konkrétně přejmenovat" čtyři tabulky, a to hlavni_users, hlavni_user_group, hlavni_groups a hlavni_sessions, viz. SQL příkaz pro ulehčení :o):

Kód: Vybrat vše

ALTER TABLE hlavni_users RENAME users;
ALTER TABLE hlavni_user_group RENAME user_group;
ALTER TABLE hlavni_groups RENAME groups;
ALTER TABLE hlavni_sessions RENAME sessions;
Použijte k tomu třeba phpMyAdmin.

Krok 4
Tento krok je volitelný, jeho účelem je zpřehlednit už tak plnou databázi. Tento krok udělejte pro každou "vedlejší" instalaci. Smaž již nepotřebné tabulky uživatele, opět je tu SQL kód:

Kód: Vybrat vše

DROP TABLE vedlejsi1_users;
DROP TABLE vedlejsi1_user_group;
DROP TABLE vedlejsi1_groups;
DROP TABLE vedlejsi1_sessions;
Krok 5
Tento krok je nutný učinit u všech instalací, otevřete soubor includes/constnants.php a u těchto řádků:

Kód: Vybrat vše

define('GROUPS_TABLE', $table_prefix.'groups');
define('USER_GROUP_TABLE', $table_prefix.'user_group');
define('USERS_TABLE', $table_prefix.'users');
define('SESSIONS_TABLE', $table_prefix.'sessions');
Smažte $table_prefix, bude to vypadat takto:

Kód: Vybrat vše

define('GROUPS_TABLE', 'groups');
define('USER_GROUP_TABLE', 'user_group');
define('USERS_TABLE', 'users');
define('SESSIONS_TABLE', 'sessions');
Krok 6
Nyní musíme nastavit cookies na fórech, protože fóra sdílí i tabulku se sessions, takže když budete přihlášeni na jednom fóru, tak budete i na ostatních, cookies se nastavují v administraci, přesněji v Konfiguraci, dole. My budeme upravovat doménu(adresu) cookie, ta musí být nastavena na společnou část URL všech fór, takže např. máme fóra forum1.phpbb.cz/, forum2.phpbb.cz/ atd... tak bude cookie nastavena na phpbb.cz, cestu ke cookie je bezpečné nastavit na '/'
Dodatek

Na konec ještě připojím pár poznámek, na začátku jsem říkal, že fóra musejí být na stejné doméně, je možné je mít na jiných, jen nepude sdílené přihlášení, v tomto případě byste neupravovaly žádné cookies, a neupravovaly byste tabulku hlavni_sessions, potažmo vedlejsiN_sessions, toto rovněž můžete udělat pokud byste i přesto, že jsou fóra na stejné doméně, ale nefunguje přihlášení. Pokud byste našli nějaké chyby v článku, máte místo v komentářích, nebo na fóru v Diskuzi.

Ameeck

miho

Re: Více fór, stejní uživatelé

Příspěvek od miho » pát 04. kvě 2007 12:05:19

Jedno takove forum spravuju (slouceno je celkem 10 for... silenost) a musim rict, ze to, co je popsano v clanku je tak 1/10 kroku nutnych k tomu aby to uspokojive fungovalo :-(

Predne je nutno aby v tabulce users byly nektere sloupce oddelene. Napr. last_visit kvuli tomu, aby se spravne oznacovaly neprectene prispevky, ale i mnoho dalsich- skin aby mohl byt jiny atd. userlevel...

Pak se ukaze, ze spolecna tabulka sessions je troublemaker. Jednak vykonnostne na velkych forech druhak to zpusobuje problemy typu na kterem ze foru je vlastne prihlasen s admin pravy? a mnoho dalsich.

Je vhodne spojit jeste nekolik dalsich tabulek (uziv. skupiny a souvisejici), ranky podle vlastniho uvazeni spise nechat zvlast, PM spojit...

A pak prichazeji na radu tzv. speky. Namet k zamysleni: co kdyz ma uzivatel A nejake prispevky na foru X i Y a admin se ho rozhodne na foru X smazat? Kdo trochu vidi dovnitr jiste uz tusi, ze na foru Y se zacnou vyskytovat nepekne anomalie. Mno a takovych spekounu tam je moc a urcite jsem jeste vsechny nevychytal...

Uživatelský avatar
christian
Příspěvky: 2822
Registrován: úte 03. říj 2006 0:00:00
Kontaktovat uživatele:

Re: Více fór, stejní uživatelé

Příspěvek od christian » pát 04. kvě 2007 12:36:29

To je take pravda,proto si myslim,ze pokud uz se do tohoto nekdo pusti tak aby mel s tim velikou trpelivost a hlavne aby se do toho nepoustel nekdo, kdo dobre nerozumi php,SQL a hlavne fungovani fora.
Neposkytuji podporu pres jabber ani SZ. - na to je tu toto fórum.

Left 4 Dead 1 & 2 - vše o těchto kooperativních hrách od Valve
www.v31.cz - místo pro Váš odpočinek
SuperFórum.cz - trošku velké fórum :)

ameeck
Příspěvky: 6425
Registrován: ned 06. lis 2005 1:00:00

Re: Více fór, stejní uživatelé

Příspěvek od ameeck » pát 04. kvě 2007 14:35:32

Je to víceméně schéma, to uznávám...ale pokud mam byt uprimny, tak tohle stejne utahne aspon trochu zkuseny programator/admin, sranda to neni, a aspon at je to mensi nasmerovani...ale diky za tipy, to user_lastvisit me nenapadlo...veci jako skupiny jsou diskutabilni, jde fakt o konkretni pripad, v urcitym pripade, kdyz by se opravdu lisili opravneni na obou forech, bych je neprenasel...anebo to resit jako u tebe na zive skupinama pro jednotlivy fora...

Každopadne i tak kloubok dolu s zive, jen takovej dotaz ciste ode me...v nejakych rocnich planech? planujete zustat u dvojky?

miho

Re: Více fór, stejní uživatelé

Příspěvek od miho » pát 04. kvě 2007 15:23:40

Planujeme prejit na trojku s tim, ze vsechna fora chceme sloucit dohromady a podle hostname se pozna, jaka sada skinu se ma pouzit a ktere kategorie se maji zobrazit (nektere muzou byt spolecne pro vsechna fora atd.). Tak to melo byt udelano od sameho zacatku ale vedeni byl jineho nazoru :(

Jedine na cem by to mohlo selhat je vykon. Tady prozatim chybi data a nic presnejsiho nez "je to o neco narocnejsi" se mi z nikoho nepodarilo vytahnout. Jelikoz si nemuzu dovolit prevest fora, nechat to chvili bezet, zjistit, ze to nestiha a vratit se zpet... tak si proste alibisticky pockam, az to nekdo na nejakem velkem foru udela a pak se ho zeptam :)

ameeck
Příspěvky: 6425
Registrován: ned 06. lis 2005 1:00:00

Re: Více fór, stejní uživatelé

Příspěvek od ameeck » pát 04. kvě 2007 15:32:07

Zni zajimave, jinak z pohledu vykonu, co mam ted zkusenost, tak trojka je hodne vybrousena, vykon se zvednul nejmin dvakrat, trikrat i ve spicce, a to tu neni prilis dolazeny hosting, neni to sice rozmerove to co zive, ale o to bych se uplne nebal, celkovy vykon co to sezere bude stoprocentne mensi nez ten co daj ty phpBB2 fora dohromady.

A podle toho co řikáš, jak to plánuješ, tak to nebude tak složitý, přidání indentifikatoru k jednotlivym forum pro dany hostname, mozna osetrit vstup tak, aby se nedala vytvorit dcerine forum s jinou domenou nez je materske, a pořešit zobrazení vzhledu na indexu pomoci stejnych identifikatoru co bude u for, zbytek zvladne olympus vicemene sam...jen bych se trochu bal prace s opravnenim, s tim jak je to udelane ted na zive to neprevede presne, a bude se to muset dost donastavovat, ale to uz jsou manualni veci...

Odpovědět