yura3d |
Отправлено: 8 ноября 2010 — 02:14
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
electron пишет:с какой именно версией? сейчас в ходу v.2.6.3
Вообще с любой двойкой. Насколько мне известно, механизм регистрации и авторизации там от версии к версии существенно не изменялся. Могу ошибаться, поэтому в любом случае, я работаю именно с последней версией - 2.6.3
igrok54
Сказать честно, не совсем понял идею интеграции, описанную в Вашем предыдущем сообщении. Да, мы можем в стороннем движке подключить предложенный Вами файл (в данном случае это будет аналог файла SSI.php из SMF). Да, мы можем вызвать функцию forum_welcom() и напечатать форумное приветствие пользователю (хотя, приветствия стороннего движка вполне должно хватить). Но, авторизовавшись на форуме, кроме этого приветствия на страницах стороннего движка более ничего не изменится. В то же время, в моём понимании суть авторизации состоит в том, чтобы при авторизации на форуме пользователь автоматически становился авторизованным и в стороннем движке, при этом данная авторизация должна работать именно на программном уровне этого движка, а не только на уровне ExBB. Добиться такой совместной авторизации можно только путём взаимодействия механизмов авторизации обоих движков, и тут уже простым файлом SSI.php не обойтись
Преимущества совместной регистрации и авторизации очевидны. Например, Joomla имеет некоторые модули (фотогалерея, блоги), которых пока нет у ExBB. В то же время у ExBB есть свои преимущества перед Joomla (полнофункциональный форум, Ajax-чат, независимость от работы MySQL и др.) При установленной интеграции Ваши пользователи смогут одновременно пользоваться преимуществами каждого из движков
igrok54 пишет:Имеются также файлы, демонстрирующие и разъясняющие юзеру работу SSI.php.
Где можно с ними ознакомиться? |
|
|
igrok54 |
Отправлено: 8 ноября 2010 — 03:09
|
Advanced Member
Покинул форум
Сообщений всего: 470
Дата рег-ции: Янв. 2010
Откуда: Пермь
Репутация: 57
|
yura3d
Начну с конца.
Цитата:Где можно с ними ознакомиться?
Это файлы ssi_examples.php и ssi_examples.shtml в дистрибутиве SMF.
Цитата:хотя, приветствия стороннего движка вполне должно хватить - это если таковое имеется. DLE, Joomla - да, приветствие есть. А если взглянуть на главную страницу http://exbb.org/ - ???
Посмотреть образец можно тут.
В предложенной ссылке обратите внимание на третий пункт - проверка авторизованности. Простой функцией CODE:function forum_auth() {
if($GLOBALS['fm']->user['id'] !== 0) {
return true;
} else {return false;}
}
возвращающей true или false проверяем, авторизован ли юзер, и программируем дальнейшие действия скрипта. Например, автоматически заполнять в форме добавления комментария поля имя и Email, получая их из профиля юзера в ExBB.
Смысл моего предложения исходил из предпосылки, что форум - на файлах, соответственно и движок, с которым производится интеграция в большой степени вероятности также может быть на файлах, а в простых движках на файлах далеко не всегда имеется регистрация и авторизация пользователей.
Либо в движке, с которым производится интеграция, может быть отключена регистрация юзеров из-за ненадобности. Соответственно, может быть на сайте только одна регистрация для юзеров - только на форуме. Пример - http://exbb.org/
Данный вариант нацелен на интеграцию не с монстрами типа Джумлы, а с маленькими движками и может в этом случае очень облегчить объединение ExBB с CMS-кой.
Примером может опять послужить http://exbb.org/... Если юзер авторизован на форуме, то его юзербар может быть и на главной странице сайта. Также на главной неплохо бы выводить блок с обновлениями на форуме - ведь основное движение происходит на нем.
Как думаете?(Отредактировано автором: 8 ноября 2010 — 03:45) |
|
|
electron |
Отправлено: 16 ноября 2010 — 13:05
|
ExBB Team
Покинул форум
Сообщений всего: 3917
Дата рег-ции: Февр. 2009
Репутация: 341
|
igrok54 пишет:в движке, с которым производится интеграция, может быть отключена регистрация юзеров из-за ненадобности. Соответственно, может быть на сайте только одна регистрация для юзеров - только на форуме. Пример - http://exbb.org/
а какой смысл ставить форму входа на сайт exbb.org ? что там делать обычному юзеру? блогов нет, галереи нет, это просто информационный портал.
igrok54 пишет:Также на главной неплохо бы выводить блок с обновлениями на форуме - ведь основное движение происходит на нем.
Как думаете?
вы имеете в виду главную сайта exbb.org ? хм... поставить это не проблема, вопрос куда.... в принципе, можно сделать боковую колонку для этого, но тогда в эту колнку нужно будет еще какую-то информацию ставить, одних обновлений с форума будет мало |
|
|
igrok54 |
Отправлено: 17 ноября 2010 — 04:46
|
Advanced Member
Покинул форум
Сообщений всего: 470
Дата рег-ции: Янв. 2010
Откуда: Пермь
Репутация: 57
|
electron пишет:а какой смысл ставить форму входа на сайт exbb.org ? что там делать обычному юзеру? блогов нет, галереи нет, это просто информационный портал.
В первую очередь - это лицо сайта, ГЛАВНАЯ страница.
Новички впервые приходящие на сайт не знают, что на фронтенде стоит лишь информационный портал, а им надо идти сразу на форум. Да и неплохо бы было, чтобы новичек сразу видел, что на сайте кипит жизнь...
electron пишет:вы имеете в виду главную сайта exbb.org ? хм... поставить это не проблема, вопрос куда.... в принципе, можно сделать боковую колонку для этого, но тогда в эту колонку нужно будет еще какую-то информацию ставить, одних обновлений с форума будет мало
Или между блоком контента и футером сделать еще один блок (типа нижнего бара).
Но все вышеописанное не обязательно, Вы администрация, вам решать. Я же предлагал простой способ для интеграции ExBB с другими движками и сайт exbb.org приводил в пример только потому:
1. Чтобы далеко не ходить;
2. Показать на примере, что движков, в которых нет регистрации пользователей достаточно много и для этого случая данный вариант интеграции может быть более чем достаточным.
А уж админам сайтов решать, нужно ли им на главной показать, что форум на их сайте живет активной жизнью или нет...
Желательно только расширить спиок функций для подключаемого файла интеграции. Пока их 5... |
|
|
igrok54 |
Отправлено: 26 ноября 2010 — 21:31
|
Advanced Member
Покинул форум
Сообщений всего: 470
Дата рег-ции: Янв. 2010
Откуда: Пермь
Репутация: 57
|
Интеграцию с моей Almaz CMS я практически закончил. Хочу уточнить вопрос с организацией редиректов после авторизации-выхода.
Вопрос к Юре:
Предполагаю сделать редирект на страницу, с которой производилось данное действие таким образом:
Файлу loginout.php методом POST (при авторизации) или методом GET (при выходе из аккаунта) передается переменная с URL страницы с которой производилось данное действие.
Далее в loginout.php переданный URL проверяется в целях обеспечения безопасности функцией и если признается допустимым - то редирект идет на полученный URL, если не проходит фильтр - редирект на index.php.
Функция фильтрации, защищающая от XSS такая на данный момент:
CODE:function url_filter($url) {
// проверка на наличие скрипта скрытого в URL:
$dis=array( // Варианты символов '<' и '>' в различных видах кодировки
'<',
'>',
'%3C', // '<' in HEX
'%3E', // '>' in HEX
'<', // '<' in HEX HTML (with semicolons)
'>', // '>' in HEX HTML (with semicolons)
'<', // '<' in Decimal
'>', // '>' in Decimal
'PA==', // '<' in Base64
'Pg==' // '>' in Base64
);
foreach ($dis as $d) { // Если найдем вхождение, создадим переменную $contr...
if(stristr($url,$d)!==false) {$contr='';}
}
// Проверка на наличие еще одного URL в URL - предотвращаем загрузку сторонних файлов и последующие редиректы:
$prot=array(
'http',
'https',
'ftp'
);
$trurl=preg_replace("#^http://(.*)#i","$1",$url); // Обрезаем 'http://' от начала полученного URL и далее проверяем обрезанный URL
foreach ($prot as $p) { // Если найдем вхождение, создадим переменную $contr...
if(stristr($trurl,$p.'://')!==false) {$contr='';}
}
$u=(strpos($url,$_SERVER['SERVER_NAME'])===7 && !isset($contr)) ? $url : 'index.php';
return $u;
}
В первом условии проверяется, что в URL с седьмой позиции находится имя домена, на котором расположен loginout.php, то есть редирект должен произвестись на этот же сайт. Во второй части условия проверяем на наличие недопустимых включений в URL.
Суть вопроса - не стоит ли что-нибудь добавить к проверкам, осуществляемым во второй части?(Отредактировано автором: 27 ноября 2010 — 11:43) |
|
|
|