Конвертер тегов, ключевых слов, описания, символьного кода, метатегов и ЧПУ на DLE153
Посмотрел после конвертации на кишки таблицы, а вся эта беда пустая - теги, ключевые
-
Оффлайн
Автор темы
Звание: Легенда
Админ
Сообщений: 2195
Создано тем: 317
Рейтинг: 10
Репа: (245|245|0)
Баллы: 3580
Был: 2024-11-18 08:59
Лайков: 202
Посмотрел после конвертации на кишки таблицы, а вся эта беда пустая - теги, ключевые слова, описания, символьный код, метатеги и ЧПУ.
Блин, я совсем забыл за них
Сразу подумалось - вручную пропахать статьи, но посмотрел на их количество и пыл мой спал
Прикинул что к чему и соорудил конвертер, с помощью его за несколько секунд все устанавливалось, и еще пять минут и перенесено с помощью Sypex Dumper на сайт
Итак сам конвертер<?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'>Конвертер тегов, ключевых слов, описания, символьного кода, метатегов и ЧПУ на DLE153<br><br></div> <div class ='bott'>сделано для сайта <a href="https://wylek.ru">WYLEK.ru</a><br></div> <div class='column'> <img src='./img/gear.gif'>"; //-------------------------- $dblocation = "localhost";//сервер базы данных $dbvb = "dle132";//имя базы dle $dbuser = "1234";//имя пользователя $dbpasswd = "1234";//пароль от базы данных $prefix = "dle";//префикс таблиц dle //-------------------------- $dbcnx = mysqli_connect($dblocation,$dbuser,$dbpasswd); if(!$dbcnx) { exit("Сервер базы данных $dbvb сейчас недоступен. Повторите попытку позже."); } $db_select = mysqli_select_db($dbcnx, $dbvb); if(!$db_select) { exit("База данных $dbvb недоступна. Обратитесь к администратору для решения проблемы."); } echo ('<br>'); echo "Соединение с базой $dbvb установлено!" . PHP_EOL; echo ('<br>'); echo "Информация о сервере: " . mysqli_get_host_info($dbcnx) . PHP_EOL; echo ('<br>*******************************************<br>'); echo'<font color=red>Перенос данных с Light-Portal на DLE</font><br><br>'; echo' <a href=?step1>1. Тэги</a>--> <a href=?step2>2. Ключевые слова</a><br><br>'; //теги---------------------------------------------------------------------------------- if(isset($_GET['step1'])) { //очистка $query = "TRUNCATE TABLE {$prefix}_tags"; $result = mysqli_query($dbcnx, $query); if(!$result) { echo ("<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></font>");} else echo "<br>Таблица {$prefix}_tags успешно очищена<br>"; //очистка $i = 0; mysqli_set_charset($dbcnx, "utf8"); //создаем столбцы $sql = mysqli_query($dbcnx, "ALTER TABLE {$prefix}_post ADD COLUMN subject2 TEXT AFTER title"); $sql = mysqli_query($dbcnx, "ALTER TABLE {$prefix}_tags ADD COLUMN tag2 TEXT AFTER tag"); $sql = mysqli_query($dbcnx, "ALTER TABLE {$prefix}_tags ADD COLUMN tag3 TEXT AFTER tag2"); //переносим данные из столбца title в subject2 $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post SET subject2 = title"); //удаляем ненужные символы, слова и пробелы в заголовках $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post 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", " "), "/", " "), "“", " "), "”", " "), ",", " "), "–", " "), ":", " "), ".", " "), "?", " "), "`", " "), "-", " "), "*", " "), "_", " "), "+"," "), "(", " "), ")", " "), "[", " "), "]", ""), "для", " "), "&", ""), "&", " "), " ", " "), " ", " "), " ", " "), " ", " ") "); //вытягиваем данные из таблицы dle_post $post = mysqli_query($dbcnx, "SELECT * FROM {$prefix}_post"); while ($news = mysqli_fetch_array($post)) { $aid=$news['subject2']; $sid=$news['subject2']; $mid=$news['subject2']; $id=$news['id']; $short_story=$news['subject2']; $i++; //теги на главную страницу $x = $short_story; if (!function_exists('tagsInTitleShort')) { function tagsInTitleShort( $x ) { $vTiSh = trim( str_replace( $aid, " ", $x ) ); $tTExpA = array_unique ( explode( " ", $vTiSh ) ); shuffle($tTExpA); $iT = ""; while (list(, $tTExpAx) = each($tTExpA)) { if ( preg_match( "/[a-zA-Zа-яА-Я0-9]{4}/", $tTExpAx ) ) $iT .= " " . $tTExpAx; } $tTExpB = explode( " ", trim( $iT ) ); $mT = count( $tTExpB ); if ( $mT > 5 ) $mT = 5;//кол-во слов $mTD = $mT - 1; $resultTag = ""; for ( $i = 0; $i < $mT; $i++ ) { if ( $mTD != $i ) $resultTag .= $tTExpB[$i] . ","; else $resultTag .= $tTExpB[$i]; } return $resultTag; }} $result = tagsInTitleShort($x); //теги в облако--------------------------------------------------------- //удаляем любые отдельные буквы $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(.+$)#', '3', $sid); $mid = preg_replace('#(^.+?)s(.+?)s(.+$)#', '2', $mid); // попытка создать теги - 1 $aid = preg_replace('#(^.+?)s(.+$)#', '1', $aid); $sid = preg_replace('#(^.+?)s(.+$)#', '2', $sid); $mid = preg_replace('#(^.+?)s(.+$)#', '2', $mid); $query = "INSERT IGNORE INTO {$prefix}_tags (`news_id`, `tag`, `tag2`, `tag3`) VALUES ('$id', '$aid', 'NULL', '$result'), ('$id', '$sid', 'NULL', ''), ('$id', '$mid', '$result', '');"; if (mysqli_query($dbcnx, $query)) { echo ""; } else { echo "<br><br>Error: " . $query . "<br><br>" . mysqli_error($dbcnx); } } //переносим теги в статьи $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post, {$prefix}_tags ". "SET {$prefix}_post.tags = {$prefix}_tags.tag3 ". "where {$prefix}_post.id = {$prefix}_tags.news_id and {$prefix}_tags.tag3 is not NULL"); //удаляем дубли строк $sql = mysqli_query($dbcnx, "delete a from {$prefix}_tags a left join( select max(id) myindex, news_id, tag from {$prefix}_tags group by news_id, tag) b on a.id = b.myindex and a.news_id = b.news_id and a.tag = b.tag where b.myindex IS NULL; "); //удаляем отработанные столбцы $sql = mysqli_query($dbcnx, "alter table {$prefix}_post drop column subject2"); $sql = mysqli_query($dbcnx, "alter table {$prefix}_tags drop column tag2"); $sql = mysqli_query($dbcnx, "alter table {$prefix}_tags drop column tag3"); mysqli_close($dbcnx); echo "<br><br><span style='color: green;'>Теги вставлены</span><br>"; echo "<br><span style='color: green;'>Всего для статей: $i</span><br>"; echo "<br><div style='text-align:center;'><a href='/convert_dle153/dle.php'><button>Продолжить</button></a></div></div><div class ='bottom'></body></div>"; } //ключевые слова---------------------------------------------------------------------------------- if(isset($_GET['step2'])) { //создаем таблицу $sql = mysqli_query($dbcnx, "CREATE TABLE {$prefix}_post1 LIKE {$prefix}_post"); $sql = mysqli_query($dbcnx, "INSERT INTO {$prefix}_post1 SELECT * FROM {$prefix}_post"); $i = 0; mysqli_set_charset($dbcnx, "utf8"); //вытягиваем данные из таблицы dle_post1 $post = mysqli_query($dbcnx, "SELECT * FROM {$prefix}_post1"); while ($news = mysqli_fetch_array($post)) { $title=$news['title']; $date=$news['date']; $short_story=$news['short_story']; $id=$news['id']; $i++; //Метатег Keywords $x = $short_story; if (!function_exists('tagsInTitleShort')) { function tagsInTitleShort( $x ) { $quotesT = array ("x22", "x60", " ", " ", " ", ",", ".", "/", "¬", "#", ";", ":", "@", "~", "{", "}", "[", "]", "{", "}", "=", "-", "+", ")", "(", "*", "^", "%", "$", "<", ">", "?", "!", '"'); $x = preg_replace( "#[hide](.+?)[/hide]#is", "", $x ); $x = preg_replace( "'[attachment=(.*?)]'si", "", $x ); $x = preg_replace( "'[page=(.*?)](.*?)[/page]'si", "", $x ); $x = preg_replace( "'[url=(.*?)](.*?)[/url]'si", "", $x ); $x = str_replace( "{ PAGEBREAK }", "", $x ); $x = str_replace( " ", " ", $x ); $x = str_replace( '<br />', ' ', $x ); $x = strip_tags( $x ); $x = preg_replace( "#&(.+?);#", "", $x ); $vTiSh = trim( str_replace( $quotesT, " ", $x ) ); $tTExpA = array_unique ( explode( " ", $vTiSh ) ); shuffle($tTExpA); $iT = ""; while (list(, $tTExpAx) = each($tTExpA)) { if ( preg_match( "/[a-zA-Zа-яА-Я0-9]{4}/", $tTExpAx ) ) $iT .= " " . $tTExpAx; } $tTExpB = explode( " ", trim( $iT ) ); $mT = count( $tTExpB ); if ( $mT > 25 ) $mT = 25;//кол-во слов $mTD = $mT - 1; $resultTag = ""; for ( $i = 0; $i < $mT; $i++ ) { if ( $mTD != $i ) $resultTag .= $tTExpB[$i] . ","; else $resultTag .= $tTExpB[$i]; } return $resultTag; } } $keywords = tagsInTitleShort($x); // в поле keywords ниже вставить $keywords //================================================================================== //создание и транслитерация для ЧПУ $trtext = $title; $trtext = (string) $trtext; // преобразуем в строковое значение $trtext = strip_tags($trtext); // убираем HTML-теги $trtext = str_replace(array(" ", " "), " ", $trtext); // убираем перевод каретки $trtext = trim($trtext); // убираем пробелы в начале и конце строки $trtext = function_exists('mb_strtolower') ? mb_strtolower($trtext, 'UTF-8') : strtolower($trtext, 'UTF-8'); // переводим строку в нижний регистр $trtext = strtr($trtext, array('а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','ё'=>'e','ж'=>'j','з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shch','ы'=>'y','э'=>'e','ю'=>'yu','я'=>'ya','ъ'=>'','ь'=>'')); $trtext = preg_replace("/[^0-9a-z-_ ]/i", "", $trtext); // очищаем строку от недопустимых символов $trtext = preg_replace("/s+/", " ", $trtext); // удаляем повторяющие пробелы $trtext = preg_replace("///", "-", $trtext); // заменяем "/" на "-" $trtext = str_replace(" ", "-", $trtext); // заменяем пробелы на "-" $alt_name = $trtext;// в поле alt_name ниже вставить $alt_name //============================================================================= //Метатег Description $intro = $short_story; $intro = strip_tags($intro); // убираем HTML-теги $array = explode(" ",$intro); // перерабатываем строку в массив $array = array_slice($array,0,25,strip_tags($intro)); // выбираем первые 25 слов $descr = implode(" ",$array); // массив снова перерабатываем в строку $descr .= ' ';// в поле descr ниже вставить $descr //======================================================================================= //Символьный код $sym = $title; //$sym = strtr($sym, array('А'=>'A','Б'=>'B','В'=>'V','Г'=>'G','Д'=>'D','Е'=>'E','Ё'=>'E','Ж'=>'J','З'=>'Z','И'=>'I','Й'=>'Y','К'=>'K','Л'=>'L','М'=>'M','Н'=>'N','О'=>'O','П'=>'P','Р'=>'R','С'=>'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'H','Ц'=>'C','Ч'=>'C','Ш'=>'H','Щ'=>'S','Ы'=>'Y','Э'=>'E','Ю'=>'U','Я'=>'A','Ъ'=>'','Ь'=>'')); $result = mb_substr($sym, 0, 1); // Начиная с 0 берем 1 символ $symbol = $result; // в поле symbol ниже вставить $symbol // дата из 2023-01-28 10:33:07 на 28 января 2023, 10:33================================================================================ $mysqldate = $date; $time = strtotime($mysqldate); $month_name = array( 1 => 'января', 2 => 'февраля', 3 => 'марта', 4 => 'апреля', 5 => 'мая', 6 => 'июня', 7 => 'июля', 8 => 'августа', 9 => 'сентября', 10 => 'октября', 11 => 'ноября', 12 => 'декабря' ); $month = $month_name[ date( 'n',$time ) ]; $day = date( 'j',$time ); $year = date( 'Y',$time ); $hour = date( 'G',$time ); $min = date( 'i',$time ); $dat_e = "$day $month $year, $hour:$min"; //=================================================================================== //переносим в dle_post $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post SET descr='".$descr."' WHERE id='".$id."'"); $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post SET symbol='".$symbol."' WHERE id='".$id."'"); $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post SET alt_name='".$alt_name."' WHERE id='".$id."'"); $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post SET keywords='".$keywords."' WHERE id='".$id."'"); $sql = mysqli_query($dbcnx, "UPDATE {$prefix}_post SET metatitle='$title - $dat_e' WHERE id='".$id."'"); //UPDATE dle_post, dle_post1 SET dle_post.descr = dle_post1.descr, dle_post.symbol = dle_post1.symbol, dle_post.alt_name = dle_post1.alt_name, dle_post.keywords = dle_post1.keywords,dle_post.metatitle = dle_post1.metatitle where dle_post.id = dle_post1.id; } //удаляем таблицу $sql = mysqli_query($dbcnx, "DROP TABLE {$prefix}_post1"); mysqli_close($dbcnx); echo "<br><br><span style='color: green;'>Ключевые слова, описания, символьный код, метатеги и ЧПУ вставлены</span><br>"; echo "<br><span style='color: green;'>Всего для статей: $i</span><br>"; echo "<br><div style='text-align:center;'><a href='/convert_dle153/dle.php'><button>Продолжить</button></a></div></div><div class ='bottom'></body></div>"; } ?>
Создать текстовый файл и переименовать в dle.php
Запускать - у меня адрес https://dle132/convert_dle153/dle.php30 января 2023 - 10:33 / #1
Статистика форума, пользователей онлайн: 1 (за последние 20 минут)
- Создано тем
- 1197
- Всего сообщений
- 15762
- Пользователей
- 18014
- Новый участник
- Markhabayev