Setting up Entity Reference content types, fields, views with Entity Reference Prepopulate add links

First, modules:

  • Views + CTools
  • Entity Views Attachments
  • Entity Reference 7.x-1.0-rc1
  • Entity reference prepopulate 7.x-1.0
  • References dialog 7.x-1.0-alpha3

Then, content types and fields:

  • Create four or more content types. For this example, I will use Client, Work, Task, and Note. Tasks and Notes can be 'attached to', e.g. entity reference, Client and Work nodes. Also, Work nodes can be attached to Clients. In my use case, I have several other content types, which can 'have' Tasks and Notes as well. The other content types in my use case also have entity references to Client and Work nodes.
  • Client is the ultimate parent content type, so you don't need any entity reference fields on it (unless you want them for some other purpose, of course).
  • On the Work content type, create an Entity Reference field using the autocomplete widget, called 'Client'. You can make it required if you want, but it does not have to be.
    • Check the "Enable Entity reference prepopulate" box, select "Disable field" for Action and "Do nothing" for Fallback behaviour. I usually set Skip access permission to "Administer site configuration".
    • If you want to enable the References Dialog widget to be able to add/edit a Client from the node add page for a Work, check the Edit and Add dialog boxes

  • In the 'Client' field settings, leave the Number of values at 1, Target type is "Node", and select "Client" for the Target bundles

  • Now, on the node add page for the Work content type, you will see the Client Entity Reference Field, with the Add Client link supplied by the References Dialog module:

  • Then, on your Task and Note content types, create (separate) Entity Reference fields called 'Attached to' (machine names: field_task_attachedto and field_note_attachedto), that can reference an unlimited number of Client, Work, and whatever other content types that you desire. You should use different fields for ease of management, but the settings are the same.
    • Check the "Enable Entity reference prepopulate" box, select "Disable field" for Action and "Do nothing" for Fallback behaviour. Set Skip access permission to "Administer site configuration".
    • You will not be able to use the References Dialog links since you are enabling the field to reference an unlimited number of different content types. With child content like "notes" and "tasks", you presumably are not going to be creating a parent, like a "client", when you are creating a "note" for the "client" - the "client" parent node will already exist.

  • In the Attached to field settings, select "Unlimited" for the Number of values, set the Target type to "Node", and select the Client, Work and any other content types to which you want to be able to attached Notes and Tasks under Target bundles.

  • Remember to create your "Attached to" Entity Reference field on both your Note and Task content types. If you recycle the field, it will have the same settings for both Notes and Tasks, so if you want to be able to attach Notes, but not Tasks, to some content types, then use two separate fields with the same settings.
  • First, create your Views to display the Notes and Tasks attached to a referencable node being viewed. I also have pages to display all of the Notes and Tasks, but I want to be able to see all of the Notes and Tasks attached to a Client or Work on the Client and Work nodes. Here, Entity Views Attachments (which is a great and useful module) comes into play. I'll use the example of Tasks again, but the process is basically the same for Notes - just change anything that was specific to Tasks to Notes when creating that View.
    • At admin/structure/views, click the "Add new view" link, name it something like "Attached Tasks" and select Show Content of type Task. Uncheck create a page, and leave create a block unchecked.
    • Use the "+Add" button near the top, to add an "Entity content" display to your newly created View
    • Under the "Entity Content Settings" pane, select "Node" for the "Entity type", and select the content types that can be referenced by the "Attached to" Entity Reference field on the Task content type (e.g., Client, Work, etc.). Leave Arguments at id. I opted to display the title of the View display by selecting "Yes" for Show title.
    • Add the fields that you want to display. Title is fine for now.
  • Then create your contextual filter, so that this Entity Views Attachment display only shows on content types referencable by the Attached to field on the Task content type, and to show only the Tasks that are attached to the node being viewed.
    • Expand the "Advanced" pane, and click the "add" button next to Contextual Filters to add your new Contextual Filter.
    • Select the "Attached to" field (machine name: field_task_attachedto), which will be listed as "Content: Attached to (field_task_attachedto)" to use as the Contextual Filter.
    • Under When the Filter in Not Available, select the "Provide default value" radio button, and then select "Content ID from URL".
    • Under When the Filter Value is Available or a Default is Provided, check the "Specify validation criteria" radio button, select "Content" for the Validator, and then select all of the content types that can be referenced by the Attached to field on Tasks (Client, Work, etc.). 
    • Leave the select list option for Action to take if filter value does not validate to "Hide view", which is the default and the desired behavior.
    • Click the apply button to save the new contextual filter that makes the magic happen!

Basic Entity Content View Display set-up:

Configuration for Contextual Filter on Content: Attached to (field_task_attachedto):

  • Now, after saving your new View, you will see Tasks listed on the nodes that are "attached to"/referenced by Tasks. Note, there is currently a bug in Entity Views Attachment that does not automatically make the Entity Content display available on content types. First go to the "Manage fields" tab for the content types, and then go to the "Manage display" tab. You should now see the Entity Content display field for the View you created, and you can position it where you would like in relation to any other fields. Here is a shot of what a Client node should look like, after you have created the Client and an attached Task:

  • Repeat the basic process of creating the EVA View to display Tasks attached to a node for the Note and Work content types. You can also display the View in a block instead of an EVA, which will allow you to display the child content type attached to a node in the sidebar or other regions of your theme.
  • Next, create the Views to be able to display "Add new [child_content_type]" links on parent nodes. Like with displaying the child content on parent nodes, you can use an EVA or a block to display the "Add new [child_content_type]" links on the parent nodes. This example will use creating the link in an EVA for the Tasks content type, but the basic process can be repeated for Notes, Works, or any other child content types - just make sure to use the correct fields and filters applicable to the work. Finally, Entity Reference Prepopulate comes into play:
    • At admin/structure/views, click the "Add new view" link, name it something like "Add new child links" and select Show Content of type All. Uncheck create a page, and leave create a block unchecked.
    • Use the "+Add" button near the top, to add an "Entity content" display to your newly created View
    • Under the "Entity Content Settings" pane, select "Node" for the "Entity type", and select the content types that can be referenced by the "Attached to" Entity Reference field on the Task content type (e.g., Client, Work, etc.). Leave Arguments at id. I opted to not display the title of the View display by leaving "No" set for Show title.
    • Add the "Content: Nid" field to your View, and remove the Title field.
    • For your filters, set the "Content: Type" filter to show only the content types that can be referenced by your "Attached to" field on the Tasks content type.
    • Change the page options so that you only display one piece of content (which will happen automatically once you set the contextual filter for this view).
  • Now, you need to set up your contextual filter on this display so that it is used only in the context of a node which can be referenced by your "Attached to" field on the Tasks content type.
    • Expand the "Advanced" pane, and click the "add" button next to Contextual Filters to add your new Contextual Filter.
    • Select "Content: Nid", listed as "Content: Nid" to use as the Contextual Filter.
    • Under When the Filter in Not Available, select the "Provide default value" radio button, and then select "Content ID from URL".
    • Under When the Filter Value is Available or a Default is Provided, check the "Specify validation criteria" radio button, select "Content" for the Validator, and then select all of the content types that can be referenced by the Attached to field on Tasks (Client, Work, etc.). 
    • Leave the select list option for Action to take if filter value does not validate to "Hide view", which is the default and the desired behavior.
    • Click the apply button to save the new contextual filter, and then save your view.

Basic Entity Content Views Display set-up:

Contextual filter configuration:

  • The final step on this View to make it usable is to rewrite your NID field so that it is output as a link on a parent node to add a new Task node with its "Attached to" field properly referencing the parent.
    • Click on the "Content: Nid" field, and uncheck the "Create a label" box
    • Expand the "Rewrite Results" section, and check the "Rewrite the output of this field" box
    • In the Text box, enter <ul><li><a href="/node/add/task?field_task_attachedto=[nid]">Add new Task</a></li></ul>
    • In the node/add/task part of the above, 'task' is the machine name of the child content type Task, and field_task_attachedto is the Entity Reference field on the child content type that can reference the parent node being viewed. Basically, with Entity Reference Prepopulate, the above link tells Drupal to go to the create new node page for a Task with the "Attached to" field pointing to the parent node being viewed. For the Notes content type and its "Attached to" field, the rewritten link will look like <ul><li><a href="/node/add/note?field_note_attachedto=[nid]">Add new Note</a></li></ul>

Now, when viewing a parent content type like a Client, you will see the Tasks attached to that client, and a link to add a new Task node from the Client. Once the Views for the Note content type are set-up, you will see the whole deal:

Drupal version: 

Comments

fitflop sale

Spot on with this write-up, I really assume this website needs much more consideration. I抣l most likely be again to learn way more, thanks for that info.

Add new comment | arxic Drupal

Thank you for the good writeup. It in fact was a leisure account it.
Glance complex to more added agreeable from you!
However, how can we keep up a correspondence?

supreme outlet

Can I simply say what a aid to seek out someone who actually knows what theyre speaking about on the internet. You definitely know the best way to bring an issue to gentle and make it important. Extra folks need to learn this and understand this aspect of the story. I cant consider youre not more widespread because you definitely have the gift.

Add new comment | arxic Drupal

I really love your blog.. Great colors & theme. Did you
create this site yourself? Please reply back as I'm attempting to create my own blog and want to learn where you got this from or exactly what the theme is called.
Kudos!

adidas ultra boost

An fascinating discussion is worth comment. I feel that you need to write extra on this topic, it won't be a taboo subject however typically individuals are not sufficient to talk on such topics. To the next. Cheers

yeezy boost 350 v2

Spot on with this write-up, I actually suppose this web site needs far more consideration. I抣l in all probability be once more to learn much more, thanks for that info.

kyrie shoes

I would like to express some appreciation to the writer just for bailing me out of such a crisis. As a result of searching through the online world and getting tricks that were not powerful, I believed my life was over. Being alive without the strategies to the problems you've resolved through your good posting is a crucial case, and ones that could have in a negative way damaged my entire career if I had not discovered your web blog. Your good ability and kindness in controlling all the things was valuable. I am not sure what I would've done if I had not come upon such a point like this. I can at this moment relish my future. Thanks very much for the high quality and sensible guide. I won't hesitate to endorse your site to any person who would need direction about this topic.

Add new comment | arxic Drupal

I'm extremely impressed with your writing skills as well as with the
layout on your blog. Is this a paid theme or did you modify
it yourself? Anyway keep up the excellent quality
writing, it's rare to see a great blog like this one these days.

supreme

I must express appreciation to this writer just for rescuing me from such a incident. After surfing throughout the world-wide-web and coming across notions which were not powerful, I believed my entire life was over. Being alive minus the solutions to the issues you've solved by means of your good site is a serious case, and the kind that would have in a negative way damaged my entire career if I had not come across your web blog. Your actual skills and kindness in taking care of almost everything was crucial. I'm not sure what I would have done if I had not discovered such a stuff like this. I am able to at this point relish my future. Thank you very much for the professional and result oriented guide. I won't be reluctant to recommend the website to any person who needs to have support about this area.

kd shoes

Thanks so much for providing individuals with a very brilliant chance to read articles and blog posts from this blog. It can be so pleasant plus jam-packed with fun for me and my office mates to search your website nearly thrice in 7 days to read through the latest stuff you will have. And indeed, I'm at all times impressed with your awesome concepts you give. Certain 1 points in this posting are clearly the most effective I've had.

goyard handbags

A lot of thanks for all of your work on this blog. My mum enjoys carrying out investigation and it is obvious why. Many of us notice all of the lively means you create rewarding guides by means of the blog and as well attract contribution from others on that theme then our child is certainly studying a lot. Have fun with the remaining portion of the year. You are performing a superb job.

golden goose outlet

I must get across my respect for your kindness supporting individuals that should have help with this important question. Your special dedication to passing the solution all over turned out to be certainly beneficial and has regularly encouraged individuals just like me to arrive at their pursuits. Your personal warm and friendly useful information entails a lot to me and especially to my mates. Thanks a lot; from everyone of us.

moncler

I wanted to create you a little note to help thank you very much the moment again considering the magnificent tips you've documented here. It has been wonderfully generous of people like you to grant publicly all that most of us could possibly have supplied as an electronic book in making some dough for their own end, notably since you could possibly have done it in case you decided. These thoughts additionally acted to be the easy way to be sure that someone else have similar fervor really like my very own to grasp great deal more when it comes to this problem. Certainly there are many more fun opportunities ahead for those who look over your website.

longchamp

I wanted to write you a very little remark so as to thank you so much as before on the superb secrets you have shown here. It is really tremendously generous of you to supply easily exactly what a few individuals would have distributed as an e-book to generate some bucks for their own end, especially considering the fact that you could possibly have tried it in case you decided. The points likewise worked like a fantastic way to fully grasp that other people online have a similar keenness much like my very own to realize many more on the topic of this issue. I believe there are several more fun times ahead for individuals who go through your blog post.

Add new comment | arxic Drupal

Greetings! This is my first comment here so I just wanted to give a quick shout out and tell you I genuinely enjoy reading your blog posts.

Can you recommend any other blogs/websites/forums that go over
the same topics? Thank you so much!

balenciaga shoes

I am just commenting to make you understand of the wonderful discovery my friend's child obtained reading through your web site. She picked up a wide variety of details, which include what it is like to possess an awesome coaching mood to have the rest completely understand several complex topics. You undoubtedly surpassed readers' expected results. I appreciate you for displaying those priceless, trustworthy, revealing and as well as fun tips on this topic to Julie.

Add new comment | arxic Drupal

Asking questions are really fastidious thing if
you are not understanding something completely, but this article gives good understanding even.

golden goose

My husband and i got absolutely satisfied Michael could carry out his inquiry with the precious recommendations he obtained through the weblog. It is now and again perplexing to just always be handing out key points many others might have been trying to sell. We really see we've got you to thank for that. These illustrations you made, the simple web site menu, the relationships you can help to foster - it is all incredible, and it's really assisting our son and us recognize that the idea is amusing, which is certainly pretty important. Many thanks for all!

yeezy shoes

I am only writing to make you understand of the perfect experience my cousin's princess enjoyed viewing your web page. She even learned a lot of pieces, which included how it is like to possess a wonderful coaching style to make most people just fully understand a number of specialized issues. You undoubtedly did more than visitors' desires. Thanks for producing such important, dependable, explanatory and even unique tips about this topic to Ethel.

Add new comment | arxic Drupal

My brother recommended I might like this website.

He was totally right. This publish actually made my
day. You can not believe simply how a lot time I had spent for this information! Thank you!

air jordan

I simply needed to say thanks yet again. I'm not certain what I could possibly have created in the absence of the information shared by you about this topic. This has been a fearsome condition for me personally, however , witnessing the expert way you handled it forced me to weep with gladness. Extremely thankful for this service and as well , have high hopes you find out what a powerful job that you're accomplishing training the mediocre ones through the use of your webblog. Most likely you have never got to know any of us.

Add new comment | arxic Drupal

magnificent issues altogether, you just won a new reader. What would you recommend in regards to your publish that you simply made a
few days ago? Any positive?

yeezy shoes

I in addition to my friends were viewing the great guides on the blog and then immediately I got a terrible suspicion I never expressed respect to you for those tips. The people had been certainly very interested to study all of them and already have seriously been making the most of them. I appreciate you for being really considerate and for pick out this form of brilliant topics millions of individuals are really desirous to understand about. My sincere regret for not saying thanks to earlier.

hermes online

I'm just commenting to make you be aware of of the amazing encounter my princess gained visiting yuor web blog. She picked up too many things, which include how it is like to have an awesome coaching mindset to let other individuals with ease learn selected impossible subject matter. You truly surpassed readers' expectations. Thanks for churning out those necessary, trustworthy, edifying and as well as unique guidance on this topic to Evelyn.

nike foamposite

I wanted to write you one little note so as to give many thanks over again on your extraordinary tricks you have featured above. This is quite tremendously open-handed with people like you in giving unhampered all that a few people could have advertised as an ebook to help make some dough on their own, certainly considering that you might well have tried it in the event you considered necessary. These things as well served like the good way to be certain that some people have the same passion just as my very own to know great deal more related to this condition. I am certain there are thousands of more enjoyable sessions up front for folks who take a look at your website.

Add new comment | arxic Drupal

Hello there! This is my first comment here so I
just wanted to give a quick shout out and say I really enjoy reading your
posts. Can you recommend any other blogs/websites/forums that cover the same
subjects? Thank you so much!

yeezy boost 350

My spouse and i felt now thankful that Raymond could complete his analysis via the precious recommendations he had through your web page. It is now and again perplexing just to continually be giving for free guides which some others have been making money from. And now we already know we have the writer to appreciate because of that. These explanations you made, the simple site menu, the relationships you can aid to engender - it's many unbelievable, and it is helping our son and us recognize that this concept is fun, and that's extraordinarily indispensable. Thanks for the whole lot!

nike max

I and my friends have been checking out the best tips found on the website then then got an awful feeling I never expressed respect to the website owner for those secrets. All of the young boys became for that reason passionate to learn them and have now simply been using those things. Appreciate your truly being so accommodating and for making a decision on this kind of smart topics most people are really wanting to know about. Our sincere regret for not expressing appreciation to you earlier.

Add new comment | arxic Drupal

Hi! I could have sworn I've been to this web site before but after looking at a few of the posts I
realized it's new to me. Anyways, I'm certainly pleased I stumbled upon it and I'll be bookmarking it and checking back
regularly!

michael jordan shoes

I precisely needed to thank you so much once again. I'm not certain what I would have implemented without those secrets discussed by you about that industry. This has been a hard condition in my view, however , noticing this specialized approach you solved the issue forced me to leap over fulfillment. I will be grateful for your advice and in addition hope that you find out what a great job you're getting into educating the mediocre ones by way of your webpage. I am certain you haven't come across any of us.

Add new comment | arxic Drupal

great issues altogether, you simply gained a brand new reader.

What could you suggest about your put up that you simply
made some days in the past? Any positive?

Add new comment | arxic Drupal

Thanks for the auspicious writeup. It actually was a enjoyment
account it. Look advanced to far introduced agreeable from you!
However, how can we keep in touch?

Add new comment | arxic Drupal

Hi there terrific website! Does running a blog like this take a large amount of work?

I have very little knowledge of programming but I had been hoping to start my
own blog in the near future. Anyways, if you have any ideas or tips for
new blog owners please share. I understand this is off subject nevertheless I
simply needed to ask. Many thanks!

Pages

Add new comment