Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prośba o pomoc - połączenie ThePortal2 oraz SMF
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy portalowe i CMS'y
roobik
Witam!
Od razu przejdę do rzeczy.
Już jakiś czas działa forum oparte na SMF. Postanowiłem nieco rozbudować stronę i chcę skorzystać z cms ThePortal2. Zarówno na Forum, jak i na stronie jest logowanie (admina też). Nie będzie raczej żadnym odkryciem, jak napiszę, że tu i tu są różne zmienne (prawdopodobnie) dotyczące userów (rejestracja/logowanie).
Ponieważ nie chciałbym "stracić" użytkowników z Forum, a bezsensownym wydaje się być "podwójne logowanie" (osobno na stronę, by np dodać komentarz, a osobno na Forum), postanowiłem, że "połączę" logowania.
Niestety - różna ilość pól (w dodatku różnych...)
Czy znalazłaby się osoba, która by pomogła?
marcio
Niestety takie rzeczy trzeba bylo obmyslec wczesniej teraz to moze juz byc problem chyba ze ktos ci pomoze lub znajdziesz cos co bedzie dzialalo z SMF.

Lub zrob sobie backup bazy user'ow z forum postaw stronke i napisz skrypt ktory bedzie odpwiednio wstawial dane.
roobik
Kombinuję jeszcze na jeden sposób, ale chcę najpierw zasięgnąć Waszej rady. Otóż logowanie oparłbym tylko na SMF, a na stronie pokazywałbym informacje pobierane z forum.
A ten "sposób" to dodanie jednej linii do logowania w smf - i tu chcę zasięgnąć rady.
Do tej pory rejestracja na SMF dopisywała rekord do tabeli users w bazie smf_forum (standardowo: nick, mail, hasło, powt. hasło). A jakby zrobić taki numer by w pliku rejestracji forum dopisać linię, która przy rejestracji dodawałaby rekord w innej tabeli (np. rejestracji nieforumowej, tylko "stronowej").


Załóżmy że standardowo jest to:
Kod
$query = "INSERT INTO $smf_users (nick,mail,pass,ppass) VALUES('$name', '$mail', '$pass', '$ppass')";

A jaki miałoby to sens, gdybym dopisał linię, w której (ponownie) dodawana byłaby nazwa użytkownika, lecz zapisywana w tabeli site_users:
Kod
$query = "INSERT INTO $site_users (nick,aaa,bbb,ccc) VALUES('$name', '$aaa', '$bbb', '$ccc')";

Oczywiście aaa, bbb, ccc to tylko fikcja, ale chodzi o to,m że nie chcę ruszać zapytania "oryginalnego" ( tego z smf), a porównując rekordy w tabeli site_users wywalałbym rekordy dla danego użytkownika tak z forum, jak i ze strony...
Trochę teraz zamotałem, ale myślę, że wiecie, o co kaman...
Więc, jeśli można - prosze o wszelkie sugestie - być może jest jakieś lepsze rozwiązanie winksmiley.jpg ?
marcio
Chyba wiem o co ci chodzi przy rejestracji chcesz dawac 2 rozne insert into na baze forum i baze strony??

Jesli to dobrze rozwiazesz moglo by dzialac tongue.gif
roobik
smile.gif Mija prawie miesiąc - skrypt strony (cms) jest już niemal ukończony (mały poślizg czasowy), więc teraz pozostało zintegrowanie.
Cytat(marcio)
przy rejestracji chcesz dawac 2 rozne insert into na baze forum i baze strony??

Dokładnie tak smile.gif
Niestety nie wiem, w jaki sposób to zrobić... Być może, jesli podam struktury obu tabel...
tabela members (forum):
  1. CREATE TABLE IF NOT EXISTS `members` (
  2. `ID_MEMBER` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `memberName` varchar(80) NOT NULL DEFAULT '',
  4. `dateRegistered` int(10) UNSIGNED NOT NULL DEFAULT '0',
  5. `posts` mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  6. `ID_GROUP` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  7. `lngfile` tinytext NOT NULL,
  8. `lastLogin` int(10) UNSIGNED NOT NULL DEFAULT '0',
  9. `realName` tinytext NOT NULL,
  10. `instantMessages` smallint(5) NOT NULL DEFAULT '0',
  11. `unreadMessages` smallint(5) NOT NULL DEFAULT '0',
  12. `buddy_list` text NOT NULL,
  13. `pm_ignore_list` tinytext NOT NULL,
  14. `messageLabels` text NOT NULL,
  15. `passwd` varchar(64) NOT NULL DEFAULT '',
  16. `emailAddress` tinytext NOT NULL,
  17. `personalText` tinytext NOT NULL,
  18. `gender` tinyint(4) UNSIGNED NOT NULL DEFAULT '0',
  19. `birthdate` date NOT NULL DEFAULT '0001-01-01',
  20. `websiteTitle` tinytext NOT NULL,
  21. `websiteUrl` tinytext NOT NULL,
  22. `location` tinytext NOT NULL,
  23. `ICQ` tinytext NOT NULL,
  24. `AIM` varchar(16) NOT NULL DEFAULT '',
  25. `YIM` varchar(32) NOT NULL DEFAULT '',
  26. `MSN` tinytext NOT NULL,
  27. `Skype` varchar(25) NOT NULL,
  28. `GG` varchar(16) NOT NULL,
  29. `Tlen` varchar(25) NOT NULL,
  30. `hideEmail` tinyint(4) NOT NULL DEFAULT '0',
  31. `showOnline` tinyint(4) NOT NULL DEFAULT '1',
  32. `timeFormat` varchar(80) NOT NULL DEFAULT '',
  33. `signature` text NOT NULL,
  34. `timeOffset` float NOT NULL DEFAULT '0',
  35. `avatar` tinytext NOT NULL,
  36. `pm_email_notify` tinyint(4) NOT NULL DEFAULT '0',
  37. `karmaBad` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  38. `karmaGood` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  39. `usertitle` tinytext NOT NULL,
  40. `notifyAnnouncements` tinyint(4) NOT NULL DEFAULT '1',
  41. `notifyOnce` tinyint(4) NOT NULL DEFAULT '1',
  42. `notifySendBody` tinyint(4) NOT NULL DEFAULT '0',
  43. `notifyTypes` tinyint(4) NOT NULL DEFAULT '2',
  44. `memberIP` tinytext NOT NULL,
  45. `memberIP2` tinytext NOT NULL,
  46. `secretQuestion` tinytext NOT NULL,
  47. `secretAnswer` varchar(64) NOT NULL DEFAULT '',
  48. `ID_THEME` tinyint(4) UNSIGNED NOT NULL DEFAULT '0',
  49. `is_activated` tinyint(3) UNSIGNED NOT NULL DEFAULT '1',
  50. `validation_code` varchar(10) NOT NULL DEFAULT '',
  51. `ID_MSG_LAST_VISIT` int(10) UNSIGNED NOT NULL DEFAULT '0',
  52. `additionalGroups` tinytext NOT NULL,
  53. `smileySet` varchar(48) NOT NULL DEFAULT '',
  54. `ID_POST_GROUP` smallint(5) UNSIGNED NOT NULL DEFAULT '0',
  55. `totalTimeLoggedIn` int(10) UNSIGNED NOT NULL DEFAULT '0',
  56. `passwordSalt` varchar(5) NOT NULL DEFAULT '',
  57. PRIMARY KEY (`ID_MEMBER`),
  58. KEY `memberName` (`memberName`(30)),
  59. KEY `dateRegistered` (`dateRegistered`),
  60. KEY `ID_GROUP` (`ID_GROUP`),
  61. KEY `birthdate` (`birthdate`),
  62. KEY `posts` (`posts`),
  63. KEY `lastLogin` (`lastLogin`),
  64. KEY `lngfile` (`lngfile`(30)),
  65. KEY `ID_POST_GROUP` (`ID_POST_GROUP`)
  66. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=216 ;

Oraz tabela uzytkownicy (cms):
  1. CREATE TABLE IF NOT EXISTS `uzytkownicy` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `login` text,
  4. `haslo` text,
  5. `email` text,
  6. `imie` text,
  7. `nazwisko` text,
  8. `ranga` text,
  9. `skype` text,
  10. `gg` text,
  11. `adres` text,
  12. `uprawnienie` text,
  13. `avatar` text,
  14. PRIMARY KEY (`id`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;

Być może w jakiś sposób da się to połączyć.... Proszę o podpowiedź...
pzduniak
Użyj normalnie INSERT, tylko przystosuj go do portalu winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.