web-dev-qa-db-ja.com

インストールプロファイルでブロックを有効にする

インストールプロファイルを作成していますが、ブロックを有効にできないようです。

インストール機能で以下のコードを使用した後にデータベースをチェックすると、レコードがブロックテーブルに配置されますが、ステータスが0に設定され、領域の詳細が挿入されません。

私は他のインストールプロファイルのコードを使用していますが、鉱山が機能していない理由がわかりません。誰もが同様の経験をしましたか?

// Enable some standard blocks.
$default_theme = 'mytheme';
$admin_theme = 'seven';
$values = array(
array(
  'module' => 'system',
  'delta' => 'main',
  'theme' => $default_theme,
  'status' => 1,
  'weight' => 0,
  'region' => 'content',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'node',
  'delta' => 'recent',
  'theme' => $admin_theme,
  'status' => 1,
  'weight' => 10,
  'region' => 'dashboard_main',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'user',
  'delta' => 'login',
  'theme' => $default_theme,
  'status' => 1,
  'weight' => 0,
  'region' => 'sidebar_first',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'system',
  'delta' => 'navigation',
  'theme' => $default_theme,
  'status' => 1,
  'weight' => 0,
  'region' => 'sidebar_first',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'system',
  'delta' => 'powered-by',
  'theme' => $default_theme,
  'status' => 1,
  'weight' => 10,
  'region' => 'footer',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'system',
  'delta' => 'help',
  'theme' => $default_theme,
  'status' => 1,
  'weight' => 0,
  'region' => 'help',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'system',
  'delta' => 'main',
  'theme' => $admin_theme,
  'status' => 1,
  'weight' => 0,
  'region' => 'content',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'system',
  'delta' => 'help',
  'theme' => $admin_theme,
  'status' => 1,
  'weight' => 0,
  'region' => 'help',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'user',
  'delta' => 'login',
  'theme' => $admin_theme,
  'status' => 1,
  'weight' => 10,
  'region' => 'content',
  'pages' => '',
  'cache' => -1,
),
array(
  'module' => 'user',
  'delta' => 'new',
  'theme' => $admin_theme,
  'status' => 1,
  'weight' => 0,
  'region' => 'dashboard_sidebar',
  'pages' => '',
  'cache' => -1,
 ),
);
$query = db_insert('block')->fields(array('module', 'delta', 'theme', 'status', 'weight', 'region', 'pages', 'cache'));
foreach ($values as $record) {
  $query->values($record);
}
$query->execute();
3
stevepurkiss

Profilerライブラリを使用して、インストールプロファイルを実行していますか?その場合、7.x-2.0-beta1リリースにこの動作を引き起こす「機能」があります。つまり、インストール時にデータベースに すべてのブロックを無効にするレガシーコードがあります です。

プロファイラーモジュールを使用している場合は、最新の開発スナップショットにアップグレードして修正を取得します。

3
David Watson