web-dev-qa-db-ja.com

インストールプロファイルの不具合

たとえば、無人インストールを構築する場合:

_drush site-install my_inst_profile \
  --account-mail='[email protected]' \
  --account-name='siteadm' \
  --account-pass='sitepass' \
  --db-su='dbadm' \
  --db-su-pw='dbpass' \
  --db-url='mysql://drupal:drupal@mysqldb/drupal' \
  --locale='pl' \
  --site-mail='[email protected]' \
  --site-name='MY Site' \
  --yes
_

そして、最も単純な可能なインストールプロファイル_my_inst_profile.info.yml_、_my_inst_profile.install_および_my_inst_profile.profile_から直接取得 Drupal 8インストールプロファイル 、結果のインストールが誤動作しています。

症状は次のとおりです。

  1. GUIの中央部分がない enter image description here
  2. 結果のシステムでは管理者の役割はありません
  3. _info.yml_ファイルが他のテーマを示している場合でも、Starkテーマがデフォルトとして使用されます。

2と3を処理するのは比較的簡単です。

_drush role-create 'administrator'
drush config-set user.role.administrator is_admin true
_

そして

_drush pm-enable seven --yes
drush config-set system.theme admin seven --yes
_

それぞれ。しかし、最初のものは私のDrupal機能を超えています。

いくつかの議論とネット上で待ち行列になっている問題があります( インストール時にインストールプロファイルに翻訳を追加する を参照)。しかし、提案はもはや有効ではありません。 Drupal 8.では/includes/locale.incはなく、locale_add_language()もありません。

ローカライズされたサイトを構築する必要があるカスタムディストリビューションを使用するという野心をまとめる方法について、何かヒントはありますか?

補遺1

こちらが_my_inst_profile.info.yml_です

_name: my_inst_profile
type: profile
description: 'Installation profile dedicated for ACME company.'
core: 8.x

distribution:
  name: ACME Installation Profile

# Required modules
dependencies:
  - node
  - history
  - block
  - block_content
  - breakpoint
  - color
  - config
  - comment
  - contextual
  - contact
  - quickedit
  - help
  - image
  - options
  - path
  - taxonomy
  - dblog
  - search
  - shortcut
  - toolbar
  - field_ui
  - file
  - rdf
  - views
  - views_ui
  - editor
  - ckeditor

themes:
#  - bartik
  - seven
#  - stark
_

こちらが_my_inst_profile.install_です

_<?php
/**
 * @file
 * Install, update and uninstall functions for the profilename install profile.
 */

/**
 * Implements hook_install().
 *
 * Perform actions to set up the site for this profile.
 *
 * @see system_install()
 */
function my_inst_profile_install() {
  // First, do everything in standard profile.
  include_once DRUPAL_ROOT . '/core/profiles/standard/standard.install';
  standard_install();

  // Can add code in here to make nodes, terms, etc.
}
_

こちらが_my_inst_profile.profile_です

_<?php
/**
 * @file
 * Enables modules and site configuration for a standard site installation.
 */

use Drupal\Core\Form\FormStateInterface;

function my_inst_profile_form_install_configure_form_alter(&$form, FormStateInterface $form_state) {

  $form['site_information']['site_name']['#default_value'] = 'MY Site';
  $form['site_information']['site_mail']['#default_value'] = '[email protected]';
  $form['admin_account']['account']['name']['#default_value'] = 'siteadm';
  $form['admin_account']['account']['mail']['#default_value'] = '[email protected]';
  $form['regional_settings']['site_default_country']['#default_value'] = 'PL';
  $form['regional_settings']['date_default_timezone']['#default_value'] = 'Europe/Warsaw';

}

// Add any further custom code here like hook implementations.
_

最初に述べたように、これは、インストールプロファイルをさらに開発するための開始点にすぎません。

1
utom

これらはバグではなく、ロケールとは関係ありません。

標準のインストールプロファイルは、管理者の役割、テーマの設定、その他多くのものを設定します。standard_install()およびオーバーライドされたsystem.theme.ymlのようなデフォルトの設定ファイルを参照してください。

他の多くのブロックと同様に、「GUIの中央部分」を備えたローカルタスク、つまり、Standardによってセットアップされたブロックでもあると思います。

新しいテーマを作成する場合、それがどのように機能するかに関する標準を見て、必要なパーツをそこからコピーすることは理にかなっています。

4
Berdir