Конвертер лайков форума smf212 на мод Say Thanks

Мод Say Thanks, сделал для него конвертер, чтобы отключить встроенные лайки и работать с
  1. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2180

    Создано тем: 315

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3410

    Был: 2024-07-09 07:18

    Лайков: 196



    Мод Say Thanks, сделал для него конвертер, чтобы отключить встроенные лайки и работать с этим модом.

    Скопируйте текст и вставьте в текстовый документ, расширение поставьте .php

    Работать с конвертером просто - данные базы данных и пароль вставляете свой и на локалке запускаете, работает на PHP_7.0 - PHP_7.4

      <?php
     
    echo "<head> <style>
    body {max-width:1224px; margin:auto;border:1px solid green; border-radius:10px;} 
    .column {padding: 10px;}
    .head{text-align:center; background-color: blue; color:white; border-radius:10px 10px 0 0; height: 65px;}
    .bottom{text-align:center; background-color: blue; color:white; border-radius:0 0 10px 10px; height: 65px;}
    .bott{color:red;}
    </style></head>
    <body>
    <div class ='head'>Конвертер лайков форума smf212 на мод Say Thanks<br><br>
    (Пожалуйста, проявите терпение, некоторые действия могут быть весьма долгими)</div>
     <div class ='bott'>сделано для сайта <a href="https://wylek.ru">WYLEK.ru</a><br></div>
    
    <div class='column'>
    
    //--------------------------
    
      
      $dblocation1 = "localhost";//сервер базы данных
      $dbsmf = "smf211";//имя базы smf
      $dbuser1 = "1234";//имя пользователя
      $dbpasswd1 = "1234";//пароль от базы данных
    
      $prefixsmf = "smf";//префикс таблиц SMF
    
    //конект к базе
    $dbcnx = mysqli_connect($dblocation1,$dbuser1,$dbpasswd1);
      if(!$dbcnx)
      {
      exit("Сервер базы данных $dbsmf сейчас недоступен. Повторите попытку позже.");
      }
      $db_select = mysqli_select_db($dbcnx, $dbsmf);
      if(!$db_select)
      {
      exit("База данных $dbsmf недоступна. Обратитесь к администратору для решения проблемы.");
      }
    echo ('<br>'); 
    echo "Соединение с базой $dbsmf установлено!" . PHP_EOL;
    echo ('<br>');
    echo "Информация о сервере: " . mysqli_get_host_info($dbcnx) . PHP_EOL;
    echo ('<br>*******************************************<br>');
    
    
    echo'<a href=?step27>1. Лайки</a> --><a href=?step28>2. Пересчёт</a><br><br>';    
    
    
    //лайки----------------------------------------------------------------------------------
    if(isset($_GET['step27']))
    {
    
    $i = 0;
    mysqli_set_charset($dbcnx, "utf8");
    //очистка
    $query = "TRUNCATE TABLE {$prefixsmf}_messages_thanks";
    $result = mysqli_query($dbcnx, $query);
    if(!$result) { echo ("<br><br><font color=red>mysql вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysqli_error($dbcnx)."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>{$query}</textarea><br><br></font>");} else echo "<br><br>Таблица успешно очищена<br>";
    //очистка
    
    //создаем столбцы
    $sql = mysqli_query($dbcnx, "ALTER TABLE {$prefixsmf}_messages_thanks ADD COLUMN id_member_to TEXT AFTER id_member");
    $sql = mysqli_query($dbcnx, "ALTER TABLE {$prefixsmf}_messages_thanks ADD COLUMN id_msg5 TEXT AFTER id_msg");
        
      //вытягиваем данные из таблицы smf_user_likes            
    $post = mysqli_query($dbcnx, "SELECT * FROM {$prefixsmf}_user_likes WHERE content_type='msg'");            
            while ($news = mysqli_fetch_array($post)) {
                $id_member=$news['id_member'];
                $like_time=$news['like_time'];
                $content_id=$news['content_id'];
    
              $i++;
    
    $query = "INSERT INTO `{$prefixsmf}_messages_thanks` (`id_msg`, `id_member`, `date_thanked`) VALUES
    ('$content_id', '$id_member', '$like_time');";
    
        if (mysqli_query($dbcnx, $query)) {        
              echo "";
        } else {
    
              echo "<br><br>Error: " . $query . "<br><br>" . mysqli_error($dbcnx);
        }
        }
    
    //заполняем столбец единицей    
    $sql = mysqli_query($dbcnx, "UPDATE {$prefixsmf}_messages_thanks SET id_msg5=1");//
    
    //перекидываем ID кому лайкнули
    $sql = mysqli_query($dbcnx, "UPDATE {$prefixsmf}_messages_thanks, {$prefixsmf}_messages 
    "
    . "SET {$prefixsmf}_messages_thanks.id_member_to = {$prefixsmf}_messages.id_member 
    "
    . "where {$prefixsmf}_messages_thanks.id_msg = {$prefixsmf}_messages.id_msg");
    
    mysqli_close($dbcnx);    
    echo "<br /><span style='color: green;'>Перенос завершён!</span><br />";
    echo "<span style='color: green;'>Всего конвертировано $i лайков</span><br>";
    echo "<br><div style='text-align:center;'><a href='/convert_likes/smf-art.php'><button>Продолжить</button></a></div></div><div class ='bottom'></body></div>";
    }
    
    
    //==============================================================================================
    //пересчет
    if(isset($_GET['step28']))
    {
    
    $i = 0;
    mysqli_set_charset($dbcnx, "utf8");
    //очистка
    $query = "TRUNCATE TABLE {$prefixsmf}_messages_thanks_stats";
    $result = mysqli_query($dbcnx, $query);
    if(!$result) { echo ("<br><br><font color=red>mysql вернула ошибку <br><textarea style='width: 300px; height: 200px'>".mysqli_error($dbcnx)."</textarea><br> в коде <br><textarea style='width: 300px; height: 200px'>{$query}</textarea><br><br></font>");} else echo "<br><br>Таблица успешно очищена<br>";
    //очистка
    
    
      //вытягиваем данные из таблицы smf_messages    
    $post = mysqli_query($dbcnx, "SELECT * FROM {$prefixsmf}_messages where likes>0");            
            while ($news = mysqli_fetch_array($post)) {
                $id_member=$news['id_member'];
    
                          $i++;
    
    $query = "REPLACE  INTO `{$prefixsmf}_messages_thanks_stats` (`id_member`) VALUES
    ('$id_member');";
    
        if (mysqli_query($dbcnx, $query)) {        
              echo "";
        } else {
    
              echo "<br><br>Error: " . $query . "<br><br>" . mysqli_error($dbcnx);
        }            
        }
    
    
    //вставляем колличество лайков юзакам    
    $sql = mysqli_query($dbcnx, "UPDATE {$prefixsmf}_messages_thanks_stats {$prefixsmf}_messages_thanks_stats_ SET thanks_count = ( SELECT sum(id_msg5) FROM {$prefixsmf}_messages_thanks WHERE id_member_to={$prefixsmf}_messages_thanks_stats_.id_member)"); 
    
    // удаляем временные столбцы    
    $sql = mysqli_query($dbcnx, "ALTER TABLE {$prefixsmf}_messages_thanks drop COLUMN id_member_to");    
    $sql = mysqli_query($dbcnx, "ALTER TABLE {$prefixsmf}_messages_thanks drop COLUMN id_msg5");
    
    
    
    mysqli_close($dbcnx);    
    echo "<br /><span style='color: green;'>Перенос завершён!</span><br />";
    echo "<br><div style='text-align:center;'><a href='/convert_likes/smf-art.php'><button>Продолжить</button></a></div></div><div class ='bottom'></body></div>";
    }            
     
      ?>
    Сообщение отредактировал WYLEK 29 января 2023 - 13:22

    21 мая 2022 - 12:57 / #1

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1182
Всего сообщений
15536
Пользователей
17896
Новый участник
lancelot981