Create a Better Photo Gallery in Drupal - Part 2.1

Posted: 22nd October 2010

Tags: drupal

Today, I realised that I hadn't published the code that I used to create the total figures of galleries and photos at the top of the gallery (I said at the end of Part 2 that I'd include it in Part 3, but I forgot). So, here it is:

<?php

// Queries the database and returns a list of nids of published galleries.
$galleries = db_query("SELECT nid FROM {node} WHERE type = 'gallery' AND status = 1");
// Resets the number of photos.
$output = 0;
// Prints a list of nids of published galleries.
while($gallery = db_fetch_array($galleries)) {
  $gallery_id = $gallery['nid'];
  $photos = $photos + db_result(db_query("SELECT COUNT(*) FROM node n, content_type_photo ctp WHERE n.status = 1 AND n.type = 'photo' AND ctp.field_gallery_nid = $gallery_id AND n.nid = ctp.nid"));
}

// Prints the output.
print 'There ';
if($photos == 1) {
  print 'is';
} 
else {
  print 'are';
}
print ' currently ';
print $photos . ' ';
if($photos == 1) {
  print 'photo';
} 
else {
  print 'photos';
} 
print ' in ';

// Counts the number of published galleries on the site.
$galleries = db_result(db_query("SELECT COUNT(*) FROM {node} WHERE TYPE = 'gallery' AND STATUS = 1"));

// Prints the number of published galleries.
print $galleries;
if ($galleries == 1) {
  print ' gallery';
} 
else {
  print ' galleries';
}
print '.';
?>

It was applied to the view as a header which had the input format set to PHP code.

About the Author

Picture of Oliver

Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Drupal Developer at Microserve and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.

Availability

Currently have limited part-time capacity

Currently no spare full-time capacity.