Делаю модуль.
определяю структуру таблицы для инсталла и деинстала:
// $Id$
/**
* file
* Install, update and uninstall functions for uc_aoa.
*/
/**
* Реализация hook_install().
*/
function uc_aoa_install() {
watchdog('uc_aoa', 'Schema before installed.');
drupal_install_schema('uc_aoa');
watchdog('uc_aoa', 'Schema installed.');
}
/**
* Implements hook_uninstall().
*/
function uc_aoa_uninstall() {
watchdog('uc_aoa', 'Schema before uninstalled.');
drupal_uninstall_schema('uc_aoa');
watchdog('uc_aoa', 'Schema uninstalled.');
}
/**
* Implementation of hook_schema().
*/
function uc_aoa_schema() {
//$schema = array();
$schema['uc_aoa'] = array(
'description' => 'Attributes options access data.',
'fields' => array(
'aoaid' => array(
'description' => 'Primary key: access definition ID.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'aid' => array(
'description' => 'Attribute ID.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'oid' => array(
'description' => 'Option ID.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'rid' => array(
'description' => 'Role ID.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
),
'primary key' => array('aoaid'),
);
//watchdog('uc_aoa', 'Shcema defined.');
return $schema;
}
получаю две проблемы:
1. при включении модуля таблица не создаётся.
2. в watchdog записывается 'Shcema defined.' только при включении модуля. больше не пишется ничего (схема инсталл, схема пред инсталл и т.д.)
3. даже если модуль не включен, всё равно постоянно вываливается ошибка:
warning: htmlspecialchars() expects parameter 1 to be string, array given in D:\!www\image-media.ru\includes\bootstrap.inc on line 863.
дебаг ошибки показал, что передаётся весь массив определения схемы uc_aoa.
с пхп дружу давно, модули под друпал пишу первый раз.
документацию курю, гугл ковыряю, но может вы сразу ткнёте - где трабл?
может тупо очепятка где и я её не вижу?
вообще не понимаю куда копать.
Комментарии
hook_install выполняется только при первом включении модуля. делайте uninstall из админки
спасибо, всё сработало, идею выключения/деинсталла осознал.