タグ付けされた質問 「8」

バージョンタグは、サイトが使用しているバージョンを単に示すだけでなく、バ​​ージョンにのみ適用される質問に使用する必要があります。

3
Drupal 8のモジュールを管理インターフェイスまたはDrushで無効にするにはどうすればよいですか?
Drupal 7では、管理インターフェイスまたはDrushを介してモジュールを無効にすることができましたdrush pm-disable。Drupal 8では、管理インターフェイスのチェックボックスがグレー表示され、Drushはpm-disableを使用してそれらを無効にできませんか?Drushまたは管理UIを使用してDrupal 8のモジュールを無効にするにはどうすればよいですか?または、そのようなタスクにはDrupalコンソールが必要ですか? (「プログラムで」という単語を誤って使用したことによる混乱の申し訳ありません。「コマンドラインを介して」の意味を参照していました)
10 8  drush 

4
本文(field_body)をトリミングする方法は?
レンダリングされたエンティティとしてコンテンツを表示するノードのビューを作成しました。特に、twigテンプレートでbodyフィールドを出力します。 {{ content.field_body }} ここで、テキストを200文字に制限し、ドットを3つ配置します。これを行う3つの方法をテストしましたが、何も機能しませんでした。問題は、それぞれの方法がHTML文字を数え、トリミングすることです。 1:「表示の管理」に「トリミング」の形式を追加しました=>テキストは制限されていますが、正しくありません。そして、私は3つのドットを持っていません。 2:twigテンプレートのテキストをトリミングしました。しかし、テキストを数えるには、最初にそれをレンダリングする必要があります。これにより、twigはテキストをHTMLとして出力します(ページにHTMLタグが表示されます!) {% set text = content.field_body|render %} {{ text|length > 200 ? text|slice(0, 200) ~ '...' : text }} 3:template_preprocess_node()の問題を解決しようとしました。ここでも、HTMLマークアップのカウントに関して同じ問題があります。 $body_text = $node->get('field_body')->getValue()[0]['value']; $trimmed_text = substr($body_text, 0, 200) . '...'; テキストを正しくトリミングするにはどうすればよいですか? ご助力ありがとうございます!
10 theming  8 

1
構成のインポートとモジュールの更新はどの順序で実行する必要がありますか?
モジュールのスキーマバージョンはKey-Valueストレージに格納されるため、各サイトに固有であり、構成管理を通じて同期されません。更新では、構成にカプセル化されていない調整(データベースの更新など)が必要になる場合がありますが、構成に含まれる可能性のあるその他の変更(新しい構成値の追加など)があるためです。 構成のインポートとデータベースの更新をどちらの順序で実行してもリスクはありますか? これらの操作を実行するための優先順序は何ですか? 更新フックは、すでにインポートされている可能性のある構成アイテムに対して特別な調整を行う必要がありますか? 本番環境を完全に更新するために必要となる可能性のある他の操作はありますか?

3
Drupal 8でルートファイルを更新する場合、どのようにしてキャッシュをクリアしますか?
ローンチ以来、Drupal 7を使用していて、Drupal 8を学んでいます。現時点では、何かを変更するたびにdrush cache-rebuild、物事を再び機能させるためにやらなければならないことに気づいています。 私のVPSでは、これには15秒かかります(次のページの読み込みも遅くなります)。これはナッツの状況を解くためのそりハンマーかもしれないと感じています。 Drupalが{module}.routing.ymlファイルから(変更された)ルートを再コンパイルするより効率的な方法はありますか?
10 caching  8  routes 

4
フィールドタイプのリストを取得する方法
モジュールをDrupal 7からDrupal 8に移植します。このモジュールの構成設定で、現在存在するフィールドタイプのリストを取得する必要があります。 Drupal 7では、これはfield_info_field_types()関数を使用して実現されました。 Drupal 8(8.0.0-rc3)では、Drupal APIリファレンスのヘルプページに記載されている情報が明らかに古くなっているにもかかわらず、「関数が存在しません」というエラーが表示されます。 次に調査したところ、DrupalContribページが見つかりました。このページでは、関数が非推奨であると宣言されており、現在使用することを提案していますDrupal::service('plugin.manager.entity.field.field_type')->getDefinitions()。 しかし、それを使用すると、別のエラー「不明なサービスplugin.manager.entity.field.field_type」が発生します。これは、「plugin.manager.field.field_type?」という提案に幸運にも関連付けられています。 だから私は使ってみましたDrupal::service('plugin.manager.field.field_type')->getDefinitions()。フィールドタイプの予想される配列を取得しました。 しかし、各配列メンバー(1つのフィールド型)は(子配列ではなく)オブジェクトになり、探しているデータは保護されたプロパティ内にネストされているため、アクセスできません。 この段階では、行き詰まっています。これらのデータをナビゲートするために拡張できるクラスが存在する可能性があると考えましたが、運が悪かったのです。特に、フィールドタイプの定義が一元化されているDrupal 8のコンポーネントがどれであるかもわかりませんでした。
10 entities  8 

3
外部スクリプトからのブートストラップ
DrupalまたはDrupalモジュールの一部ではない外部スクリプトからDrupalエンティティインスタンスを作成しようとしています。 Drupal 7のdrupal_bootstrap場合、必要なDrupal依存関係をロードする必要がありました。ただし、長い検索の結果、Drupal 8で見つかったのは、Drupal 8 drupal_bootstrapでは非推奨のメモでした。 そして確かに、私は 未定義の関数drupal_bootstrap()の呼び出し のようにインクルードした後でそれを呼び出そうとすると define('DRUPAL_ROOT', __DIR__ .'/../drupal'); require_once DRUPAL_ROOT . '/core/vendor/autoload.php'; require_once DRUPAL_ROOT . '/core/includes/bootstrap.inc'; drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); では、外部スクリプトからDrupal 8 APIをどのように使用できますか?

3
マルチステップ/ウィザードフォーム
Drupal 8のマルチステップ/ウィザードフォームを作成しようとしています。 ユーザーは名、姓のフィールドに入力します 次のボタンをクリックします 詳細情報を記入 送信ボタンをクリックする このようにDrupalの7のための多段階またはウィザード形式に専念多くのリソース現在ありません1と、これは。 一方、Drupal 8のマルチステップ/ウィザードフォームを作成する「Drupal」の方法を理解するのに問題がありました。 私はいくつかの調査を行い、いくつかのアプローチがあると考えました: 新しい構成システムで値を保存する ウィザードフォームインターフェイスを使用する(コアにはまだありません) drupalセッションオブジェクトに値を格納する(存在するかどうか不明) Drupal 8に有効なアプローチはありますか?
10 forms  8 

3
hook_init()はまだ使用されていますか?使用されなくなった場合、hook_init()を実装するコードをどのように変換しますか?
Drupal.orgのAPIに見ると、私はそれに気づいhook_init()が変更レコードを見るとDrupalの8のために文書化されていない、私が見つかりました。ブートストラップは、もはや存在しフックしないためのポイント、すべての「ブートストラップ」のフックを取り除く、ブートストラップフックをであると言われているhook_boot()とhook_exit()、何も言われていませんhook_init()。 Drupal 8のソースでhook_initを検索したところ、次のコードが見つかりました。1つ目はhook_init()、コメントへの参照です。他の2つはhook_init()実装のように見えますが、どちらも私が予期していないパラメーターを受け取ります。 function overlay_enable() { if (strpos(current_path(), 'admin/modules') === 0) { // Flag for a redirect to <front>#overlay=admin/modules on hook_init(). $_SESSION['overlay_enable_redirect'] = 1; } } /** * Implements hook_init(). */ function phptemplate_init($template) { $file = dirname($template->filename) . '/' . $template->name . '.theme'; if (file_exists($file)) { include_once DRUPAL_ROOT . '/' …
10 8  hooks 

2
メニュー項目タイプを変更するためのhook_menu_alter()に相当するものは何ですか?
Drupal 8でメニュータイプを変更したいのですが、Drupal 7では、hook_menu_alterを使用してこれを実現できます。 function module_menu_alter(&$items) { $items['admin/config/people/ip-blocking/default'] = array( 'title' => 'Block IP Address', 'type' => MENU_DEFAULT_LOCAL_TASK, ); } 同様に、Drupal 8でメニュータイプを変更したいと思います。ありがとうございました。
10 8  routes 

4
ファイルエンティティをメディアエンティティに移行するにはどうすればよいですか?
D7からD8への移行に移行モジュールを使用しており、移行全体をコードで手動で記述しています(移行をより細かく制御するため、組み込みのD7移行モジュールを使用するのではありません)。 私は次のような構造になっています。D7サイトには、画像がファイルエンティティとして保存される画像フィールドがあります。D8サイトでは、画像フィールドはメディアエンティティへのエンティティ参照です(メディアエンティティには画像フィールドがあります)。 もともと、私は私のイメージの移行のために以下を持っていました: id: image_files source: plugin: legacy_images constants: source_base_path: http://example.com/ destination: plugin: 'entity:file' process: fid: fid filename: filename source_full_path: - plugin: concat delimiter: / source: - constants/source_base_path - uri - plugin: urlencode uri: plugin: file_copy source: - '@source_full_path' - uri filemime: filemime status: status 記事ノードの移行ファイルには、次のものが含まれていました。 'field_article_image/target_id': plugin: migration migration: …
10 8  migration 

2
Cookieの有効期間を設定するにはどうすればよいですか?
D8インスタンスでCookieの有効期間を設定できません。ブラウザを閉じるとユーザーがログオフするように、これをゼロに設定したいと思います。 ini_set('session.cookie_lifetime', 0);site / default / settings.phpファイルに追加しました。ファイルに以前のcookie_lifetime参照がありませんでした。行を追加しました。DrupalキャッシュとChromeキャッシュもクリアしました。悲しいことに、それは尊重されていません。ブラウザを閉じた後もセッションは持続します。 コードベース全体を検索ini_set('session.cookie_lifetime', 200000);しましたが、サイトに存在しないようです。DrupalがCookieの有効期間を設定している場所がわかりません。また、ルートのphp.iniファイルを介して設定を追加しようとしましたが、それはDrupalによって上書きされています。 これは簡単なことなので、プラグインは避けたいです。皆様からのご連絡をお待ちしております。前もって感謝します。
10 8  cookies 

1
エンティティ参照フィールドから参照されるエンティティIDの配列を取得する方法
カーディナリティのあるentity_referenceフィールドがありますBaseFieldDefinition::CARDINALITY_UNLIMITED。参照されるエンティティIDのリストが必要です。を呼び出すことですべての参照エンティティを取得できることはわかっていますが、$x->referencedEntities()後で読み込まれるエンティティを取得するにはidのみが必要です。現在私はこれをやっています: $a = []; foreach ($entity->autoren as $v) { $a[] = $v->target_id; } $this->setCurrentAnwaltReferenzen($a); D7(-> raw())のようなより良い解決策を誰かが知っていますか? ありがとう
10 8  entities 

6
リンクウィジェットのオートコンプリートに10を超えるアイテムを表示するにはどうすればよいですか?
これはリンクモジュールに関する質問です。Linkモジュールを使用すると、外部リンクと内部リンクの両方を入力できるため、これに強く依存しています。 残念ながら、オートコンプリートフィールドから表示されるアイテムの数は10に制限されています。ほぼ同じタイトルのノードが多数あるため、検索しているノードがある場合、オートコンプリートフィールドに表示されません。 10以上の一致するタイトル。 制限はにハードコーディングされていcore/lib/Drupal/Core/Entity/EntityAutocompleteMatcher.phpます。カスタムモジュール内からこの小さな数を増やすエレガントな方法はありますか?延長する必要がありclass EntityAutocompleteMatcherますか?拡張機能をどこに配置し、リンクウィジェット内から確実に実行されるようにする必要がありますか?
10 8  navigation  ajax 

1
ノードにタブ/ローカルタスクを追加する
というモジュールを作成しましたhotel_reviews。 hotel_reviews.routing.ymlを使用してルートノード/ {node} / reviewsを作成しました。 hotel_reviews.content: path: '/node/{node}/reviews' defaults: _controller: '\Drupal\hotel_reviews\Controller\ReviewsController::content' _title: 'Reviews' requirements: _permission: 'access content' 次に、hotel_reviews.links.task.ymlを使用してローカルタスクを追加しようとしました。 hotel_reviews.content: route_name: hotel_reviews.content title: 'Reviews' base_route: node.view weight: 100 私は今では私のコントローラで定義されたコンテンツにアクセスすることができますnode/1/reviewsが、私はに行くとき、node/1私はレビュー]タブが表示されません。 何が悪いのですか? これまでに次のドキュメントを使用しています。 D7からD8へのアップグレードチュートリアル:hook_menu()およびhook_menu_alter()をDrupal 8 APIに変換 モジュール定義のローカルタスクの提供 ルートの構造
10 8  routes 

5
ノードの保存または削除後にカスタムページへのリダイレクトを実行する方法
私がやろうとしていることはうまくいきません、それでも/ node / {id}にリダイレクトされます: function hook_form_alter(&$form, $form_state, $form_id) { $form['actions']['submit']['#submit'][] = 'callback_set_redirect'; } function callback_set_redirect($form, FormStateInterface $form_state) { $form_state->setRedirect('custom.landing.page'); }
10 8  redirection 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.