[Решено] Проблема с кодировкой при заполении БД

Главные вкладки

Аватар пользователя Feronn Feronn 13 ноября 2010 в 11:30

Добрый день всем!

С помощью profile_generator создал инсталляционный профиль с самого простейшего пробного сайта. Выглядит он так:

<?php
/********************************
* DETAILS *
********************************/
function ASD1_profile_details() {
return array ( 'name' => 'ASD12', 'description' => 'Installation profile generated automatically on 13th Nov 2010 08:30am', );
}

/********************************
* MODULES *
********************************/
function ASD1_profile_modules() {
return array ( 0 => 'block', 1 => 'color', 2 => 'comment', 3 => 'dblog', 4 => 'filter', 5 => 'help',
6 => 'install_profile_api', 7 => 'locale', 8 => 'menu', 9 => 'node', 10 => 'system',
11 => 'taxonomy', 12 => 'update', 13 => 'user', );
}

/********************************
* TASKS *
********************************/
function ASD1_profile_tasks() {

/********************************
* INSTALL PROFILE API *
********************************/
install_include(ASD1_profile_modules());

/********************************
* ROLES AND PERMISSIONS *
********************************/
$roles_map[1] = install_add_role('anonymous user');
install_add_permissions($roles_map[1], array ( 0 => 'access content', ));

$roles_map[2] = install_add_role('authenticated user');
install_add_permissions($roles_map[2], array ( 0 => 'access comments', 1 => 'access content', 2 => 'post comments',
3 => 'post comments without approval', ));

$roles_map[3] = install_add_role('newrole');
install_add_permissions($roles_map[3], array ( 0 => '', ));

$roles_map[4] = install_add_role('администратор');
install_add_permissions($roles_map[4], array ( 0 => '', ));
}
?>

Из профиля видно, что при установке нового сайта с этим профилем в базу данных в таблицу role должны добавиться четыре записи. Первый три добавляются номрально, а вот последняя роль "администратор" - id роли добавляется, а вот название роли не добавляется (остается пустым).

Первые мысли в голове - проблема с кодировкой в базе данных для нового сайта. Но там я пробовал ставить и cp1251_general_ci и utf8_general_ci. Пробовал меня кодировку в my.cnf файле и на utf8 и на cp1251:
default-character-set = utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect = "set names utf8"

Ничего не помогло. Все равно id роли "администратор" в таблицу role вставляет, а поле с названием роли остается пустым.

В чем может быть проблема?

Комментарии

Аватар пользователя Azerot Azerot 13 ноября 2010 в 12:16

Хм. Так как бы и надо вставлять латиницу, в вот при выводе использовать t(), чтобы эта латиница превратилась в русское 'administrator'. IMHO самый правильный путь

Аватар пользователя Feronn Feronn 13 ноября 2010 в 12:34

"Azerot" wrote:
Хм. Так как бы и надо вставлять латиницу, в вот при выводе использовать t(), чтобы эта латиница превратилась в русское 'administrator'. IMHO самый правильный путь

Может быть я чего то не так делаю? Во-первых, БД должна быть в какой кодировке - utf8 или cp1251??

Я попробовал и в utf8 и в cp1251 как Вы сказали install_add_role(t('administrator')); в результате в таблицу добавилось "administrator", а не русское слово "администратор"

Аватар пользователя Azerot Azerot 13 ноября 2010 в 12:52

БД должна быть в UTF8, я не говорил, что надо делать так:
nstall_add_role(t('administrator'));
я намекнул, что не худо было бы использовать функцию t('administrator') В РАБОТЕ, а не в данном конкретном вызове

Аватар пользователя Feronn Feronn 13 ноября 2010 в 13:12

Извиняюсь, не так понял.

Но все же почему при установке профиля в БД не вставляется название "админинстратор"? Ведь поидее свой установочный профиль я генерирую модулем profile generator и он сам создает .profile. Но при использовании профиля, возникают такие проблемы с добавлением русских символов в таблицы.

Аватар пользователя Feronn Feronn 15 ноября 2010 в 8:36

Что же ни у кого не возникало таких проблем с установкой инсталляционного профиля, созданого с помощью модуля profile generator??