You are here

function _imagepicker_browse_public in Image Picker 6.2

Same name and namespace in other branches
  1. 5.2 imagepicker.module \_imagepicker_browse_public()
  2. 7 imagepicker.functions.inc \_imagepicker_browse_public()
3 calls to _imagepicker_browse_public()
imagepicker_admin_images in ./imagepicker.admin.inc
imagepicker_browse_public in ./imagepicker.functions.inc
imagepicker_user_browse_public in ./imagepicker.user.inc

File

./imagepicker.functions.inc, line 933
Imagepicker functions

Code

function _imagepicker_browse_public($src = "iframe", $range = 1, $label = "") {
  global $user;

  // if there are groups
  $gid = 0;
  if (_imagepicker_has_public_groups($user, $src == 'admin' ? TRUE : FALSE)) {
    if ($src == 'admin') {
      $gid = variable_get('imagepicker_public_currentgroup', 0);
      if (!imagepicker_group_exists($gid)) {
        variable_del("imagepicker_public_currentgroup");
        $gid = 0;
      }
    }
    else {

      // get the current users setting
      $gid = isset($user->imagepicker_public_currentgroup) ? $user->imagepicker_public_currentgroup : 0;
      if (!imagepicker_group_exists($gid)) {
        $user->imagepicker_public_currentgroup = NULL;
        $gid = 0;
      }
    }
  }
  $how_many = isset($user->imagepicker_advanced_browser_page) ? $user->imagepicker_advanced_browser_page : variable_get('imagepicker_advanced_browser_page', 25);
  $default_order = isset($user->imagepicker_default_browser_order) ? $user->imagepicker_default_browser_order : variable_get('imagepicker_default_browser_order', 'img_id DESC');
  $order = isset($user->imagepicker_browser_order) ? $user->imagepicker_browser_order : $default_order;
  $searchs = isset($user->imagepicker_browser_search) ? $user->imagepicker_browser_search : '';
  $searchs = trim($searchs);
  $sarr = '';
  $searchsql = '';
  if ($searchs) {
    $xarr = _imagepicker_search_opts($searchs);
    $searchsql = $xarr[0];
    $sarr = $xarr[1];
  }

  // Build sql for public with role restriction matching
  $rarr = array();
  if ($range == 1) {
    if (variable_get('imagepicker_publicroles_enabled', 1) && $src != 'admin') {
      $x = 1;
      $rolesarr = array();
      $rolesql = "";
      foreach ($user->roles as $role) {
        $rolesarr[] = $role;
        if ($x == 1) {
          $rolesql = " AND (u.avail_roles = 'all' OR u.avail_roles LIKE '%%%s%%'";
        }
        else {
          $rolesql .= " OR u.avail_roles LIKE '%%%s%%'";
        }
        if ($x == count($user->roles)) {
          $rolesql .= ")";
        }
        $x++;
      }
    }
    $sql = "SELECT DISTINCT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date, n.name AS name\n      FROM {imagepicker} AS i JOIN {users} AS n USING (uid),\n      {imagepicker_user_groups} AS u JOIN {imagepicker_group_images} AS g USING (gid)\n      WHERE g.img_id=i.img_id\n      AND u.public=1 ";
    if ($gid) {
      $sql .= " AND u.gid = %d";
      $garr = array(
        $gid,
      );
      $rarr = array_merge($rarr, $garr);
    }
    if ($rolesql) {
      $sql .= $rolesql;
      $rarr = array_merge($rarr, $rolesarr);
    }
    if ($searchsql) {
      $sql .= $searchsql;
      if (is_array($sarr)) {
        $rarr = array_merge($rarr, $sarr);
      }
    }
    $sql .= " ORDER BY %s";
  }
  elseif ($range == 2) {
    $sql = "SELECT DISTINCT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date, n.name AS name\n      FROM {imagepicker} AS i JOIN {users} AS n USING (uid),\n      {imagepicker_user_groups} AS u JOIN {imagepicker_group_images} AS g USING (gid)\n      WHERE g.img_id=i.img_id\n      AND u.public=0 ";
    if ($searchsql) {
      $sql .= $searchsql;
    }
    $sql .= " ORDER BY %s";
    if (is_array($sarr)) {
      $rarr = $sarr;
    }
  }
  else {
    $sql = "SELECT DISTINCT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date, n.name AS name\n      FROM {imagepicker} AS i JOIN {users} AS n USING (uid) WHERE i.img_id > 0";
    if ($searchsql) {
      $sql .= $searchsql;
    }
    $sql .= " ORDER BY %s";
    if (is_array($sarr)) {
      $rarr = $sarr;
    }
  }
  $rarr = array_merge($rarr, array(
    "i.{$order}",
  ));
  $result = pager_query($sql, $how_many, 0, NULL, $rarr);
  $content = _imagepicker_thumbs_getrows($result, TRUE, $src);
  $message = "";
  if (!is_array($content)) {
    $ibp = variable_get('imagepicker_browse_public', 0);
    if ($ibp == 1 || $range == 1) {
      $ibpout = "public";
    }
    elseif ($ibp == 2 || $range == 2) {
      $ibpout = "private";
    }
    else {
      $ibpout = "";
    }
    variable_set('imagepicker_browse_public', 0);
    if ($searchs) {
      $message = t('Your search for %searchs found nothing', array(
        '%searchs' => $searchs,
      ));
      if ($src == 'admin') {
        imagepicker_browse_search_form_reset_func(TRUE);
      }
      else {
        imagepicker_browse_search_form_reset_func(FALSE);
      }
    }
    else {
      $message = t('There are no !status images', array(
        '!status' => $ibpout,
      ));
    }
  }
  $forms = array();
  $forms['browse_search'] = '';
  $forms['browse_groups'] = '';
  $forms['browse_public'] = '';
  $forms['browse_public_groups'] = '';
  $forms['browse_order'] = '';
  if (isset($user->imagepicker_show_browse_order_form)) {
    if ($user->imagepicker_show_browse_order_form) {
      $forms['browse_order'] = drupal_get_form('imagepicker_browse_order_form');
    }
  }
  elseif (variable_get('imagepicker_show_browse_order_form', 1)) {
    $forms['browse_order'] = drupal_get_form('imagepicker_browse_order_form');
  }
  if ($src == 'admin' && variable_get('imagepicker_groups_enabled', 1)) {
    $forms['browse_public'] = drupal_get_form('imagepicker_browse_public_form');
  }

  // groups
  if (variable_get('imagepicker_groups_enabled', 1)) {
    if (_imagepicker_has_public_groups($user, $src == 'admin' ? TRUE : FALSE)) {

      // add groups select here
      $forms['browse_public_groups'] = drupal_get_form('imagepicker_browse_public_groups_form', $user, $src == 'admin' ? TRUE : FALSE);
    }
  }

  // browse_search
  if (isset($user->imagepicker_show_browse_search_form)) {
    if ($user->imagepicker_show_browse_search_form) {
      $forms['browse_search'] = drupal_get_form('imagepicker_browse_search_form');
    }
  }
  elseif (variable_get('imagepicker_show_browse_search_form', 1)) {
    $forms['browse_search'] = drupal_get_form('imagepicker_browse_search_form');
  }
  if ($src == "account" || $src == 'admin') {
    $help = '<div class="imgp_help">' . t('Hold the mouse over an image to view Name, Title and Description, Click on it to view.') . '</div>';
  }
  else {
    $help = '<div class="imgp_help">' . t('Hold the mouse over an image to view Name, Title and Description, Click on it to use.') . '</div>';
  }
  return theme('imagepicker_browser', $content, $forms, $message, $help, $label);
}