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

Drupal 7以降に使用された用語では、ノード、コメント、分類用語、およびユーザーは一般に「エンティティ」と呼ばれます。

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 

4
別のフィールドに基づくフィールドの自動入力
私はアドバイスが必要な非常に複雑な状況にあります。コンテンツタイプがありmy_content、それにはフィールドコレクションフィールドがアタッチされていますfield_mycollection。これには、ユーザーを参照するエンティティ参照フィールドfield_my_userreference、電話フィールドfield_my_phone、テキストフィールドfield_my_text、および別のテキストフィールドがありますfield_my_anothertext。 My Content |_ field_mycollection |_ field_my_userreference |_ field_my_phone |_ field_my_text |_ field_my_anothertext ユーザエンティティは、フィールドを持っているfield_my_phone、field_my_textそしてfield_my_yetanothertext後者は、異なるマシン名を有しています。 私がやりたいことは、my_content編集/追加フォームでfield_my_userreferenceユーザーが選択されている場合、他のフィールドは選択されたユーザーのデータから自動入力されるはずです。自動入力フィールドは引き続き編集可能である必要があります。 どうすればこの目標を達成できますか?可能であれば、いくつかのコーディングで、を使用してそれを実行しhook_form_FORM_ID_alter()ます。
10 7  entities 

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

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

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 

2
既存のフィールドに追加のフィールドフォーマッタを作成するにはどうすればよいですか
既存のフィールドタイプ用の新しいフィールドフォーマッタを記述したいと思います。既存のフォーマッタを置き換えたくありませんが、新しいオプションを提供します。 または、私はtheme_preprocess_field()を使用して小さな変更を行う方が良いですか?しかし、これは維持するのが難しいようです。コンテンツエディターのオプションを(およびGUIで)開いたままにしたいと思います。 誰かがこれを行う適切な方法の例を私に指摘できますか?
9 entities 

4
他のモジュールのフィールドフォーマッタにフックしますか?
現在、Drupal 7サイトにノード参照の画像フィールドを実装しようとしています。これにより、レンダリングの直前のプログラムロジックに応じて「表示モード」が変更されます。フィールドは現在、表示モード設定を介していくつかのコンテンツタイプでレンダリングされており、それぞれがフィールドフォーマッター「レンダリングされたノード」を使用しています。 最初の試み 私の最初のアイデアは以下を実装することでした、フックはフックであると考えるとフックです: function HOOK_field_formatter_view( $entity_type, $entity, $field ... ){ switch ($display['type']) { case 'node_reference_node': /* Programatical logic here to modfy field render settings */ break; } } 明らかに、HOOKを私のモジュール名と交換します。 上記は、元の関数の前または後に発射するならば、それは本当に問題ではありませんでしたnode_reference_field_formatter_viewでnode_reference.module、私はどちらか完全にそれの出力を上書きしたり、うまくいけば、レンダリングの前にその値を変更してしまうため。唯一の問題は、上記のフックがモジュールごとにのみ機能するように見えることです。つまり、サイト全体ではないので、基本的には私のモジュールでは起動しません。 これで、レンダリングされたノードを出力するための独自のフィールドフォーマッターを作成できるようになりました。しかし、すでに存在するものがあることを考えると、それは少し無駄のようです。 他のアプローチ 私の他のアプローチは以前からHOOK_preprocess_nodeありましたHOOK_preprocess_fieldが、前者にはview_mode情報が含まれておらず、後者には少なくとも5つの異なる複雑な構造が含まれており、それらはすべてview_mode異なるレベルのプロパティへの参照を持っています。それぞれを変更するのはかなりハッキーな感じです値。特定のview_modeプロパティを変更しても、結果の画像は変更されません。 質問 (contribモジュールの)フィールドフォーマッタがレンダリングされる前に介入し、ページリクエストごとにその設定を変更するためのクリーンな方法を知っている人はいますか?つまり、実際のコンテンツタイプの永続的な表示モード設定を変更する必要はありませんか?
9 entities 

5
表示モードの設定に従ってノードのフィールドをプログラムでレンダリングするにはどうすればよいですか?
ノードのフィールドをブロック内にレンダリングしたい。それはこのように動作します: <?php if ($node) { if (isset($node->field_body_secondary) && $field = $node->field_body_secondary->value) { $markup = render($field); $build = array( '#type' => 'markup', '#markup' => $markup, ); } } return $build; しかし、これは100%ではなく、フィールドを通常どおりにレンダリングして、表示モードの設定で表示できるようにするものです。
9 entities  8 

1
フォームを小枝テンプレートに送信する
Drupal 8でフォームをtwigテンプレートに渡すにはどうすればよいですか? たとえば、私はこれを取得します: フォーム:mymodule / src / Form / MyForm.php それから私のコントローラーで: public function myController() { ?????? return [ '#theme' => 'mytemplate', ?????? ]; } mytemplate.html.twig {{ ????? }}
9 entities  8  theming 

5
分類法モジュールの代わりに参照ベースのモジュールを使用する利点と欠点は何ですか?
コア分類モジュールまたはエンティティ参照モジュールのどちらを使用するかを決定する方法を知りたいですか? 以前はエンティティ参照モジュールを使用していませんでしたが、10〜15のWebサイトで分類法モジュール(およびいくつかの関連モジュール)を使用しました。 分類法モジュールの代わりに参照ベースのモジュールを使用する利点と欠点は何ですか? 最近、雑誌のアーカイブサイトを作り始めました。 雑誌はたくさんあります。これらの雑誌には問題があります。各号には記事があります。 ここで最も小さい(そして最も深い)部分は記事です。 論文 ページ番号(範囲): 題名: 著者: 記事タイプ: キーワード: マガジン: 問題: 問題 発行番号: 表紙画像: 日付(公開): マガジン: マガジン 説明: 表紙画像: ここでは、このWebサイトを実装する(少なくとも)2つの方法があります。 1.呼び出されるコンテンツタイプがarticleあり、他のすべて(問題、雑誌、著者)は分類用語(階層的)になります。発行と雑誌などの間に階層があります。 2.記事、号、雑誌、著者など、多くのコンテンツタイプがあります。記事を作成しながら; 号、雑誌、著者などを参考にすることができます。 したがって、理論的には両方の方法が非常に似ているように見えます。 同様の状況に直面した人はいませんか。どの方法をお勧めしたのですか、なぜですか。


3
プログラムでカスタムモジュールのファイルフィールドを使用してコンテンツタイプを作成する
以前に作成したカスタムモジュールを作成していますが、フィールドを使用してコンテンツタイプを作成しようとしたのはこれが初めてです。私はhook_node_infoを実装しましたが、コンテンツタイプがadmin_menuのドロップダウンのコンテンツタイプのリストに表示されていますが、参照するadmin/structure/typesとリストされません。 私はhook_installを実装し、別のSOの質問で見つけたいくつかのコードを取得しました。エラーログにデバッグ情報を出力するコードがありますが、すべて正常に機能しているように見えますが、構造コンテンツタイプを参照すると、追加したフィールドが表示されません。 ここにフックがあります: function mymod_node_info() { return array( 'mymod_content' => array( 'name' => t('My Mod'), 'base' => 'mymod_content', 'description' => t('A Description'), ) ); } function mymod_install() { error_log('mymod_install'); $types = node_type_get_types(); if ( ! field_info_field('field_mymod_myfile') ) { $field = array( 'field_name' => 'field_mymod_myfile', 'type' => 'file', ); $created_field = …

5
フィールドコレクションを適切に削除する方法
Drupalバージョン:7.21 フィールドコレクションモジュールバージョン:7.x-1.0-beta5 簡単な説明:フィールドコレクションをプログラムでインポートするのに忙しいのですが、それらの一部を削除すると、常にいくつかの「偽の」フィールドコレクションが残っています。 長い説明:ユーザーのプロファイルにフィールドコレクションフィールドがあります。このフィールドコレクションには、3つのテキストフィールドが含まれています。カスタムSQLデータベースからユーザーのフィールドコレクションにデータをインポートしたい。このフィールドコレクションは複数の値を持つことができます。初めてデータをインポートすると、すべてが正常に機能し、フィールドコレクションのフィールドにデータが表示されます。すごい。 しかし、ここでトリッキーな部分があります。たとえば、特定のユーザーに対して、カスタムデータベースから5行をインポートするとします。それらはフィールドコレクションに追加されるため、このフィールドコレクションにはそれぞれ3つのフィールドを含む5つのアイテムがあります。次に、カスタムデータベースからいくつかの行を削除して、このユーザーの残りの行が3行だけになるようにします。インポートを再度実行して、フィールドコレクションの最初の3つのアイテムを更新しますが、前回のインポートの2つのアイテムが残ります。インポートされた行は3つだけですが、フィールドコレクションアイテムが5つあるため、削除する必要があります。 そのため、これらのフィールドコレクションアイテムを削除しようとしましたが、常に1つ以上のアイテムが残っています。ユーザープロファイルを見るとフィールドは空ですが、まだ何かがあります。この時点で、カスタムデータベースにユーザーの新しい行を5つ追加したとしましょう。このユーザーの行は合計で8行になります。次に、インポートを再度実行します。最初の3つのアイテムが更新されますが、4番目の行を追加しようとすると、4番目のフィールドコレクションアイテムからエンティティIDが取得され、更新が試行されますが失敗し、次のエラーが返されます。 Fatal error: Call to undefined method stdClass::save() 以下の各方法でフィールドコレクションアイテムを削除してみました。 // Method 1 entity_delete_multiple('field_collection_item', array($fc_id)); // Method 2 $field_collection_item = field_collection_item_load($fc_id); $field_collection_item->delete(); // Method 3 $field_collection_item = field_collection_item_load($fc_id); $field_collection_item->deleteRevision(); これは私の完全なコードです: function import_user_field_collection(&$user, $old_user_id) { // I do a query to get the rows I want to …
9 7  entities 

1
本文フィールドの言語がノードと同じ言語で保存されないのはなぜですか?
ユーザーが新しいノードを作成して本文を入力しているときに、ノードをその言語に対して「ニュートラル」に設定するという問題があります。しかし、ノードを保存すると、本文フィールドの言語は英語に設定されます。なぜこれが起こっているのでしょうか?何が原因でしょうか? このサイトでは、英語とフランス語の両方を有効にして構成しています。このサイトはi18nを実行しているD7です。 これは、ノード編集ページの空のボディに似ていますが、フィールドが最初のノードとは異なる言語を取得する方法を知りたい点が異なります。

5
保存ノードで強制的に画像スタイルを生成
私はまだここに説明されている私の問題を抱えています画像スタイル、フィールドコレクションアイテムで画像を再利用しますが、解決策を得るために諦めました。 私の頭に浮かんだ回避策は、nodesaveでimagestylesの生成を強制することです。そうする可能性はありますか?
9 7  media  entities 

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