Конвертер статей из Tinyportal на Light Portal

Появился новый мод от BUGO Light Portal . Что такое порталы - это моды, которые заменяют шаблоны сайта,
  1. Оффлайн

    Автор темы

    WYLEK

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

    Админ

    Сообщений: 2195

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

    Рейтинг: 10

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

    Баллы: 3580

    Был: 2024-11-18 08:59

    Лайков: 202



    Теперь ищем таблицы Tinyportal. Вот с ними работать и будем.



    Подготавливаем таблицы, сразу делаем дубль с smf_tp_articles как на картинках, это надо чтобы не угробить случайно основную таблицу.



    Дубль есть, теперь работаем с ним.
    Жмем свою базу данных, потом smf_tp_articles1 и Экспорт



    Далее выставляем все как на картинках
    Формат поставить CSV.
    Метод экспорта: обычный - отображать все возможные настройки.
    Параметры формата: Разделитель полей: поставить разделитель |
    Значения полей обрамлены: очистить поле
    Символ экранирования: очистить поле
    Далее жмем кнопку Вперед
    Поставить гальку Удалить из полей символы разрыва




    Сохраняем данные в файл smf_tp_articles.txt  по пути C:OSPaneldomainsSMF21rc3convert_lp_s1



    По приколу в таблице smf_tp_variables хранятся категории и комментарии. Нам нужны только комментарии. Для этого создаем дубль таблицы smf_tp_variables1 (как написан выше пример с smf_tp_articles).
    Заходим в нее и выделяем все категории, а потом смело удаляем их.



    Далее, выбираем smf_tp_variables1, жмем Отметить все и кнопку Экспорт.
    Дальше формат поставить CSV.
    Метод экспорта: обычный - отображать все возможные настройки.
    Параметры формата: Разделитель полей: поставить разделитель |
    Значения полей обрамлены: очистить поле
    Символ экранирования: очистить поле
    Далее жмем кнопку Вперед

    Открываем файл smf_tp_variables1.csv по правой кнопке мыша в Notepad++ и сохраняем в файл smf_tp_variables.txt по пути C:OSPaneldomainsSMF21rc3convert_lp_s1
    Все, данные готовы. Переходим к конвертеру, открываем файл настроек config.php и заменяем на свои данные.
    Конвертер теперь работает на PHP7.0 и выше, так что переключать в настройках модулей ничего не надо.



    Теперь запускаем конвертер по пути http://smf21rc3/convert_lp/lightportal.php, если в конфиге правильно все прописано, то будет такая картина. Проверьте наличие файлов и дальше жмите все по порядку.



    При успешном завершении зайдите на форум и вперед и с песней в админку. Зайдите в самом низу на Обслуживание форума, жмите Пересчитать все форумы и статистику. Второй шаг это жмите как на картинке Пользователи.



    в самом низу на Пересчитать сообщения пользователей жмите Начать выполнение. По завершению пересчета вернитесь в Ремонт и очистите логи и кеш.

    Скачать конвертер

    Внимание! У вас нет прав для просмотра скрытого текста.


    Здесь вы можете поглядеть как работает Light Portal.
    Сообщение отредактировал WYLEK 29 января 2023 - 13:52

    8 апреля 2020 - 13:22 / #1
  2. Оффлайн

    Автор темы

    WYLEK

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

    Админ

    Сообщений: 2195

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

    Рейтинг: 10

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

    Баллы: 3580

    Был: 2024-11-18 08:59

    Лайков: 202

    Отловил косяк создания тегов - куча цифр, символы всякие, просто детский сад какой тоmad

    Вот здесь код, который убирает все цифры, одиночные символы и все ненужные символы в заголовках. Это надо заменить в конвертере.

    //теги----------------------------------------------------------------------------------
    if(isset($_GET['step4']))
    {
    $filename = "../convert_lp/_s1/smf_tp_articles.txt";
    $fd = fopen($filename, "r");
    $i = 0;
    
    //очистка
    $query = "TRUNCATE TABLE smf_lp_tags";
    $result = mysqli_query($dbcnx, $query);
    if(!$result) { echo ("<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>";
    //очистка
    
    //создаем столбец subject2
    $sql = mysqli_query($dbcnx, "ALTER TABLE smf_tp_articles ADD COLUMN subject2 TEXT AFTER subject");
    
    //переносим данные из столбца subject в subject2
    $sql = mysqli_query($dbcnx, "UPDATE smf_tp_articles SET subject2 = subject");
    
    //удаляем ненужные символы, слова и пробелы в заголовках
    $sql = mysqli_query($dbcnx, "UPDATE smf_tp_articles SET subject2 = REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(subject2, "0", " "), "1", " "), "2", " "), "3", " "), "4", " "), "5", " "), "6", " "), "7"," "), "8", " "), "9", " "), "/", " "), "“", " "), "”", " "), ",", " "), "–", " "), ":", " "), ".", " "), "?", " "), "`", " "), "-", " "), "*", " "), "_", " "), "+"," "), "(", " "), ")", " "), "[", " "), "]", ""), "для", " "), "&amp;", ""), "&", " "), "     ", " "), "    ", " "), "   ", " "), "  ", " ") ");
    
    
     while (!feof ($fd)) 
        { 
         $bufer[$i] = fgets($fd);
          $arr = explode("|", $bufer[$i]);
          $arr[7] = preg_replace("#'#i", "`", $arr[7]);
         $i++;
    
    //вытягиваем данные из таблицы smf_tp_articles     
    $post = mysqli_query($dbcnx, "SELECT * FROM smf_tp_articles WHERE id = '$arr[0]'"); 
        while ($news = mysqli_fetch_array($post)) {
          $aid=$news['subject2'];
         $sid=$news['subject2'];     
          $mid=$news['subject2'];
    }
          if($arr[7] != ""){
           
    //удаляем любые отдельные буквы       
    $aid = trim(preg_replace('@(^|pZ)pLpM*(?=pZ|$)@u', '', $aid));
    $sid = trim(preg_replace('@(^|pZ)pLpM*(?=pZ|$)@u', '', $sid));
    $mid = trim(preg_replace('@(^|pZ)pLpM*(?=pZ|$)@u', '', $mid));
    
    //удаляем двойные кавычки
    $aid = preg_replace('#"#', '', $aid);
    $sid = preg_replace('#"#', '', $sid);
    $mid = preg_replace('#"#', '', $mid);
    
    // попытка создать теги - 3
    $aid = preg_replace('#(^.+?)s(.+?)s(.+?)s(.+$)#', '1', $aid);
    $sid = preg_replace('#(^.+?)s(.+?)s(.+?)s(.+$)#', '2', $sid);
    $mid = preg_replace('#(^.+?)s(.+?)s(.+?)s(.+$)#', '3', $mid);
    
    // попытка создать теги - 2
    $aid = preg_replace('#(^.+?)s(.+?)s(.+$)#', '1', $aid);
    $sid = preg_replace('#(^.+?)s(.+?)s(.+$)#', '2', $sid);
    $mid = preg_replace('#(^.+?)s(.+?)s(.+$)#', '2', $mid);
    
    // попытка создать теги - 1
    $aid = preg_replace('#(^.+?)s(.+$)#', '1', $aid);
    $sid = preg_replace('#(^.+?)s(.+$)#', '1', $sid);
    $mid = preg_replace('#(^.+?)s(.+$)#', '1', $mid);
    
    $query = "INSERT IGNORE INTO `smf_lp_tags` (`page_id`, `value`) VALUES
    ('$arr[0]', '$aid'),
    ('$arr[0]', '$sid'),
    ('$arr[0]', '$mid');";
    
          $result = mysqli_query($dbcnx, $query); 
          
      if(!$result) { echo ("<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 "";
      
      }
    }
    //удаляем столбец subject2
    $sql = mysqli_query($dbcnx, "alter table smf_tp_articles drop column subject2");
    
    fclose($fd);
    echo "<br><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_lp/lightportal.php'><button>Продолжить</button></a></div></div><div class ='bottom'></body></div>";
    }
    //==============================================================================================
    Сообщение отредактировал WYLEK 29 января 2023 - 13:52

    14 апреля 2020 - 22:59 / #2

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

Создано тем
1197
Всего сообщений
15762
Пользователей
18014
Новый участник
Markhabayev