You are here

function imagepicker_group_stats in Image Picker 7

Same name and namespace in other branches
  1. 5.2 imagepicker.module \imagepicker_group_stats()
  2. 6.2 imagepicker.functions.inc \imagepicker_group_stats()

statistics

3 calls to imagepicker_group_stats()
imagepicker_admin_groups in ./imagepicker.admin.inc
imagepicker_admin_images in ./imagepicker.admin.inc
imagepicker_user_page in ./imagepicker.user.inc
@file @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL

File

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

Code

function imagepicker_group_stats($account = FALSE, $label = '') {

  // stats
  $groupusercount = FALSE;
  $usercount = FALSE;
  $bytecount = 0;
  if ($account) {
    if (is_int($account) && $account == -1) {
      $allcount = _imagepicker_user_has_img();
      $totcount = _imagepicker_user_has_grouped_img('all');
      $publiccount = _imagepicker_user_has_grouped_img('yes');
      $nopubliccount = _imagepicker_user_has_grouped_img('no');
      $groupcount = _imagepicker_user_has_groups('all');
      $publicgroupcount = _imagepicker_user_has_groups('yes');
      $nopublicgroupcount = _imagepicker_user_has_groups('no');
      $bytecount = imagepicker_get_all_bytes(-1);
    }
    else {
      $allcount = _imagepicker_user_has_img($account);
      $totcount = _imagepicker_user_has_grouped_img('all', $account);
      $publiccount = _imagepicker_user_has_grouped_img('yes', $account);
      $nopubliccount = _imagepicker_user_has_grouped_img('no', $account);
      $groupcount = _imagepicker_user_has_groups('all', $account);
      $publicgroupcount = _imagepicker_user_has_groups('yes', $account);
      $nopublicgroupcount = _imagepicker_user_has_groups('no', $account);
      $bytecount = imagepicker_get_all_bytes($account);
    }
  }
  else {

    // imagepicker users
    $query = db_select('imagepicker_user_groups');
    $query
      ->addExpression('COUNT(DISTINCT uid)', 'ct');
    $row = $query
      ->execute()
      ->fetchAssoc();
    $groupusercount = $row['ct'];
    $query = db_select('imagepicker');
    $query
      ->addExpression('COUNT(DISTINCT uid)', 'ct');
    $row = $query
      ->execute()
      ->fetchAssoc();
    $usercount = $row['ct'];

    // all groups
    $query = db_select('imagepicker_user_groups');
    $query
      ->addExpression('COUNT(gid)', 'ct');
    $row = $query
      ->execute()
      ->fetchAssoc();
    $groupcount = $row['ct'];

    // public groups
    $query = db_select('imagepicker_user_groups');
    $query
      ->addExpression('COUNT(gid)', 'ct');
    $query
      ->condition('public', 1);
    $row = $query
      ->execute()
      ->fetchAssoc();
    $publicgroupcount = $row['ct'];

    // private groups
    $query = db_select('imagepicker_user_groups');
    $query
      ->addExpression('COUNT(gid)', 'ct');
    $query
      ->condition('public', 0);
    $row = $query
      ->execute()
      ->fetchAssoc();
    $nopublicgroupcount = $row['ct'];

    // all images
    $query = db_select('imagepicker');
    $query
      ->addExpression('COUNT(img_id)', 'ct');
    $row = $query
      ->execute()
      ->fetchAssoc();
    $allcount = $row['ct'];

    // grouped images
    $query = db_select('imagepicker_group_images', 'gi');
    $query
      ->addExpression('COUNT(DISTINCT gi.img_id)', 'ct');
    $query
      ->join('imagepicker_user_groups', 'g', 'g.gid = gi.gid');
    $row = $query
      ->execute()
      ->fetchAssoc();
    $totcount = $row['ct'];

    // public images
    $query = db_select('users', 'u');
    $query
      ->addExpression('COUNT(i.img_id)', 'ct');
    $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')
      ->condition('iug.public', 1);
    $row = $query
      ->execute()
      ->fetchAssoc();
    $publiccount = $row['ct'];

    // private images
    $query = db_select('users', 'u');
    $query
      ->addExpression('COUNT(i.img_id)', 'ct');
    $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')
      ->condition('iug.public', 0);
    $row = $query
      ->execute()
      ->fetchAssoc();
    $nopubliccount = $row['ct'];
    $bytecount = imagepicker_get_all_bytes();
  }
  $bytecount = _imagepicker_bkmg($bytecount);
  $header = array(
    array(
      'data' => t('Group statistics'),
      'colspan' => 2,
    ),
    array(
      'data' => t('Image statistics'),
      'colspan' => 2,
    ),
  );
  if (user_access('use public imagepicker') && imagepicker_variable_get('imagepicker_public_enabled', 1)) {
    $rows = array(
      array(
        t('Groups') . ": ",
        $groupcount,
        t('Images') . ": ",
        $allcount,
      ),
      array(
        t('Public groups') . ": ",
        $publicgroupcount,
        t('Public images') . ": ",
        $publiccount,
      ),
      array(
        t('Private groups') . ": ",
        $nopublicgroupcount,
        t('Private images') . ": ",
        $nopubliccount,
      ),
      array(
        '',
        '',
        t('Grouped images') . ": ",
        $totcount,
      ),
      array(
        '',
        '',
        t('Ungrouped images') . ": ",
        $allcount - $totcount,
      ),
      array(
        $groupusercount ? t('Group Users') . ": " : '',
        $groupusercount ? $groupusercount : '',
        t('Space used') . ": ",
        $bytecount,
      ),
    );
    if (!$account) {
      $rows = array_merge($rows, array(
        array(
          $usercount ? t('All Users') . ": " : '',
          $usercount ? $usercount : '',
          '',
          '',
        ),
      ));
    }
  }
  else {
    $rows = array(
      array(
        t('Groups') . ": ",
        $groupcount,
        t('Images') . ": ",
        $allcount,
      ),
      array(
        '',
        '',
        t('Grouped images') . ": ",
        $totcount,
      ),
      array(
        '',
        '',
        t('Ungrouped images') . ": ",
        $allcount - $totcount,
      ),
      array(
        $groupusercount ? t('Group Users') . ": " : '',
        $groupusercount ? $groupusercount : '',
        t('Space used') . ": ",
        $bytecount,
      ),
    );
    if (!$account) {
      $rows = array_merge($rows, array(
        array(
          $usercount ? t('All Users') . ": " : '',
          $usercount ? $usercount : '',
          '',
          '',
        ),
      ));
    }
  }
  return theme('imagepicker_stats', array(
    'header' => $header,
    'rows' => $rows,
    'message' => t('No Stats found'),
    'pref' => '<div class="imgp_groups_info">',
    'suff' => '</div>',
    'label' => $label,
  ));
}