You are here

function imagepicker_groups_list in Image Picker 7

Same name and namespace in other branches
  1. 5.2 imagepicker.module \imagepicker_groups_list()
  2. 5 imagepicker.module \imagepicker_groups_list()
  3. 6.2 imagepicker.group.inc \imagepicker_groups_list()
3 calls to imagepicker_groups_list()
imagepicker_admin_groups in ./imagepicker.admin.inc
imagepicker_groups in ./imagepicker.group.inc
@file @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL
imagepicker_user_groups in ./imagepicker.group.inc
groups from imagepicker groups in my account

File

./imagepicker.group.inc, line 310
@author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL

Code

function imagepicker_groups_list($src = FALSE, $account = FALSE, $label = "") {
  if ($account) {
    $user = $account;
  }
  else {
    global $user;
  }
  if ($src) {
    if ($src == 'admin') {
      $editpath = IMAGEPICKER_ADMIN_PATH . '/groups/user/' . $user->uid . '/edit/';
      $deletepath = IMAGEPICKER_ADMIN_PATH . '/groups/user/' . $user->uid . '/delete/';
      $browsepath = IMAGEPICKER_ADMIN_PATH . '/groups/user/' . $user->uid . '/browse/';
    }
    else {
      $editpath = 'user/' . $user->uid . '/imagepicker/groups/edit/';
      $deletepath = 'user/' . $user->uid . '/imagepicker/groups/delete/';
      $browsepath = 'user/' . $user->uid . '/imagepicker/groups/browse/';
    }
  }
  else {
    $editpath = "imagepicker/groups/edit/";
    $deletepath = "imagepicker/groups/delete/";
    $browsepath = 'imagepicker/groups/';
  }
  $content = "";
  $max = imagepicker_variable_get('imagepicker_rows_per_page', 25);
  $use_icons = imagepicker_variable_get('imagepicker_use_icons', 1);
  if (user_access('use public imagepicker') && imagepicker_variable_get('imagepicker_public_enabled', 1)) {
    $header = array(
      array(
        'data' => t('Group name'),
        'field' => 'g.group_name',
      ),
      array(
        'data' => t('Description'),
        'field' => 'g.group_description',
      ),
      array(
        'data' => t('Images'),
        'field' => 'ct',
      ),
      t('State'),
      array(
        'data' => t('Public'),
        'field' => 'g.public',
      ),
      array(
        'data' => t('Actions'),
        'colspan' => 2,
      ),
    );
  }
  else {
    $header = array(
      array(
        'data' => t('Group name'),
        'field' => 'g.group_name',
      ),
      array(
        'data' => t('Description'),
        'field' => 'g.group_description',
      ),
      array(
        'data' => t('Images'),
        'field' => 'ct',
      ),
      t('State'),
      array(
        'data' => t('Actions'),
        'colspan' => 2,
      ),
    );
  }
  $countquery = db_select('imagepicker_user_groups', 'g');
  $countquery
    ->addExpression('COUNT(g.gid)', 'ct');
  $countquery
    ->leftjoin('users', 'u', 'g.uid = u.uid');
  $countquery
    ->condition('g.uid', $user->uid)
    ->condition('u.status', 1);
  $query = db_select('imagepicker_user_groups', 'g')
    ->extend('PagerDefault')
    ->limit($max)
    ->extend('TableSort')
    ->orderByHeader($header);
  $query
    ->setCountQuery($countquery);
  $query
    ->fields('g', array(
    'gid',
    'group_name',
    'group_description',
    'public',
  ))
    ->addExpression('COUNT(i.img_id)', 'ct');
  $query
    ->leftjoin('imagepicker_group_images', 'i', 'g.gid = i.gid');
  $query
    ->leftjoin('users', 'u', 'g.uid = u.uid');
  $query
    ->condition('g.uid', $user->uid)
    ->condition('u.status', 1)
    ->groupBy('g.gid')
    ->groupBy('g.group_name')
    ->groupBy('g.group_description')
    ->groupBy('g.public');
  $result = $query
    ->execute();
  $rows = array();
  $enabledlist = imagepicker_get_enabled_group($account);
  foreach ($result as $row) {
    $rowct = $row->ct;
    if (user_access('use public imagepicker') && imagepicker_variable_get('imagepicker_public_enabled', 1)) {
      $row_data = array(
        $row->group_name,
        $row->group_description,
        $rowct && $browsepath ? l(format_plural($rowct, '1 image', '@count images'), $browsepath . $row->gid) : t('No images'),
        $enabledlist && in_array($row->gid, $enabledlist) ? t('selected') : '',
        $row->public ? t('Yes') : t('No'),
        $use_icons ? _imagepicker_get_icon('edit', $editpath . $row->gid, array(
          'title' => t('Edit'),
        )) : l(t('Edit'), $editpath . $row->gid),
        $use_icons ? _imagepicker_get_icon('delete', $deletepath . $row->gid, array(
          'title' => t('Delete'),
        )) : l(t('Delete'), $deletepath . $row->gid),
      );
    }
    else {
      $row_data = array(
        $row->group_name,
        $row->group_description,
        $rowct && $browsepath ? l(format_plural($rowct, '1 image', '@count images'), $browsepath . $row->gid) : t('No images'),
        $enabledlist && in_array($row->gid, $enabledlist) ? t('selected') : '',
        $use_icons ? _imagepicker_get_icon('edit', $editpath . $row->gid, array(
          'title' => t('Edit'),
        )) : l(t('Edit'), $editpath . $row->gid),
        $use_icons ? _imagepicker_get_icon('delete', $deletepath . $row->gid, array(
          'title' => t('Delete'),
        )) : l(t('Delete'), $deletepath . $row->gid),
      );
    }
    $rows[] = $row_data;
  }
  return theme('imagepicker_list', array(
    'header' => $header,
    'rows' => $rows,
    'max' => $max,
    'message' => t('No groups found.'),
    'pref' => '<div class="imgp_groups_list">',
    'suff' => '</div>',
    'label' => $label,
  ));
}