You are here

function theme_media_gallery_collection in Media Gallery 7

Same name and namespace in other branches
  1. 7.2 media_gallery.theme.inc \theme_media_gallery_collection()

Displays a collection of galleries as a grid of teasers.

File

./media_gallery.theme.inc, line 11
Media Gallery Theming

Code

function theme_media_gallery_collection($variables) {
  $element = $variables['element'];
  $collection = $element['#term'];
  $columns = $collection->media_gallery_columns[LANGUAGE_NONE][0]['value'];
  $grid = '<div class="media-gallery-collection mg-collection-' . $collection->vocabulary_machine_name . ' mg-col mg-col-' . $columns . '">';
  foreach (element_children($element['nodes']) as $nid) {

    // This invokes node.tpl.php, and where that calls render($content),
    // theme_media_gallery_teaser() is called.
    // Add the term to the node so that we can use it to configure the meta data
    $element['nodes'][$nid]['#node']->term = $collection;
    $teaser = drupal_render($element['nodes'][$nid]);

    // @todo Implement real display needs.
    $cell = $teaser;
    $grid .= $cell;
  }
  $grid .= '</div>';

  // Replace the 'nodes' element with the rendered grid while preserving its
  // weight, so that other fields that are part of the collection term get
  // rendered normally, and in the correct order.
  $weight = isset($element['nodes']['#weight']) ? $element['nodes']['#weight'] : 0;
  $element['nodes'] = array(
    '#markup' => $grid,
    '#weight' => $weight,
  );
  $output = drupal_render_children($element);
  return $output;
}