Интеграция с SMF

+13
5.7K

Вступление

Достаточно многие знакомы и используют на своих сайтах скрипт бесплатного форума Simple Machines Forum (SMF).
Не буду описывать все возможности этого форума — эта статья не об этом.
И хотя InstantCMS содержит такой компонент, как форум, все же функциональность последнего будет еще долго развиваться до уровня того же SMF.
Если же просто установить на одной площадке InstantCMS и SMF, то получается некоторая разобщенность ресурса — сайт отдельно, форум отдельно.
Также заставлять пользователей регистрироваться два раза на сайте — это согласитесь, по крайней мере, несолидно.
Данная статья позволит Вам связать информационную базу SMF-форума с сайтом на InstantCMS.
Данный материал строится на предположении того, что таблицы обеих систем находятся в одной mysql-базе.
Кроме этого, предполагается, что в SMF-форуме была выбрана кодировка win-1251 и папка со скриптами SMF-форума находятся внутри структуры папок InstantCMS.
Предлагаемый уровень интегрированности информации:
единая регистрация. Пользователь регистрируется один раз в InstantCMS. Пользователь в SMF-форуме заводится автоматически с логином и паролем соответствующими логину и паролю в InstantCMS (ник пользователя в SMF-форуме будет соответствовать логину);
модули вывода информации из smf-форума:
— вывод на главной (или там, где Вы посчитаете нужным) некоторого количества последних сообщений с форума. Количество выводимых сообщений также выбирается Вами.
Кроме этого, предусмотрен вывод начальной части сообщений;
— вывод списка непрочитанных пользователем сообщений на форуме;
— вывод списка собственных сообщений на форуме.
Итак поехали.

1. Единая регистрация.

Во-первых, в SMF-форуме (далее просто форум), я считаю нужно отключить регистрацию пользователей. Не беспокойтесь — это никоим образом не помешает нам с Вами добавлять пользователей в базу форума, но зато оградит от расхождения в базе пользователей форума и пользователей Инстанта. Если же у Вас другие соображения на этот счет — ради Бога, поступайте так, как считаете нужным. Сайт Ваш — Вы там господь и Бог :).
Во-вторых, скачиваем файлик smf_icms_bridge.zip (http://sverdlovsk.net.ua/users/files/download36.html) из файлов в моем профиле. Распаковываем содержимое архива в корень сайта.
В архиве содержатся все необходимые файлы для интеграции smf-форума и инстанта: модифицированный файл инстанта регистрирующий пользователя в базе smf-форума, файлы модулей, выводящих сообщения с форума на страницах инстанта, api-библиотечка с некоторыми функциями smf-форума, файл с sql-командой для создания дополнительной таблицы в базе. В таблице будет вестись соответствие id пользователя в инстанте и id пользователя в smf-форуме.
После этого, через админку — Настройки — Резервные копии БД — Восстановление базы данных создаем новую таблицу в базе данных (делаем импорт файла createtbl.sql). Если кому-то будет удобно через phpmyadmin, я тоже возражать не буду. Текст запроса на создание таблицы находится в этом файле (createtbl.sql).
Проверяем, работает или нет единая регистрация, если все нормально приступаем к следующему шагу.

2. Вывод списка последних сообщений с SMF-форума

Если Вы установили модуль так, как было описано выше, то для подключения модуля вывода n-последних сообщений с форума идем в админку.
Добавляем модуль:
Тип модуля: Пользовательский
Публиковать модуль: Да
Содержимое модуля: Выбираем внешний скрипт и в окошке ниже заменяем myscript.php на smf_last_messages.php. Жмем кнопку Вставить.
Все остальные пункты по своему усмотрению.
Для настройки работы модуля придется заглянуть внутрь файла smf_last_messages.php. В строках 17-19 есть следующие настройки:
$kvo=10; — количество выводимых в модуле сообщений
$path_of_smf="/smf"; — путь к форуму smf
$kvo_chars_of_body = 200; — количество первых символов выводимых сообщений. Почему стоит такое большое число? Потому что у меня smf в базе русский текст почему-то записывает в виде четырехзначных числе с амперсандом в начале (& #1054 ;& #1073 ;& #1097 ;& #1080 ;& #1077; & #1074 ;& #1086 ;& #1087 ;& #1088 ;& #1086 ;& #1089 ;& #1099; — пришлось повставлять пробелы, а то парсер преобразует это в слова 😊). Если у Вас не так, поменяйте 200 на любое другое число. Если Вы считаете ненужным вывод начала сообщения — ставьте 0.

3. Вывод списка непрочитанных сообщений с SMF-форума

К великому моему сожалению разобраться с этой функцией smf-форума не удалось 😥. Точнее, тот промежуток времени, что удалось для этого выделить не позволил этого сделать. Ну что ж, вернусь к этому модулю попозже.

4. Вывод списка собственных сообщений на SMF-форуме

Настройки аналогично предыдущему пункту, только вместо myscript.php вставляем smf_my_messages.php.

P.S. Подправил ссылку для скачивания (просили модуль)

Это решение для версии 1.1.rc4!!!

Для новых версий нужно переделывать!
+1
15 лет назад #
А мне лично стандартный форум очень понравился и костылей никаких не нужно...
+1
almond almond 15 лет назад #
Спасибо за проделанную работу — надо будет попробовать, но уже на каком-нибудь новом сайте (если руки дойдут), ибо на существующих миграцию не сделать.

Кстати, подскажите, компонент регистрации от какой версии InstantCMS используется? От последней, 1.2?
+1
Виктор Виктор 15 лет назад #
Встроенный форум подкупает своей простотой smile
Отсутствует банальный поиск.
Недавно возник повторный вопрос, помню я на него отвечал, однако для того, чтобы дать ссылку на тот топик пришлось перелопачивать форум. Так, кстати, и не нашел.
+1
15 лет назад #
Это жыш социальная сеть - все обсуждения вообще должны проходить либо непосредственно в комментариях к статье/блогу, либо в клубах - а если затевать форум, то как правило, все обсуждения перетекают в него и тогда фиг знает вообще для чего все остальные прибамбасы.. ИМХО
+1
garry garry 15 лет назад #
Если делать социалку, то форум вообще как класс не нужен. Иначе как правильно написано выше Дмитрием убивается смысл.
А если делать сайт то конечно есть смысл прикрутить более функциональный и имеющий кучу модов и хаков форум.
С SMF не первый год на проектах работаю и скажу, очень удобный форум и при желании поднять реально удобный и обвешанный кучей модов форум не проблема. Тем более сейчас его индексация в ПС отлажена и проверена мной на куче проектов.
+1
Barrio Barrio 15 лет назад #
garry ++++
соцалке не нужен напрочь форум, социалке нужны блоги с ДРЕВОВИДНЫМИ комментариями, т.е. с возможностью отвечать на коммент другого пользователя, и все, а так же многопользовательские блоги и т.д. (но это уже есть)

а для сайта, согласен, полезен форум
+1
InstantCMS InstantCMS 15 лет назад #
с древовидными комментариями будем решать уже скоро
+1
15 лет назад #
ИМХО лучше не поленится и дополнить нынешний форум всем необходимым. И пользы будет куда больше, да и возможностей будет куда больше.
+1
15 лет назад #
teCa, этим уже как бы занимаются!
+1
15 лет назад #
Пробовал я енту интеграцию осуществить, делал все как написано, в итоге упала нормальная регистрация, благо на Дневере делал, т.к. чего-то подобного и ждал
0
Влад Влад 15 лет назад #
А что не секачиваеться smf_icms_bridge.zip?
0
Виктор Виктор 15 лет назад #

Данное решение было актуально для версии 1.1rc4!

А не скачивается по причине того, что движок или фиг его знает кто (так и не разобрались) обрезает ссылку при переадресации. Если посмотреть внимательнее на ссылку то там можно увидеть куда она должна прийти. Можно скопировать ее в буфер и вставить в адресную строку, а потом первую часть удалить и нажать "Энтер" и все скачается.
На всякий случай smile:
Код PHP:
http://instantcms.ru/users/files/download.html?fileid=61
+1
Влад Влад 15 лет назад #
на самом деле меня интересует не интеграция с SMF, хотелось посмотреть приблизительную реализацию слияния двух систем с одной базой пользователей, неужели можно интегрировать две разные системы, а два Инстанта нельзя?
+1
Виктор Виктор 15 лет назад #
Я подправил модуль регистрации. При регистрировании в инстанте данные пользователя заносились также в базу форума. То есть форум работал со своей базой, а инстант со своей. Интеграции, как таковой не было, в полном понимании этого слова. На таком уровне можно скрестить и два инстанта, но я в своем решении предлагал запретить регистрацию в форуме для того чтобы не было рассогласования по пользователям. Здесь же можно сделать иначе - при регистрации отсылать на первый сайт
+1
Влад Влад 15 лет назад #
Вот теперь мне всё понятно, получится что при переходе с сайта sait.ru на сайт soc.sait.ru всё равно придется вводить логин, пароль. Это не очень удобно. Планировалось создание нескольких поддоменов на инстанте с единой базой пользователей. Эта фишка предусмотрена уже в DLE, Joomla и Drupal, у них все решается путем редактирования конфиг файла сайтов поддоменов, там на таблицу базы юзеров прописан префикс, ручками правишь на префикс основного сайта и всё работает))) а тут сложняк(((
+1
Влад Влад 15 лет назад #
ссылка все равно не работает sad
+1
Виктор Виктор 15 лет назад #
Оказывается формат ссылок на файлы пользователя поменялся. Правильная ссылка теперь выглядит так: http://instantcms.ru/users/files/download61.html
0
Erakon Erakon 12 лет назад #
Данная статья позволит Вам связать информационную базу SMF-форума с сайтом на InstantCMS.
Данный материал строится на предположении того, что таблицы обеих систем находятся в одной mysql-базе.

---
Как можно доработать мост и связать информационную базу SMF-форума с сайтом на InstantCMS,
с тем, что каждая из систем имеет свою mysql-базу? Т.е. - связать при этом 2 базы.

Еще от автора

Расширенная статистика сайта
В своё время maxisoft выложил модуль "Статистика сайта" посмотрев его некоторое время понял, что мне не хватает информации предоставляемой э
Плагин «История рейтинга»
Несколько раз встречалось на сайте пожелание увидеть информацию о том, кто и за что "плюсует"/"минусует" рейтинг по аналогии с &qu
Рекорд посетителей
Представляю для желающих модуль для instantcms «Рекорд посетителей» для сайта.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.