Онлайн-руководство разработчика NetCat
Модуль «Поиск по сайту» 13.2.1Начало работы с модулем 13.2.2Язык запросов 13.2.3Способы хранения индекса 13.2.4Интерфейс модуля в панели управления сайтом 13.2.5Области индексирования 13.2.6Области HTML-страниц 13.2.7Области поиска на сайте 13.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 13.2.9Правила индексирования 13.2.10Постановка задачи переиндексирования в очередь 13.2.11Интеграция модуля в макеты дизайна сайта 13.2.12Простая форма поиска 13.2.13Расширенная форма поиска 13.2.14Вывод результатов поиска 13.2.15Стилизация списка подсказок 13.2.16Расширенные настройки 13.2.17Разработка расширений модуля 13.2.18Обзор архитектуры модуля 13.2.19Обработчики документов различных типов 13.2.20Текстовые фильтры 13.2.21Анализаторы текста 13.2.22Корректировщики запросов 13.2.23Подключение других поисковых систем 13.2.24Решение проблем с поиском 13.2.25Решение проблем с индексированием 13.2.26Справочник API

Перевод сайта с cp1251 на utf-8

Прежние версии системы создавались на устаревшей кодировке cp1251. В настоящее время некоторые сайты, уже обновлённые до последних версий, могут также оставаться в данной кодировке. В том случае, если вы решили перевести ваш сайт в кодировку utf-8 вам может пригодиться данная инструкция.

Кодировка задается в панели хостинга для всего сайта, вызвав phpinfo() нужно проверить, чтобы было:

  • default_charset utf-8  в блоке "PHP Core"
  • Content-Type text/html; charset=utf-8 в блоке "HTTP Headers Information" (если есть), и другие упоминания кодировки.

Необходимо внести правки в файлы настроек системы(находятся в корневой папке системы):

В файле vars.inc.php нужно поменять значения настроек или добавить настройки если их нет!

// установка переменных окружения
@ini_set("mbstring.internal_encoding", "UTF-8");
@ini_set("default_charset", "UTF-8");

// параметры доступа к базе данных
$MYSQL_CHARSET = "utf8";

// кодировка
$NC_UNICODE = 1;
$NC_CHARSET = "utf-8";

В файле .htaccess поменять значение:

AddDefaultCharset utf-8

Эти системные файлы необходимо тоже сохранить в кодировке utf-8(есть два варианта такой кодировки,  "без BOM" и "с BOM", нужна кодировка без BOM, так как другая приведет к ошибкам), это можно сделать например в редакторе Notepad++.

Должен быть конвертирован контент базы данных, для этого в phpMyAdmin выполните SQL запрос(подставив имя своей БД):

SELECT CONCAT(  'ALTER TABLE `', t.`TABLE_SCHEMA` ,  '`.`', t.`TABLE_NAME` ,  '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) AS sqlcode
FROM  `information_schema`.`TABLES` t
WHERE t . `TABLE_COLLATION` = 'cp1251_general_ci'
AND t.`TABLE_SCHEMA` =  'ИМЯ_БД'
ORDER BY 1
LIMIT 0 , 999

в результате вы получите список строк вида:

ALTER TABLE `ИМЯ_БД`.`Auth_ExternalAuth` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

скопируйте все эти строки и выполните как  SQL запрос.

Если база большая, то лучше выполнять операцию по частям.

Убедитесь, что сама база данных тоже работает в кодировке utf8_general_ci.

Также, возможно, понадобится перекодировать файлы макетов и компонентов в папке /netcat_template/ в соответствующую кодировку(для версий 5 и выше).

Описание проекта