Совместная авторизация для форума vBulletin 3.8.1 и MediaWiki 1.15.3. (работа с другими версиями возможна, но не гарантируется) (рекомендуется также русификация vBulletin от zCarot (381)) Версия 1.3 от 09.08.2010. Разработка VGroup (www.vgroup.ru) Замечания и пожелания можно присылать по адресу inbox@vgroup.ru На настоящий момент разрешается открытое распространение и добросовестные изменения, при условии сохранения ссылки на VGroup. Продукт распространяется "как есть", VGroup не несёт ответственности за прямой или косвенный ущерб, могущий возникнуть при использовании продукта. ИНСТРУКЦИЯ ПО УСТАНОВКЕ: 1. Установите форум vBulletin 3.8.1 в каталог, например, forum_vb. 2. Установите MediaWiki 1.15.3. в каталог, например, wiki. 3. Настройте файл config_WF.php: - параметры используемой БД(она долна быть единой для форума и для вики), - логин/пароль администратора Mediawiki, указанного при установке, - директории, в которых расположены vBulletin и MediaWiki (в нашем примере forum_vb и wiki), - используемый для всех пользователей пароль в вики (его Вы должны придумать), - соотношение групп пользователей в форуме и в вики. Запись должна быть формата "идентификатор группы форума" => "название группы вики". * Идентификаторы групп форума можно посмотреть в админке установленного форума "Группы пользователей" (UserGroups) -> "Управление группами" (Usergroup Manager). 4. Перенесите файлы config_WF.php, script.php, editor.php в корневой каталог сайта. 5. В MediaWiki создайте пользователя с именем "RU" и паролем, указанным в config_WF.php в переменной $user_pass_wiki. Создайте в форуме любого пользователя и в БД в таблице $table_prefix_forum."user" увеличьте его userid на 1 (делается это для того, чтобы смещения индексов пользователей не произошло, ведь userid в форуме = userid в вики). Если ваш форум существует давно, и в нем уже есть пользователи, то поставьте пользователю RU в таблице $table_prefix_wiki."user" любой не существующий в форуме userid. 6. Запустите на исполнение script.php в браузере. Он скопирует всех пользователей из форума в вики. 7. Замените существующие файлы на файлы из архива в соответствии с их расположением, описанным ниже: index.php, login.php, forumdisplay.php в /forum_vb/ functions.php в /forum_vb/includes/ UserLogin.php в /wiki/includes/templates/ SpecialUserLogin.php в /wiki/includes/specials/ 8. Обратитесь по адресу /wiki/api.php. В случае сообщения об ошибке "API must be accessed through the primary script entry point" разместите файл api.php в каталоге /wiki/ 9. Установите в Cron задания запускать файлы script.php и editor.php, например, каждые 20 минут. Например, вот так: */5 * * * * /usr/bin/php -q -f /var/www/clients/client1/web34/web/script.php ОПИСАНИЕ ВЛОЖЕННЫХ ФАЙЛОВ: 1. config_WF.php - Файл конфигурации. Расположение: / (корневой каталог сайта) 2. script.php + editor.php - скрипты синхронизирующие работу в БД между таблицами пользователей форума и таблицами пользователей вики. script.php - копирует новых пользователей из таблиц форума в таблицы вики, с учетом всех настроек и групп пользователей. editor.php - синхронизирует изменения данных пользователей (e-mail, группа пользователя). Переносит изменения из таблиц форума в таблицы вики (приоритет у изменений в форуме). Расположение: / (корневой каталог сайта) 3. index.php + login.php - два этапа совместной авторизации wiki и vbulletin В index.php вставлен блок кода стр.70-165. В login.php вставлены два блока стр.78-94 и стр.160-266. Расположение: /forum/ 4. SpecialUserlogout.php + Userlogin.php - редиректы авторизации и выхода из вики в форум для пользователей. Userlogin.php - редирект авторизации. В нем закомментирован блок вывода страндартной формы авторизации вики, вместо которого выводиться сообщение "Представиться или зарегестрироваться можно здесь" (уводит пользователя на форум). Изменения стр.29-95. Расположение: /wiki/includes/templates/ SpecialUserlogout.php - редирект выхода. Изменения стр.24-26. Расположение: /wiki/includes/specials/ 5. functions.php - файл функций работы форума. В этом файле закомментированы строки 2287-2291, что позволяет делать редирект с выхода из вики на выход из форума без использования шифорванных идетификаторов сессий - то есть дает возможность правильно выходить одновременно с вики и с форума без видимых пользователю ошибок. Расположение: /forum_vb/includes/ 6. forumdisplay.php - редирект на второй этап авторизации mediawiki, если авторизация начиналась со страницы forumdisplay.php Поставлена проверка на установленные cookie. Изменения стр.25-31 Расположение: /forum_vb/ 7. api.php - стандартные средства api для MediaWiki. Изменения стр.59-66. ИСПОЛЬЗУЙТЕ этот файл ТОЛЬКО ЕСЛИ при переходе по ссылке /wiki/api.php в браузере появляется ошибка "API must be accessed through the primary script entry point". Расположение: /wiki/