форум vBSupport.ru > Форумные движки и CMS (Порталы) > CMS (Portals) > Joomla
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Vasabi
Простоузер
Default Нужна помощь в интеграции vBulletin, Joomla и Community Builder
0

Интеграция от BBPixel JVB работает на ура, но нужно больше чем дает интеграция.
На сайте написано что она не поддерживает Community Builder (расширенный профиль для Joomla), но она и не конфликтует с интеграцией.

У меня на сайте изначально было установлено много компонентов на Community Builder, поэтому спрыгивать не могу.

Проблема заключается в том, что при регистрации данные пользователя записываются только в две таблицы (vBulletin и Joomla), а мне нужно, чтобы и в таблицу comprofiler от Community Builder.

Все начинает правильно работать, если воспользоваться синхронизацией в админке Joomla Components -> Community Builder->Tools Manager.

Я из компонента достал полностью функцию, которая занимается синхронизацией
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function syncUsers() {
global $database, $my, $ueConfig;

// 1. add missing comprofiler entries, guessing naming depending on CB's name style:
switch ( $ueConfig['name_style'] ) {
case 2:
// firstname + lastname:
$sql = "INSERT IGNORE INTO #__comprofiler(id,user_id,lastname,firstname) "
." SELECT id,id, SUBSTRING_INDEX(name,' ',-1), "
."SUBSTRING( name, 1, length( name ) - length( SUBSTRING_INDEX( name, ' ', -1 ) ) -1 ) "
." FROM #__users";
break;
case 3:
// firstname + middlename + lastname:
$sql = "INSERT IGNORE INTO #__comprofiler(id,user_id,middlename,lastname,firstname) "
. " SELECT id,id,SUBSTRING( name, INSTR( name, ' ' ) +1,"
." length( name ) - INSTR( name, ' ' ) - length( SUBSTRING_INDEX( name, ' ', -1 ) ) -1 ),"
." SUBSTRING_INDEX(name,' ',-1),"
." IF(INSTR(name,' '),SUBSTRING_INDEX( name, ' ', 1 ),'') "
. " FROM #__users";
break;
default:
// name only:
$sql = "INSERT IGNORE INTO #__comprofiler(id,user_id) SELECT id,id FROM #__users";
break;
}
$database->setQuery($sql);
if (!$database->query()) {
print("<font color=red>SQL error" . $database->stderr(true)."</font><br />");
return;
}
$affected = mysql_affected_rows();
if ($affected) {
print "<p><font color='orange'>Added ".$affected." new entries to Community Builder from users Table.</font></p>";
}

$sql = "UPDATE #__comprofiler SET `user_id`=`id`";
$database->setQuery($sql);
if (!$database->query()) {
print("<font color=red>SQL error" . $database->stderr(true)."</font><br />");
return;
}
$affected = mysql_affected_rows();
if ($affected) {
print "<p><font color='orange'>Fixed ".$affected." existing entries in Community Builder: fixed wrong user_id.</font></p>";
}

// 2. remove excessive comprofiler entries (e.g. if admin used joomla! delete user function:
$sql = "SELECT c.id FROM #__comprofiler c LEFT JOIN #__users u ON u.id = c.id WHERE u.id IS NULL";
$database->setQuery($sql);
$users = $database->loadResultArray();
if (count($users)) {
print "<p><font color='orange'>Removing ".count($users)." entries from Community Builder missing in users Table.</font></p>";
}
if ($database->getErrorNum()) {
print("<font color=red>SQL error" . $database->stderr(true)."</font><br />");
return;
}
$msg = deleteUsers($users, true);
print "<p>".$msg."</p>";
print "<font color=green>Joomla/Mambo User Table and Joomla Community Builder User Table now in sync!</font>";
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


С того, что я понял, я сделал вот такой запрос:

$sql ="INSERT IGNORE INTO j_pp_comprofiler(id,user_id,lastname,firstname) "
." SELECT id,id, SUBSTRING_INDEX(name,' ',-1), "
."SUBSTRING( name, 1, length( name ) - length( SUBSTRING_INDEX( name, ' ', -1 ) ) -1 ) "
." FROM j_pp_users";
$db->setQuery($sql);

И вставил его в vb/register.php

В строку 1020 после команды
// activate account
$userdata->save();

Но того эффекта, что ожидал не было

Потом попробовал запрос:
$user1 = $db->$sql("INSERT IGNORE INTO j_pp_comprofiler(id,user_id,lastname,firstname) "
." SELECT id,id, SUBSTRING_INDEX(name,' ',-1), " ."SUBSTRING( name, 1, length( name ) - length( SUBSTRING_INDEX( name, ' ', -1 ) ) -1 ) " ." FROM j_pp_users");

Снова не получилось.

Вопросы:
1. Куда нужно прописывать код, чтобы он выполнялся сразу после выполнения стандартных скриптов регистрации?
2. Правильно ли написал синтаксис запроса, чтобы он выполнялся?


Сам по себе sql-запрос правильный, потому что копировался из Community Builder и префиксы таблицы правильные: "INSERT IGNORE INTO j_pp_comprofiler(id,user_id,lastname,firstname) "
." SELECT id,id, SUBSTRING_INDEX(name,' ',-1), "
."SUBSTRING( name, 1, length( name ) - length( SUBSTRING_INDEX( name, ' ', -1 ) ) -1 ) "
." FROM j_pp_users";

Заранее спасибо!

Last edited by Vasabi : 07-29-2007 at 06:15 PM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Vasabi
Простоузер
Default
0

Ребята, помогите!

Думаю, что многие, кто используют жумлу будут благодарны этому решению.
Нужно соединить Joomla, vBulletin и Community Builder !

Или, может, у кого есть JVB Bridge 1.0.3 от Elearningforce Inc – там все работает как нужно
(можно посмотреть в http://www.elearningforce.biz/demo/administrator в com_jvb_bridge)
 
 
surfman
Простоузер
Default
0

Я както давно скачал JVB Bridge 1.0 с сайта Мафияскрипт.ком. Чтото не разобрался в нем и забил. Могу выложить.

Может кто подскажет, как попасть на этот сайт? А то не помню, как он на английском пишется. Может там обновление есть.
 
 
g0rn
Гуру
Default
0

Quote:
Originally Posted by surfman View Post
Может кто подскажет, как попасть на этот сайт? А то не помню, как он на английском пишется. Может там обновление есть.
http://mafiascripts.com/ ?
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 06:50 PM.


Powered by vBulletin® Version 3.0.17
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...