Entity Views Attach: Use Views Almost Anywhere

Entity-Views-Attach

Entity Views Attach (EVA) is a wonderfully useful Drupal module which makes Views more powerful.

EVA allows you to automatically attach any view to content, comments or terms.

We’re going to show you 2 examples of EVA in use. Both of them solve problems that were asked by our members this week.

First, we’ll see how to sort terms however we want and then we’ll see how to add an image for a file download link.

Example #1: Sort taxonomy terms

You can download EVA from https://drupal.org/project/eva.

Here’s the first problem we face. We don’t have any way to contol the order of our taxonomy terms. Our training member wanted to take control of the ordering and sort these terms alphabetically.

media_1389133598566.png

Let’s go and create a view that will sort our terms.

  • Go to Structure > Views > Add New View
  • Choose to show “Taxonomy terms” and then select the terms you want to show. In this example, we’ll show “Tags”.
  • Choose the Display format you want, but you must choose to show fields.
  • Click Continue and edit.
media_1389132814072.png
  • At the top of the Views screen, click Add and then choose EVA Field.
media_1389133131369.png
  • You will now see a new area of Views called “Entity Content Settings”:
media_1389133169834.png
  • Click Entity Type and choose where you want to attach this View to. In our example, we chose “Node”.

It’s worthing noting that you can also use EVA to attach Views to Comments, Terms or users. For example, you might want create a View showing the content that a user has created and show it on their profile. In that instance, you would choose “User”.

media_1389133193568.png
  • Click Bundles and choose which content type you want to attach this View to. In our example, we choose “Article”.
media_1389133441656.png

Finally, we need to make sure that EVA will only pull in the terms that have been added to the content we’re looking at. Otherwise, we’d end up with a very long list.

  • Under Advanced, click Add next to Relationships.
  • Check the box “Taxonomy term: Content with term” and then on the next screen, check “Require this relationship”.
media_1389194589478.png

You are now free to create the view as you wish. Here’s one change we need for our example:

  • Under Sort Criteria, choose to sort the view how you wish. In this example, we choose “Taxonomy term” and “Sort ascending”.
media_1389133543745.png
  • Save the view.
  • Visit any article on your site with terms and you’ll see that your new view has been attached:
media_1389133576686.png

If you want to remove the original Tags field, go to Structure > Content types > Manage Display and move the “Tags” field to the “Hidden” area:

media_1389134060194.png

Example #2: Changing a download link into an image

Here’s an alternate example of EVA in action. In this example, our member wanted to change a file name into a “Download image”.

We’ve shown how to do this before with Display Suite. Now we’ll show how do it with EVA. The image below shows the problem – the file name is showing instead of a download button that we can style.

media_1389134017895.png
  • Go to Structure > Views > Add New View
  • Choose to show an “Unformatted list” of “fields”
media_1389135263579.png
  • Click Add > EVA Field
  • Click to add a new field and choose “File: Path”
media_1389136150279.png
  • Check “Display download path instead of file storage URL”
media_1389136227861.png
  • Check the box for the “REWRITE RESULTS” area.
  • In the Text area, use HTML to show an image and a link. We can use the Replacement patterns to automatically insert the URL with [field_file]. To do this, you will need to know the URL to the image, which in this example is http://bit.ly/19ZE2db.
media_1389134438655.png
  • Look under “Entity Content Settings”, Click Entity Type and choose where you want to attach this View to.
  • Click Bundles and choose which content type you want to attach this View to.
media_1389134476360.png

We now need to add both a Contextual Filter and a Relationship.

  • Contextual Filter: select “Content: NID”
  • Relationship: select “Content: File”. Make sure to check the “Require this relationship” box.
media_1389136344829.png

That should complete the process and the image will show. Click on it and you’ll download the file.

media_1389136415994.png

Author

  • Steve Burge

    Steve is the founder of OSTraining. Originally from the UK, he now lives in Sarasota in the USA. Steve's work straddles the line between teaching and web development.

0 0 votes
Article Rating
Subscribe
Notify of
7 Comments
Oldest
Newest
Inline Feedbacks
View all comments
prabhatjn
prabhatjn
10 years ago

Thanks for sharing, I was not aware of it. It seems to be quite useful.

Stephen Capellic
Stephen Capellic
10 years ago

What about Field Collections as Entities? I hear they aren’t “first rate” entities in Drupal 7, but does Entity API elevate them to be seen by Entity Views Attachment?

steve
steve
10 years ago

Hi Stephen, I’ve not tested Field Collection with EVA, but my hunch is that it will work with Entity API.

Dave Hansen-Lange
Dave Hansen-Lange
10 years ago

I think if you are using a Panels approach to site building (as most people are these days I think) EVA looses its usefulness. Your first example is just a regular view attached to a variant of the node panel. The second example can be done purely in panels (and don’t even involve Views which is probably the wrong hammer for this screw anyway).

Cool Developer
Cool Developer
9 years ago

Wanted to create a document-management functionality for our client with role-based permissions. I was pondering if we can use EVA for it. Our other option is FileDepot.

Giodesigns
Giodesigns
2 years ago

Thanks for Sharing. Helped me a lot

mikall
2 years ago
Reply to  Giodesigns

You are very welcome.  Thanks for commenting!

7
0
Would love your thoughts, please comment.x
()
x