Is there an easily managed way we can assign a specific taxonomy term to a specific instance of a view?
We're using the callouts module for Drupal, and it works great for nodes/pages we have in our site. But we have a handful of Views that are displaying as a page, but we cannot assign a specific taxonomy term to a specific instance of that view.
The view itself is pulling in lists of nodes based off of a taxonomy argument:
Example On the bottom left, we have some callouts, but they're shown randomly because we can’t assign a term to that page to show specific callouts.
There's 7-8 of these pages, and they all use the same View, but just passing different data through the argument. we've tried assigning the callouts we want to the taxonomy that is used to create the view, but that didn't work either.
Without changing the view output (for example, from a page to a block), how can this be accomplished?
Even if you could assign a taxonomy term to a view, I think it would not help in this case. Blocks are not aware of their context at the time they are rendered, so they have to look at the url to retrieve information about the node that's being displayed. The block checks if the page displays a node; if so the node data is loaded. The callouts module also works like that, as is explained on the module page. Since a view is not a node, the block will not render. To make this work, you would have to alter the callouts module I'm afraid.
Related
I am working on a drupal7 site. The scenario is that, there are 2 content types namely singers and events. When i am adding an event, i need to add an event to a singer, so that when i am viewing a singer's node page, i can see block containing events related to that singer alone.
I have done the events block inside the singer's content page(Using the views block). But it displays all the events and i want to display the only the events related to that singer alone. I have tried to make it using term reference or some other stuff. But nothing have worked out. Can anyone help me out to get this scenario working. Thanks in advance.
First of all, you need to link those two content types using Entity Reference module. Have a look at this answer, where I have just explained how to do so to another user.
I assume your block is being shown as a view from Views Module. However, up to now you have not been able to filter the results by singer. Once you have properly linked both content types, you will have to edit your view and add a contextual filter. When I first faced this problem, I used this guide to solve my problem. Basically you filter the Event list to show only those whose "Singer" id is the n-th parameter in the URL (node/nid).
First, why term reference when you have 2 content types? Inside your singer content type add node reference to event content type. The same thing as term reference, but obviously, you have to reference a node, not a term.
Second, in your view you must have the contextual filter that takes singer id.
Third, I'm not sure can that work with block display, but I'm sure it works with embedding view, so my suggestion is to created view display of "embed" type and to embed it directly into singer content type template. This way you can pass singer id (you have it available there: $node->nid) parameter easily.
I have a view in Drupal 7 with results including a field of date and another with price, I need to sort the results by means of these two fields when I click on the appropriate link (not button or dropbox radio), but the trick is I need add the different sort filter into two separate blocks, because each block will have a different per user context.
Besides the filters should be links. Any idea how to work this?
You can have different displays for all order variations and then use appropriate one depending on parameter passed with link. Of course, you can't just use block view, but create your custom block which will embed correct view depending on that parameter.
Other way would be altering view query. In you module add hook function for altering view and inside you should detect your view, check for parameter and alter order value.
You can create two block displays for the same view, each of them sorting the results with a different criteria. Once both blocks are created, enable them in the same theme region and establish the URLs in which each module should be displayed. This configuration can be set using the block configuration form.
it's about this page: http://veagues.com/
Hey guys,
I've made a block-view with drupal that let's me sort my videos by a certain category, in this case "funny","epic","plays", "contest"...
The problem is: When you sort it by the certain category and click on a video and continue to click the "next" button, you will go threw all videos, instead of only the videos of the category...
My Question is: How can I put a filter on the nodes when i apply another category on the bottom block?
Thanks already!
If you're using Views, you should be able to filter the main block by the same taxonomy term.
Try adding a Contextual Filter to that block too. If there's a taxonomy term ID in the URL the block gets filtered by that Term ID and if there's no result, the block shows all the videos.
EDIT -----------------------------------------------------------------------------------------
You may need to try & understand what goes on when you make a selection in Drupal.
1/ The taxonomy term page will list all the content affixed with a specific term. The term tid can be seen in the URL, unless an alias have been created. A block can retrieve that term id, whether there is an alias or not.
2/ The node page will give you access to a specific node, but any block on that page should be able to access the term id of that specific node.
If you know where you are, it becomes easier to retrieve the info you're looking for. On the other hand, you may have to reconfigure a specific page in order to add the necessary extra block...
That can be done with templates but you could also have a look at Panels.
The Panels UI makes it easier to configure the page you're looking for without having to mess with code or templates, or both.
There's a lot of free video tutorials out there, search for Views & Panels.
If you want to have a look at preprocess functions, you will definitely need to download the Devel module...
...but have a look at these sites first:
http://codekarate.com/
http://drupalize.me/
http://buildamodule.com
I have a taxonomy vocabulary called 'catalogue'. Within this, I have levels of terms. Some have sub-terms, some have nodes.
I have two views to handle these: One to show sub categories, one to show nodes, each with a filter applied based on the URL. If I go to sub-category/category-name, it would show me all the sub-terms in category name. If I go to product-category/category-name, I get a list of related nodes.
With no aliases, the view works properly on sub-category/%. The problem with this is that the generated links for the sub-terms aren't to the view, they're to the term page.
If I create aliases, it overrides the view and shows no results on sub-category/% pages and default node teasers on product-category/%.
Can I use aliases with views in this way?
Sounds like you want to re-write the output of the Field instead of creating aliases. If you're not familiar with that particular feature in Views, see the screenshot below from http://highrockmedia.com/blog/rewriting-drupal-views-output-custom-theming-css
Note that instead of creating a <div> wrapper, you can create your own link as needed. Hopefully this will help you get started in the right direction.
Is it possible to elegantly do this? The idea is, a node of content type "project" has a lot of fields, its url is something like node/5. I want to show some of the fields on that page, and others on node/5/extra, kind of an "extended" page that the user only loads if he is interested in that content (lots of images, in my case, that would slow down the main node page considerably).
I tried the Display suite module, unsuccessfully (it seems it's not really meant for doing what I want). I also saw this blog post, which explains how to add a custom display mode to a content type (other than the Default and Teaser ones that come by default), but I can't get it to work the way I want to either.
I guess you could create a view having the node ID as a default argument from URL. Then you can choose which fields to show or hide