PDA

Zobacz pełną wersję : Problem z synchronizacją userów przemo i joomla (wartość phpbb_user_id 127)



Gamsiu
07-10-2006, 05:29
Witajcie,

Do tej pory nie udało mi się zintegrować w pełni Jommli i forum przema.

Aktualnie sytuacja wyglada tak:
124userów zsynchronizowanych za pomoca pomostu.
Wartos phpbb_user_id w jos_users do usera jest od 2 do 127 przyczym wszyscy powyżej 127 mają wartość 127.

Konta już istniejące ale jak się domyslam tylko do id 127 działają bez problemów w obie strony. Czy to te 124 kont pokazywanych jakos zsynchronizowane.

Zakładanie kont:
Konta zakladane z forum działają w joomli. Konto zalozone przez forum po zalogowaniu na forum loguje tez do joomli, tak samo wylogowanie. Po zalogowaniu w joomli loguje również na forum. Czyli wszystko działa.

Konta zakladane przez portal nie dodają sie w forum, czyli nic nie dziala.

auto_increment w phpbb_user mam 640 a w jos_user 1400 no i cos mi sie to nie podobaja wyże wartosci w joomli no ale moge sie mylić.

Nowozarejestrowani uzytkownicy na forum dostaja w jos_users phpbb_user_id 127

Nowozarejestrowani użytkownicy w joomli dostają phpbb_user_id 0 no i brak kopii usera w phpbb_users.

Mam najnowsza wersje joomli, która była instalowana z instalatora PE wraz z pomostem RS1 uaktualnionym do RC2

Licze na Waszą pomoc bo mnie już niestety pomysły się wyczerpały:(
Jak nie znajdzie sie żadne rozwiązanie to chyba będe musiał zmieniać ręcznie phpbb_user_id na prawidłowy.

PS. A może ktoś mógłby mi wymyśleć zapytanie do bazy które pobierze id z phpbb_users i wpisze je do phpbb_user_id w jos_users? Być może załątwiło by to sprawe, no tylko nie wiem czy by pomoglo na niedziałającą rejestracje z joomli:(

--
Pozdrawiam,
Gamsiu

stone
07-10-2006, 09:40
Najlepiej wykasuj wszystkie wartości z tej kolumny phpbb_user_id (tylko z niej), albo ustaw na 0

UPDATE jos_users SET phpbb_user_id = '0';

I następnie dokonaj ponownej synchornizacji i zobacz czy pomogło

Gamsiu
07-10-2006, 10:21
Niestety to nie pomaga.

Usuwałem nawet całą kolumne i tworzyłem ją od nowa z domyślną wartościa 0 a poźniej synchronizacja no i tez dochodziło tylko do 127

Wymyśliłem teraz coś takiego:

Wywaliłem wszystkie tabele odpowiadające za userów czyli: phpbb_users, jos_users, jos_core_acl_aro, jos_core_acl_groups_aro_map. Chyba innych nie ma?

Tworze teraz czyste tabele z AUTO_INCREMENT ustawionym na 1
w phpbb_users zaskoczyło idealnie. Anonymousa zmieniłem id na -1 a adminowi dostało się id 2, czywli wszystko się zgadza. Teraz wyeksportuje z phpbb_users id, mail, name, username, pass do tabeli jos_users. Pole id z phpbb_users równocześnie poleci jako id i phpbb_user_id

Tym sposobem powinenem mieć zgodność id joomli z id przemo no i phpbb_user_id :)

Pozostanie do rozwiązania wypełnienie pól jos_core_acl*

--
Pozdrawiam,
Gamsiu

Gamsiu
07-10-2006, 12:49
Udało mi się wyeliminować błąd, który przypisywał wartość 127 userom z id powyzej 127.

Domyślnie pole phpbb_users_id jest typu tinyint czyli ma pojemnosc 1bajta czyli moze przechowywać liczby od -128 do 127 :/

Proponuje zmienić w pomoście domyślny typ tego pola na smallint (2bajty) Czyli liczby do około 32k

--
Pozdrawiam,
Gamsiu

stone
07-10-2006, 13:05
Wielkie dzięki. Dziś uaktulanie paczkę. Co do typu wartości to może dać taką jak ma joomla w polu id czyli 'int(11)' to powinno zagwarantować brak problemów.

Gamsiu
07-10-2006, 13:27
Wielkie dzięki. Dziś uaktulanie paczkę. Co do typu wartości to może dać taką jak ma joomla w polu id czyli 'int(11)' to powinno zagwarantować brak problemów.

moze byc int, czyli wartość maksymalnie 4bajty a to juz liczby aż do miliarda :)

Dziwne, że do tej pory nikt się na tym błędzie jeszcze nie wyłożył, były coprawda posty z czerwca ale bez odpowiedzi. Ciężko uwierzyć, że nikt nie miał bazy userów większej niz 127 ?

stone
07-10-2006, 19:23
No widzisz, że jakoś to umknęło:) Ale najważniejsze że już wyprostowane

Gamsiu
08-10-2006, 05:49
To pozostaje jeszcze problem z rejestracją.

Chwilowo nie mam żadnych pomysłów. Rejestracja nie działa na idealnie przygotowanej bazie, gdzie user joomli i user forum mają takie same id oraz wszystko zsynchronizowane. Panel kontrolny pomostu pokazuje, że wszystkie pliki są ok no i że synchronizacja userów też 100%

Dodanie usera przez joomle nie dodaje do bazy forum. Dodanie usera na forum działa idealnie.

W których pliczkach pogrzebać?

stone
08-10-2006, 19:52
Hmm, to jest dziwne bo działać powinno.
Dokładnie jest za to odpowiedzilany plik

administrator/components/com_users/admin.users.php

a w nim część zawarta w pliku

adminiatrator/components/com_j-p/patch/admin.users1.patch

sprawdz czy kod z patcha jest w pierwszym pliku.

Gamsiu
09-10-2006, 08:40
Hmm, to jest dziwne bo działać powinno.
Dokładnie jest za to odpowiedzilany plik

administrator/components/com_users/admin.users.php

a w nim część zawarta w pliku

adminiatrator/components/com_j-p/patch/admin.users1.patch

sprawdz czy kod z patcha jest w pierwszym pliku.

Sprawdziłem i kod wygląda ok. W kilku miejscach występuje kod zakomentowancy "joomla<->przemo"

Mogłbyś rzucić okiem na ten pliczek? http://wszib.info/admin.users.zip

stone
09-10-2006, 11:11
Kod wygląda ok.
Jaką masz wersję mysql'a?

Spróbuj jeszcze wykonac bezposrednio to zapytanie w bazie

INSERT INTO `phpbb_users` VALUES ('', $phpbb_active, '$row->username', '$phpbb_pass', $phpbb_time, 0, $phpbb_time, $phpbb_time, '$user_level', 0, 1.00, 1, 'polish', 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, '', 0, '$row->email', '', '', '', '', '', '', '', '', '', '', '', '', '', 999999, 0, '', '', 0, '', 0, 0, '', '', 1, 1, 0, 1, 0, 1, 0, 0, 0, NULL, NULL, NULL, 1, '7f000001', 1, 0, 1, $phpbb_time, 0, 0)

I zobacz czy wyskoczą jakieś błedy

Gamsiu
09-10-2006, 11:20
zapytanie SQL:
INSERT INTO `phpbb_users`
VALUES ( '', $phpbb_active, '$row-&gt;username', '$phpbb_pass', $phpbb_time, 0, $phpbb_time, $phpbb_time, '$user_level', 0, 1.00, 1, 'polish', 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, '', 0, '$row-&gt;email', '', '', '', '', '', '', '', '', '', '', '', '', '', 999999, 0, '', '', 0, '', 0, 0, '', '', 1, 1, 0, 1, 0, 1, 0, 0, 0, NULL , NULL , NULL , 1, '7f000001', 1, 0, 1, $phpbb_time, 0, 0
)

MySQL zwrócił komunikat: https://web.risp.pl/themes/original/img/b_help.png (http://dev.mysql.com/doc/mysql/en/Error-returns.html)
#1136 - Column count doesn't match value count at row 1

MySQL 4.0.27

stone
09-10-2006, 11:35
No to mamy ciekawostkę. Możesz zrobić zrzut jakieś uzytkownika od siebie? (tylko hasło wykasuj)

Gamsiu
09-10-2006, 11:46
Zrobiłem zrzut struktury tablic phpbb_users i jos_users oraz wpis tego samego testowego usera z obu tablic.

Wszystko w pliczku:
http://wszib.info/stone.rtf

stone
09-10-2006, 11:57
Coś jest nie tak z Twoją tabelą phpbb_users

standartowo jest 77 kolumn, u ciebie jest 87 kolumn, nie masz jakiś modyfikacji?

A już widzę, masz własne pola w profilu użytkownika, tak?

Gamsiu
09-10-2006, 12:06
Coś jest nie tak z Twoją tabelą phpbb_users

standartowo jest 77 kolumn, u ciebie jest 87 kolumn, nie masz jakiś modyfikacji?

A już widzę, masz własne pola w profilu użytkownika, tak?

Tak, to zapewne dodatkowe pola. Kazde dodatkowe pole generuje dwie kolumny, jedna z wpisem a jedna z pozwoleniem na wpis do tej kolumny dla danego usera.

stone
09-10-2006, 12:28
Takiej sytuacji nie przewidywałem, postaram się siąść wieczorem i rozwiązać ten problem

stone
09-10-2006, 15:22
Napisz plik z załącznika do components/com_registration
i daj znać czy pomogło.
W panelu admina mozesz miec info ze ten plik bedzie nia załatany ale sie tym nie przejmuj

Gamsiu
09-10-2006, 23:47
Dziekuje,

Oto wyniki testu:

Konto założone z jommli jest zakładane również na forum. Przekazywanie sesji wylogowywanie/logowanie działa. Usuniecie oknta w joomli usuwa tez konto na forum.

kolumna phpbb_users_id jest wypełniana prawidłowo.

Taki mały szczegół ale nie istotny: user dodany z joomli nie wyswietla sie na forum w miejscu "ostatnio zarejestrowany" no ale to nie istotne.

Nie działa synchronizacja.

Po kilku operacjach typu dodawanie i kasowanie użytkowników i panel synchronizacji zaczyna źle wskazywac ilości userów:

Użytkowników Joomla - 355 Użytkowników Forum - 343
Użytkowiników zsynchronizowanych - 344

No ale najważniejsze, że działa rejestracja:) Synchronizacje zrobie sobie ręcznie.

Dziękuje za pomoc. No i chętnie posłuże za tester przy kolejnych zmianach/modyfikacjach pomostu.

stone
10-10-2006, 07:29
Super że działa:)
Synchronizacja nie działa bo zmiany dokonałem tylko w jednym miejscu na razie a trzeba to zrobić w kilku (tak soma na razie nie bedzie Ci działo dodawanie uzytkownika z poziomu panelu admina joomli.
Dziś siądę i poprawię wszystko i wypuszczę RC3.
Dzięki za uwagi:)

stone
10-10-2006, 22:12
Jest już RC3 z poprawionym błędem. Jakbyś zobaczył czy pomoże Ci na synchornizację.

Gamsiu
10-10-2006, 22:48
Jest już RC3 z poprawionym błędem. Jakbyś zobaczył czy pomoże Ci na synchornizację.

Już się zabieram za testowanie ;)

Gamsiu
11-10-2006, 01:10
Użytkowników Joomla - 364 Użytkowników Forum - 364
Użytkowiników zsynchronizowanych - 364
Ślicznie:)

Wygląda na to, że wszystko działa. Synchronizacja działa.
Troszke userów pozakładałem, później posprzątałem więc kasowanie też działa:)

Baza też ładnie wygląda. Jedynie przy nowo dodanych userach brakuke wpisu w kolumnie 'usertype' Raczej to w niczym nie przeszkadza, bo joomla chyba domyślnie brak zawartości traktuje jako najniższy poziom usera, Registered.

Dzięki za nową wersje:)