Collections functions
Encryption functions
General functions
Render functions
Theme permission functions
Video functions
Resource functions

get_resource_top_keywords()

Parameters

ColumnTypeDefaultDescription
$resource
$count

Location

include/resource_functions.php lines 3183 to 3238

Definition

 
function get_resource_top_keywords($resource,$count)
    {
    
# Return the top $count keywords (by hitcount) used by $resource.
    # This section is for the 'Find Similar' search.
    # These are now derived from a join of node and resource_node for fixed keyword lists and resource_data for free text fields
    # Currently the date fields are not used for this feature
        
    
$return=array();
    
    
$keywords sql_query("select distinct rd.value keyword,f.ref field,f.resource_type from resource_data rd,resource_type_field f where rd.resource='$resource' and f.ref=rd.resource_type_field and f.type in (0,1,5,8,13) and f.keywords_index=1 and f.use_for_similar=1 and length(rd.value)>0 limit $count");
    
    
$fixed_dynamic_keywords sql_query("select distinct n.ref, n.name, n.resource_type_field from node n inner join resource_node rn on n.ref=rn.node where (rn.resource='$resource' and n.resource_type_field in (select rtf.ref from resource_type_field rtf where use_for_similar=1) ) order by new_hit_count desc limit $count");
    
    
$combined array_merge($keywords,$fixed_dynamic_keywords);
    
    foreach ( 
$combined as $keyword )
        {
        
# If isset($keyword['keyword']) this means that the value is coming free text in general    
        
if ( isset($keyword['keyword']) )
            {
            
# Apply permissions and strip out any results the user does not have access to.
            
if (metadata_field_view_access($keyword["field"]) && !checkperm("T" $keyword["resource_type"]))
                {
                
$r =  $keyword["keyword"] ;
                }   
            }
            
        else
            {
            
# In this case the keyword is coming from nodes
            # Apply permissions and strip out any results the user does not have access to.
            
if (metadata_field_view_access($keyword["resource_type_field"]) && !checkperm("T" $resource))
                {
                
$r =  $keyword["name"] ;   
                }
            }

        if(isset(
$r) && trim($r) != '')
            {  
            if (
substr($r,0,1)==","){$r=substr($r,1);}
            
$s=split_keywords($r);
            
# Splitting keywords can result in break words being included in these results
            # These should be removed here otherwise they will show as keywords themselves which is incorrect
            
global $noadd
            foreach (
$s as $a)
                {
                if(!empty(
$a) && !in_array($a,$noadd))
                    {
                    
$return[]=$a;
                    }
                }
            }
        }   
            
    return 
$return;
    }

This article was last updated 24th November 2020 05:35 Europe/London time based on the source file dated 13th November 2020 16:50 Europe/London time.