Coding standards
Security in ResourceSpace
Developer reference
Database
Action functions
Admin functions
Ajax functions
Annotation functions
API functions
Collections functions
Comment functions
Config functions
CSV export functions
Dash functions
Debug functions
Encryption functions
Facial recognition functions
File functions
General functions
Language functions
Log functions
Login functions
Message functions
Migration functions
Node functions
PDF functions
Plugin functions
Render functions
Reporting functions
Request functions
Research functions
Slideshow functions
Theme permission functions
User functions
Video functions
Database functions
Metadata functions
Resource functions
Search functions
Map functions
Job functions
Tab functions
Test functions

search_get_previews()

Parameters

ColumnTypeDefaultDescription
$search
$restypes ""
$order_by "relevance"
$archive 0
$fetchrows -1
$sort "DESC"
$access_override false
$ignore_filters false
$return_disk_usage false
$recent_search_daylimit ""
$go false
$stats_logging true
$return_refs_only false
$editable_only false
$returnsql false
$getsizes array
$previewextension "jpg"

Location

include/search_functions.php lines 1929 to 1994

Definition

 
function search_get_previews($search$restypes ""$order_by "relevance"$archive 0$fetchrows = -1$sort "DESC"$access_override false$ignore_filters false$return_disk_usage false$recent_search_daylimit ""$go false$stats_logging true$return_refs_only false$editable_only false$returnsql false$getsizes = array(), $previewextension "jpg")
{
    global 
$access;

    
$structured false;
    if (
is_array($fetchrows)) {
        
$structured true;
    } elseif (!
is_array($fetchrows) && strpos((string)$fetchrows",") !== false) {
        
$fetchrows explode(","$fetchrows);
        if (
count($fetchrows) == 2) {
            
$structured true;
        } else {
            
$fetchrows 0;
        }
    }

    if (
$structured) {
        
array_map(function ($val) {
            return 
$val $val 0;
        }, 
$fetchrows);
    }

    
# Note the subset of the available parameters. We definitely don't want to allow override of permissions or filters.
    
$results do_search($search$restypes$order_by$archive$fetchrows$sort$access_overrideDEPRECATED_STARSEARCH$ignore_filters$return_disk_usage$recent_search_daylimit$go$stats_logging$return_refs_only$editable_only$returnsql);
    if (
is_string($getsizes)) {
        
$getsizes explode(","$getsizes);
    }
    
$getsizes array_map('trim'$getsizes);

    if (!
is_array($results)) {
        return 
$results;
    }

    
$total $results["total"] ?? count($results);
    
$resultset $results["data"] ?? $results;
    
$use_watermark check_use_watermark();

    if (
is_array($resultset) && is_array($getsizes) && count($getsizes) > 0) {
        
$available get_all_image_sizes(true, ($access == 1));
        for (
$n 0$n $total$n++) {
            
// if using fetchrows some results may just be == 0 - remove from results array
            
if (!isset($resultset[$n]) || $resultset[$n] == 0) {
                continue;
            }
            
            
$access $resultset[$n]["resultant_access"] ?? get_resource_access($resultset[$n]);

            if (
$access == 2) {
                
// No images for confidential resources
                
continue;
            }
            foreach (
$getsizes as $getsize) {
                if (!(
in_array($getsizearray_column($available"id")))) {
                    continue;
                }
                if (
                    !
resource_has_access_denied_by_RT_size($resultset[$n]['resource_type'], $getsize)
                    && 
file_exists(get_resource_path($resultset[$n]["ref"], true$getsizefalse$previewextension, -11$use_watermark))
                ) {
                    
$resultset[$n]["url_" $getsize] = get_resource_path($resultset[$n]["ref"], false$getsizefalse$previewextension, -11$use_watermark);
                }
            }
        }
    }
    return 
$structured ? ["total" => $total"data" => $resultset] : $resultset;
}

This article was last updated 21st May 2025 10:05 Europe/London time based on the source file dated 14th May 2025 18:00 Europe/London time.