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

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

1
EntityMetadataWrapper set()のサニタイズされたテキスト入力
検索の結果、EntityMetadataWrapper set()関数を使用してエンティティフィールドを更新する多くの例を見つけ、モジュールに正常に実装しました。しかし、私はあなたが渡すことができるさまざまな配列オプションに関するドキュメント/ベストプラクティスの方法で多くを見つけることができませんでしたset()。データを更新する方法によって、後で予期しない問題が発生しないことを確認したいと思います。 フォーム送信コールバックでテキストフィールド値を直接更新しています。 function hook_FORM_ID_submit(&$form, &$form_state) { // Get the node. $node = node_load($form_state['nid']); // Create entity metadata wrapper to get and set values easily. $node_wrapper = entity_metadata_wrapper('node', $node, array('bundle', $node->type)); // Set fields $node_wrapper->field_quip->set(array("value" => $form_state['values']['field_quip']['value'])); $node_wrapper->field_short_sentence_summary->set(array("value" => $form_state['values']['field_short_sentence_summary']['value'])); // Save node. $node_wrapper->save(); } set()キーを1つだけ持つ配列を渡しています:value。これは正常に動作しているようです。ただし、value()新しい値を設定する前に同じフィールドを呼び出すと、3つのキーを持つ配列が返されます。 $original_value = $node_wrapper->field_quip->value(); // …
8 7  entities  security 

4
なぜ$ node-> field_name [0]と$ node-> field_name ['und'] [0]になるのですか?
タイトルのコードでごめんなさい、私はそれを尋ねる明確な方法を考えることができませんでした。 locationコンテンツタイプのいくつかのノードと、それらのノードのティーザーを出力するビューがあります。node--location.tpl.phpティーザーが表示されているすべての場所に影響を与えるために、いくつかのカスタム設定を行いたいです。dpm($node)変数を取得するのが簡単な場合、一部のフィールド値が常に同じ場所にあるとは限りません。 たとえば、私にfield_phoneは同じ形式の電話番号しかありません。このビューの最初のノードでは、そのフィールドはのように構成されてい$node->field_phone['und'][0]['safe_value']ます。しかし、2番目のノードの場合は単純$node->field_phone[0]['safe_value']です。 私はそれundが翻訳に関係していることを知っており、おそらく「未定義」を意味します。サイトの翻訳やローカリゼーション、言語については何もしていません。そのため、このノードが他のノードとまったく異なっているわけではありません。 これは何が原因で、簡単にテストして値を取得するのに役立つ関数や何かがありますか、それとも自分でロールする必要がありますか? 編集:以下のクリスロックウェルが指摘していfield_get_items()ます。これで、先日作業していたサイトの問題が解決したようです。しかし今、別のサイトでは、私がここで取り上げた理由のために失敗しています。 3つのノードを出力するビューがあります。私はいくつかの理由から、dpm($node)中node--node-type.tpl.phpのファイル、私が取得6つの変数ダンプを。最初の一つは持っている$node->field_link_image['und'][0]-すべての5人ながら、含むこの同じノードの複製は-ちょうど持っています$node->field_link_image[0]。そして今、field_get_items()これらの最後の5つのノードで静かに失敗し、falseを返します。 だから私は私の元の質問に戻ります:一部のノード変数と他のノード変数の間のこの違いの原因は何ですか、そしてそれに対して何ができますか?

5
「段階的なプロセス」のコンテンツタイプを作成するにはどうすればよいですか?
イントラネット用のプロセスマニュアルの作成を考えています。ほとんどの(すべての?)プロセスの順序は非常に明確ですが、実際の順序は時々変更される可能性があります。計画は、主題の専門家(おそらく半ダース程度)にプロセスページを入力および更新してもらうことです。サイトのユーザーは、多くの場合、対面で顧客とやり取りしながら、プロセスをすばやく確認できる必要があります。 これが私が考えたオプションです: 順序付きリストを使用するように作成者をトレーニングします。プロ:私にとって最も簡単です。短所:非技術者のトレーニングに依存しているため、読みやすさを考慮してスタイルを設定するのは難しい場合があります。 各プロセスを1つの本にまとめます。プロ:すでにあるものを使用します。短所:読みにくい、読みにくい 無制限に入力できる「ステップ」フィールドと、注文番号を表示するテーマを持つコンテンツタイプを作成します。プロ:各ステップが独立していることを簡単に確認でき、簡単に並べ替えることができます(?) !) カスタムモジュール、レシピモジュールのようなものですが、材料は含まれていません。少なくとも、レシピモジュールには段階的な指示があると思います。プロ:エントリ、学習経験のほとんどのカスタマイズ。欠点:私の専門知識ではないのですが、私にはもっと多くの作業が必要です。 あなたの経験から、これらのオプションの中で明らかに勝者はありますか? 私が見逃しているオプションはありますか?(たとえば、すでにこれを行っているモジュールはありますか?この概念をグーグルすることは悪夢でした。) 私はこれを考えすぎていますか? このプロジェクトがDrupal 6と7のどちらになるかはまだわかりません。
7 7  entities  nodes 

2
どのテーブルにコンテンツタイプフィールドが格納されていますか?
drupal 8にコンテンツタイプがあり、どのテーブルにコンテンツタイプフィールドとdrupal 8のタイプが格納されていますか?Unlike in drupal 6(コンテンツタイプ専用のテーブルがあります)content_type_contenttypenameテーブルとフィールドを作成しないように。これらのフィールドとデータ型はdrupal 8のどこに保存されますか?
7 nodes  8  entities  database 

3
画像フィールドの正しいURLを取得するにはどうすればよいですか?
次のコードを使用して画像フィールドのURLを印刷しようとしています。 <img src="<?php echo $field_company_logo['und'][0]['uri']; ?>" alt="<?php echo $company[0]['#markup']; ?>" /> このコードは、sites / default / files / company-logos / image.pngが必要な場合に、public://company-logos/image.pngのようなURIを提供します。 画像パスを印刷するにはどのコードを使用すればよいですか(つまり、sites / default / files / company-logos / image.png)?
7 entities  media 

1
entityreferenceオートコンプリートをオーバーライドし、entityfieldqueryの出力を返す
entityreferenceオートコンプリートフォームアイテムをオーバーライドしようとしています。フォームをオーバーライドして、hook_menuコールバックに引数を渡すことができました。ただし、フォームボックスに入力した内容に基づいてコールバックを機能させるのに苦労しています。Entity参照モジュールを見ると、hook_autocomplete_callbackに$ string引数を処理して一致を検索するコードがあります$entity_labels = $handler->getReferencableEntities($tag_last, $instance['widget']['settings']['match_operator']。 誰でも手伝ってくれる? 私のコード: /** * Implements hook_form_FORM_ID_alter(). */ function wl_event_form_event_node_form_alter(&$form, &$form_state, $form_id) { dpm($form); // We will get our term id argument from the from build itself. $node_id = $form['#node']->nid; // This is the path we will create in hook_menu(). $new_path = "wl_event/autocomplete/{$node_id}"; // Maximum number …
7 ajax  entities 

2
PHPを使用して、分類用語参照の値を複数の用語に設定するにはどうすればよいですか?
この質問では、PHPを使用して用語参照フィールドの値を設定する方法について説明します。しかし、ユーザープロファイルの用語参照フィールドの値を複数の用語に設定する場合はどうすればよいですか? 値を用語ID 27および28に設定しようとしています。これまでのコードは次のとおりです。 $user->field_yourfield_name[LANGUAGE_NONE][0]['tid'] = 27; user_save($user);

2
選択したチェックボックス(分類)は、選択したボックスの値を新しい選択リストに入力します
*質問への回答:カスタムモジュールのhook_node_submitでデータを保存するにはヘルプが必要です * Drupal 7では、カスタムコンテンツタイプがあります。これには、そのコンテンツのカテゴリを選択するための複数選択用語参照があります。 次に、以前に選択したカテゴリから1つを選択し、何らかの方法で「メイン」カテゴリとしてマークする必要があります。 次のオプションを持つ複数選択用語参照フィールドがあるとします。 Apples Bananas Pears Oranges Grapes Pineapples ユーザーは、リンゴ、梨、ブドウを選択します。今私はどちらかが必要です: プログラムでこれらの選択した項目ごとに別のフィールドを作成し(おそらくAjaxコールバックを使用)、ラジオボタンを使用して、選択した用語の1つだけを選択できるようにします。 チェックされたアイテムの横に(おそらくAjaxを使用して)ラジオフィールドを作成します。ここで、選択されたアイテムからメインのラジオフィールドを選択できます。 誰かこれについて何か考えがありますか? より明確にするために、私は1つのコンテンツタイプにこれらのリストを多数用意しています。各リストを単一の値リストとして繰り返すことはオプションではありません。 私の最善の策は、hook_form_alter()ある種のAJAXコールバックでを使用して、ユーザーがチェックしたティックボックスの横に単一のラジオボタンを作成するか、指定されたリストでチェックされた各項目の新しいラジオフィールドリストをプログラムで作成することです。 更新: わかりました、それを行うための最良の方法は、ajaxを使用して、チェックされた各チェックボックスのラジオボタンを作成するカスタムモジュールを作成し、メイン要素として使用する要素を選択できるようにすることです。 したがって、税条件の値にアクセスする前にフォームがレンダリングされるのを待つ必要があるためhook_form_alter()、#after_build関数を追加するために使用しました。 これがこれまでの私のモジュールです。私はたくさんのコメントを使用しているので、私が何をしようとしているのかがはっきりしているはずです: MYMODULE.module /** * Implementation of HOOK_form_alter() * Do the ajax form alteration */ function MYMODULE_form_alter(&$form, &$form_state, $form_id) { // 1.CONTENT FORM // I created a custom content type …

8
テンプレートを使用せずにCCKフィールド出力を書き換える
Viewsモジュールには、フィールドの出力を書き換える素晴らしいオプションがあります。これにより、そのビューのテンプレートを作成しなくても、トークンを使用してCCKフィールドの出力を適合させることができます。 コンテンツタイプの[フィールドの表示]タブに同様の機能を許可するモジュールはありますか?ティーザーと本文のフィールド出力を少し変更する必要がありますが、完全なテンプレートを作成したくありません。 私は現在、そのためにContemplateを使用していますが、Drupal PHP APIに慣れていない場合は、必要以上に複雑になり、不必要に難しくなります。また、コンテンツタイプにフィールドを追加するたびにテンプレートを変更する必要があるのも不愉快です。実際には、本文全体やティーザー全体ではなく、いくつかのフィールドのみを書き換える必要があります。 したがって、私が欲しいのは、そのコンテンツタイプで利用可能な任意のトークンを使用して各CCKフィールド出力を書き換える簡単な方法です。そのようなものはありますか?

4
ビューの最初のアイテムをカスタマイズする
私のホームページのブロックとして、出力しようとしています: <ul> <li><a><img><p>Node 1</p></a></li> <li><a>Node 2</a></li> <li><a>Node 3</a></li> <li><a>Node 4</a></li> </ul> ここで、各<li>はノード、および各ノードに接続されたCCKフィールドによって提供される画像/テキストを表します。 現在、ブロックビューを使用してノード2〜4を出力し、アタッチメントビューを使用して最初のノードを次のように表示しています:http : //www.agileapproach.com/blog-entry/the-views2-attachment-display 問題は、私の出力が次のようになることです。 <div class="attachment attachment-before"> <div class="view view-homepage-news .."> <div class="item-list"> <ul> <li class="views-row ..."> <a><img><p>Node 1</p></a> </li> </ul> </div> </div> <!-- /.view --> </div> <div class="item-list"> <ul> <li class="views-row ..."><a>Node 2</a></li> <li class="views-row ..."><a>Node 3</a></li> …
7 7  views  entities 

3
フィールドを介してネストされたエンティティにアクセスするための安全でエレガントな方法
テーマ設定レイヤーでエンティティ値にアクセスするためのさまざまなアプローチを見てきました。以下のコードは、マジックメソッドを使用した簡単な例です。すべての値が設定されていることを前提としています-そのいずれかの部分がNULLを返す場合、私の経験ではエラーが発生します。 $value = $node->field_paragraph ->entity->field_media ->entity->field_file ->entity->field_text->value; ->hasFieldや->count()チェックなどの方法があり、テーマも色々あります。私は仕事を成し遂げることができますが、時々それは醜く感じます。開発者がエンティティ参照を安全かつエレガントにドリルスルーするために使用するコーディングパターンに興味があります。
7 8  theming  entities 


3
ノードのステータスを更新するには?
Drupal 8 Webサイトにノードが存在する場合、JSONからのデータを使用して新しいノードを作成するか、既存のフィールドを更新します。したがって、メソッドを使用してノードを更新する場合、更新されたノードのノードIDと、このノードの値が変更されたフィールドのキーを配列に保存する必要があります。 更新が完了したら、このコンテンツタイプのすべてのノードを含むテーブルを印刷する必要があります。更新されたノードのフィールドは異なるスタイル(色、背景など)を持つ必要があります。 したがって、私の古いノードが body = "body1"ありdescription = "description 1"、新しいノードがbody = "body2"ありdescription = "description 1"、更新が完了したら、次のような出力を取得する必要があります。 次に例を示します。 $node = \Drupal\node\Entity\Node::load($nid); $node->set("body", 'New body text'); $node->set("description", 'New value'); $node->save(); なにか提案を? 注:$node->save();すべての更新された値が同じ場合に使用すると、何も変更されません(管理パネルのコンテンツのノードの日付は更新前と同じです)が、値が異なる場合、変更されたフィールドのノードID、キー、値のみを保存する必要がありますアレイ。
7 8  nodes  entities 

4
カスタムモジュールのインストールを介して、組み込みのコンテンツタイプにカスタムフィールドと表示設定を追加するにはどうすればよいですか?
私はDrupalにかなり慣れていません。Wordpress開発から来ており、プラグインの一部をDrupal 8のモジュールに「変換」しようとしています。 新しいフィールドを追加しようとしているドキュメントに従っています。ノードに「price」と言います。私が見つけたすべてのドキュメントは、カスタムノードへのフィールドの追加に関連していますが、私の場合、それらのフィールドを通常の事前定義ノードに追加したいと思います。 頭に浮かぶ最初の質問は、YML構成ファイルまたはコードを使用してカスタムフィールドを作成できることです。 私はYMLでフィールドを作成し、それはdrupalによって認識されました。問題は、それらがノードに表示されないことです(手動でアクティブにする必要があります)。 私のモジュール/ config / install /に作成しました: core.entity_form_display.node.article.default core.entity_view_display.node.article.default 私は自分のフィールドを追加しますが、もちろん、モジュールをアクティブ化しようとすると、Drupalによってすでに定義されているため、モジュールは好きではありません。 これらのコアファイルを「拡張」する方法はありますか?YMLまたはコードでそれは可能ですか? 私はhttps://www.drupal.org/docs/8/api/entity-api/programming-custom-fields-into-your-content-typeをフォローしました。/ config / installにYMLファイルを作成しましたが、実際にフィールドが作成されました。問題は、カスタムノードタイプに関連していないため、ビューエンティティを「拡張」して表示エンティティを形成する方法がわからないことです。これらのファイル(core.entity_form_display.node.article.default core.entity_view_display.node.article.default)はすでにコアに存在しているため、事前に作成されたノードタイプにリンクされ、再定義できません。 このコメントに続いて、次のファイルを作成しました。 /config/install/field.field.node.article.field_price.yml langcode: en status: true dependencies: config: - field.storage.node.field_price - node.type.article id: node.article.field_price field_name: field_price entity_type: node bundle: article label: Price description: 'Premium Price' required: false translatable: false default_value: { …
7 nodes  8  entities  hooks 


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