Просмотр поста

.
ProFen
Пора что-то менять. Меняю почку на видюху.

У меня уже был успешный опыт внедрения Эмоджи на устаревшие 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';

Жму "ВПЕРЕД!"
Всё сравнение кодировок в БД изменено.
______________________________________________
Теперь нужно сменить сравнение для каждой таблицы (если есть какие-то свои, вписывайте в запросы, не стесняйтесь):
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), а иначе все твои посты с эмоджи, при редактировании и написании, накроются ошибкой на странице.