Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Интегрирование форума с сайтом


Автор: ruX 20.9.2007, 12:20
Собственно такая проблемма.
Пишу сайт(портал), нужно чтоб была общая база пользователей с форумом(причём должны быть специфичные поля для сайта в таблице пользователей) - я понимаю нужно чтоб я полагался на форум а не форум на меня.. 
Ещё интересует как отображать форум внутри сайта. 
Встраивая форум в плавающий фрэйм - не самый интересный вариант.
Думаю включать буфферизацию, выполнять скрипт форума, и дальше резать тэги которые не нужны типа  <head>, <html>, причём запониманая файлы которые нужно подключить(js, css)?

Хочу использовать phpBB, или SMF.
Собственно не хотелось бы изменять код форума - ибо наверняка придётся потом обновлять - не дописывать же код после каждого обновления???

Какие есть идеи или ссылки буду рад )

Автор: ewolf 20.9.2007, 12:34
Если все пишется с нуля, то есть n-ое количество CMS, включающих в себя форум (в большинстве своем на базе phpBB), ну например таже joomla. 

Можно просто использовать таблицы форума, отвечающие за авторизацию пользователей, дополнив их необходимыми полями. При этом придется повторить все процедуры, которые проделывает форум для авторизации и регистрации пользователей.

Как вариант можно завести собственную систему авторизации пользователей, каждый раз синхронизируя ее с базой форума и наоборот. Можно сделать скриптом или триггером MySQL. По-моему очень муторный вариант.

Что вы имеете ввиду под "отображать форум внутри сайта"? В общем дизайне? Измените шаблон форума под ваш дизайн, добавте туда все необходимые блоки.

Если просто нужно выводить какую-то информацию с форума на сайте, например последние сообщения, то написать такой скрипт - 15 минут.

Автор: ruX 20.9.2007, 13:47
Цитата(ewolf @  20.9.2007,  12:34 Найти цитируемый пост)
Можно просто использовать таблицы форума, отвечающие за авторизацию пользователей, дополнив их необходимыми полями. При этом придется повторить все процедуры, которые проделывает форум для авторизации и регистрации пользователей.

Как раз таки я и говорю, не хочу крошить то что сделанно форумом, если обновлять то будут проблеммы. Уже был небольшой опыт изменения форума SMF для привинчивания к сайту - но теперь не обновить, изменял как сорцы так и добавлял поля в таблицы.


Цитата(ewolf @  20.9.2007,  12:34 Найти цитируемый пост)
Что вы имеете ввиду под "отображать форум внутри сайта"? В общем дизайне? Измените шаблон форума под ваш дизайн, добавте туда все необходимые блоки.

да. Так и нужно сделать  smile 

Автор: sTa1kEr 20.9.2007, 14:58
Цитата(ruX @  20.9.2007,  12:20 Найти цитируемый пост)
Пишу сайт(портал), нужно чтоб была общая база пользователей с форумом(причём должны быть специфичные поля для сайта в таблице пользователей) - я понимаю нужно чтоб я полагался на форум а не форум на меня.. 

Создайте таблицу, к примеру, user_info со связкой один к одному (или один ко многим, если нужно) с таблицей пользователей форума и для регистрации/авторизации пользователей на портале используйте эти таблицы. Тогда при не придется при каждом обновлении форума менять БД.

Цитата(ruX @  20.9.2007,  12:20 Найти цитируемый пост)
Думаю включать буфферизацию, выполнять скрипт форума, и дальше резать тэги которые не нужны типа  <head>, <html>, причём запониманая файлы которые нужно подключить(js, css)?

Имхо, это не намного лучше чем фрейм и где гарантия, что в этом случае не будет конфликтных запросов к форуму и порталу... Более правильным и красивым способом (но и более сложным) будет сделать
  • Во первых, написать специальный шаблон этого форума, в котором не будет шапки и футера, а так же будет под дизайн портала
  • Написать для форума некий API, который будет аналогом index.php форума, но вызывать будет методы форума сам основываясь на данных скрипта. Для этого, вероятно, придется продублировать и переделать часть кода форума.
Т.о. код форума будет не тронут и после обновления продолжит работать (за исключением каких-либо глобальных изменений, к примеру, в index.php).

Автор: ruX 21.9.2007, 12:29
Цитата(sTa1kEr @  20.9.2007,  14:58 Найти цитируемый пост)
Во первых, написать специальный шаблон этого форума, в котором не будет шапки и футера, а так же будет под дизайн портала

на этом и остановился


Цитата(sTa1kEr @  20.9.2007,  14:58 Найти цитируемый пост)
Написать для форума некий API, который будет аналогом index.php форума, но вызывать будет методы форума сам основываясь на данных скрипта. Для этого, вероятно, придется продублировать и переделать часть кода форума.

Это уже пошло изменение кода. Единственно что - так это перед подключением форума - это максимум разчисить всё что не нужно(переменные, объекты, разъединиться с бд и т.д..) а после замершения работы форума - снова восстанавливать )


Цитата(sTa1kEr @  20.9.2007,  14:58 Найти цитируемый пост)

Создайте таблицу, к примеру, user_info со связкой один к одному (или один ко многим, если нужно) с таблицей пользователей форума и для регистрации/авторизации пользователей на портале используйте эти таблицы. Тогда при не придется при каждом обновлении форума менять БД.

Да, именно так и поступлю. Спасибо.



Что касается интегрирования ещё. Видимо придется схему авторизации брать у форума?

Автор: sTa1kEr 21.9.2007, 15:20
Цитата(ruX @  21.9.2007,  12:29 Найти цитируемый пост)
Это уже пошло изменение кода.

Нет, изменения кода форума не будет. Это будет как прослойка между порталом и форумом.


Цитата(ruX @  21.9.2007,  12:29 Найти цитируемый пост)
Видимо придется схему авторизации брать у форума? 

Если делать вашим способом, то да.

Автор: ruX 21.9.2007, 16:27
Цитата(sTa1kEr @  21.9.2007,  15:20 Найти цитируемый пост)
Если делать вашим способом, то да. 

А есть какая то ещё альтенатива?
Ведь по любому придётся делать авторизацию за форум

Автор: FCCStepan 12.12.2007, 07:29
Я рядом с внесением пользователя в мою бд сразу формирую запрос для внесения его в бд форума, и никаких проблем вообще не наблюдаю. Естественно ставлю затычку на регистрации пользователей через сам форум.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)