8

Blocks do not have paths so how can I pass a context to the block to get the correct results for a page?

I am new and do not have enough reputation to answer my own question for eight hours (Go figure!) The answer for this question will come after the time limit has expired.

15

A views page can read the url and use a path for the page to read a taxonomy term input for a contextual filter. A URL such as example.com/a/term/b would be read by the view page with a path of a/%/b. The value for the % in the URL is passed in to the contextual filter to determine what content to include in the view.

Since a block doesn’t possess a path it is necessary to do a bit more configuration to achieve the result. To do so:

  1. Click on the contextual filter on the block view form in views.
  2. Under When the filter value is NOT available select Provide default value.

If the page in the path is a taxonomy term try this step 3 and 4:

  1. Choose Taxonomy term ID from URL from the Type drop-down box.
  2. Check Load default filter from term page.

Or otherwise try this:

  1. Choose Raw value from URL
  2. Identify which part of the URL is the term. eg. for A/term/B the term is in the second position.

Then:

  1. Under When the filter value IS in the URL or a default is provided check "Specify Validation criteria"
  2. Select Taxonomy term and the specific vocabulary being used.
  3. Under Filter Value type pick term name converted to term ID"
  4. Checking Transform dashes in URL to spaces in term name filter values will ensure that any auto generated path alias' that have converted spaces to dashes are properly handled. Try your view with this checked and unchecked.

If your view is not appearing on the page troubleshooting steps should include verifying that the view works by testing input in the view preview. Make certain that any spaces are handled to match up with the setting in step 8. Also make certain that your view block is exposed in admin/structure/block.

  • I have two taxonomy vocabularies. Collections coll1, coll2 and coll3 Sizes small, medium and large My URL looks like this: collections/coll1/small I tried to use the method you describe but I get no results. Any idea? – screaming SiLENCE Jan 26 '12 at 15:14
  • I would need more information about your view. Why not add a question and describe which fields, filters, contextual filters you have set up and we'll figure it out. – Ashlar Jan 26 '12 at 16:23
1

If you want to select according to a Content Type instead of taxonomy, you need a different setup. Try the following:

  1. Click on Contextual Filters
  2. Add Content: NID On the WHEN THE FILTER VALUE IS NOT AVAILABLE section, select Provide default value and choose Content ID from URL on the dropdown list.
  3. On the WHEN THE FILTER VALUE IS AVAILABLE OR A DEFAULT IS PROVIDED section, select Specify validation criteria, choose Content on the VALIDATOR select box, and choose which Content Types you authorize to be displayed.

That should do it.

  • Validation passes but it is not filtering the NID? Do I need to create a relationship to the contextual filter? – Sonicthoughts Aug 31 '15 at 17:31

protected by kiamlaluno May 17 at 8:58

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.