У меня уже был успешный опыт внедрения Эмоджи на устаревшие CMS и так 2 раза.
Хотел повторить на Ждоне 622, но он уже адаптирован к ним.
Тогда я просто позавтракал и написал инструкцию, для тех, у кого ещё более устаревшая версия.
На практике (повторяюсь) проверить инструкцию не получилось.
Вот она:
Как адаптировать БД к Эмоджи? (+/-)
1. Указание кодировки к подключенной БД.
Файл: "Site_JdohnCMS_622\incfiles\classes\core.php"
Строка 152:
@mysql_query("SET NAMES 'utf8'", $connect);
Меняем на:
@mysql_query("SET NAMES 'utf8mb4'", $connect);
2. Идё в таблицы.
Я делаю через "phpMyOdmen"
• Выбираю БД (johncms_622)
• Вкладка "Операции" -> Правый столбец "Сравнение" - >В выпадающем списке выбираю последнюю строку "utf8mb4_general_ci"
• ИЛИ во вкладке "SQL" делаю запрос:
в текстовое поле вставляю
ALTER DATABASE `johncms_622` COLLATE 'utf8mb4_unicode_ci';
Жму "ВПЕРЕД!"
Всё сравнение кодировок в БД изменено.
______________________________________________
Теперь нужно сменить сравнение для каждой таблицы (если есть какие-то свои, вписывайте в запросы, не стесняйтесь):
Файл: "Site_JdohnCMS_622\incfiles\classes\core.php"
Строка 152:
@mysql_query("SET NAMES 'utf8'", $connect);
Меняем на:
@mysql_query("SET NAMES 'utf8mb4'", $connect);
2. Идё в таблицы.
Я делаю через "phpMyOdmen"
• Выбираю БД (johncms_622)
• Вкладка "Операции" -> Правый столбец "Сравнение" - >В выпадающем списке выбираю последнюю строку "utf8mb4_general_ci"
• ИЛИ во вкладке "SQL" делаю запрос:
в текстовое поле вставляю
ALTER DATABASE `johncms_622` COLLATE 'utf8mb4_unicode_ci';
Жму "ВПЕРЕД!"
Всё сравнение кодировок в БД изменено.
______________________________________________
Теперь нужно сменить сравнение для каждой таблицы (если есть какие-то свои, вписывайте в запросы, не стесняйтесь):
SQL-запросы для всех таблиц (+/-)
ALTER TABLE `johncms_622`.`cms_ads` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_album_cat` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_album_comments` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_album_downloads` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_album_files` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_album_views` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_album_votes` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_ban_ip` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_ban_users` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_contact` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_counters` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_forum_files` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_forum_rdm` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_forum_vote` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_forum_vote_users` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_library_comments` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_library_rating` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_mail` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_sessions` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_settings` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_users_data` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_users_guestbook` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`cms_users_iphistory` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`download` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`forum` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`gallery` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`guest` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`karma_users` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`library_cats` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`library_tags` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`library_texts` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`news` COLLATE 'utf8mb4_unicode_ci';
ALTER TABLE `johncms_622`.`users` COLLATE 'utf8mb4_unicode_ci';На этом наши полномочия всё...
______________________________________________
Редактирование таблиц в блокноте (восстановление дампа, перенос) портит кодировку. И обязательно найдется одна таблица, которая ну очень индивидуальна и ей нужна специальная обрезанная кодировка (utf8mb4_bin , безо всяких там general_ci, unicode_ci), а иначе все твои посты с эмоджи, при редактировании и написании, накроются ошибкой на странице.