Добрый день всем!
С помощью 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 вставляет, а поле с названием роли остается пустым.
В чем может быть проблема?
Комментарии
А если t('administrator')?
Попробовал. Вставляет в таблицу role в поле title - "administrator". Вообщем не то.
Хм. Так как бы и надо вставлять латиницу, в вот при выводе использовать t(), чтобы эта латиница превратилась в русское 'administrator'. IMHO самый правильный путь
Может быть я чего то не так делаю? Во-первых, БД должна быть в какой кодировке - utf8 или cp1251??
Я попробовал и в utf8 и в cp1251 как Вы сказали install_add_role(t('administrator')); в результате в таблицу добавилось "administrator", а не русское слово "администратор"
БД должна быть в UTF8, я не говорил, что надо делать так:
nstall_add_role(t('administrator'));
я намекнул, что не худо было бы использовать функцию t('administrator') В РАБОТЕ, а не в данном конкретном вызове
Извиняюсь, не так понял.
Но все же почему при установке профиля в БД не вставляется название "админинстратор"? Ведь поидее свой установочный профиль я генерирую модулем profile generator и он сам создает .profile. Но при использовании профиля, возникают такие проблемы с добавлением русских символов в таблицы.
Что же ни у кого не возникало таких проблем с установкой инсталляционного профиля, созданого с помощью модуля profile generator??
Вопрос решен