In this blog post, we will go deeper into all the issues that come with implementing a proper URL paths hierarchy in Drupal 7 and try to propose working solutions where possible.
Normally, templates come in default by printing all content fields by:
<?php print render($content); ?>
But if for some reason, you wish to display everything, yet you need to exclude or omit certain field values from displaying, you may want to use:
In above example this will output everything by default, yet hide the image of the node.
In Drupal, in example, version 7, you need to check the following if you encounter the error: "File upload error. Could not move uploaded file."
You may consider using PHP for this.
- Go to your Views
- Header > Add
- Select Global: PHP
- Use PHP snippet below to display the current term description
- You may use additional fields as necessary, arguments, arrays, etc.
<?php $current = taxonomy_term_load(arg(2)); ?> <?php if ($current): ?> <div class="taxonomy-description"> <?php echo $current->description; ?> </div> <?php endif; ?>
Views can do this. Views is a UI for sql searches so you are setting the definition for the query that will be made of the content database.
Create a view to display a taxonomy term with a page with a path configured along this line category/%. The % is a wildcard that will make the view respond to any value applied in the URL that matches this format.
Set up your display and any filters desired.
Views block displayed by Taxonomy Term which current node, content, page or URL is categorized using Contextual Filters
We all know by now Drupal 7 Views is powerful enough to filter and display dynamically any content in various and flexible ways, and the options are endless. It's just a matter of how and where you want it set up.
- You have a Content Type (Node), let's say a content type called "Blogs" where content items added may be "Article about Drupal 7", "Article about Drupal 8", "Article about Joomla", "Article about Magento", and list goes on and etc.
- You have a friendly URL based structure (probably using a Path Auto module generated URL aliases for your content types, content nodes, taxonomy vocabulary and terms)
- You have a Taxonomy and Terms setup such as: "Blog Category" (Vocabulary), then listed under this are terms such as "Drupal", "Joomla", "Magento", and etc.
- You want to display all blog contents in your block for this to show on any blog sections, listings or blog pages - no problem you can do that with the filter criteria alone (filtering by Content Type), then under Structure > Blocks adjust this block to show where needed (show in specific URLs only among other choices)
- You want to display all contents "tagged" or categorized under a specific term in your block
How to Use Contextual Filters to show Blocks dynamically according to Taxonomy Term
- Set-up your block to display content, fields, etc. as required - format settings, fields settings, may also include setting up Relationships to show fields from other Content Types, entities, etc.
- Under Contextual Filters, add Taxonomy term: Name
- Under "When the Filter Value is NOT Available", choose "Provide default value"
- Under "Type", choose "Raw Value from URL" - this is due to your requirement to show blocks according to for example /blogs/category/drupal (this URL being the term listing or feed for "Drupal")
- In our example, "Path Component" is set to 3, because we want to target the term "drupal" in the URL /blogs/category/drupal (drupal being in the third placement of the URL)
- Check "Use path alias"
- Save then test by typing in drupal in your preview
- Enable the block in Structure > Block, then viola!
- You have a Views for content and it seems inserting a taxonomy term is not available from the field list filter. By default, only options unique or related to Content are available by default, and taxonomy term options seem missing or limited. We need to make these available from the options as well.
- In your Views page, add a relationship - choose Content: Taxonomy terms on node
If you want to customize your Flag (Bookmark, Likes) module display in a custom theme node page or tpl file, for example in a custom node--blog.tpl below, you may use code examples and adjust as needed.