function _imagepicker_browse_public in Image Picker 7
Same name and namespace in other branches
- 5.2 imagepicker.module \_imagepicker_browse_public()
- 6.2 imagepicker.functions.inc \_imagepicker_browse_public()
3 calls to _imagepicker_browse_public()
File
- ./
imagepicker.functions.inc, line 978 - @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL
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 = imagepicker_variable_get('imagepicker_public_currentgroup', 0);
}
else {
// get the current users setting
$gid = imagepicker_variable_get('imagepicker_public_currentgroup', 0, $user->uid);
}
}
$max = imagepicker_variable_get('imagepicker_advanced_browser_page', imagepicker_variable_get('imagepicker_advanced_browser_page', 25), $user->uid);
$default_order = imagepicker_variable_get('imagepicker_default_browser_order', imagepicker_variable_get('imagepicker_default_browser_order', 'img_id DESC'), $user->uid);
$order = imagepicker_variable_get('imagepicker_browser_order', $default_order, $user->uid);
if ($src == 'admin') {
$searchs = imagepicker_variable_get('imagepicker_browser_search', '');
}
else {
$searchs = imagepicker_variable_get('imagepicker_browser_search', '', $user->uid);
}
if ($searchs) {
$searchs = trim($searchs);
$searchs = check_plain($searchs);
}
$sarr = '';
// Build sql for public with role restriction matching
$rarr = array();
$rolesql = '';
$rolesarr = array();
if ($range == 1 || $range == 2) {
$publicstate = $range == 1 ? 1 : 0;
$query = db_select('users', 'u')
->extend('PagerDefault')
->limit($max);
$query
->fields('i', array(
'img_id',
'uid',
'img_name',
'img_title',
'img_description',
'img_date',
));
$query
->addField('u', 'name');
$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.public', $publicstate);
if ($gid && $publicstate) {
$query
->condition('iug.gid', $gid);
}
if ($range == 1) {
$label = t('List All Public Images');
}
else {
$label = t('List All Private Images');
}
}
else {
$query = db_select('imagepicker', 'i')
->extend('PagerDefault')
->limit($max);
$query
->fields('i', array(
'img_id',
'uid',
'img_name',
'img_title',
'img_description',
'img_date',
));
$query
->addField('u', 'name');
$query
->join('users', 'u', 'i.uid = u.uid');
$query
->condition('u.status', 1);
}
// search
$searchsql = '';
if ($searchs) {
$searchsql = _imagepicker_search_opts($searchs, $src == 'admin' ? TRUE : FALSE);
}
if (is_array($searchsql)) {
$query
->condition($searchsql[0], $searchsql[1], $searchsql[2]);
}
elseif (is_object($searchsql)) {
$query
->condition($searchsql);
}
// roles
$rolesql = '';
if ($range == 1 && imagepicker_variable_get('imagepicker_publicroles_enabled', 1) && $src != 'admin') {
$roles = $user->roles;
if (count($roles)) {
$ct = 0;
foreach ($roles as $role) {
$role = '%' . db_like($role) . '%';
if (!$ct) {
// first time
$rolesql = db_or()
->condition('iug.avail_roles', 'all', '=')
->condition('iug.avail_roles', $role, 'LIKE');
}
else {
$rolesql
->condition('iug.avail_roles', $role, 'LIKE');
}
$ct++;
}
}
}
if (is_object($rolesql)) {
$query
->condition($rolesql);
}
$a = explode(' ', $order);
$query
->orderBy($a[0], isset($a[1]) ? $a[1] : 'DESC');
$records = $query
->execute();
$content = _imagepicker_thumbs_getrows($records, TRUE, $src);
$message = "";
if (!is_array($content)) {
$ibp = imagepicker_variable_get('imagepicker_browse_public', 0);
if ($ibp == 1 || $range == 1) {
$ibpout = "public";
}
elseif ($ibp == 2 || $range == 2) {
$ibpout = "private";
}
else {
$ibpout = "";
}
imagepicker_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();
if (imagepicker_variable_get('imagepicker_show_browse_order_form', 1, $user->uid)) {
$forms['browse_order'] = drupal_get_form('imagepicker_browse_order_form');
}
elseif (imagepicker_variable_get('imagepicker_show_browse_order_form', 1)) {
$forms['browse_order'] = drupal_get_form('imagepicker_browse_order_form');
}
if ($src == 'admin' && imagepicker_variable_get('imagepicker_groups_enabled', 1)) {
$forms['browse_public'] = drupal_get_form('imagepicker_browse_public_form');
}
if (imagepicker_variable_get('imagepicker_groups_enabled', 1) && _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);
}
// search form
if ($src == 'admin') {
if (imagepicker_variable_get('imagepicker_show_browse_search_form', 1)) {
$forms['browse_search'] = drupal_get_form('imagepicker_browse_search_form', $user, TRUE);
}
}
elseif (imagepicker_variable_get('imagepicker_show_browse_search_form', imagepicker_variable_get('imagepicker_show_browse_search_form', 1), $user->uid)) {
$forms['browse_search'] = drupal_get_form('imagepicker_browse_search_form', $user, FALSE);
}
if ($src == "account" || $src == 'admin') {
$help = t('Hold the mouse over an image to view Name, Title and Description, Click on it to view.');
}
else {
$help = t('Hold the mouse over an image to view Name, Title and Description, Click on it to use.');
}
return theme('imagepicker_browser', array(
'content' => $content,
'forms' => $forms,
'message' => $message,
'help' => $help,
'label' => $label,
));
}