Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

[DLE] Единая регистрация с DLE 9.* + IP.Board 3.1.*

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем FoxLive, 20 авг 2014.

  1. Автор темы
    FoxLive

    FoxLive Активный участник Пользователь

    Баллы:
    88
    Skype:
    thefoxylive
    Имя в Minecraft:
    FoxLive
    И так мануальчик как объединить форум + cms.

    Открываем:

    dle/engine/modules/reg

    Ищем:
    Код:
    require_once ENGINE_DIR . '/classes/parse.class.php';  
    Добавить ниже:

    Код:
    $ipb_dle_lan[0] = "Данное имя уже используется на форуме.";
    $db_ipb_user = "пользователь";
    $db_ipb_password = "пароль";
    $db_ipb_namedb = "имя_базы";
    $db_ipb_local = "localhost";
    $db_ipb_error = 1; // 1 - показывать ошибки в соединении с бд форума, 0 - нет
    $db_prefix_ipb = "префикс_если_его_нету_оставить_пустым";
    $ipb = new db;
    $ipb->connect($db_ipb_user, $db_ipb_password, $db_ipb_namedb, $db_ipb_local, $db_ipb_error);
    Найти:
    Код:
    global $lang, $db, $banned_info, $relates_word;  
    Заменить на:

    Код:
    global $lang, $db, $banned_info, $relates_word, $ipb, $ipb_dle_lan, $db_prefix_ipb;
    Найти:

    Код:
    $row = $db->super_query( "SELECT COUNT() as count FROM " . USERPREFIX . "_users WHERE email = '$email' OR LOWER(name) REGEXP '[[::]]' OR name = '$name'" );  
    Добавить ниже:

    Код:
    $ipb_test_name = $ipb->super_query ("SELECT COUNT() as count FROM {$db_prefix_ipb}members where name = '".strtolower($name)."'");
    *if ($ipb_test_name ['count'] > 0) $stop .= $ipb_dle_lan[0];  
    Найти:

    Код:
    $db->query( "INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '" . $config['reg_group'] . "', '', '', '', '', '" . $_IP . "')" );  
    Добавить ниже:

    Код:
    $ipb_dle = new ipb_dle;
    $salt = $ipb_dle->generate_password_salt(5);
    $salt = addslashes($salt);
    $ph = $ipb_dle->generate_compiled_passhash($salt, md5($_POST['password1']) );
    $insert_ipb = $ipb->insert_id(); //ид вставки
    $member_key = $ipb_dle->generate_auto_log_in_key();
    $key_expire = $member_key *60 *60 *24;
    $ipb->query("INSERT INTO `{$db_prefix_ipb}members` (
    member_id,
    name,
    members_l_username,
    members_display_name,
    members_l_display_name,
    members_seo_name,
    member_login_key,
    member_login_key_expire,
    email,
    member_group_id,
    joined,
    ip_address,
    time_offset,
    allow_admin_mails,
    language,
    msg_show_notification,
    members_auto_dst,
    members_pass_hash,
    members_pass_salt
    )
    VALUES (
    0,
    '$name',
    '".strtolower($name)."',
    '$name',
    '".strtolower($name)."',
    '".strtolower($name)
    '".$ipb_dle->generate_auto_log_in_key()."',
    '$key_expire',
    '$email',
    '3',
    '".time()."',
    '$_IP',
    '3',
    '1',
    '1',
    '0',
    '$ph',
    '$salt'
    )");
    $ipb_st = $ipb->super_query("select * from {$db_prefix_ipb}cache_store where cs_key = 'stats'");
    $st_arr = unserialize($ipb_st['cs_value']);
    $st_arr['mem_count']++;
    $st_arr['last_mem_name'] = $name;
    $st_arr['last_mem_id'] = $insert_ipb;
    $st_arr2 = serialize($st_arr);
    $ipb->query("UPDATE {$db_prefix_ipb}cache_store set cs_value = '$st_arr2' where cs_key = 'stats'");  
    Найти:

    Код:
    ?>  
    Вставить выше:

    Код:
    class ipb_dle
    {
    function generate_password_salt($len=5)
    {
    $salt = '';
    
    for ( $i = 0; $i generate_password_salt( $len );
    
    return md5($pass);
    }
    
    }  
    Открываем:

    dle/engine/ajax/registration.php

    Найти:
    Код:
    $db->query ("SELECT name FROM " . USERPREFIX . "_users WHERE LOWER(name) REGEXP '[[::]]' OR name = '$name'");
    
    if ($db->num_rows() > 0)
    {
    $stop .= $lang['reg_err_20'];
    }  

    Добавить ниже:

    Код:
    $ipb_dle_lan[0] = "Данное имя уже используется на форуме.";
    $db_ipb_user = "пользователь";
    $db_ipb_password = "пароль";
    $db_ipb_namedb = "имя_базы";
    $db_ipb_local = "localhost";
    $db_ipb_error = 1; // 1 - показывать ошибки в соединении с бд форума, 0 - нет
    $db_prefix_ipb = "префикс_если_его_нету_оставить_пустым";
    $ipb = new db;
    $ipb->connect($db_ipb_user, $db_ipb_password, $db_ipb_namedb, $db_ipb_local, $db_ipb_error);
    $ipb_test_name = $ipb->super_query ("SELECT COUNT(*) as count FROM {$db_prefix_ipb}members where name = '".strtolower($name)."'");
    if ($ipb_test_name ['count'] > 0) $stop .= $ipb_dle_lan[0];  
    На этом урок окончен
    Внимание!
    Данный хук работает только в одну сторону, так что нужно регистрироваться на DLE и будете добавлены в форум!
     
  2. Хостинг MineCraft
    <
  3. Castiel

    Castiel Активный участник Пользователь

    Баллы:
    93
    Есть возможность двухсторонний мост сделать?

    По сабжу: полезно, но в две стороны было бы шикарно.
     
  4. kuntr

    kuntr Активный участник Пользователь

    Баллы:
    63
    Тему надо было назвать "Интеграция или как ухватить паблик(некро) скрипт за пять минут"
    Плюс на новые версии DLE не актуален.
     
  5. GusevVasily

    GusevVasily Активный участник Пользователь

    Баллы:
    88
    Skype:
    Gusev.Vasily
    Имя в Minecraft:
    gusevvasily
    Спасибо, я так понял этот хук не работает с версиями 3.+ (и выше)?...
     
  6. Navion

    Navion Активный участник Пользователь

    Баллы:
    76
    Skype:
    baldin20
    Имя в Minecraft:
    Nesten
  7. GusevVasily

    GusevVasily Активный участник Пользователь

    Баллы:
    88
    Skype:
    Gusev.Vasily
    Имя в Minecraft:
    gusevvasily
    ------
    Открываем:

    dle/engine/modules/reg
    ------
    Что? Что означает /reg ??
     
  8. Teror2

    Teror2 Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    Teror2
  9. Navion

    Navion Активный участник Пользователь

    Баллы:
    76
    Skype:
    baldin20
    Имя в Minecraft:
    Nesten
    Там их должно быть штук 6. Просто там чтобы коммент оставить надо чтобы модер одобрил
     

Поделиться этой страницей