You are here

juicebox.api.php in Juicebox HTML5 Responsive Image Galleries 7

Same filename and directory in other branches
  1. 8.3 juicebox.api.php
  2. 8.2 juicebox.api.php
  3. 7.2 juicebox.api.php

Hooks provided by the Juicebox module.

File

juicebox.api.php
View source
<?php

/**
 * @file
 * Hooks provided by the Juicebox module.
 */

/**
 * Allow modules to alter the data that's used to to build a Juicebox gallery
 * and XML.
 *
 * @param array $data
 *   An associative array containing all the content and configuration data that
 *   will be used to render a Juicebox gallery and XML. This includes:
 *   - jlib_options: An associative array of Juicebox configuration options
 *     (these will be added as attributes to the "juicebox" element of the XML).
 *   - images: An indexed array of image data (this will be used to construct
 *     the attributes of each "image" element of the XML, along with the "title"
 *     and "caption" elements nested within).
 * @param array $settings
 *   An associative array of raw settings for the gallery. Provided for context.
 * @param array $source_info
 *   An associative array that provides source infomation for the gallery.
 *   Provided for context. This includes:
 *   - xml_path: The path for the gallery's XML which can also be used as an
 *     unique ID for the gallery. The pieces of this path also describe the
 *     data components from the source that are used to build the gallery.
 *   - source: The source object that was used for the XML data. If $xml_path
 *     starts with "juicebox/xml/view" this will be a rendered view object. If
 *     $xml_path starts with "juicebox/xml/entity" this will be an entity object
 *     (such as a node), etc.
 */
function hook_juicebox_gallery_data_alter(&$data, $settings, $source_info) {

  // See if this is a gallery sourced from a view.
  if (strpos($source_info['xml_path'], 'juicebox/xml/view') === 0) {
    $view = $source_info['source'];

    // Assume we have a view called "galleries" and a page called "page_1" that
    // structures galleries based on a taxonomy term contextual filter. We want
    // the juicebox "galleryDescription" option to be the term description, but
    // because this term description is dynamic (based on contextual filter) we
    // can't statically define it in the view's Juicebox settings. This hook
    // let's us do the job dynamically.
    if ($view->name == 'galleries' && $view->current_display == 'page_1') {
      if (!empty($view->args)) {
        $term = taxonomy_term_load($view->args[0]);
        if (!empty($term->description)) {
          $data['jlib_options']['galleryDescription'] = strip_tags($term->description);
        }
      }
    }
  }
}

Functions

Namesort descending Description
hook_juicebox_gallery_data_alter Allow modules to alter the data that's used to to build a Juicebox gallery and XML.