Collections functions
General functions
Node functions
Render functions
Theme permission functions
User functions
Resource functions

render_featured_collections()

Description

Render featured collections (as tiles on the collections_featured.php page)

Parameters

ColumnTypeDefaultDescription
$ctx array Context data to allow caller code to decide rendering requirements
$items array List of items to render (featured collection category, actual collection or smart collection)

Location

include/render_functions.php lines 4698 to 4869

Definition

 
function render_featured_collections(array $ctx, array $items)
    {
    global 
$baseurl_short$lang$k$themes_simple_images$FEATURED_COLLECTION_BG_IMG_SELECTION_OPTIONS$themes_simple_view,$show_theme_collection_stats;

    
$is_smart_featured_collection = (isset($ctx["smart"]) ? (bool) $ctx["smart"] : false);
    
$general_url_params = (isset($ctx["general_url_params"]) && is_array($ctx["general_url_params"]) ? $ctx["general_url_params"] : array());
    
$all_fcs = (isset($ctx["all_fcs"]) && is_array($ctx["all_fcs"]) ? $ctx["all_fcs"] : array());

    foreach(
$items as $fc)
        {
        
$render_ctx $ctx;
        
$is_featured_collection_category is_featured_collection_category($fc);
        
$is_featured_collection = (!$is_featured_collection_category && !$is_smart_featured_collection);

        
$tool_edit = array(
            
"href" => generateURL("{$baseurl_short}pages/collection_edit.php",
                array(
                    
"ref" => $fc["ref"],
                    
"redirection_endpoint" => urlencode(
                        
generateURL(
                            
"{$baseurl_short}pages/collections_featured.php",
                            
$general_url_params,
                            array(
"parent" => $fc["parent"])
                        )
                    )
                )
            ),
            
"text" => $lang['action-edit'],
            
"modal_load" => true,
            
"redirect" => true
        
);
        
$tool_select = array(
            
"text" => $lang['action-select'],
            
"custom_onclick" => "return ChangeCollection({$fc['ref']}, '');"
        
);

        
// Prepare FC images
        
$thumbnail_selection_method $fc["thumbnail_selection_method"];
        
$show_images = ($themes_simple_view && in_array($thumbnail_selection_method$FEATURED_COLLECTION_BG_IMG_SELECTION_OPTIONS) && $thumbnail_selection_method != $FEATURED_COLLECTION_BG_IMG_SELECTION_OPTIONS["no_image"]);
        unset(
$fc_resources);
        if(
$themes_simple_images && $show_images)
            {
            
$fc_resources get_featured_collection_resources(
                
$fc,
                array(
                    
"smart" => $is_smart_featured_collection,
                    
"use_thumbnail_selection_method" => !$is_smart_featured_collection,
                    
"all_fcs" => $all_fcs,
                ));
            
$fc_images generate_featured_collection_image_urls($fc_resources"pre");

            if(!empty(
$fc_images))
                {
                
$render_ctx["images"] = $fc_images;
                }
            }

        
// Featured collection default tools
        
if($is_featured_collection && checkPermission_dashmanage())
            {
            
$render_ctx["tools"][] = array(
                
"href" => generateURL(
                    
"{$baseurl_short}pages/dash_tile.php",
                    array(
                        
'create'            => 'true',
                        
'tltype'            => 'srch',
                        
'title'             => "{$fc['name']}",
                        
'freetext'          => 'true',
                        
'tile_audience'     => 'false',
                        
'all_users'         => 1,
                        
'promoted_resource' => (isset($render_ctx["images"]) ? 'true' ""),
                        
'link'              => "{$baseurl_short}pages/search.php?search=!collection{$fc['ref']}",
                    )
                ),
                
"text" => $lang['add_to_dash']);
            }
        if(
$is_featured_collection && allow_featured_collection_share($fc))
            {
            
$render_ctx["tools"][] = array(
                
"href" => generateURL("{$baseurl_short}pages/collection_share.php", array("ref" => $fc["ref"])),
                
"text" => $lang["share"]);
            }
        if(
$is_featured_collection && collection_readable($fc['ref']))
            {
            
$render_ctx["tools"][] = $tool_select;
            }
        if(
$is_featured_collection && collection_writeable($fc['ref']))
            {
            
$render_ctx["tools"][] = $tool_edit;
            }
        if(
$is_featured_collection && $show_theme_collection_stats)
            {
            
$render_ctx['show_resources_count'] = true;
            }


        if(
$is_featured_collection_category && !$is_smart_featured_collection)
            {
            global 
$enable_theme_category_edit;

            
$fc_category_url generateURL("{$baseurl_short}pages/collections_featured.php"$general_url_params, array("parent" => $fc["ref"]));
            
$fc_category_has_children = (isset($fc["has_children"]) ? (bool) $fc["has_children"] : false);

            
$render_ctx["href"] = $fc_category_url;
            
$render_ctx["icon"] = ICON_FOLDER;
            
$render_ctx["tools"] = array();

            if(
checkPermission_dashmanage())
                {
                
$render_ctx["tools"][] = array(
                    
"href" => generateURL(
                        
"{$baseurl_short}pages/dash_tile.php",
                        array(
                            
'create'            => 'true',
                            
'tltype'            => 'fcthm',
                            
'tlstyle'           => 'thmbs',
                            
'title'             => "{$fc['name']}",
                            
'freetext'          => 'true',
                            
'tile_audience'     => 'false',
                            
'promoted_resource' => (isset($render_ctx["images"]) ? 'true' ""),
                            
'link'              => $fc_category_url
                        
)
                    ),
                    
"text" => $lang["add_to_dash"]);
                }

            if(
checkperm("h"))
                {
                
$render_ctx["tools"][] = array(
                    
"href" => generateURL("{$baseurl_short}pages/collection_share.php", array("ref" => $fc["ref"])),
                    
"text" => $lang["share"]);
                }

            if(!
$fc_category_has_children && collection_readable($fc['ref']))
                {
                
$render_ctx["tools"][] = $tool_select;
                }

            if(
$enable_theme_category_edit && checkperm("h") || checkperm("t"))
                {
                
$render_ctx["tools"][] = $tool_edit;
                }
            }

        if(
$is_smart_featured_collection)
            {
            
$search NODE_TOKEN_PREFIX $fc["ref"];
            
$render_ctx["href"] = generateURL("{$baseurl_short}pages/search.php", array("search" => $search"resetrestypes" => "true"));

            
$node_is_parent = (isset($fc["node_is_parent"]) ? $fc["node_is_parent"] : true);
            if(
$node_is_parent)
                {
                
$render_ctx["href"] = generateURL(
                    
"{$baseurl_short}pages/collections_featured.php",
                    array(
                        
"smart_rtf" => $fc["resource_type_field"],
                        
"smart_fc_parent" => $fc["parent"],
                    ));
                }
            
$render_ctx["icon"] = ICON_FOLDER;
            
$render_ctx["tools"] = array();
            }
            
        
// Don't show the tools for external shares
        
if (trim($k) != "")
            {
            
$render_ctx["tools"] = array();
            }

        
render_featured_collection($render_ctx$fc);
        }
    }

This article was last updated 19th March 2024 02:05 Europe/London time based on the source file dated 15th March 2024 17:00 Europe/London time.