Create a Better Photo Gallery in Drupal - Part 3

The next part of the new gallery that I want to implement is to group the galleries by their respective categories. The first step is to edit my original photo_gallery view and add an additional display.

I've called it 'Taxonomy', and it's similar to the original 'All Galleries' view. The differences are that I've added the taxonomy term as an argument, removed the header, and updated the path to be gallery/%. The other thing that I need to do is overwrite the output of the original 'All Galleries' View by creating a file called views-view--photo-gallery--page-1.tpl.php and placing it within my theme directory.

Within that file, I can remove the standard content output. This still outputs the heading information from the original View. I can now use the function called 'views_embed_view' to embed my taxonomy display onto the display. The views_embed_view function is as follows:

<?php views_embed_view('my_view', 'block_1', $arg1, $arg2); ?>

So, to display the galleries that are assigned the taxonomy of 'tournaments', I can use the following:

<?php print views_embed_view('photo_gallery', 'page_2', 'tournaments'); ?>

To reduce the amount of code needed, I can use the following 'while' loop to generate the same code for each taxonomy term. It dynamically retrieves the relevant taxonomy terms from the database, and uses each name as the argument for the view.

<?php
$terms = db_query("SELECT * FROM {term_data} WHERE vid = 1");
while ($term = db_fetch_array($terms)) {
  print '<h3>' . $term['name'] . '</h3>';
  print views_embed_view('gallery', 'page_2', $term['name']);
}
?>

Was this useful?

Sign up here and get more like this delivered straight to your inbox every day.

About me

Picture of Oliver

I'm an Acquia-certified Drupal Triple Expert with 17 years of experience, an open-source software maintainer and Drupal core contributor, public speaker, live streamer, and host of the Beyond Blocks podcast.