You are here

function imagepicker_browse_admin_form in Image Picker 6.2

Same name and namespace in other branches
  1. 7 imagepicker.functions.inc \imagepicker_browse_admin_form()

list of images with bulk operations

1 string reference to 'imagepicker_browse_admin_form'
_imagepicker_browse_admin in ./imagepicker.functions.inc

File

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

Code

function imagepicker_browse_admin_form(&$form_state, $src = "iframe", $account = FALSE, $public = FALSE, $range = 1) {
  if ($account) {
    $user = $account;
  }
  else {
    global $user;
  }

  // paths
  if ($src == 'iframe') {
    $path = '';
    $editpath = "imagepicker/edit/";
    $deletepath = "imagepicker/delete/";
    $imgpath = 'imagepicker/browse/';
  }
  elseif ($src == 'admin') {
    $path = IMAGEPICKER_ADMIN_PATH;
    $editpath = $path . '/images/user/' . $user->uid . '/edit/';
    $deletepath = $path . '/images/user/' . $user->uid . '/delete/';
    $imgpath = $path . '/images/user/' . $user->uid . '/browse/';
    $returnpath = 'a-' . $user->uid;
  }
  else {
    $path = 'user/' . $user->uid . '/imagepicker';
    $editpath = $path . '/images/edit/';
    $deletepath = $path . '/images/delete/';
    $imgpath = $path . '/images/browse/';
    $returnpath = 'u-' . $user->uid;
  }

  // if there are groups
  if (variable_get('imagepicker_groups_enabled', 1)) {
    $gid = 0;
    if (!$public) {
      if (_imagepicker_has_groups($src == 'admin' ? $user : FALSE) && imagepicker_has_grouplist($src == 'admin' ? $user : FALSE)) {
        $gids = imagepicker_get_user_group_state(1, $src == 'admin' ? $user : FALSE);
        $gid = $gids[0];
        if ($account) {
          $gid = variable_get('imagepicker_currentgroup', 0);
        }
      }
    }
    elseif ($src == 'admin' && _imagepicker_has_public_groups($user, TRUE)) {
      $gid = variable_get('imagepicker_public_currentgroup', 0);
    }
  }

  // tablesort
  if ($public && $src == 'admin') {
    $header = array(
      array(),
      array(
        'data' => t('Name'),
        'field' => 'i.img_name',
      ),
      array(
        'data' => t('Title'),
        'field' => 'i.img_title',
      ),
      t('Description'),
      array(
        'data' => t('User'),
        'field' => 'n.name',
      ),
      array(
        'data' => t('Date'),
        'field' => 'i.img_date',
      ),
      array(
        'data' => t('Actions'),
        'colspan' => 2,
      ),
    );
  }
  else {
    $header = array(
      array(),
      array(
        'data' => t('Name'),
        'field' => 'i.img_name',
      ),
      array(
        'data' => t('Title'),
        'field' => 'i.img_title',
      ),
      t('Description'),
      array(
        'data' => t('Date'),
        'field' => 'i.img_date',
      ),
      array(
        'data' => t('Actions'),
        'colspan' => 2,
      ),
    );
  }
  $use_icons = variable_get('imagepicker_use_icons', 1);
  if ($src == 'admin') {
    $how_many = variable_get('imagepicker_rows_per_page', 25);
  }
  else {
    $how_many = isset($user->imagepicker_rows_per_page) ? $user->imagepicker_rows_per_page : variable_get('imagepicker_rows_per_page', 25);
  }
  $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];
  }
  if ($public && $src == 'admin') {
    if ($range == 1) {
      $sql = "SELECT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date, n.name\n        FROM {imagepicker} i, {users} n, {imagepicker_user_groups} u, {imagepicker_group_images} g\n        WHERE i.uid=n.uid AND u.public=1 AND g.img_id=i.img_id AND u.gid=g.gid";
      if ($searchsql) {
        $sql .= $searchsql;
      }
      if ($gid) {
        $sql .= " AND u.gid = %d";
        $garr = array(
          $gid,
        );
      }
      $sql .= tablesort_sql($header);
      $label = t('List All Public Images');
    }
    elseif ($range == 2) {
      $sql = "SELECT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date, n.name\n        FROM {imagepicker} i, {users} n, {imagepicker_user_groups} u, {imagepicker_group_images} g\n        WHERE i.uid=n.uid AND u.public=0 AND g.img_id=i.img_id AND u.gid=g.gid";
      if ($searchsql) {
        $sql .= $searchsql;
      }
      $sql .= tablesort_sql($header);
      $label = t('List All Private Images');
    }
    else {
      $sql = "SELECT DISTINCT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date, n.name\n        FROM {imagepicker} i, {users} n\n        WHERE i.uid = n.uid";
      if ($searchsql) {
        $sql .= $searchsql;
      }
      $sql .= tablesort_sql($header);
    }
    if (is_array($sarr) || is_array($garr)) {
      $rarr = array();
      if (is_array($sarr)) {
        $rarr = $sarr;
      }
      if (is_array($garr)) {
        $rarr = array_merge($rarr, $garr);
      }
      $result = pager_query($sql, $how_many, 0, NULL, $rarr);
    }
    else {
      $result = pager_query($sql, $how_many, 0, NULL);
    }
  }
  else {

    // filter by selected group
    if ($gid) {
      $sql = "SELECT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date\n        FROM {imagepicker} i, {imagepicker_group_images} g\n        WHERE i.uid=%d AND i.img_id=g.img_id AND g.gid=%d";
      if ($searchsql) {
        $sql .= $searchsql;
      }
      $sql .= tablesort_sql($header);
      if ($searchsql) {
        $rarr = array_merge(array(
          $user->uid,
          $gid,
        ), $sarr);
      }
      else {
        $rarr = array(
          $user->uid,
          $gid,
        );
      }
    }
    else {
      $sql = "SELECT i.img_id, i.uid, i.img_name, i.img_title, i.img_description, i.img_date\n        FROM {imagepicker} i\n        WHERE i.uid=%d";
      if ($searchsql) {
        $sql .= $searchsql;
      }
      $sql .= tablesort_sql($header);
      if ($searchsql) {
        $rarr = array_merge(array(
          $user->uid,
        ), $sarr);
      }
      else {
        $rarr = array(
          $user->uid,
        );
      }
    }
    $result = pager_query($sql, $how_many, 0, NULL, $rarr);
  }

  // bulk ops form
  $form['options'] = array(
    '#type' => 'fieldset',
    '#title' => t('Bulk operations'),
  );
  if ($src == 'admin' && !$account) {
    $op_opts = array(
      'delete' => t('Delete'),
    );
  }
  else {
    $op_opts = array(
      'delete' => t('Delete'),
      'groups' => t('Groups'),
    );
  }
  $form['options']['operation'] = array(
    '#type' => 'select',
    '#options' => $op_opts,
    '#default_value' => 'delete',
  );
  $form['options']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Update'),
  );
  $form['options']['src'] = array(
    '#type' => 'value',
    '#value' => $src,
  );
  $form['options']['public'] = array(
    '#type' => 'value',
    '#value' => $public,
  );
  $form['options']['path'] = array(
    '#type' => 'value',
    '#value' => $path,
  );
  $rowct = 0;
  while ($row = db_fetch_array($result)) {

    // img_id img_name  img_title       img_description
    $img_name = $row['img_name'];
    $img_id = $row['img_id'];
    $description = $row['img_description'];
    $img_date = format_date($row['img_date'], variable_get('imagepicker_dateformat_default', 'medium'));
    if (drupal_strlen($description) > 30) {
      $description = drupal_substr($description, 0, 30) . '...';
    }
    if ($public && $src == 'admin') {
      $editpath = $path . '/images/user/' . $row['uid'] . '/edit/';
      $deletepath = $path . '/images/user/' . $row['uid'] . '/delete/';
      $imgpath = $path . '/images/user/' . $row['uid'] . '/browse/';
      $listpath = $path . '/images/user/' . $row['uid'] . '/browseadmin';
      $returnpath = 'a';
      $editlink = $use_icons ? _imagepicker_get_icon('edit', $editpath . $row['img_id'], array(
        'title' => t('Edit'),
      )) : l(t('Edit'), $editpath . $row['img_id']);
      $deletelink = $use_icons ? _imagepicker_get_icon('delete', $deletepath . $row['img_id'], array(
        'title' => t('Delete'),
      )) : l(t('Delete'), $deletepath . $row['img_id']);
      $imglink = l($img_name, $imgpath . $img_id);
      $listlink = l($row['name'], $listpath);
      $form['img_name'][$img_id] = array(
        '#value' => $imglink,
      );
      $form['img_title'][$img_id] = array(
        '#value' => $row['img_title'],
      );
      $form['img_desc'][$img_id] = array(
        '#value' => $description,
      );
      $form['img_list'][$img_id] = array(
        '#value' => $listlink,
      );
      $form['img_date'][$img_id] = array(
        '#value' => $img_date,
      );
      $form['img_edit'][$img_id] = array(
        '#value' => $editlink,
      );
      $form['img_delete'][$img_id] = array(
        '#value' => $deletelink,
      );
      $cols = 7;
    }
    else {
      $imglink = l($img_name, $imgpath . $img_id);
      $editlink = $use_icons ? _imagepicker_get_icon('edit', $editpath . $img_id, array(
        'title' => t('Edit'),
      )) : l(t('Edit'), $editpath . $img_id);
      $deletelink = $use_icons ? _imagepicker_get_icon('delete', $deletepath . $img_id, array(
        'title' => t('Delete'),
      )) : l(t('Delete'), $deletepath . $img_id);
      $form['img_name'][$img_id] = array(
        '#value' => $imglink,
      );
      $form['img_title'][$img_id] = array(
        '#value' => $row['img_title'],
      );
      $form['img_desc'][$img_id] = array(
        '#value' => $description,
      );
      $form['img_date'][$img_id] = array(
        '#value' => $img_date,
      );
      $form['img_edit'][$img_id] = array(
        '#value' => $editlink,
      );
      $form['img_delete'][$img_id] = array(
        '#value' => $deletelink,
      );
      $cols = 6;
    }
    $images[$img_id] = '';
    $rowct++;
  }

  // end of while loop
  $form['images'] = array(
    '#type' => 'checkboxes',
    '#options' => $images,
  );
  $form['options']['cols'] = array(
    '#type' => 'value',
    '#value' => $cols,
  );
  $form['options']['returnpath'] = array(
    '#type' => 'value',
    '#value' => $returnpath,
  );
  $pager = theme('pager', NULL, $max);
  if ($pager) {
    $form['pager'] = array(
      '#value' => $pager,
    );
  }
  $form['#submit'][] = 'imagepicker_browse_admin_form_submit';
  if ($rowct) {
    return $form;
  }
  return FALSE;
}