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

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

4
ロールに基づいてビューのフィールドを非表示にするにはどうすればよいですか?
/ admin / peopleで、表示名(つまり、表示名がユーザーリストに表示されてはいけない)を非表示にしたいのですが、特定のロールに対してのみです。 私の.moduleファイルでは、次のフックを試しました: function hook_views_data_alter(array &$data) { kint($data['users']);die; } function hook_views_pre_render(\Drupal\views\ViewExecutable $view) { if($view->id() == 'myview'){ print_r($view->result);die; // kint($value->_entity->get('title')->value); } } function hook_views_post_render(\Drupal\views\ViewExecutable $view) { if ($view->id() == 'viewid') { // Set the view title. $field_name = $view->getFields(); } } function hook_field_views_data_views_data_alter(array &$data, \Drupal\field\FieldStorageConfigInterface $field) { $field_name = …
10 views  8  users 

2
フォーム要素タイプのファイルを使用してdrupal8フォームでファイルをアップロードする方法
ファイルをアップロードしたいのですが、フォーム要素のタイプを「ファイル」として使用する必要があります。送信機能で、アップロードしているファイルに関連する適切なデータを取得できません。SO誰かがこれを解決するのを手伝ってくれませんか?以下のコードを見つけてください: public function buildForm(array $form, FormStateInterface $form_state) { $form['test_CERTIFICATE'] = [ '#type' => 'file', '#title' => $this->t('Certificate'), '#description' => $this->t('Your Certificate (.pem file)').': '.\Drupal::state()->get('test_CERTIFICATE_NAME'), ]; return parent::buildForm($form, $form_state); } 送信機能: public function submitForm(array &$form, FormStateInterface $form_state) { parent::submitForm($form, $form_state); $validators = array('file_validate_extensions' => array('pem')); $files = file_save_upload('test_CERTIFICATE', $validators, 'public://certfiles', FILE_EXISTS_REPLACE); …
10 8  forms 


4
モーダルウィンドウ(ポップアップ)を作成する方法
Drupal 8のコア機能を使用して、モーダルウィンドウでページを開こうとしています。残念ながら、それに関する公式ドキュメントを見つけるのは非常に難しく、このトピックを扱っているブログのほとんどは古くなっているようです。しかし、私の知る限りでは、a要素に次の属性を追加することで、モーダルダイアログを作成することができるはずです。 class="use-ajax” data-dialog-type="modal" したがって、完全な例は次のようになります。 <a href="/impressum/lizenzen/43" class="use-ajax" data-dialog-type="modal"> <span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span> </a> 私の場合/impressum/lizenzen/43、ビューページへのパスです。 これは機能しているようですが、管理者としてログインしている場合のみです。これは権限の問題ではないようですので、Bootstrap(私のサイトで使用しているもの)にはないコアライブラリが含まれている可能性がある管理テーマ(Seven)に関連していると思います。しかし、奇妙なことに、モーダルのタイトルバーに、ページタイトルの代わりに、文字列「配列」が表示されました。 誰かできましたか コアモーダルAPIの公式ドキュメントに誘導し、 管理者としてのみ機能する理由は何ですか? そして最後に私に教えてください、なぜ地球上でモーダルを呼び出すために文字列の会話への配列が行われるのですか?
10 8  javascript 


2
プログラムでエンティティ参照フィールドのすべての名前を取得する
例:ノード5のfield_tags内にあるすべてのタグ名を取得したい。 $ node-> field_tags-> getValue()で target_idを取得できます。 しかし問題は、target_idの値がどのエンティティに属しているかがわからないことです。ノードID、用語ID、ユーザーIDの可能性があります。その情報がないと、target_idを使用してタグの名前を取得できません。 エンティティ参照フィールドのすべての名前を取得するにはどうすればよいですか?
10 8  entities 

1
コントローラーでサービスを呼び出す正しい方法
私はサービス(およびdrupal 8!)に不慣れで、サービスを理解しようとしています。たぶん私は時代遅れの方法で作成しているだけだと思います。私がしたいことは、「helloジェネレータ」をサービスにして、別のコントローラで次のように呼び出すことです。 DBController.php namespace Drupal\db\Controller; use Drupal\Core\Controller\ControllerBase; use Drupal\db\DbServices\HelloGenerator; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; class DBController extends ControllerBase { private $helloGenerator; public function __construct(HelloGenerator $x) { $this->helloGenerator = $x; } public function say($count) { $hello = $this->helloGenerator->getHello($count); return new Response($hello); } public static function create(ContainerInterface $container) { $x = $container->get('db.hello_generator'); return …

2
ビューIDとディスプレイIDから表示名を取得するにはどうすればよいですか?
でビューをロードできますが、$view = Views::getView('my_view_id');そのオブジェクトを使用してdisplay_titleをロードしたり、表示名を含む情報を含む配列を言ったりするにはどうすればよいですか? 注:これには、ビューの印刷時に使用される可能性のあるディスプレイのタイトルのロードと混同しないでくださいgetTitle()。そのためのメソッド()があるためです。
10 views  8 

3
小枝テンプレート内から画像スタイルのURLを見つける方法は?
画像を2回使用するノードテンプレートを実装しています。1つは「通常の」方法で(つまり、そのビューモードのフィールドの表示構成で定義された画像スタイルを使用して)、もう1つはcss background-imageプロパティとしてです。 次の2つのいずれかが必要です。 (理想的には)同じ画像の異なる画像スタイルのURLを取得する方法。 画像フィールドのURLを取得する方法。 私は使用dump()しkint()て、答えに自分自身を助けるのに苦労しています。どちらも出力が多すぎ(「親」への埋め込みリンクなどのおかげで)、必要な情報がないようです。たとえば、dump(content.field_image)出力を見ると、画像の実際のURLはありません(そのため、{{ content.field_image }}?!kint()一方、引数を渡すと完全に死に、トップレベルのバージョンは大きすぎてナビゲートできません。phptemplate + xdebugを使用すると、デバッグが非常に簡単になりました。(はい、私はthemersがデータベースを削除できないのは良いことだと知っています。) 意味(1)への答えがありますあなたはそれを行うことはできませんが、私は(2)内の既存のURLを得ることができない理由を私は理解していませんか?
10 theming  8  media 


2
プリプロセス関数にTwigテンプレートの変数を追加するにはどうすればよいですか?
次のコードを使用して、テンプレートの変数を前処理しています。 function template_preprocess_imagegallery_format(&$vars) { template_preprocess_image_formatter($vars); $vars['image']['#theme'] = 'igimage'; $vars['image']['#thumbnail'] = ImageStyle::load('thumbnail')->buildUrl($vars ['image']['#uri']); $vars['image']['#fullimage'] = file_create_url($vars ['image']['#uri']); } #uri変数はすでに存在しており、変更するだけですべて正常に動作します。ただし、同じ画像の2つの異なるスタイルが必要なため、ここに変数を追加する必要があります。ただし、これらの変数を配列に追加するだけでは機能しません。 Twigテンプレートで使用可能な変数をでダンプした場合{{ dump(_context|keys) }}、そこに追加した変数が表示されません。テンプレートでそれらを使用しようとすると、何も挿入されません。 値が配列に追加されていることがわかります。フィールド全体をレンダリングするテーマに画像変数をダンプすると、配列に変数が表示されます。ただし、画像変数自体をレンダリングするテンプレートではまだ使用できません。 Twigテンプレートで使用できる変数をプリプロセス関数に追加するには、他に何が必要ですか?
10 8  theming 


4
Twigを使用して、テンプレートで使用するbodyフィールドの概要を取得するにはどうすればよいですか?
だから私は要約のあるテキストエリアを持っていて、コンテンツの前に要約を表示したいと思います。したがって、私が使用し{{ content.body }}た場合、テキストは要約なしで表示されます。 どうすれば要約を入手できますか? {{ content.body.summary }} トリックをしないようです
10 theming  entities  8 

3
1つのエンティティフォームを別のエンティティフォームに埋め込み、両方を保存する
ユーザーエンティティに依存するカスタムエンティティがあります。実際、エンティティフォームをユーザープロファイルフォーム内に表示するのが理にかなっていると感じたのは、非常に重要です。 私が今抱えている問題は次のとおりです。2つの保存ボタンがあります。そして、それが十分に悪いわけではない場合、ユーザー(下の方)の保存ボタンは機能しなくなり、ホワイトラベル保存ボタンはホワイトラベルエンティティのみを保存します。 フォームは次のようにユーザーフォームに変更されます。 function whitelabel_form_user_form_alter(&$form, FormStateInterface $form_state) { $whitelabel = WhiteLabel::load(1); $whitelabel_form = \Drupal::service('entity.manager') ->getFormObject('whitelabel', 'default') ->setEntity($whitelabel); $form['whitelabel'] = array( '#type' => 'details', '#title' => t('White label settings'), '#open' => TRUE, 'form' => \Drupal::formBuilder()->getForm($whitelabel_form), ); } $whitelabel_form(Drupal 7で使用されていた)配列内のいくつかのパラメーターをシャッフルしたいと思っていましたが、その配列は非常に大きく、必要な送信ボタンとハンドラーが見つかりませんでした。 だから問題は、これを行うことができるのですか?そして、それを行うための推奨される方法は何でしょうか?
9 8  forms  users 

5
利用可能なパブリックメソッドを見つけるにはどうすればよいですか?
Drupal 8を使用する上での最大の問題は、必要なデータを取得できないことです。Drupal 8は、オブジェクトを手動でドリルダウンするのではなく、パブリックメソッドを使用することを望んでいます。問題は、使用可能なメソッドのリストを取得するための一貫した方法を理解できないことです。(それらは魔法のように存在し、私はそれらについて知っているだけのように思われます)= この例では、ビデオフィールドを持つコンテンツタイプがあるとします。そのフィールドで動画ファイルの生のURLを取得する必要があります。 したがって、ノードID($ nid)から始め、どういうわけかノードをロードする方法を理解する必要があります。たくさんの例があるので、これは悪くないです。だから私はのようなことをし$node = \Drupal\node\Entity\Node::load($nid);ます。 ここまでは順調ですね。次に、ビデオフィールド(field_main_video)の値を取得する必要があります。'ネットの周りに矛盾するドキュメントがあるので、これは私が理解するのに永遠にかかりました。最後に、私は次のようなことをしなければならないことを理解しました(これは複数値アイテムであるため)。 $video = \Drupal\node\Entity\Node::load($nid)->field_main_video->getValue(); ...次に、配列などをループします。kintを使用しても、これを見つけるのに役立ちませんでした。たとえば、kint($node)メソッドの下を見ると、getValue()がアイテムとして表示されていないからです。それを理解するのに十分な例が周りにあったので、それでもひどくはありません。 しかし、さらに深く見ていくと、ビデオフィールドのエンティティIDを取得してエンティティをロードし、エンティティ内の「uri」フィールドを見つけるのではなく(これは重要な部分です)、知りませんでした。私はD7にいます):この同じコード行ですべてのURIを取得できるメソッドがありました! $url = \Drupal\node\Entity\Node::load($nid)->field_main_video->entity->getFileUri(); しかし、どうすればこのgetFileUri()が存在することがわかったのでしょうか。 たまたまブログの投稿で偶然見つけました。これにより、D7よりもURIを簡単に取得できるようになります。 結局、この例で私が求めているのは、オブジェクトの各レベルのすべてのパブリックメソッドを、読みやすく理解しやすい方法でどのように見つけるかです。 手動でapi.drupal.orgを検索したり、IDE固有の何かを使用したりするのではなく、これを行うにはdrupal中心(つまり、開発モジュール)の方法があるはずです。
9 8  entities 

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