tFF.msk.ru :: Sharing tFFed mind

Технологично => Веб => Тема начата: tFF от Апрель 07, 2005, 10:25:46



Название: Mambo - SMF integration
Отправлено: tFF от Апрель 07, 2005, 10:25:46
для интеграции мамбы и смф существует два способа. в одном из них мною была найдена ошибка и пофиксена.
об этом я сообщил (http://www.mambohacks.com/component/option,com_smf/Itemid,66/expv,0/topic,50.0) на форуме ребятам, написавшим пакет для интеграции.

хочу сказать сразу, что этот вариант пока не работает у меня так, как мне надо. а у кого работает?

в следующем сообщении приведу оригинал письма с того форума.


Название: Re: Mambo - SMF integration
Отправлено: tFF от Апрель 07, 2005, 10:26:49
Has anybody of you tried to get inside of the code to solve the prob?
look at /administrator/components/com_smf/
functions.smf.php
Код:
function isSMFInstalled()
{
global $database, $mosConfig_absolute_path, $mosConfig_db, $smf_prefix;
include_once( $mosConfig_absolute_path . '/administrator/components/com_smf/config.smf.php' );
$result = mysql_list_tables($mosConfig_db);
while ($row = mysql_fetch_row($result)) {
        if (substr($row[0],0,4) == $smf_prefix) {
      return true;
      }
    }
    return false;
}

And what do you think of it? Look here:
if (substr($row[0],0,4) == $smf_prefix) {

It's written here that prefix should be no longer than 4 symbols.
What's that? That's a glitch and a cosiquence of author is not trying to cover all the angles.

Here's a 5 minute hack for me i've made. It's not universal and doesn't prevent user from entering incorrect data (simply change the above mentioned line to this one shown below):
Код:
	if ((strpos($row[0],$smf_prefix)!==false)&&(strpos($row[0],$smf_prefix)==0)) {

So, finally u should get this:
Код:
function isSMFInstalled()
{
global $database, $mosConfig_absolute_path, $mosConfig_db, $smf_prefix;
include_once( $mosConfig_absolute_path . '/administrator/components/com_smf/config.smf.php' );
$result = mysql_list_tables($mosConfig_db);
while ($row = mysql_fetch_row($result)) {
if ((strpos($row[0],$smf_prefix)!==false)&&(strpos($row[0],$smf_prefix)==0)) {
      return true;
      }
    }
    return false;
}

What has been changed:
1. here we check whether the prefix could be found in table's name
2. then if it is found we check whether the found string is at the very beginning of the name

Some side-effects here:
suppose i have prefix "msu_smf_"
so if i enter...
..."msu_smf_" - match => correct prefix
..."msu_smf" - match => component thinks the prefix is correct
..."msu_sdf" - no match => incorrect prefix

As u may see the hack doesn't prevent admin from making easy mistakes.
But it works. The purpose was to make one-line hack without any extra sub-routines.


Название: Re: Mambo - SMF integration
Отправлено: tFF от Апрель 08, 2005, 02:04:12
Грамотное решение по изменению отображения встроенного в мамбу форума. При этом пользователь сам выбирает, как ему просматривать форум, интегрированный в сайт (Full view/Menu view/Wide view)
Вот ссылка на тред с форума http://www.mambohacks.com/component/option,com_smf/Itemid,66/topic,64.0/expv,2/


Название: Re: Mambo - SMF integration
Отправлено: tFF от Апрель 08, 2005, 02:25:34
Да. На сегодняшний момент я опробовал все два существующих способа интеграции форума в мамбу.

Оба этих решения вы найдете на Mamboforge (ищите "smf"): SMF Integration и SMF Bridge.

SMF Integration - праямой потомок SMF Bridge (SMFI сделан на основе SMFB).

В них обоих есть один глюк, который меня не устраивает (именно это я имел в виду, когда говорил, что интеграция "не работает у меня так, как надо").
Глюк заключается в том, что при входе зарегистрированного пользователя, в модуле мамбы "Who's online" появляется этот самый пользователь. Когда же этот пользователь выходит, то вроде бы все работает нормально и для форума и для мамбы, но этот счетчик "Who's online" все равно продолжает показывать, что пользователь в он-лайне.

Отлогинить пользователя через бэк-енд получится только из другого браузера (из того, которого вы логинились/отлогинивались в мамбе/форуме это не получится). Отсюда делаем вывод, что проблема тут с куками.

Мне эти геморрои не нужны.

Кроме того, не очень хорошо сделана поддержка многоязыкового форума. Модуль регистрации встраиваемый в мамбу большую часть текста берет из языковых файлов SMF!!! (а не мамбы  :idiot2:). Что ж, их право. Но вы получаете их все на английском языке, даже если мамба у вас на русском. А одно сообщение вообще надо править внутри модуля и вручную переводить с английского на русский.  :o  Зачем спрашивается так сделали? хз.

Правда, следовало бы отмтетить, что в настройках компонента SMFI есть закладка "Language", которую обещают реализовать в версии 2.0, пока же версия этого пакета - 1.2.0 final.

Кого же не волнует вышеперечисленное, то хочу сказать, что SMFI на порядок удобнее и автоматичнее, нежели SMFB. Работают они одинаково. Однако в поставке SMFB идут полезные модули, работоспособность которых я не проверял. Среди этих "полезных" модулей:
mod_related_topics.zip
mod_smf_online2.zip
mod_smf_RecentEvents.zip
mod_smf_RecentTopics.zip
mod_smf_topTopicsReplies.zip
mod_smf_whosOnline.zip
mod_smfRecentPosts.zip

Вот, думайте сами. Хочу попробовать, будут ли эти модули работать без установленного пакета интграции.

SMFI сделан ребятами с mambohacks (http://www.mambohacks.com), там же есть форум. Смотрите его. Там есть проблемы.

ЗЫ Сегодня вышла версия 1.2.0 final, в которую был включен мой хак префикса базы (см. в предыдущих сообщениях).

PPS Посмотреть проблему, описаную мной можете на http://hacks.armeniancollegeofcalcutta.com/
логин/пароль - test/test
Кстати, через некоторое время после логаута, юзер test перестает отображаться в "Who's on-line'... Надо понаблюдать и выявить закономерность. Если это так, то я, в принципе зафигачу себе эту интеграцию.


Название: Re: Mambo - SMF integration
Отправлено: tFF от Апрель 08, 2005, 03:09:02
Итак, возвращаемся к разговору о Mambo-SMF-Who's Online.

Итак, это все-таки не глюк и не куки.

Привожу переписку по треду (http://www.mambohacks.com/component/option,com_smf/Itemid,66/expv,0/topic,69.0) на форуме Мамбохакс.ком:

Вопрос:
Цитировать
Mambo doesn't seem to be refreshing the list of users online. SMF registers 18 guests and users but Mambo's already at 219 and 109. Weird. I'm guessing this has something to do with the bridge not recognizing my SMF prefix? Any way I can remedy this?

Ответ:
Цитировать
You got the right prefix. It's just that the session id is kept in your mambo database longer.

Ответ:
Цитировать
Use this one SMF Online2 (http://webpages.charter.net/osipof/mambo/mod_smf_online2.zip)

Пользователь сам уходит со счетчика "Who's Online" через некоторое время.
Значит, будем интегрироваться... Но осторожно.  ;)


Название: Re: Mambo - SMF integration
Отправлено: tFF от Апрель 08, 2005, 16:47:27
Нет.
От интеграции мамбы и форума я отказался окончательно сегодня.
Посмотрим, во что разовъется проект по интеграции.

Причина отказа в том, что у меня, залогинившись, пользователь не смог войти ни в один из разделов форума. А Internet Explorer после "залогинивания" вообще сказал, что не может загрузить страницу.

Короче, мне эти приключения не нужны. ;)

У кого заработает - скажите, плиз.