You are here

function _cloud_zoom_check_path in Cloud Zoom 7

Same name and namespace in other branches
  1. 8 cloud_zoom.module \_cloud_zoom_check_path()

Internal function for checking for the cloud zoom JS in a path

3 calls to _cloud_zoom_check_path()
cloud_zoom_library in ./cloud_zoom.module
Implements hook_library()
cloud_zoom_requirements in ./cloud_zoom.install
Implementation of hook_requirements().
_cloud_zoom_get_path in ./cloud_zoom.module
Retrieve the expected path to the example library.

File

./cloud_zoom.module, line 60
This module integrates the Cloud Zoom JQuery library from: http://www.professorcloud.com/mainsite/cloud-zoom.htm

Code

function _cloud_zoom_check_path($path) {

  // Use advanged static caching
  static $cache;
  if (!isset($cache)) {
    $cache['paths'] =& drupal_static(__FUNCTION__);
  }

  // If this path hasn't been checked, check it now.
  if (!isset($cache['paths'][$path])) {

    // Scan the path for the file pattern
    if ($file = file_scan_directory($path, '/cloud-zoom\\..+\\.min\\.js/')) {

      // If found, shift the entry out of the single-item (hopefully) array.
      $file = array_shift($file);

      // Now parse the JS for version
      $content = file_get_contents($file->uri);
      preg_match('#Cloud Zoom V(?P<version>[0-9\\.]+)#', $content, $matches);
      $file->cz_version = isset($matches['version']) ? $matches['version'] : FALSE;

      // Store it in the cache
      $cache['paths'][$path] = $file;
    }
    else {

      // No JS foundm store false so its statically cached
      $cache['paths'][$path] = FALSE;
    }
  }

  // Return the item from the cache
  return $cache['paths'][$path];
}