Вступление
Достаточно многие знакомы и используют на своих сайтах скрипт бесплатного форума 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. Подправил ссылку для скачивания (просили модуль)
Реклама #
15 лет назад #
almond 15 лет назад #
Кстати, подскажите, компонент регистрации от какой версии InstantCMS используется? От последней, 1.2?
Виктор 15 лет назад #
Отсутствует банальный поиск.
Недавно возник повторный вопрос, помню я на него отвечал, однако для того, чтобы дать ссылку на тот топик пришлось перелопачивать форум. Так, кстати, и не нашел.
15 лет назад #
garry 15 лет назад #
А если делать сайт то конечно есть смысл прикрутить более функциональный и имеющий кучу модов и хаков форум.
С SMF не первый год на проектах работаю и скажу, очень удобный форум и при желании поднять реально удобный и обвешанный кучей модов форум не проблема. Тем более сейчас его индексация в ПС отлажена и проверена мной на куче проектов.
Barrio 15 лет назад #
соцалке не нужен напрочь форум, социалке нужны блоги с ДРЕВОВИДНЫМИ комментариями, т.е. с возможностью отвечать на коммент другого пользователя, и все, а так же многопользовательские блоги и т.д. (но это уже есть)
а для сайта, согласен, полезен форум
InstantCMS 15 лет назад #
15 лет назад #
15 лет назад #
15 лет назад #
Влад 15 лет назад #
Виктор 15 лет назад #
Данное решение было актуально для версии 1.1rc4!
А не скачивается по причине того, что движок или фиг его знает кто (так и не разобрались) обрезает ссылку при переадресации. Если посмотреть внимательнее на ссылку то там можно увидеть куда она должна прийти. Можно скопировать ее в буфер и вставить в адресную строку, а потом первую часть удалить и нажать "Энтер" и все скачается.На всякий случай :
Влад 15 лет назад #
Виктор 15 лет назад #
Влад 15 лет назад #
Влад 15 лет назад #
Виктор 15 лет назад #
Erakon 12 лет назад #
Данный материал строится на предположении того, что таблицы обеих систем находятся в одной mysql-базе.
---
Как можно доработать мост и связать информационную базу SMF-форума с сайтом на InstantCMS,
с тем, что каждая из систем имеет свою mysql-базу? Т.е. - связать при этом 2 базы.