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

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

    Автор темы

    WYLEK

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

    Админ

    Сообщений: 2178

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

    Рейтинг: 10

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

    Баллы: 3400

    Был: 2024-04-08 16:00

    Лайков: 196



    Появился новый мод от BUGO Light Portal . Что такое порталы - это моды, которые заменяют шаблоны сайта, пользователи порой и не видят разницы. Вот, решил проверить на тестовом сайте его работу. Так как рабочий мод со страницами установлен на основном сайте, то все данные можно взять оттуда. Собрал конвертер для этого дела, по ходу перевел его для работы на PHP7.0 и выше, потому что Light Portal работает на PHP7.2. Теперь переключать на локалке в настройках модулей ничего не надо. Итак, все по порядку...


    order Инструменты, без которых нам не жить...

    Sypex Dumper [са"йпэкс да"мпер] — это программный продукт (PHP-скрипт), с помощью которого можно просто и быстро создать резервную копию (бекап, бэкап, дамп) базы данных MySQL, а также восстановить в случае необходимости базу данных из резервной копии.

    Скачать бесплатный дампер и профессиональный для PHP-7.1 можно здесь
    :pointer:Но, профи работает только на локалке!

    Этап 1
    Установка локального сервера open_server и перенос полного бекапа сайта с хостинга на локалку. Установите open_server и перенесите сайт. Базу данных надо создать с таким же именем и паролем как на хостинге, чтобы не было проблем.
    Перенос базы данных делается с помощью Sypex Dumper за пару минут.

    Этап 2

    Появился новый мод от BUGO  Light Portal . Эти моды заменяют шаблоны сайта, пользователи порой и не видят разницы. Вот, решил проверить на тестовом сайте его работу. Так как рабочий мод со страницами установлен на основном сайте,  то все данные можно взять оттуда. Собрал конвертер для этого дела, по ходу перевел его для работы на PHP7.0 и выше, потому что Light Portal работает на PHP7.2. Теперь переключать на локалке в настройках модулей ничего не надо. Итак, все по порядку...

    Открываем phpMyAdmin и ищем таблицы Light Portal. Вот они родимые.



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



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



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



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




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



    Кодировку выставляем UTF-8. этот файл готов к использованию, теперь очередь за другим.



    По приколу в таблице 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

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

    Админ

    Сообщений: 2178

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

    Рейтинг: 10

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

    Баллы: 3400

    Был: 2024-04-08 16:00

    Лайков: 196

    Отловил косяк создания тегов - куча цифр, символы всякие, просто детский сад какой то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 минут)

Создано тем
1173
Всего сообщений
15311
Пользователей
17844
Новый участник
ZAZ968Alex