• Добро пожаловать на WYLEK.ru. Пожалуйста, войдите или зарегистрируйтесь.
 
129 гостей, 0 пользователей

avatar_WYLEK

Форумы и модули для SMF Конвертер статей из Tinyportal на Light Portal

Автор WYLEK, 08 апреля 2020, 13:22:49

« предыдущая - следующая »

WYLEKАвтор темы


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


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

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

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

Этап 1
Установка локального сервера Войдите на сайт для перехода по ссылке и перенос полного бекапа сайта с хостинга на локалку. Установите 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:\OSPanel\domains\SMF21rc3\convert_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:\OSPanel\domains\SMF21rc3\convert_lp\_s1\
Все, данные готовы. Переходим к конвертеру, открываем файл настроек config.php и заменяем на свои данные.
Конвертер теперь работает на PHP7.0 и выше, так что переключать в настройках модулей ничего не надо.



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



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



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

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

Вы должны войти или зарегистрироваться, чтобы увидеть этот текст.


Здесь вы можете поглядеть как работает Войдите на сайт для перехода по ссылке.

WYLEKАвтор темы

Отловил косяк создания тегов - куча цифр, символы всякие, просто детский сад какой то :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)\pL\pM*(?=\pZ|$)@u', '', $aid));
$sid = trim(preg_replace('@(^|\pZ)\pL\pM*(?=\pZ|$)@u', '', $sid));
$mid = trim(preg_replace('@(^|\pZ)\pL\pM*(?=\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>";
}
//==============================================================================================

* Ваши права на сайте

    TinyPortal

  • Вы не можете создавать статьи.
  • Вы не можете изменять свои статьи.
  • Вы не можете писать комментарии.
  • Вы не можете управлять статьями.
  • Вы не можете загружать файлы в TPdownloads.
  • Вы не можете управлять TPlistimages.

    Simple Machines

  • Вы не можете удалять темы.
  • Вы не можете создавать темы.
  • Вы не можете отвечать на сообщения.
  • Вы не можете прикреплять файлы.
  • Вы не можете изменять свои сообщения.
  • Вы не можете удалять свои сообщения.

 аталог@MAIL.RU - каталог ресурсов интернет Яндекс.Метрика