You are here

imagepicker.module in Image Picker 7

Same filename and directory in other branches
  1. 5.2 imagepicker.module
  2. 5 imagepicker.module
  3. 6.2 imagepicker.module

@author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL

Enables permitted roles to upload images for insertion into configured nodes.

File

imagepicker.module
View source
<?php

/**
 * @file
 * @author Bob Hutchinson http://drupal.org/user/52366
 * @copyright GNU GPL
 *
 * Enables permitted roles to upload images for insertion into configured nodes.
 */
define('IMAGEPICKER_FILES_DIR', 'imagepicker');
define('IMAGEPICKER_THUMBS_DIR', 'thumbs');
define('IMAGEPICKER_BROWSER_DIR', 'browser');
define('IMAGEPICKER_ORIG_DIR', 'orig');
define('IMAGEPICKER_WATERMARK_DIR', 'watermarks');
define('IMAGEPICKER_DESC_LEN', 30);
define('IMAGEPICKER_FILE_SCHEME', file_default_scheme() . '://');
define('IMAGEPICKER_ADMIN_PATH', 'admin/config/media/imagepicker');
define('IMAGEPICKER_PATH', drupal_get_path('module', 'imagepicker'));
define('IMAGEPICKER_INSERT_TEMPLATE', 'imagepicker_insert_template.txt');

// Minimum PHP version for extension
define('IMAGEPICKER_UPLOAD_STATUS_MIN_PHP', '5.2.1');
define('IMAGEPICKER_UPLOAD_ID', 'UPLOAD_IDENTIFIER');

/**
 * Implement hook_help().
 */
function imagepicker_help($path, $arg) {
  switch ($path) {
    case 'admin/help#imagepicker':
      $output = '<p>' . t('Adds an advanced image upload form under the node body part.') . '</p>';
      return $output;
  }
}

/**
 * Implement hook_perm().
 */
function imagepicker_permission() {
  return array(
    'administer imagepicker' => array(
      'title' => t('Administer Imagepicker'),
      'description' => t('Access the Imagepicker administration pages.'),
    ),
    'use imagepicker' => array(
      'title' => t('Use Imagepicker'),
      'description' => t('Allow roles to use Imagepicker.'),
    ),
    'access own imagepicker' => array(
      'title' => t('Access own Imagepicker'),
      'description' => t('Allow users to have My Imagepicker in My account.'),
    ),
    'use public imagepicker' => array(
      'title' => t('Use public imagepicker'),
      'description' => t('Allow the use of public groups.'),
    ),
    'create public imagepicker groups' => array(
      'title' => t('Create public groups'),
      'description' => t('Allow the creation of public groups.'),
    ),
  );
}

/**
 * Implement hook_init().
 */
function imagepicker_init() {
  global $user;

  #  module_load_include('inc', 'imagepicker', 'imagepicker.theme');
  if ($user->uid > 0) {
    module_load_include('inc', 'imagepicker', 'imagepicker.functions');
    module_load_include('inc', 'imagepicker', 'imagepicker.form-elements');
  }
}

/**
 * Implements hook_views_api().
 */
function imagepicker_views_api() {
  return array(
    'api' => 3,
    'path' => IMAGEPICKER_PATH . '/views',
  );
}

/**
 * Implement hook_menu().
 */
function imagepicker_menu() {
  $items = array();
  $items['imagepicker'] = array(
    'title' => 'Image picker',
    'page callback' => 'imagepicker_box',
    'access callback' => 'imagepicker_access_use',
    'type' => MENU_CALLBACK,
    'file' => 'imagepicker.upload.inc',
    'theme callback' => 'imagepicker_access_theme',
  );
  $items['imagepicker/upload'] = array(
    'title' => 'Upload',
    'access callback' => 'imagepicker_access_use',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'weight' => 0,
  );
  $items['imagepicker/browse'] = array(
    'title' => 'Browse',
    'page callback' => 'imagepicker_box',
    'access callback' => 'imagepicker_access_use',
    'type' => MENU_LOCAL_TASK,
    'weight' => 2,
  );
  $items['imagepicker/browse_public'] = array(
    'title' => 'Browse Public',
    'page callback' => 'imagepicker_box',
    'access callback' => 'imagepicker_access_use_public',
    'type' => MENU_LOCAL_TASK,
    'weight' => 3,
  );
  $items['imagepicker/groups'] = array(
    'title' => 'Groups',
    'page callback' => 'imagepicker_box',
    'access callback' => 'imagepicker_access_use_group',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.group.inc',
    'weight' => 4,
  );
  $items['imagepicker/browse/%imagepicker_id'] = array(
    'title' => 'Browse',
    'page callback' => 'imagepicker_box',
    'access callback' => 'imagepicker_access_use',
    'type' => MENU_LOCAL_TASK,
    'weight' => 2,
  );
  $items['imagepicker/edit'] = array(
    'title' => 'Edit image',
    'page callback' => 'imagepicker_box',
    'access callback' => 'imagepicker_access_use',
    'type' => MENU_CALLBACK,
    'file' => 'imagepicker.edit.inc',
  );
  $items['imagepicker/image'] = array(
    'title' => 'Imagepicker',
    'page callback' => 'imagepicker_box',
    'access arguments' => array(
      'access content',
    ),
    'type' => MENU_CALLBACK,
  );

  // uploadprogress callback
  $items['imagepicker/progress'] = array(
    'page callback' => 'imagepicker_uploadprogress_callback',
    'access arguments' => array(
      TRUE,
    ),
    'type' => MENU_CALLBACK,
  );

  // admin settings
  $items[IMAGEPICKER_ADMIN_PATH] = array(
    'title' => 'Imagepicker',
    'description' => 'Imagepicker settings and administration.',
    'page callback' => 'imagepicker_settings_page',
    'access callback' => 'imagepicker_access_admin',
    'type' => MENU_NORMAL_ITEM,
    'file' => 'imagepicker.admin.inc',
    'weight' => 0,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/general'] = array(
    'title' => 'General',
    'description' => 'Imagepicker settings.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_settings_page',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -10,
  );

  // admin groups
  $items[IMAGEPICKER_ADMIN_PATH . '/groups'] = array(
    'title' => 'Groups',
    'description' => 'Show user groups.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_groups',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -8,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/groups/users'] = array(
    'title' => 'Users',
    'description' => 'Show user groups.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_groups',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -10,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/groups/stats'] = array(
    'title' => 'Stats',
    'description' => 'Show user group stats.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_groups',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -8,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/groups/user/%imagepicker_id'] = array(
    'title' => 'Groups',
    'description' => 'Show user groups.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_groups',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -7,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/groups/user/%imagepicker_id/stats'] = array(
    'title' => 'Stats',
    'description' => 'Show user stats.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_groups',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -8,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/groups/autocomplete'] = array(
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_group_search_autocomplete',
    'type' => MENU_CALLBACK,
    'file' => 'imagepicker.admin.inc',
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/stats'] = array(
    'title' => 'Stats All',
    'description' => 'Show user statistics.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -7,
  );

  // admin images
  $items[IMAGEPICKER_ADMIN_PATH . '/images'] = array(
    'title' => 'Images',
    'description' => 'Show user images.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -9,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/browse_public'] = array(
    'title' => 'Browse All',
    'description' => 'Browse user images.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -9,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/list_public'] = array(
    'title' => 'List All',
    'description' => 'List user images.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -8,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/users'] = array(
    'title' => 'Users',
    'description' => 'List users.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -10,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/user/%imagepicker_id/browse'] = array(
    'title' => 'Browse',
    'description' => 'Browse user images.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -4,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/user/%imagepicker_id/browseadmin'] = array(
    'title' => 'List',
    'description' => 'List user images.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -3,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/user/%imagepicker_id/upload'] = array(
    'title' => 'Upload',
    'description' => 'Browse user images.',
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -6,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/user/%imagepicker_id/stats'] = array(
    'title' => 'Stats',
    'description' => 'Browse user images.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -2,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/user/%imagepicker_id/groups'] = array(
    'title' => 'Groups',
    'description' => 'List user groups.',
    'access callback' => 'imagepicker_access_admin_group',
    'page callback' => 'imagepicker_admin_images',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -1,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/images/autocomplete'] = array(
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_user_autocomplete',
    'type' => MENU_CALLBACK,
    'file' => 'imagepicker.admin.inc',
  );

  // Import
  $items[IMAGEPICKER_ADMIN_PATH . '/import'] = array(
    'title' => 'Import',
    'description' => 'Manage bulk imports.',
    'page callback' => 'imagepicker_admin_import',
    'access callback' => 'imagepicker_access_import',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -8,
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/import/autocomplete'] = array(
    'access callback' => 'imagepicker_access_import',
    'page callback' => 'imagepicker_user_autocomplete',
    'type' => MENU_CALLBACK,
    'file' => 'imagepicker.admin.inc',
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/import/user/%imagepicker_id'] = array(
    'title' => 'Import',
    'description' => 'Import files.',
    'access callback' => 'imagepicker_access_import',
    'page callback' => 'imagepicker_admin_import',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.admin.inc',
    'weight' => -3,
  );

  // multitask
  $items[IMAGEPICKER_ADMIN_PATH . '/multitask'] = array(
    'title' => 'Bulk Operations',
    'page callback' => 'imagepicker_multitask',
    'access callback' => 'imagepicker_access_admin',
    'type' => MENU_CALLBACK,
  );

  // orphans
  $items[IMAGEPICKER_ADMIN_PATH . '/orphans'] = array(
    'title' => 'Orphaned images',
    'description' => 'Manage orphaned images.',
    'page callback' => 'imagepicker_admin_orphans',
    'access callback' => 'imagepicker_access_admin',
    'type' => MENU_CALLBACK,
    'file' => 'imagepicker.admin.inc',
  );
  $items[IMAGEPICKER_ADMIN_PATH . '/orphans/autocomplete'] = array(
    'access callback' => 'imagepicker_access_admin',
    'page callback' => 'imagepicker_user_autocomplete',
    'type' => MENU_CALLBACK,
    'file' => 'imagepicker.admin.inc',
  );

  // My imagepicker
  $items['user/%imagepicker_uid/imagepicker'] = array(
    'title' => 'My imagepicker',
    'description' => 'Manage your imagepicker files.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
    ),
    'access callback' => 'imagepicker_access_user_pages',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => 0,
  );
  $items['user/%imagepicker_uid/imagepicker/upload'] = array(
    'title' => 'Upload',
    'description' => 'Upload images.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
      3,
    ),
    'access callback' => 'imagepicker_access_user_pages',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => -9,
  );
  $items['user/%imagepicker_uid/imagepicker/images/browse'] = array(
    'title' => 'Browse',
    'description' => 'Browse your imagepicker files.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
      3,
      4,
      5,
    ),
    'access callback' => 'imagepicker_access_user_pages',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => -7,
  );
  $items['user/%imagepicker_uid/imagepicker/images/browseadmin'] = array(
    'title' => 'List',
    'description' => 'List your imagepicker files.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
      3,
      4,
      5,
    ),
    'access callback' => 'imagepicker_access_user_pages',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => -6,
  );

  // groups
  $items['user/%imagepicker_uid/imagepicker/images/browse_public'] = array(
    'title' => 'Browse Public',
    'description' => 'Browse public imagepicker files.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
      3,
      4,
      5,
    ),
    'access callback' => 'imagepicker_access_user_public',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => -5,
  );
  $items['user/%imagepicker_uid/imagepicker/groups/browse'] = array(
    'title' => 'Groups',
    'description' => 'Manage your imagepicker groups.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
      3,
      4,
      5,
    ),
    'access callback' => 'imagepicker_access_user_groups',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => -4,
  );
  $items['user/%imagepicker_uid/imagepicker/stats'] = array(
    'title' => 'Stats',
    'description' => 'View your imagepicker statistics.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
      3,
    ),
    'access callback' => 'imagepicker_access_user_groups',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => -3,
  );
  $items['user/%imagepicker_uid/imagepicker/config'] = array(
    'title' => 'Config',
    'description' => 'Administer user configuration.',
    'page callback' => 'imagepicker_user_page',
    'page arguments' => array(
      1,
      3,
    ),
    'access callback' => 'imagepicker_access_user_config',
    'type' => MENU_LOCAL_TASK,
    'file' => 'imagepicker.user.inc',
    'weight' => -2,
  );

  // multitask
  $items['user/%imagepicker_uid/imagepicker/multitask'] = array(
    'title' => 'Bulk Operations',
    'page callback' => 'imagepicker_multitask',
    'access callback' => 'imagepicker_access_user_pages',
    'type' => MENU_CALLBACK,
  );
  return $items;
}

/**
 * menu placeholder functions
 */
function imagepicker_id_load($arg) {
  return is_numeric($arg) ? $arg : FALSE;
}
function imagepicker_uid_load($arg) {
  global $user;
  return is_numeric($arg) && $user->uid == $arg ? $arg : FALSE;
}
function imagepicker_path_load($arg) {
  $allowed = array(
    'upload',
    'images',
    'groups',
    'stats',
  );
  return in_array($arg, $allowed) ? $arg : FALSE;
  return $arg;
}
function imagepicker_func_load($arg) {
  $allowed = array(
    'browse',
    'browseadmin',
    'edit',
    'delete',
    'browse_public',
  );
  return in_array($arg, $allowed) ? $arg : FALSE;
  return $arg;
}

/* access callbacks */
function imagepicker_access_import() {
  if (imagepicker_variable_get('imagepicker_import_enabled', 0) && user_access('administer imagepicker')) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_user_pages() {
  if (imagepicker_variable_get('imagepicker_account_enabled', 1) && user_access('access own imagepicker')) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_user_config() {
  if (imagepicker_variable_get('imagepicker_account_enabled', 1) && user_access('access own imagepicker') && imagepicker_variable_get('imagepicker_user_config_enable', 1)) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_user_groups() {
  if (imagepicker_variable_get('imagepicker_account_enabled', 1) && user_access('access own imagepicker') && imagepicker_variable_get('imagepicker_groups_enabled', 1)) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_user_public() {
  if (imagepicker_variable_get('imagepicker_account_enabled', 1) && user_access('access own imagepicker') && imagepicker_variable_get('imagepicker_groups_enabled', 1) && user_access('use public imagepicker') && imagepicker_variable_get('imagepicker_public_enabled', 1)) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_admin_group() {
  if (imagepicker_variable_get('imagepicker_groups_enabled', 1) && user_access('administer imagepicker')) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_admin() {
  if (user_access('administer imagepicker')) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_use() {
  if (user_access('use imagepicker')) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_use_public() {
  if (user_access('use public imagepicker') && imagepicker_variable_get('imagepicker_public_enabled', 1)) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_use_group() {
  if (user_access('use imagepicker') && imagepicker_variable_get('imagepicker_groups_enabled', 1)) {
    return TRUE;
  }
  return FALSE;
}
function imagepicker_access_theme() {
  if (imagepicker_variable_get('imagepicker_use_admin_theme', 0) && variable_get('node_admin_theme', 0)) {
    return variable_get('admin_theme');
  }
  return FALSE;
}

/**
 * Implements hook_block_info().
 *
 * This hook declares what blocks are provided by the module.
 */
function imagepicker_block_info() {
  $blocks = array();
  if (imagepicker_variable_get('imagepicker_galleryblocks_enabled', 0) && module_exists('colorbox')) {
    $howmany = imagepicker_variable_get('imagepicker_galleryblocks_howmany', 0);
    if ($howmany) {
      for ($i = 1; $i <= $howmany; $i++) {
        if (imagepicker_variable_get('imagepicker_galleryblocks_enable_' . $i, 0)) {
          $blocks[$i]['info'] = t('Imagepicker Gallery block !i', array(
            '!i' => $i,
          ));
          $blocks[$i]['cache'] = DRUPAL_NO_CACHE;
        }
      }
    }
  }
  return $blocks;
}

/**
 * Implements hook_block_view().
 *
 * This hook generates the contents of the blocks themselves.
 */
function imagepicker_block_view($delta = '') {
  if ($delta) {
    $block = array(
      'subject' => imagepicker_variable_get('imagepicker_galleryblocks_title_' . $delta, t('Gallery !i', array(
        '!i' => $delta,
      ))),
      'content' => imagepicker_display_block($delta),
    );
    return $block;
  }
  return array();
}

/**
 * Implements hook_block_configure().
 *
 * This hook declares configuration options for blocks provided by this module.
 */
function imagepicker_block_configure($delta = '') {
  $form = imagepicker_block_form($delta);
  return $form;
}

/**
 * Implements hook_block_save().
 *
 * This hook declares how the configured options for a block
 * provided by this module are saved.
 */
function imagepicker_block_save($delta = '', $edit = array()) {
  imagepicker_block_form_submit($delta, $edit);
  return;
}

/**
 * Function to display the contents of a block.
 */
function imagepicker_display_block($i) {

  // fetch all the images for the group
  $boxtype = 'colorbox';
  $gid = imagepicker_variable_get('imagepicker_galleryblocks_group_' . $i, '');
  $clickon = imagepicker_variable_get('imagepicker_galleryblocks_link_' . $i, t('Photo Gallery !i', array(
    '!i' => $i,
  )));
  $textarea = imagepicker_variable_get('imagepicker_galleryblocks_text_' . $i, '');
  $group = imagepicker_get_user_group($gid);
  if ($group) {
    $gal = $group->group_name;
  }
  else {
    return;
  }
  $query = db_select('users', 'u');
  $query
    ->fields('i', array(
    'img_id',
    'uid',
    'img_name',
    'img_title',
    'img_description',
  ));
  $query
    ->join('imagepicker', 'i');
  $query
    ->leftjoin('imagepicker_group_images', 'g', 'g.img_id = i.img_id');
  $query
    ->leftjoin('imagepicker_user_groups', 'iug', 'iug.gid = g.gid');
  $query
    ->condition('u.uid', 'iug.uid');
  $query
    ->condition('iug.group_name', $gal);
  $rows = $query
    ->execute();
  $ct = 0;
  $content = "";
  $class = '';
  foreach ($rows as $img) {
    $name = $img->img_name;
    $t = $img->img_title;
    $d = $img->img_description;
    $title = $d ? $d : $t;
    $full = imagepicker_get_image_path($img, 'full', array(
      'uid' => $img->uid,
    ));

    // munge this so that it can go through l() when using relative url setting
    $full = preg_replace("#^" . base_path() . "#", '', $full);
    if ($ct) {
      $class = "js-hide";
      $content .= l($name, $full, array(
        'html' => $ct ? FALSE : TRUE,
        'attributes' => array(
          'class' => "{$boxtype} {$class}",
          'rel' => $gal,
          'title' => $title,
        ),
      ));
    }
    else {

      // first one is visible
      $link = l($clickon, $full, array(
        'html' => $ct ? FALSE : TRUE,
        'attributes' => array(
          'class' => "{$boxtype} {$class}",
          'rel' => $gal,
          'title' => $title,
        ),
      ));
      if ($textarea && preg_match("/\\[link\\]/", $textarea)) {
        $content .= preg_replace("/\\[link\\]/", $link, $textarea);
      }
      else {
        $content .= $textarea . $link;
      }
    }
    $ct++;
  }
  return theme('imagepicker_display_block', array(
    'content' => $content,
  ));
}

// the block form
function imagepicker_block_form($i) {
  $groups = imagepicker_get_all_groups();
  $form['imagepicker_galleryblocks_link_' . $i] = array(
    '#type' => 'textfield',
    '#title' => t('Link text for Gallery Block !i', array(
      '!i' => $i,
    )),
    '#default_value' => imagepicker_variable_get('imagepicker_galleryblocks_link_' . $i, t('Photo Gallery !i', array(
      '!i' => $i,
    ))),
    '#required' => TRUE,
    '#description' => t('Set the link text for this block. Can contain html.'),
    '#maxlength' => 255,
  );
  $form['imagepicker_galleryblocks_group_' . $i] = array(
    '#type' => 'select',
    '#title' => t('Select a group for this block'),
    '#default_value' => imagepicker_variable_get('imagepicker_galleryblocks_group_' . $i, ''),
    '#options' => $groups,
  );
  $form['imagepicker_galleryblocks_text_' . $i] = array(
    '#type' => 'textarea',
    '#title' => t('Block text'),
    '#default_value' => imagepicker_variable_get('imagepicker_galleryblocks_text_' . $i, ''),
    '#required' => FALSE,
    '#description' => t("You can add some text to the block. To include the link in the text use the token '[link]'."),
  );
  $form['imagepicker_galleryblocks_enable_' . $i] = array(
    '#type' => 'value',
    '#value' => 1,
  );
  $form['imagepicker_galleryblocks_grouptot'] = array(
    '#type' => 'value',
    '#value' => count($groups),
  );
  return $form;
}
function imagepicker_block_form_submit($i, $edit) {

  // clean out any existing ones
  imagepicker_variable_del('imagepicker_galleryblocks_link_' . $i);
  imagepicker_variable_del('imagepicker_galleryblocks_text_' . $i);
  imagepicker_variable_del('imagepicker_galleryblocks_group_' . $i);
  imagepicker_variable_del('imagepicker_galleryblocks_enable_' . $i);
  if ($edit['imagepicker_galleryblocks_enable_' . $i] && !empty($edit['imagepicker_galleryblocks_link_' . $i]) && $edit['imagepicker_galleryblocks_grouptot']) {
    imagepicker_variable_set('imagepicker_galleryblocks_link_' . $i, $edit['imagepicker_galleryblocks_link_' . $i]);
    imagepicker_variable_set('imagepicker_galleryblocks_text_' . $i, check_markup($edit['imagepicker_galleryblocks_text_' . $i]));
    imagepicker_variable_set('imagepicker_galleryblocks_group_' . $i, $edit['imagepicker_galleryblocks_group_' . $i]);
    imagepicker_variable_set('imagepicker_galleryblocks_enable_' . $i, $edit['imagepicker_galleryblocks_enable_' . $i]);
  }
}

/**
 * Implements hook_form_alter().
 */
function imagepicker_form_alter(&$form, &$form_state, $form_id) {
  global $user;
  if (user_access('use imagepicker')) {
    $weight = 1;
    $insert_type = '';

    // is this a node edit form
    if (!empty($form['#node_edit_form']) && preg_match('/node_form$/i', $form_id)) {

      // get the object
      $node = $form['#node'];

      #  $node_types = node_get_types('names');
      $node_types = node_type_get_names();

      // zxx issue. zxx stands for 'no language' but it might change....
      // we pick this up in theme_imagepicker which hands it to imagepicker_iframe.js
      $node_lang = imagepicker_variable_get('imagepicker_node_lang', '');
      $node_language = isset($node->language) ? $node->language : 'und';

      // issue 1470672
      $node_language = isset($node->body[$node_language]) ? $node_language : 'und';
      if (!$node_lang || $node_lang != $node_language) {
        imagepicker_variable_set('imagepicker_node_lang', $node_language);

        // don't know what the number is for, so hardwire it for now
        imagepicker_variable_set('imagepicker_node_pos', 0);
      }
      $node_type = in_array($node->type, imagepicker_variable_get('imagepicker_node_types_enabled', array_keys($node_types)), TRUE);
      if ($node_type) {
        $insert_type = 'node';
      }
    }
    elseif (module_exists('comment') && imagepicker_variable_get('imagepicker_comment_enabled', 0) && preg_match('/comment.*_form$/i', $form_id)) {
      $insert_type = 'comment';
    }
    elseif (($form_id == 'block_add_block_form' || $form_id == 'block_admin_configure') && imagepicker_variable_get('imagepicker_blocks_enabled', 0)) {
      $insert_type = 'block';
    }
    $width = imagepicker_variable_get('imagepicker_advanced_iframe_width', imagepicker_variable_get('imagepicker_advanced_iframe_width', "100%"), $user->uid);
    if (!preg_match("/%\$/", $width)) {
      $width .= 'px';
    }
    $height = imagepicker_variable_get('imagepicker_advanced_iframe_height', imagepicker_variable_get('imagepicker_advanced_iframe_height', 500), $user->uid);
    $border = imagepicker_variable_get('imagepicker_advanced_iframe_border', imagepicker_variable_get('imagepicker_advanced_iframe_border', "0"), $user->uid);
    if (imagepicker_get_colorbox_perms()) {
      $iurl = l('Run imagepicker', 'imagepicker', array(
        'query' => array(
          'width' => $width,
          'height' => $height,
          'iframe' => 'true',
        ),
        'attributes' => array(
          'class' => array(
            'colorbox-load',
          ),
        ),
      ));
    }
    else {
      $iurl = '<iframe id="imagepicker" style="width: ' . $width . '; height: ' . $height . 'px; border: ' . $border . ';" src="' . url('imagepicker') . '">Imagepicker requires iframe support.</iframe>';
    }
    $fselement = array(
      '#type' => 'fieldset',
      '#title' => t('Image picker'),
      '#collapsible' => 1,
      '#collapsed' => imagepicker_variable_get('imagepicker_advanced_collapsed', imagepicker_variable_get('imagepicker_advanced_collapsed', 0), $user->uid),
      '#weight' => $weight,
    );
    $mkelement = array(
      '#type' => 'markup',
      '#markup' => '<div id="imgp_tb">' . $iurl . '</div>',
    );
    if ($insert_type == 'node') {
      $form['body']['file_upload'] = $fselement;
      $form['body']['file_upload']['mpframe'] = $mkelement;
      $form['body']['#prefix'] = '<a name="body_hash"></a>' . (isset($form['body']['#prefix']) ? $form['body']['#prefix'] : '');
    }
    elseif ($insert_type == 'block') {
      $form['settings']['body_field']['file_upload'] = $fselement;
      $form['settings']['body_field']['file_upload']['mpframe'] = $mkelement;
      $form['settings']['body_field']['#prefix'] = '<a name="body_hash"></a>' . (isset($form['settings']['body_field']['#prefix']) ? $form['settings']['body_field']['#prefix'] : '');
    }
    elseif ($insert_type == 'comment') {
      $form['comment']['file_upload'] = $fselement;
      $form['comment']['file_upload']['mpframe'] = $mkelement;
      $form['comment']['#prefix'] = '<a name="body_hash"></a>' . (isset($form['comment']['#prefix']) ? $form['comment']['#prefix'] : '');
    }
  }
}
function imagepicker_get_user_group($gid) {
  $query = db_select('imagepicker_user_groups', 'g');
  $query
    ->fields('g', array(
    'gid',
    'uid',
    'group_name',
    'group_description',
    'state',
    'public',
    'avail_roles',
  ));
  $query
    ->condition('g.gid', $gid);
  $row = $query
    ->execute()
    ->fetchObject();
  if (isset($row->gid)) {
    return $row;
  }
  return FALSE;
}

// for blocks
function imagepicker_get_all_groups($override = NULL) {
  $public = FALSE;
  if ($override == NULL) {
    $public = imagepicker_variable_get('imagepicker_galleryblocks_public', 0);
  }
  else {
    $public = $override;
  }
  $data = FALSE;
  $query = db_select('imagepicker_user_groups', 'g');
  $query
    ->fields('g', array(
    'gid',
    'group_name',
  ));
  if ($public) {
    $query
      ->condition('g.public', 1);
  }
  $rows = $query
    ->execute();
  foreach ($rows as $row) {
    $query2 = db_select('imagepicker_group_images', 'gi');
    $query2
      ->addExpression('COUNT(DISTINCT gi.img_id)', 'ct');
    $query2
      ->join('imagepicker_user_groups', 'g', 'g.gid = gi.gid');
    $query2
      ->condition('g.gid', $row->gid);
    $row2 = $query2
      ->execute()
      ->fetchAssoc();
    $totcount = $row2['ct'];
    $data[$row->gid] = $row->group_name . ' - ' . format_plural($totcount, '1 image', '@count images');
  }
  return $data;
}
function imagepicker_get_colorbox_perms() {
  global $user;
  if (module_exists('colorbox') && (imagepicker_variable_get('imagepicker_account_enabled', 0) && imagepicker_variable_get('imagepicker_user_config_enable', 0) ? imagepicker_variable_get('imagepicker_advanced_colorbox', 0, $user->uid) : TRUE) && imagepicker_variable_get('imagepicker_advanced_colorbox', 0) && variable_get('colorbox_load', 0)) {
    return TRUE;
  }
  return FALSE;
}

/**
 * @param string $varname
 *   .
 * @param string $default
 *   .
 * @param int $uid
 *   .
 *
 * @return
 *   string.
 *
 */
function imagepicker_variable_get($varname, $default = NULL, $uid = FALSE) {

  // db table imagepicker_variables
  if (db_table_exists('imagepicker_variables')) {
    if (!$uid) {
      $uid = 0;
    }
    $query = db_select('imagepicker_variables', 'v');
    $query
      ->fields('v', array(
      'value',
    ));
    $query
      ->condition('v.name', $varname);
    $query
      ->condition('v.uid', $uid);
    $row = $query
      ->execute()
      ->fetchObject();
    return isset($row->value) ? unserialize($row->value) : $default;
  }
}
function imagepicker_variable_set($varname, $value, $uid = FALSE) {

  // db table imagepicker_variables
  if (!$uid) {
    $uid = 0;
  }
  if ($varname) {

    // from bootstrap
    db_merge('imagepicker_variables')
      ->key(array(
      'name' => $varname,
      'uid' => $uid,
    ))
      ->fields(array(
      'value' => serialize($value),
      'uid' => $uid,
    ))
      ->execute();
  }
}
function imagepicker_variable_del($varname, $uid = FALSE) {

  // db table imagepicker_variables
  if (!$uid) {
    $uid = 0;
  }
  if ($varname) {
    db_delete('imagepicker_variables')
      ->condition('name', $varname)
      ->condition('uid', $uid)
      ->execute();
  }
}

/**
 * Implements hook_file_download().
 */
function imagepicker_file_download($filepath) {
  $imgbasedir = imagepicker_get_files_directory(TRUE);
  $file = $imgbasedir . DIRECTORY_SEPARATOR . file_uri_target($filepath);
  if (file_exists($file) & is_file($file)) {

    // There is a file, and it's in our directory structure. So send it.
    $mimetype = file_get_mimetype($filepath);
    return array(
      'Content-type:' . $mimetype,
    );
  }
  else {
    $path_parts = explode('/', $filepath);
    if ($path_parts[0] == IMAGEPICKER_FILES_DIR) {

      // The file is allegedly in our directory, but doesn't exist.
      return -1;
    }
  }
}

/**
 * some common utilities
 */

/**
 * @param boolean $url
 * @param mixed $userdir
 * @param boolean $scheme
 * @return string
 */
function imagepicker_get_path($url = FALSE, $userdir = FALSE, $scheme = FALSE) {
  global $base_url;
  $dirsep = !$url ? DIRECTORY_SEPARATOR : '/';
  if (!$url && !$scheme) {
    $path = imagepicker_get_files_directory() . $dirsep;
  }
  else {
    if (imagepicker_variable_get('imagepicker_use_full_url', 0)) {
      $path = $base_url;
    }
    else {
      $path = base_path();
      $path = preg_replace("/\\/\$/", "", $path);
    }
    if ($scheme) {
      $path = IMAGEPICKER_FILES_DIR . $dirsep;
    }
    else {
      $path .= $dirsep . file_stream_wrapper_get_instance_by_scheme(file_default_scheme())
        ->getDirectoryPath() . $dirsep . IMAGEPICKER_FILES_DIR . $dirsep;
    }
  }
  if ($userdir) {
    $path .= imagepicker_get_userpath($userdir, $dirsep);
  }
  return $path;
}
function imagepicker_get_userpath($userdir, $dirsep = '/') {
  global $user;
  $path = '';
  $useruid = !is_array($userdir) ? $user->uid : $userdir['uid'];
  $path .= $useruid . $dirsep;
  return $path;
}

/**
 * @param object or array $img
 * @param string $type
 * @param boolean $public
 * @return string
 */
function imagepicker_get_image_path($img, $type = 'browser', $public = FALSE, $preset = FALSE) {
  $userdir = is_array($public) ? $public : TRUE;
  $imgbasedir = imagepicker_get_path(FALSE, $userdir);
  $found = FALSE;
  $imgpath = '';

  // $img is object or array
  if (is_object($img)) {
    $img_name = $img->img_name;
  }
  else {
    $img_name = $img['img_name'];
  }
  $suffix = '';
  switch ($type) {
    case 'browser':
      if (file_exists($imgbasedir . IMAGEPICKER_BROWSER_DIR . DIRECTORY_SEPARATOR . $img_name)) {
        $suffix = IMAGEPICKER_BROWSER_DIR;
        $found = TRUE;
      }
      elseif (file_exists($imgbasedir . IMAGEPICKER_THUMBS_DIR . DIRECTORY_SEPARATOR . $img_name)) {
        $suffix = IMAGEPICKER_THUMBS_DIR;
        $found = TRUE;
      }
      break;
    case 'full':
      if (file_exists($imgbasedir . $img_name)) {
        $suffix = NULL;
        $found = TRUE;
      }
      break;
    case 'thumb':
    default:
      if (file_exists($imgbasedir . IMAGEPICKER_THUMBS_DIR . DIRECTORY_SEPARATOR . $img_name)) {
        $suffix = IMAGEPICKER_THUMBS_DIR;
        $found = TRUE;
      }
      elseif (file_exists($imgbasedir . IMAGEPICKER_BROWSER_DIR . DIRECTORY_SEPARATOR . $img_name)) {
        $suffix = IMAGEPICKER_BROWSER_DIR;
        $found = TRUE;
      }
      break;
    case 'watermarks':
      if (file_exists($imgbasedir . $img_name)) {
        $suffix = IMAGEPICKER_WATERMARK_DIR;
        $found = TRUE;
      }
      break;
    case 'orig':
      if (file_exists($imgbasedir . $img_name)) {
        $suffix = IMAGEPICKER_ORIG_DIR;
        $found = TRUE;
      }
      break;
  }
  if ($found) {
    if ($suffix) {
      if (imagepicker_variable_get('imagepicker_use_full_url', 0) || variable_get('file_default_scheme', 'public') == 'private') {
        if (module_exists('image') && imagepicker_variable_get('imagepicker_image_enable', 0) && $preset && $suffix == IMAGEPICKER_THUMBS_DIR) {
          $imgpath = image_style_url($preset, IMAGEPICKER_FILE_SCHEME . IMAGEPICKER_FILES_DIR . '/' . imagepicker_get_userpath($userdir) . $suffix . '/' . $img_name);
        }
        else {
          $imgpath = file_create_url(IMAGEPICKER_FILE_SCHEME . IMAGEPICKER_FILES_DIR . '/' . imagepicker_get_userpath($userdir) . $suffix . '/' . $img_name);
        }
      }
      else {
        if (module_exists('image') && imagepicker_variable_get('imagepicker_image_enable', 0) && $preset && $suffix == IMAGEPICKER_THUMBS_DIR) {
          $imgpath = image_style_url($preset, IMAGEPICKER_FILE_SCHEME . IMAGEPICKER_FILES_DIR . '/' . imagepicker_get_userpath($userdir) . $suffix . '/' . $img_name);
        }
        else {
          $imgpath = imagepicker_get_path(TRUE, $userdir) . $suffix . '/' . $img_name;
        }
      }
    }
    else {
      if (imagepicker_variable_get('imagepicker_use_full_url', 0) || variable_get('file_default_scheme', 'public') == 'private') {
        if (module_exists('image') && imagepicker_variable_get('imagepicker_image_enable', 0) && $preset) {
          $imgpath = image_style_url($preset, IMAGEPICKER_FILE_SCHEME . IMAGEPICKER_FILES_DIR . '/' . imagepicker_get_userpath($userdir) . $img_name);
        }
        else {
          $imgpath = file_create_url(IMAGEPICKER_FILE_SCHEME . IMAGEPICKER_FILES_DIR . '/' . imagepicker_get_userpath($userdir) . $img_name);
        }
      }
      else {
        if (module_exists('image') && imagepicker_variable_get('imagepicker_image_enable', 0) && $preset) {
          $imgpath = image_style_url($preset, IMAGEPICKER_FILE_SCHEME . IMAGEPICKER_FILES_DIR . '/' . imagepicker_get_userpath($userdir) . $img_name);
        }
        else {
          $imgpath = imagepicker_get_path(TRUE, $userdir) . $img_name;
        }
      }
    }
  }
  return $imgpath ? $imgpath : '';
}
function imagepicker_get_files_directory($system_only = FALSE) {
  $file_default_scheme = file_default_scheme();
  $drupal_path = file_stream_wrapper_get_instance_by_scheme($file_default_scheme)
    ->getDirectoryPath();
  if ($file_default_scheme == 'private') {
    $drupaldir = $drupal_path;
  }
  else {
    $drupaldir = str_replace('/', DIRECTORY_SEPARATOR, getcwd()) . DIRECTORY_SEPARATOR . $drupal_path;
  }
  if ($system_only) {
    return $drupaldir;
  }
  $dir = $drupaldir . DIRECTORY_SEPARATOR . IMAGEPICKER_FILES_DIR;
  return $dir;
}

/**
 * @file
 * @author Bob Hutchinson http://drupal.org/user/52366
 * @copyright GNU GPL
 *
 * Themimg functions for imagepicker.
 */

/**
 * theme registry
 */
function imagepicker_theme() {
  return array(
    'imagepicker' => array(
      'variables' => array(
        'content' => NULL,
      ),
      'template' => 'imagepicker',
    ),
    'imagepicker_iframe' => array(
      'variables' => array(
        'content' => NULL,
        'img' => NULL,
        'public' => NULL,
      ),
    ),
    'imagepicker_list' => array(
      'variables' => array(
        'header' => array(),
        'rows' => array(),
        'max' => 50,
        'message' => "",
        'pref' => "",
        'suff' => "",
        'label' => "",
      ),
    ),
    'imagepicker_stats' => array(
      'variables' => array(
        'header' => array(),
        'rows' => array(),
        'pref' => "",
        'suff' => "",
        'label' => "",
      ),
    ),
    'imagepicker_browser' => array(
      'variables' => array(
        'content' => array(),
        'forms' => array(),
        'message' => "",
        'help' => "",
        'label' => "",
      ),
    ),
    'imagepicker_fullpage' => array(
      'variables' => array(
        'image' => array(),
        'source' => "",
        'link' => 1,
      ),
    ),
    'imagepicker_quota_message' => array(
      'variables' => array(
        'message1' => "",
        'message2' => "",
        'form' => NULL,
        'label' => "",
        'help' => "",
      ),
    ),
    'imagepicker_fview' => array(
      'variables' => array(
        'img' => array(),
        'imgpath' => "",
        'info' => array(),
        'exifinfo' => array(),
      ),
    ),
    'imagepicker_image_edit_header' => array(
      'variables' => array(
        'image' => array(),
        'source' => "",
      ),
    ),
    'imagepicker_quota' => array(
      'variables' => array(
        'form' => NULL,
        'message' => "",
        'label' => "",
      ),
    ),
    'imagepicker_user_config' => array(
      'variables' => array(
        'form' => NULL,
        'label' => "",
        'help' => "",
        'message1' => "",
        'message2' => "",
      ),
    ),
    'imagepicker_userview' => array(
      'variables' => array(
        'view' => "",
        'form1' => NULL,
        'form2' => NULL,
        'form3' => NULL,
      ),
    ),
    'imagepicker_adminview' => array(
      'variables' => array(
        'view' => "",
        'form1' => NULL,
        'form2' => NULL,
        'form3' => NULL,
      ),
    ),
    #    'imagepicker_admin_images' => array(

    #      'variables' => array(

    #        'view' => "",

    #        'form1' => NULL,

    #        'form2' => NULL,

    #        'form3' => NULL,

    #      ),

    #    ),
    'imagepicker_insert' => array(
      'variables' => array(
        'img' => NULL,
        'public' => NULL,
        'form1' => NULL,
        'form2' => NULL,
      ),
    ),
    'imagepicker_upload_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_user_image_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_user_config_admin_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_admin_image_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_user_search_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_group_search_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_quota_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_edit_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_groups_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_group_delete_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_image_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_browse_groups_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_browse_public_groups_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_group_images_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_browse_order_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_browse_public_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_browse_search_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_settings_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_copy_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_browse_admin_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_browse_admin' => array(
      'variables' => array(
        'forms' => NULL,
        'pref' => '',
        'suff' => '',
        'label' => '',
      ),
    ),
    'imagepicker_multitask_delete_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_multitask_groups_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_import_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_import_dir_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_admin_orphans_form' => array(
      'render element' => 'form',
    ),
    'imagepicker_display_block' => array(
      'variables' => array(
        'content' => '',
      ),
    ),
  );
}

// preprocess for imagepicker.tpl.php
function template_preprocess_imagepicker(&$variables) {
  global $language;
  if (module_exists('admin_menu')) {
    admin_menu_suppress();
  }
  $variables['head_title'] = drupal_get_title() ? strip_tags(drupal_get_title()) : variable_get('site_name', 'Drupal');
  $variables['styles'] = drupal_get_css();
  $variables['scripts'] = drupal_get_js();

  // fix jquery version thing in the iframe

  #  if (module_exists('jquery_update')) {

  #    jquery_update_preprocess_page($variables);

  #  }
  $tabs = menu_local_tabs();
  $variables['tabs'] = theme('menu_local_tasks', array(
    'primary' => $tabs['#primary'],
  ));
  $variables['messages'] = imagepicker_strip_messages(theme('status_messages'));
  $variables['language'] = $language;
}

// set up the iframe
function theme_imagepicker_iframe($variables) {
  $content = $variables['content'];
  $img = isset($variables['img']) ? $variables['img'] : '';
  $public = isset($variables['public']) ? $variables['public'] : FALSE;
  drupal_add_css(IMAGEPICKER_PATH . '/imagepicker.css');
  if ($img) {
    global $user;
    $presetfilelink = '';
    $presetthumblink = '';
    if (module_exists('image') && imagepicker_variable_get('imagepicker_image_enable', 0)) {
      $preset_opts = image_style_options(FALSE);
      $pfl = array();
      $ptl = array();
      foreach (array_keys($preset_opts) as $preset_key) {
        $pfl[$preset_key] = imagepicker_get_image_path($img, 'full', $public ? array(
          'name' => $img->name,
          'uid' => $img->uid,
        ) : FALSE, $preset_key);
        $ptl[$preset_key] = imagepicker_get_image_path($img, 'thumb', $public ? array(
          'name' => $img->name,
          'uid' => $img->uid,
        ) : FALSE, $preset_key);
      }
      $presetfilelink = $pfl;
      $presetthumblink = $ptl;
    }
    $info = image_get_info(imagepicker_get_path(FALSE, TRUE) . $img->img_name);
    $thumbinfo = image_get_info(imagepicker_get_path(FALSE, TRUE) . IMAGEPICKER_THUMBS_DIR . DIRECTORY_SEPARATOR . $img->img_name);
    $img_title = $img->img_title;
    $settings = array(
      'imagepicker_iframe' => array(
        'imgpImageAlt' => $img_title ? $img_title : t('Image'),
        'imgpImageTitle' => $img_title ? htmlspecialchars_decode($img_title, ENT_QUOTES) : '',
        'imgpImageDesc' => preg_replace("/(\n|\r)/", '', nl2br($img->img_description)),
        'imgpFileLink' => imagepicker_get_image_path($img, 'full', $public ? array(
          'name' => $img->name,
          'uid' => $img->uid,
        ) : FALSE),
        'imgpPresetFileLink' => $presetfilelink,
        'imgpThumbLink' => imagepicker_get_image_path($img, 'thumb', $public ? array(
          'name' => $img->name,
          'uid' => $img->uid,
        ) : FALSE),
        'imgpPresetThumbLink' => $presetthumblink,
        'imgpPageLink' => url('imagepicker/image/' . $img->img_id),
        'imgpTemplate' => imagepicker_get_insert_template(),
        'imgpWidth' => $info['width'],
        'imgpHeight' => $info['height'],
        'imgpThumbWidth' => $thumbinfo['width'],
        'imgpThumbHeight' => $thumbinfo['height'],
        'isFCKeditor' => module_exists('fckeditor') ? 'yes' : 'no',
        'isWysiwyg' => module_exists('wysiwyg') ? 'yes' : 'no',
        'use_cssbox' => imagepicker_variable_get('imagepicker_use_cssbox', imagepicker_variable_get('imagepicker_use_cssbox', 0), $user->uid),
        'use_relbox' => imagepicker_variable_get('imagepicker_use_relbox', imagepicker_variable_get('imagepicker_use_relbox', 0), $user->uid),
        'use_linkbox' => imagepicker_variable_get('imagepicker_use_linkbox', imagepicker_variable_get('imagepicker_use_linkbox', 0), $user->uid),
        'insert_image_title' => imagepicker_variable_get('imagepicker_insert_image_title', imagepicker_variable_get('imagepicker_insert_image_title', 0), $user->uid),
        'default_align_show' => imagepicker_variable_get('imagepicker_default_align_show', imagepicker_variable_get('imagepicker_default_align_show', 1), $user->uid),
        'default_fleft' => imagepicker_variable_get('imagepicker_default_fleft', imagepicker_variable_get('imagepicker_default_fleft', 'style="float: left"'), $user->uid),
        'default_fright' => imagepicker_variable_get('imagepicker_default_fright', imagepicker_variable_get('imagepicker_default_fright', 'style="float: right"'), $user->uid),
        'lightbox2_enable' => module_exists('lightbox2') && imagepicker_variable_get('imagepicker_lightbox2_enable', 1),
        'lightbox2_insert' => imagepicker_variable_get('imagepicker_lightbox2_insert', imagepicker_variable_get('imagepicker_lightbox2_insert', 'lightbox'), $user->uid),
        'colorbox_enable' => module_exists('colorbox') && imagepicker_variable_get('imagepicker_colorbox_enable', 0),
        'colorbox_iframe' => imagepicker_get_colorbox_perms(),
        'node_editbody' => 'edit-body-' . imagepicker_variable_get('imagepicker_node_lang', '') . '-' . imagepicker_variable_get('imagepicker_node_pos', 0) . '-value',
      ),
    );
    drupal_add_js($settings, 'setting');
    $jspaths = imagepicker_jspaths_get();
    drupal_add_js($jspaths['imagepicker_iframe_jspath']);
  }
  return $content;
}
function theme_imagepicker_list($variables) {
  $header = $variables['header'];
  $rows = $variables['rows'];
  $max = $variables['max'];
  $message = $variables['message'];
  $pref = $variables['pref'];
  $suff = $variables['suff'];
  $label = $variables['label'];
  $output = $label ? '<fieldset><legend>' . $label . '</legend>' : '';
  $build['imagepicker_list'] = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#empty' => $message,
  );
  $build['imagepicker_pager'] = array(
    '#theme' => 'pager',
  );
  $output .= $pref . render($build) . $suff;
  $output .= $label ? '</fieldset>' : '';
  return $output;
}
function theme_imagepicker_stats($variables) {
  $header = $variables['header'];
  $rows = $variables['rows'];
  $message = $variables['message'];
  $pref = $variables['pref'];
  $suff = $variables['suff'];
  $label = $variables['label'];
  $output = $label ? '<fieldset><legend>' . $label . '</legend>' : '';
  if (count($rows)) {
    $output .= $pref . theme('table', array(
      'header' => $header,
      'rows' => $rows,
    )) . $suff;
  }
  else {
    $output .= '<div class="messages">' . $message . '</div>';
  }
  $output .= $label ? '</fieldset>' : '';
  return $output;
}

// theme for thumbnail browser
function theme_imagepicker_browser($variables) {
  $content = $variables['content'];
  $forms = $variables['forms'];
  $message = $variables['message'];
  $help = $variables['help'];
  $label = $variables['label'];
  $rows = $content[0];
  $max = $content[1];
  $cols = $content[2];
  $pref1 = $content[3][0];
  $pref2 = $content[3][1];
  $suff1 = $content[4][0];
  $suff2 = $content[4][1];
  $output = $label ? '<fieldset><legend>' . $label . '</legend>' : '';
  if ($rows) {

    // forms
    if ($forms) {
      $output .= isset($forms['browse_search']) ? render($forms['browse_search']) : '';
      $output .= isset($forms['browse_public']) ? render($forms['browse_public']) : '';
      $output .= isset($forms['browse_public_groups']) ? render($forms['browse_public_groups']) : '';
      $output .= isset($forms['browse_groups']) ? render($forms['browse_groups']) : '';
      $output .= isset($forms['browse_order']) ? render($forms['browse_order']) : '';
    }

    // help message
    $output .= $help ? '<div class="imgp_help">' . $help . '</div>' : '';
    $output .= $pref1;
    $ct = 0;
    foreach ($rows as $row) {
      $tooltip = $row['img_name'] . ': ' . $row['img_title'] . ' ' . $row['img_description'];
      $imglink = '<img src="' . $row['imgpath'] . '" alt="' . $row['img_title'] . '" title="' . $tooltip . '" />';
      $output .= $pref2 . l($imglink, $row['imgurl'] . $row['img_id'], array(
        'html' => TRUE,
      )) . $suff2;
      $ct++;
      if ($cols > 0 && $ct >= $cols) {
        $output .= $suff1 . $pref1;
        $ct = 0;
      }
    }
    $output .= $suff1 . theme('pager');
  }
  else {
    $output .= '<div class="messages">' . $message . '</div>';
  }
  $output .= $label ? '</fieldset>' : '';
  return $output;
}
function theme_imagepicker_fullpage($variables) {
  $image = $variables['image'];
  $source = $variables['source'];
  $link = $variables['link'];
  $output = '<div id="imgp_page"><div id="imgp_page_img">';
  $output .= '<img src="' . $source . '" alt="' . (isset($image->img_title) ? $image->img_title : '') . '" /></div>';
  $output .= isset($image->img_description) ? '<div>' . nl2br($image->img_description) . '</div>' : '';
  $output .= $link ? '<div><a href="#" onclick="history.back()">' . t('Return to page') . '</a></div>' : '';
  $output .= '</div>';
  return $output;
}
function theme_imagepicker_quota_message($variables) {
  $message1 = $variables['message1'];
  $message2 = $variables['message2'];
  $form = $variables['form'];
  $label = $variables['label'];
  $help = $variables['help'];
  $output = $label ? '<fieldset><legend>' . $label . '</legend>' : '';
  $output .= $message1 ? '<div class="messages">' . $message1 . '</div>' : '';
  $output .= $help ? '<div class="imgp_help">' . $help . '</div>' : '';
  $output .= render($form);
  $output .= $message2 ? '<div class="messages">' . $message2 . '</div>' : '';
  $output .= $label ? '</fieldset>' : '';
  return $output;
}
function theme_imagepicker_fview($variables) {
  $img = $variables['img'];
  $imgpath = $variables['imgpath'];
  $info = $variables['info'];
  $exifinfo = $variables['exifinfo'];
  $output = '<div id="imgp_img_view">';
  $output .= $img->img_title ? '<div id="imgp_img_view_title">' . $img->img_title . '</div>' : '';
  $output .= '<img id="imgp_img_view_img" src="' . $imgpath . '" alt="' . $img->img_title . '" title="' . $img->img_name . '" />';
  $output .= $img->img_description ? '<div id="imgp_img_view_desc">' . nl2br($img->img_description) . '</div>' : '';
  $output .= '<div>';
  $output .= t('Width') . ": " . $info['width'] . "&nbsp;&nbsp;&nbsp;";
  $output .= t('Height') . ": " . $info['height'] . "&nbsp;&nbsp;&nbsp;";
  $output .= t('Type') . ": " . $info['extension'] . "&nbsp;&nbsp;&nbsp;";
  $output .= t('Size') . ": " . $info['file_size'];
  $output .= '</div>';
  if ($exifinfo) {
    $output .= '<a id="imgp_trig">' . t('Show/Hide Exif Info') . '</a>';
    $output .= '<div id="imgp_targ" >';
    if (is_array($exifinfo)) {

      // using php function exif_read_data().
      foreach ($exifinfo as $key => $section) {
        $header = array(
          array(
            'data' => drupal_ucfirst(drupal_strtolower($key)),
            'colspan' => 2,
          ),
        );
        $rows = array();
        foreach ($section as $name => $val) {
          if ($key == 'COMMENT') {
            $a = explode(':', $val);
            $rows[] = array(
              $a[0] . ':',
              $a[1],
            );
          }
          else {
            $rows[] = array(
              $name . ': ',
              $val,
            );
          }
        }
        $output .= theme('table', array(
          'header' => $header,
          'rows' => $rows,
        ));
        unset($header);
        unset($rows);
      }
    }
    else {

      // from an external source eg exiftool
      $output .= '<pre>' . check_plain($exifinfo) . '</pre>';
    }
    $output .= '</div>';
  }
  $output .= '</div>';
  return $output;
}
function theme_imagepicker_image_edit_header($variables) {
  $image = $variables['image'];
  $source = $variables['source'];
  $output = '<div class="imgp_help">' . t('Edit image details') . '</div>';
  $output .= '<div id="imgp_img_holder"><img src="' . $source . '" alt="' . $image->img_title . '" /></div>';
  return $output;
}
function theme_imagepicker_quota($variables) {
  $form = $variables['quotaform'];
  $message = $variables['message'];
  $label = $variables['label'];
  $output = $label ? '<fieldset><legend>' . $label . '</legend>' : '';
  $output .= $message ? '<div class="messages">' . $message . '</div>' : '';
  $output .= $form ? render($form) : '';
  $output .= $label ? '</fieldset>' : '';
  return $output;
}
function theme_imagepicker_user_config($variables) {
  $form = $variables['form'];
  $label = $variables['label'];
  $help = $variables['help'];
  $message1 = $variables['message1'];
  $message2 = $variables['message2'];
  $output = $label ? '<fieldset><legend>' . $label . '</legend>' : '';
  $output .= $help ? '<div class="imgp_help">' . $help . '</div>' : '';
  $output .= $message1 ? '<div class="messages">' . $message1 . '</div>' : '';
  $output .= $form;
  $output .= $message2 ? '<div class="messages">' . $message2 . '</div>' : '';
  $output .= $label ? '</fieldset>' : '';
  return $output;
}
function theme_imagepicker_userview($variables) {
  $view = $variables['view'];
  $form1 = $variables['form1'];
  $form2 = $variables['form2'];
  $form3 = $variables['form3'];
  $output = "";
  $output .= $view;
  $output .= '<br />';
  $output .= $form1 ? render($form1) : '';
  $output .= '<br />';
  $output .= $form2 ? render($form2) : '';
  $output .= $form3 ? render($form3) : '';
  return $output;
}
function theme_imagepicker_adminview($variables) {
  $view = $variables['view'];
  $form1 = $variables['form1'];
  $form2 = $variables['form2'];
  $form3 = $variables['form3'];
  $output = "";
  $output .= $view;
  $output .= '<br />';
  $output .= render($form1);
  $output .= '<br />';
  $output .= render($form2);
  $output .= render($form3);
  return $output;
}
function theme_imagepicker_insert($variables) {
  $img = $variables['img'];
  $public = $variables['public'];
  $form1 = $variables['form1'];
  $form2 = $variables['form2'];
  $output = "";
  if ($img) {
    $imgpath = imagepicker_get_image_path($img, 'browser', $public ? array(
      'name' => $img->name,
      'uid' => $img->uid,
    ) : FALSE);
    $output .= '<div class="imgp_help">' . t('Choose the settings you want, place the cursor in the Body box above and Insert image.') . '</div>';
    if (isset($img->img_title)) {
      $output .= '<div id="imgp_img_holder_title">' . $img->img_title . '</div>';
    }
    if (isset($img->img_description)) {
      $output .= '<div id="imgp_img_holder_description">' . nl2br($img->img_description) . '</div>';
    }
    $output .= '<div id="imgp_img_holder">';
    $output .= '<img id="imgp_img" src="' . $imgpath . '" alt="' . (isset($img->img_title) ? $img->img_title : t('Image')) . '" title="' . $img->img_name . '" />';
    $output .= '</div>';
    $output .= $form1 ? render($form1) : '';
    $output .= $form2 ? render($form2) : '';
  }
  return $output;
}
function theme_imagepicker_upload_form($variables) {
  $form = $variables['form'];
  $output = '';
  $max_uploads = imagepicker_variable_get('imagepicker_max_uploads', 1);
  $max_filesize = ini_get('upload_max_filesize');
  $form['maxmsg']['#markup'] = '<div class="messages">' . t('Browse your computer for up to !c, Max %max Total', array(
    '!c' => format_plural($max_uploads, '1 Image', '@count Images'),
    '%max' => $max_filesize,
  )) . '</div>';
  for ($ct = 1; $ct <= $max_uploads; $ct++) {
    $form['file_upload_' . $ct]['#prefix'] = "<div id='imagepicker_upload_link_wrapper_{$ct}'>";
    $form['description_' . $ct]['#suffix'] = '</div>';
    if (isset($form['link_' . $ct])) {
      $form['link_' . $ct]['#markup'] = "<div class='imagepicker_upload_link' id='imagepicker_upload_link_{$ct}' style='display:none'>" . l(t('Upload another'), '', array(
        'attributes' => array(
          'onClick' => "Drupal.imagepicker_upload_link_click({$ct}); return false;",
        ),
      )) . '</div>';
    }
  }
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_user_image_form($variables) {
  $form = $variables['form'];
  $output = '';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_user_config_admin_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_align']['#prefix'] = '<div class="imgp_img_options">';
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_align']['#suffix'] = '</div>';
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_show']['#prefix'] = '<div class="imgp_img_options">';
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_show']['#suffix'] = '</div>';
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_link']['#prefix'] = '<div class="imgp_img_options">';
  $form['imagepicker_insert_defaults']['imagepicker_insert_defaults_link']['#suffix'] = '</div>';
  $form['imagepicker_insert_defaults']['imagepicker_insert_image_title']['#prefix'] = '<div id="imgp_insert_image_title">';
  $form['imagepicker_insert_defaults']['imagepicker_insert_image_title']['#suffix'] = '</div>';
  $form['imagepicker_watermark']['imagepicker_watermark_image']['#prefix'] = '<div class="container-inline">';
  $form['imagepicker_watermark']['imagepicker_watermark_image_delete']['#suffix'] = '</div>';
  $form['submit']['#prefix'] = '<div class="container-inline">';
  $form['reset']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_admin_image_form($variables) {
  $form = $variables['form'];
  $output = '';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_user_search_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_currentuser']['#prefix'] = '<div id="imgp_users_form" class="container-inline">';
  $form['imagepicker_user_search_submit']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_group_search_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_currentgroup']['#prefix'] = '<div id="imgp_groups_form" class="container-inline">';
  $form['imagepicker_group_search_submit']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_quota_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_quota']['#prefix'] = '<div id="imgp_quota_form" class="container-inline">';
  $form['submit']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_edit_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['title']['#prefix'] = '<div id="imgp_edit_form">';
  $form['description']['#suffix'] = '</div>';
  $form['submit']['#prefix'] = '<div id="imgp_controls">';
  $form['cancel']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_groups_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['groupsave']['group_public_roles']['#prefix'] = '<div id="wrap-group-public-roles">';
  $form['groupsave']['group_public_roles']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_group_delete_form($variables) {
  $form = $variables['form'];
  $output = '';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_image_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['align']['#prefix'] = '<div class="imgp_img_options">';
  $form['align']['#suffix'] = '</div>';
  $form['show']['#prefix'] = '<div class="imgp_img_options">';
  $form['show']['#suffix'] = '</div>';
  $form['link']['#prefix'] = '<div class="imgp_img_options">';
  $form['link']['#suffix'] = '</div>';
  $form['desc']['#prefix'] = '<div id="imgp_desc_control">';
  $form['desc']['#suffix'] = '</div>';
  $form['insert']['#prefix'] = '<div id="imgp_controls">';
  $form['delete']['#suffix'] = '</div>';
  if (isset($form['presets_show'])) {
    $form['presets_show']['#prefix'] = '<div id="imgp_presets_control"><div id="imgp_presets_show_control">';
    $form['presets_show']['#suffix'] = '</div>';
    $form['presets_link']['#prefix'] = '<div id="imgp_presets_link_control">';
    $form['presets_link']['#suffix'] = '</div></div>';
  }
  if (isset($form['relbox'])) {
    $form['relbox']['#prefix'] = '<div id="imgp_relbox_control"><div id="imgp_relbox_show_control">';
    $form['relbox']['#suffix'] = '</div>';
    $form['linkhide']['#prefix'] = '<div id="imgp_relbox_link_control">';
    $form['linkhide']['#suffix'] = '</div></div>';
  }
  if (isset($form['linkbox'])) {
    $form['linkbox']['#prefix'] = '<div id="imgp_linkbox_control">';
    $form['linkbox']['#suffix'] = '</div>';
  }
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_browse_groups_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['gid']['#prefix'] = '<div id="imgp_groups_form" class="container-inline">';
  $form['submit']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_browse_public_groups_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['gid']['#prefix'] = '<div id="imgp_groups_form" class="container-inline">';
  $form['submit']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_group_images_form($variables) {
  $form = $variables['form'];
  $output = '';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_browse_order_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_browser_order']['#prefix'] = '<div id="imgp_order_form" class="container-inline">';
  $form['submit']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_browse_public_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_browse_public']['#prefix'] = '<div id="imgp_browse_form" class="container-inline">';
  $form['submit']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_browse_search_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_browser_search']['#prefix'] = '<div id="imgp_search_form" class="container-inline">';
  $form['reset']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_settings_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['imagepicker_insert_defaults']['imagepicker_insert_image_title']['#prefix'] = '<div id="imgp_insert_image_title">';
  $form['imagepicker_insert_defaults']['imagepicker_insert_image_title']['#suffix'] = '</div>';
  $jshide = $form['imagepicker_import']['imagepicker_import_enabled']['#default_value'] ? '' : ' class="js-hide"';
  $form['imagepicker_import']['imagepicker_import_delete']['#prefix'] = '<div id="wrap-imagepicker-import"' . $jshide . '>';
  $form['imagepicker_import']['imagepicker_import_max']['#suffix'] = '</div>';
  if (isset($form['imagepicker_blocks'])) {
    $jshide = $form['imagepicker_blocks']['imagepicker_galleryblocks_enabled']['#default_value'] ? '' : ' class="js-hide"';
    $form['imagepicker_blocks']['imagepicker_galleryblocks_howmany']['#prefix'] = '<div id="wrap-imagepicker-blocks"' . $jshide . '>';
    $form['imagepicker_blocks']['close']['#suffix'] = '</div>';
  }
  $jshide = $form['imagepicker_groups']['imagepicker_groups_enabled']['#default_value'] ? '' : ' class="js-hide"';
  $form['imagepicker_groups']['imagepicker_public_enabled']['#prefix'] = '<div id="wrap-imagepicker-groups"' . $jshide . '>';
  $form['imagepicker_groups']['imagepicker_groups_in_upload_enabled']['#suffix'] = '</div>';
  $jshide = $form['imagepicker_progress']['imagepicker_upload_progress_enabled']['#default_value'] ? '' : ' class="js-hide"';
  $form['imagepicker_progress']['imagepicker_upload_progress_delay']['#prefix'] = '<div id="wrap-imagepicker-upload-progress"' . $jshide . '>';
  if (isset($form['imagepicker_progress']['imagepicker_uploadprogress'])) {
    $form['imagepicker_progress']['imagepicker_uploadprogress']['#suffix'] = '</div>';
  }
  else {
    $form['imagepicker_progress']['imagepicker_upload_progress_message']['#suffix'] = '</div>';
  }
  $jshide = $form['imagepicker_quotas']['imagepicker_quota_byrole']['#default_value'] ? '' : ' class="js-hide"';
  $form['imagepicker_quotas']['imagepicker_quota_role']['#prefix'] = '<div id="wrap-imagepicker-quota-role"' . $jshide . '>';
  $form['imagepicker_quotas']['imagepicker_quota_role']['#suffix'] = '</div>';
  if (isset($form['imagepicker_watermark'])) {
    $jshide = $form['imagepicker_watermark']['imagepicker_watermark_enable']['#default_value'] ? '' : ' class="js-hide"';
    $form['imagepicker_watermark']['imagepicker_watermark_image']['#prefix'] = '<div id="wrap-imagepicker-watermark"' . $jshide . '>';
    $form['imagepicker_watermark']['imagepicker_watermark_scale']['#suffix'] = '</div>';
  }
  if (isset($form['imagepicker_settings']['imagepicker_admin_message'])) {
    $form['imagepicker_settings']['imagepicker_admin_message']['#prefix'] = '<div class="messages">';
    $form['imagepicker_settings']['imagepicker_admin_message']['#suffix'] = '</div>';
  }
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_copy_form($variables) {
  $form = $variables['form'];
  $output = '';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_browse_admin_form($variables) {
  $form = $variables['form'];
  $output = '';
  $src = $form['options']['src']['#value'];
  $cols = $form['options']['cols']['#value'];
  $public = $form['options']['public']['#value'];
  $form['options']['#prefix'] = '<div class="container-inline">';
  $form['options']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_browse_admin($variables) {
  $forms = $variables['forms'];
  $pref = $variables['pref'];
  $suff = $variables['suff'];
  $label = $variables['label'];
  $output = $label ? '<fieldset><legend>' . $label . '</legend>' : '';
  $output .= $pref;
  $output .= $forms['browse_search'] ? render($forms['browse_search']) : '';
  $output .= $forms['browse_groups'] ? render($forms['browse_groups']) : '';
  $output .= $forms['browse_public'] ? render($forms['browse_public']) : '';
  $output .= $forms['browse_public_groups'] ? render($forms['browse_public_groups']) : '';
  $output .= $forms['browse_admin'] ? render($forms['browse_admin']) : '';
  $output .= $suff;
  $output .= $label ? '</fieldset>' : '';
  return $output;
}
function theme_imagepicker_multitask_delete_form($variables) {
  $form = $variables['form'];
  $output = '';
  $count = $form['countnids']['#value'];
  $output .= '<p>' . t('You have selected %c to be deleted', array(
    '%c' => format_plural($count, '1 image', '@count images'),
  )) . '</p>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_multitask_groups_form($variables) {
  $form = $variables['form'];
  $output = '';
  $count = $form['countnids']['#value'];
  $output .= '<p>' . t('You have selected %c to be grouped', array(
    '%c' => format_plural($count, '1 image', '@count images'),
  )) . '</p>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_import_form($variables) {
  $form = $variables['form'];
  $output = '';
  $markup = $form['total']['#markup'];
  $form['total']['#markup'] = '<p>' . $markup . '</p>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_import_dir_form($variables) {
  $form = $variables['form'];
  $output = '';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_admin_orphans_form($variables) {
  $form = $variables['form'];
  $output = '';
  $form['msg']['#prefix'] = '<div class="messages">';
  $form['msg']['#suffix'] = '</div>';
  $output .= drupal_render_children($form);
  return $output;
}
function theme_imagepicker_display_block($variables) {
  $content = $variables['content'];
  $output = '';
  $output .= '<div class="imgp_display_block">' . $content . '</div>';
  return $output;
}

Functions

Namesort descending Description
imagepicker_access_admin
imagepicker_access_admin_group
imagepicker_access_import
imagepicker_access_theme
imagepicker_access_use
imagepicker_access_user_config
imagepicker_access_user_groups
imagepicker_access_user_pages
imagepicker_access_user_public
imagepicker_access_use_group
imagepicker_access_use_public
imagepicker_block_configure Implements hook_block_configure().
imagepicker_block_form
imagepicker_block_form_submit
imagepicker_block_info Implements hook_block_info().
imagepicker_block_save Implements hook_block_save().
imagepicker_block_view Implements hook_block_view().
imagepicker_display_block Function to display the contents of a block.
imagepicker_file_download Implements hook_file_download().
imagepicker_form_alter Implements hook_form_alter().
imagepicker_func_load
imagepicker_get_all_groups
imagepicker_get_colorbox_perms
imagepicker_get_files_directory
imagepicker_get_image_path
imagepicker_get_path
imagepicker_get_userpath
imagepicker_get_user_group
imagepicker_help Implement hook_help().
imagepicker_id_load menu placeholder functions
imagepicker_init Implement hook_init().
imagepicker_menu Implement hook_menu().
imagepicker_path_load
imagepicker_permission Implement hook_perm().
imagepicker_theme theme registry
imagepicker_uid_load
imagepicker_variable_del
imagepicker_variable_get
imagepicker_variable_set
imagepicker_views_api Implements hook_views_api().
template_preprocess_imagepicker
theme_imagepicker_adminview
theme_imagepicker_admin_image_form
theme_imagepicker_admin_orphans_form
theme_imagepicker_browser
theme_imagepicker_browse_admin
theme_imagepicker_browse_admin_form
theme_imagepicker_browse_groups_form
theme_imagepicker_browse_order_form
theme_imagepicker_browse_public_form
theme_imagepicker_browse_public_groups_form
theme_imagepicker_browse_search_form
theme_imagepicker_copy_form
theme_imagepicker_display_block
theme_imagepicker_edit_form
theme_imagepicker_fullpage
theme_imagepicker_fview
theme_imagepicker_groups_form
theme_imagepicker_group_delete_form
theme_imagepicker_group_images_form
theme_imagepicker_group_search_form
theme_imagepicker_iframe
theme_imagepicker_image_edit_header
theme_imagepicker_image_form
theme_imagepicker_import_dir_form
theme_imagepicker_import_form
theme_imagepicker_insert
theme_imagepicker_list
theme_imagepicker_multitask_delete_form
theme_imagepicker_multitask_groups_form
theme_imagepicker_quota
theme_imagepicker_quota_form
theme_imagepicker_quota_message
theme_imagepicker_settings_form
theme_imagepicker_stats
theme_imagepicker_upload_form
theme_imagepicker_userview
theme_imagepicker_user_config
theme_imagepicker_user_config_admin_form
theme_imagepicker_user_image_form
theme_imagepicker_user_search_form

Constants