Drupal

Drupal開発者および管理者向けのQ&A

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 

5
PHPバージョンが正しく検出されない
複数のバージョンのPHPがインストールされているホストでDrushを実行しています。デフォルトでphp --versionは5.2.xになりますが、php53とphp54も使用できます。したがって、私の.bash_profileにはalias php='php53'(php --version= 5.3.13)があり、一部のコマンドでDrushが機能します。 しかし、いくつかの非常に便利なコマンドについては、「コマンドラインPHPインストールが古すぎます。Drushには少なくともPHP 5.3.2が必要です」というメッセージが表示されます。 いくつかの本当に迷惑なインスタンス: drush pm-updateすべてのモジュールとコアが正常にバックアップおよび更新されたことが報告され、PHPバージョンエラーが返され、すべてのバックアップが復元されます。詳細モードでは、エラーの前に来るコマンドは次のとおりです。 php /home/[username]/drush/drush.php --backend=2 --verbose --root=/home/[username]/webapps/drup --uri=http://[domain name] pm-updatecode-postupdate 2>&1 drush archive-dump すぐにPHPバージョンエラーを返します これまでに試した他のコマンドは問題なく機能します。Drushがphp53バイナリを使用している場合と使用していない場合、またはバージョンを正しく検出できない場合、なぜそうなるのかわかりませんが、いくつかの非常に重要な機能が壊れています。
10 drush 


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

4
DrupalサイトがSA-CORE-2018-002 — 2018年3月のエクスプロイトで構成されているかどうかを確認するにはどうすればよいですか?
リリースされたばかりのエクスプロイト:https : //www.drupal.org/sa-core-2018-002 --- Drupalコア-非常に重要-リモートコード実行-SA-CORE-2018-002 誰かがこのエクスプロイトを使用して自分のサイトをハッキングしたかどうかを確認するにはどうすればよいですか? 適切に実行された場合、このエクスプロイトで何ができますか? 現在、Drupalサイトを更新できません。この穴を簡単にパッチするための良い代替手段は何ですか?

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 

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