Одним из наиболее востребованных приложений для MODx это пакет для форума. Несмотря на то, что в Revolution скоро будет встроенная форумная надстройка Discuss, в использовании полноценного приложения есть некоторые преимущества. Штука в том, чтобы чтобы вашим посетителям не приходилось входить в систему несколько раз, отдельно для MODx и для форума. Это означает определенную интеграцию каждой учетной записи пользователя между MODx и приложением форума. Последний выпуск старшей версии форумного пакета Vanilla, версия 2, позволяет именно это. Недавно я имел возможность использовать надстройку Vanilla, и после первоначальных сомнений, обнаружил что ее поразительно просто использовать совместно с MODx.
Со стороны Vanilla
На момент написания этой статьи, последняя версия Vanilla была 2. 0. 3. Установка и настройка форума Vanilla, а также настройка его оформления в соответствии с вашим сайтом MODx (что примерно настолько же просто, как работать с шаблонами MODx) не является основной целью этой статьи. Документация к Vanilla поможет гораздо лучше в объяснении основных фунцкций этого пакета. Как только вы сконфигурируете, оформите, и запустите ваш форум Vanilla так, как вы хотите пора настроить модуль ProxyConnect SSO. Просто закачайте папку ProxyConnect в папку модулей форума, вместе с остальными модулями. Войдите на форум и зайдите в панель настроек, затем откройте пункт Модули. Включите модуль ProxyConnect SSO. Теперь зайдите в Настройки. Выберите авторизатор ProxyConnect из выпадающего списка и включите его. Заполните поля URL вашего основного сайта и поля URL страниц MODx, которые вы будете использовать для регистрации, входа в систему и выхода. Если вы используете стандартный апплет WebLogin для входа в MODx, добавьте к URL выхода из системы выражение "?webloginmode=lo" (без кавычек). Это все, что требуется сделать со стороны Vanilla. Можете выйти из системы.
Со стороны MODx
Вам придется создать апплет и модуль, и как минимум два ресурса, чтобы включить поддержку ProxyConnect SSO со стороны MODx. Апплет для того, чтобы сгенерировать список данных о пользователях, для присоединения пользователей в Vanilla:
if(isset($_SESSION[webInternalKey])) { $output = "UniqueID=". $_SESSION[webInternalKey]. "\n\n"; $output. = "Name=". $_SESSION[webShortname]. "\n\n"; $output. = "Email=". $_SESSION[webEmail]. "\n\n"; return $output; } return;
Модуль для объединения выхода из MODx с Vanilla. Все, что от него требуется удалить cookie Vanilla. Этот модуль использует системное событие OnWebLogout, так что включите его в закладке Системные события модуля. Обязательно отредактируйте часть .mydomain.com в соответствии с вашим доменом!
$e = $modx-Event; switch($e-name) { case OnWebLogout: // integrated logout setcookie(Vanilla,, time() 3600, /,. mydomain. com); unset($_COOKIE[Vanilla]); break; }
Создайте новый ресурс с пустым содержимым, и просто вставьте в него команды апплета, который вы создали. Полный адрес страницы должен соответствовать URL, который вы установили для него в настройках ProxyConnect. Создайте ресурс или ресурсы, которые вы будете использовать для входа, выхода из системы и регистрации. Они все могут быть на одной странице; опять же, удостоверьтесь что полный адрес соотвествует заданному в настройках ProxyConnect. Наконец, создайте нового web-пользователя с тем же именем, паролем и адресом e-mail, что и ваш пользователь-администратор Vanilla. Войдите в MODx с этой учетной записью, затем перейдите на форум. Вы увидите всплывающее окно с запросом, хотите ли вы создать нового пользователя Vanilla, или присоединить существующую учетную запись. Выберите второе. Если все работает нормально, вы окажетесь в системе Vanilla, зашедшим с правами администратора. Вы наверняка не захотите, чтобы всем пользователям вашего сайта выдавалось то же самое окно запроса, когда они впервые заходят на форум, поэтому добавьте эту строку в файл Vanilla config. php:
$Configuration[Garden][Authenticator][SyncScreen] = FALSE;
Когда посетитель зайдет на форум, откроется соединение с URL, указанным вами в поле Authenticate URL настроек ProxyConnect, передав cookie MODx так, как будто это был бы обычный пользователь, заходящий на страницу. Загрузится переменная MODx SESSION для данного пользователя, используя идентификатор сессии, заданный в cookie, и апплет в соответствующем ресурсе выдаст необходимые данные пользователя. Vanilla соберет данные со страницы, и проверит их по базе данных пользователей. Если пользователь не существует, Vanilla создаст его автоматически, и в любом случае (даже при недостаточных или несовпадающих пользовательских данных) пользователь войдет в систему Vanilla. Ссылки Vanilla для входа, выхода из системы и регистрации, будут перенаправлены на страницы MODx, указанные в соответствующих полях настроек ProxyConnect.
Источник: http://remontkomputerov-krasnoyarsk.ru
0 комментариев