Перейти к публикации

Рекомендованные сообщения

Здравствуйте. Обновлял движок на новую версию и не получилось. главная страница сайта отлично работает, а вот в полной новости вот такая петрушка:

http://pixs.ru/showimage/1jpg_2431511_23320889.jpg

Кто сталкивался? куда копать? Хостинг дал пару советов, не помогло. откатил всё назад.

Ссылка на сообщение
Поделиться на других сайтах

Ошибка говорит об отсутствии нужных индексов в базе данных. Причина вашей проблемы не непосредственно в самом обновлении. А в том что у вас изначально неоригинальная структура базы данных, т.к. эти индексы в базе данных существовали всегда в любой версии скрипта DLE. Вероятно правили БД вручную и файлы скрипта, или изначально ставили сайт на неоригинальном, а измененном DLE. Поэтому для начала вам нужно привести стуктуру базы данных к оригинальному виду, и только потом обновляться.

Ссылка на сообщение
Поделиться на других сайтах

celsoft, спасибо за ответ. Да, действительно, в феврале месяце у меня в админке поменялись файлы. Сразу же написал своему хостеру, и получил следующий ответ:

 

Просим прощения что не уведомили, это наших рук дел, но это для лучшей работы сайта., хорошо бы вероятно сделать на всех сайтах.
это классный не оф. фикс для ДЛЕ, для активных сайтов и больших баз данных., он реально работает и хорошо снижает нагрузку на БД.

1. Выполняем запрос в PHPmyadmin
ALTER TABLE `dle_post` DROP INDEX `short_story` ,
ADD FULLTEXT `short_story` (
`title`
)

2. В файле engine/modules/show.full.php

найти
if( strlen( $row['full_story'] ) < strlen( $row['short_story'] ) ) $body = $row['short_story'];
else $body = $row['full_story'];

$body = $db->safesql( strip_tags( stripslashes( $metatags['title'] . " " . $body ) ) );

$config['related_number'] = intval( $config['related_number'] );
if( $config['related_number'] < 1 ) $config['related_number'] = 5;

$db->query( "SELECT id, title, date, category, alt_name, flag FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve='1'" . $where_date . " LIMIT " . $config['related_number'] );

заменить на

$body = $db->safesql( strip_tags( stripslashes( $metatags['title'] ) ) );

$config['related_number'] = intval( $config['related_number'] );
if( $config['related_number'] < 1 ) $config['related_number'] = 5;

$db->query( "SELECT id, title, date, category, alt_name, flag FROM " . PREFIX . "_post WHERE MATCH (title) AGAINST ('$body') AND id != " . $row['id'] . " AND approve='1'" . $where_date . " LIMIT " . $config['related_number'] );

3. В файле /engine/ajax/find_relates.php найти

$db->query( "SELECT id, title, date, category, alt_name, flag, MATCH (title, short_story, full_story, xfields) AGAINST ('$title') as score FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$title') AND approve='1'" . $where . " ORDER BY score DESC, date DESC LIMIT 5" );

и заменить на

$db->query( "SELECT id, title, date, category, alt_name, flag, MATCH (title) AGAINST ('$title') as score FROM " . PREFIX . "_post WHERE MATCH (title) AGAINST ('$title') AND approve='1'" . $where . " ORDER BY score DESC, date DESC LIMIT 5" );

поиск похожих новостей проводится только по одному полю (title). И этот вариант годится для сайтов с большой бд и высокой посещаемостью.

 

Получается, мне надо написать хостеру, чтобы они вернули базу данных в тот вид, пока они её не изменили, так?

Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, qwerty2009 сказал:

Получается, мне надо написать хостеру, чтобы они вернули базу данных в тот вид, пока они её не изменили, так?

Да

Ссылка на сообщение
Поделиться на других сайтах
В 17.09.2016 в 14:18, qwerty2009 сказал:

... Да, действительно, в феврале месяце у меня в админке поменялись файлы. Сразу же написал своему хостеру, и получил следующий ответ:

Это пиздец, вали от такого хостера, который без разрешения лезет в чужие файлы и бд. ИМХО.

Изменено пользователем Captain
  • Поддерживаю 3
Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, Captain сказал:

Это пиздец, вали от такого хостера, который без разрешения лезет в чужие файлы и бд. ИМХО.

Обсолютно с вами согласен +

ТС напиши ссылку сайта хостера, пусть народ знает. 

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...