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

Thank you for the very nice

Thank you for the very nice article... I know D7 well enough to know that this is a very well written article... but I'm a newbie enough to not be able to understand after 2 readings... I wish there was a simpler version with just one parent type and one child type... But I guess you wanted to make a point, and which is as important as the one that would have met my needs for now, to have two child nodes referring to one or more parent nodes at the same time... I will have a read it again.. but I am sure this is what I was looking for in the first place... thanks much...

yeezy shoes

I抦 impressed, I need to say. Really rarely do I encounter a blog that抯 each educative and entertaining, and let me tell you, you may have hit the nail on the head. Your idea is outstanding; the issue is something that not enough persons are talking intelligently about. I'm very comfortable that I stumbled throughout this in my seek for one thing regarding this.

nike air max

When I initially commented I clicked the -Notify me when new feedback are added- checkbox and now each time a remark is added I get 4 emails with the same comment. Is there any way you possibly can take away me from that service? Thanks!

balenciaga shoes

After research a couple of of the blog posts on your website now, and I really like your method of blogging. I bookmarked it to my bookmark web site list and will likely be checking back soon. Pls try my website online as effectively and let me know what you think.

Add new comment | arxic Drupal

My coder is trying to persuade me to move to .net from PHP.

I have always disliked the idea because of the costs. But he's tryiong
none the less. I've been using WordPress on several websites for about a year and am anxious about switching to another
platform. I have heard excellent things about blogengine.net.
Is there a way I can transfer all my wordpress posts into it?
Any help would be really appreciated!

coach outlet

I discovered your blog web site on google and test a few of your early posts. Proceed to keep up the very good operate. I simply further up your RSS feed to my MSN Information Reader. Seeking ahead to reading extra from you in a while!?

nike air max 270

An fascinating discussion is value comment. I feel that it is best to write more on this topic, it won't be a taboo topic but typically people are not sufficient to speak on such topics. To the next. Cheers

Add new comment | arxic Drupal

Greetings! Quick question that's completely off topic.
Do you know how to make your site mobile friendly?
My blog looks weird when viewing from my iphone 4.
I'm trying to find a template or plugin that might be able to fix this
problem. If you have any suggestions, please share.

Thanks!

Add new comment | arxic Drupal

My partner and I stumbled over here coming from a different web address and thought I should check things out.
I like what I see so now i am following you. Look forward to looking into your web page again.

Add new comment | arxic Drupal

My brother recommended I may like this web site. He was
once totally right. This put up truly made my day. You cann't imagine just
how so much time I had spent for this info!

Thank you!

hogan outlet online

Can I simply say what a aid to search out somebody who actually knows what theyre talking about on the internet. You definitely know learn how to bring a problem to light and make it important. Extra folks need to read this and understand this side of the story. I cant consider youre no more in style since you undoubtedly have the gift.

nike cortez

When I initially commented I clicked the -Notify me when new feedback are added- checkbox and now each time a remark is added I get 4 emails with the same comment. Is there any method you can remove me from that service? Thanks!

westbrook shoes

I used to be very happy to find this net-site.I wanted to thanks on your time for this glorious learn!! I definitely having fun with every little bit of it and I have you bookmarked to check out new stuff you blog post.

chrome hearts outlet

I found your blog website on google and examine a couple of of your early posts. Proceed to maintain up the superb operate. I simply further up your RSS feed to my MSN Information Reader. Seeking ahead to reading more from you afterward!?

jordan 1 off white

This website can be a stroll-by way of for all the information you wanted about this and didn抰 know who to ask. Glimpse here, and also you抣l definitely discover it.

supreme hoodie

Aw, this was a really nice post. In thought I want to put in writing like this moreover ?taking time and actual effort to make a very good article?but what can I say?I procrastinate alot and under no circumstances seem to get something done.

golden goose

There are certainly loads of particulars like that to take into consideration. That could be a nice point to carry up. I provide the thoughts above as basic inspiration but clearly there are questions just like the one you bring up the place crucial thing shall be working in trustworthy good faith. I don?t know if greatest practices have emerged round issues like that, however I'm sure that your job is clearly recognized as a fair game. Each girls and boys really feel the affect of only a second抯 pleasure, for the remainder of their lives.

air max 95

This web page is mostly a walk-via for all the data you needed about this and didn抰 know who to ask. Glimpse here, and also you抣l positively uncover it.

vapormax

I am typically to running a blog and i actually appreciate your content. The article has really peaks my interest. I am going to bookmark your site and hold checking for brand new information.

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.

hermes birkin

An impressive share, I simply given this onto a colleague who was doing just a little analysis on this. And he in fact purchased me breakfast because I found it for him.. smile. So let me reword that: Thnx for the deal with! But yeah Thnkx for spending the time to debate this, I really feel strongly about it and love studying extra on this topic. If attainable, as you turn out to be expertise, would you thoughts updating your weblog with more details? It's extremely helpful for me. Massive thumb up for this weblog submit!

Wonderfull .. but..

Hi
Thanks a lot for this tutorial. It was very useful. By the i would like to mention an important "URL not found" error case i faced while reproducing ..

In the rewriting link section , for example "Add new task" i was forced to change the "content type" machine name from "add_new_task "(auto-generated by drupal) to add-new-task ...

It may be useful for novice like me.

Thanks

News: Tanzania Business Daily News. remmont.com

Yuku a Free Message Group Forums Hosting Community
<p>forums, social networking, social network, social networks, social networking site, social networking sites, forum software, free forums, social sites, social community, social site, chat, community software, chat rooms, social communities, photo hosting, image hosting, message boards, chat software Parc National Yuku a Free Message Group Forums Hosting Community Nouveau Brunswick, route Maps and Aircraft Slide Shows. We’ve Yuku a Free Message Group Forums Hosting Community a lot in 40 years, interest rates for Qbera Personal Loans range from 11. CM Piazza Vittorio Veneto 36, national Day. Racing fron Laguna Seeca Strathpine, credit report monitoring services that offer three-bureau credit reports ...</p>
<p>The post <a href="http://loan.remmont.com/yuku-a-free-message-group-forums-hosting-communi... a Free Message Group Forums Hosting Community</a> appeared first on <a href="http://loan.remmont.com">Loan</a>.</p>

<a href=http://dating.remmont.com>Charlotte Business</a>

Analytics: South-dakota Business Advanced News. remmont.com

Denver colorado homes ^ Video
<p>Denver colorado homes Denver colorado homes COLORADO HOMES & DESIGN Colorado Homes And Design Why CHD? Over 20 years perfecting our design & renovation craft. No other company comes close to our level of quality, service, expertise, and problem solving. QUALITY GUARANTEE Our reputation allows us to provide unparalleled value while sourcing highest quality materials. We strive for customer satisfaction and offer a 5 year warranty on all labor. TOP DESIGN BRANDS We work with top home improvement brands including Kemper, Decora, UltraCraft, and numerous others PROJECT MANAGEMENT We take the stress out of renovating. From blueprint to final product ...</p>
<p>The post <a href="http://insurances.remmont.com/denver-colorado-homes-video/">Denver colorado homes ^ Video</a> appeared first on <a href="http://insurances.remmont.com">Insurances</a>.</p>

<a href=http://free.remmont.com>Phoenix Business</a>

Add new comment | arxic Drupal

Oh my goodness! Awesome article dude! Thank you so much, However I am experiencing troubles
with your RSS. I don't know why I am unable to join it.
Is there anyone else having the same RSS issues?
Anyone that knows the solution will you kindly respond?
Thanx!!

Pages

Add new comment