Найти тему
Альберт Шарипов

Drupal 7 - использование смайликов

Для того, чтобы в любом месте сайта можно было использовать эмоджи (смайлки), нужно сделать две вещи:

1) в файле /public_html/sites/default/settings.php добавить две строчки в раздел настроек вашей базы данных. Эти строчки выделены жирным шрифтом) Получится следующее:

$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'your_database',
'username' => 'your_username',
'password' => 'your_password',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',

),
),
);

2) нужно выполнить PHP скрипт. Самое простое - включить модуль PHP фильтр и создать страницу (basic page) с таким содержимым:

<?php
$connection = Database::getConnection();
$database_info = $connection->getConnectionOptions();
$database = @$database_info['database'] ?: NULL;
$collation = @$database_info['collation'] ?: NULL;
$charset = @$database_info['charset'] ?: NULL;

if (!$collation) {
throw new Exception('Collation is not configured');
}
if (!$charset) {
throw new Exception('Charset is not configured');
}
if ($database && $collation && $charset) {
db_query("ALTER DATABASE $database CHARACTER SET = $charset COLLATE = $collation");
foreach (db_query('show tables')->fetchCol() as $table) {
db_query("ALTER TABLE $table CONVERT TO CHARACTER SET $charset COLLATE $collation");
}


if ($connection->utf8mb4IsConfigurable() && $connection->utf8mb4IsActive()) {
variable_set('drupal_all_databases_are_utf8mb4', TRUE);
}
}
?>

Желательно потом выключить PHP фильтр и удалить эту страницу)

Рецепт я этот нашел на каком-то сайте, применил и заработало. Но потом информацию уже не находил. А вот рецепт остался.