Редактор темы

Реклама
Реклама
Реклама
Реклама

Буква е и ё при поиске для cp1251 для dle 9.x - 11.x

  • Автор темы Автор темы PunPun
  • Дата начала Дата начала

PunPun

VIP Кинотрафик v2
Регистрация
11 Июн 2015
Сообщения
7.452
Рейтинг реакций
3.196
Баллы
113
1/3
Автор темы
searchcplutf8_dle.jpg​
Сделаем правку для поиска для DLE которая имеет кодировку cp1251 что бы литеры е и ё считались равно друг другу.

1. Открыть /engine/ajax/search.php найти :
PHP:
$query = $db->safesql( htmlspecialchars ( trim(  strip_tags (convert_unicode( $_POST['query'], $config['charset'] ) ) ), ENT_QUOTES, $config['charset']) );
Заменить на :
PHP:
$query = $db->safesql( htmlspecialchars ( trim(  strip_tags ( $_POST['query']) ), ENT_QUOTES, $config['charset']) );
Далее найти :
PHP:
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");
Заменить на :
PHP:
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE _utf8 '%{$query}%' COLLATE utf8_general_ci OR full_story LIKE _utf8 '%{$query}%' COLLATE utf8_general_ci OR xfields LIKE _utf8 '%{$query}%' COLLATE utf8_general_ci OR title LIKE _utf8 '%{$query}%' COLLATE utf8_general_ci) ORDER by date DESC LIMIT 5");
2. Открыть /engine/modules/search.php найти :
PHP:
// Поиск по ключевым словам
Ниже вставить :
PHP:
$story = mb_convert_encoding($story, 'utf-8', "cp1251");
Далее найти
PHP:
$titleonly_where = array ('0' => "MATCH(title,short_story,full_story,xfields) AGAINST ('{story}' IN BOOLEAN MODE)", // Искать только в статьях
Заменить на :
PHP:
$titleonly_where = array ('0' => "MATCH(title,short_story,full_story,xfields) AGAINST (_utf8 '{story}' COLLATE utf8_general_ci IN BOOLEAN MODE)", // Искать только в статьях
Далее найти (2 РАЗА):
PHP:
'3' => "title LIKE '%{story}%'" ); // Искать только в заголовках статей
Заменить на (2 РАЗА):
PHP:
'3' => "title LIKE _utf8 '%{story}%' COLLATE utf8_general_ci" ); // Искать только в заголовках статей
Далее найти :
PHP:
$titleonly_where = array ('0' => "short_story LIKE '%{story}%' OR full_story LIKE '%{story}%' OR xfields LIKE '%{story}%' OR title LIKE '%{story}%'", // Искать только в статьях
Заменить на :
PHP:
$titleonly_where = array ('0' => "short_story LIKE _utf8 '%{story}%' COLLATE utf8_general_ci OR full_story LIKE _utf8 '%{story}%' COLLATE utf8_general_ci OR xfields LIKE _utf8 '%{story}%' COLLATE utf8_general_ci OR title LIKE _utf8 '%{story}%' COLLATE utf8_general_ci", // Искать только в статьях

На чипсы:

  • R118095764291 - рубли
  • U218134219019 - гривны
  • Z228640084773 - доллары
Автор : Gameer
 
Последнее редактирование:
Спасибо. Пригодилось!) как раз еще на cp1251 сижу
 
Автор темы
Обновил хак, исправил вывод всего при полном поиске.
 

Похожие темы Последние темы Популярные темы

Назад
Сверху