function _imagepicker_browse_public in Image Picker 6.2
Same name and namespace in other branches
- 5.2 imagepicker.module \_imagepicker_browse_public()
- 7 imagepicker.functions.inc \_imagepicker_browse_public()
3 calls to _imagepicker_browse_public()
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);
}