title; $gid = ($keywords)?'k':$group->gid; if($keywords){ $array = & $group; } else{ $array = & $group->categories; } $res="
".$titre.":
"; return $res; } function _display_groupes($params, &$smarty){ if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } foreach($exalead_data->groups as $group){ display_group($group, $exalead_data); } } function _display_keywords($params, &$smarty){ if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } display_group($exalead_data->keywords, $exalead_data, true); } function _exa_navigation_gauche($params, &$smarty){ if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } $res = ''; if($exalead_data->start > 0){ $debut_g = $exalead_data->start - 9; $debut_d = $debut_g + 9; if($debut_g < 0){ $res .= "query->context}&_s=0\">[1-10]"; } else{ $res .= "query->context}&_s=".($debut_g-1)."\">[$debut_g-$debut_d]"; } } return $res; } function _exa_navigation_droite($params, &$smarty){ if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } $max = -1; if(!empty($params['max'])){ $max = (int) $params['max']; if(($max < 0) || ($max > $exalead_data->nhits)){ $max = $exalead_data->nhits; } } else{ $max = $exalead_data->nhits; } $res = ''; if(($exalead_data->end < $max) && ($max > 10)){ $fin_g = $exalead_data->end + 1; $fin_d = $fin_g + 10; if($fin_d > $max){ $res .= "query->context}&_s=".($max-10)."\">[".($max-10)."-".($max)."]"; } else{ $res .= "query->context}&_s=$fin_g\">[".($fin_g+1)."-$fin_d]"; } } return $res; } function _exa_navigation_barre($params, &$smarty){ if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } if(!empty($params['nb_res_per_page'])){ $nb_res_per_page = (int) $params['nb_res_per_page']; } else $nb_res_per_page = 10;//10 results per page if(!empty($params['max_results']) && ((int) $params['max_results'] < $exalead_data->nhits)){ $nb_hits = (int) $params['max_results']; } else{ $nb_hits = (int) $exalead_data->nhits; } $res = ''; $nb_numero = 5;//We want 5 links $current_page = (empty($_GET['_s'])?1:1+(int) ($_GET['_s'] / $nb_res_per_page)); $first_number = 1; if($nb_hits < ($nb_numero) * $nb_res_per_page){ $nb_numero = (int) ($nb_hits / $nb_res_per_page); } else{ if($current_page > ((int)$nb_numero/2)) $first_number = 1 + $current_page - (int)($nb_numero/2); if($nb_hits < (($first_number + $nb_numero - 1) * $nb_res_per_page)){ $first_number = (int) ($nb_hits / $nb_res_per_page) - $nb_numero+2; } } if ($current_page*$nb_res_per_page >$nb_res_per_page) $res.="query->context}&_s=".(($current_page-2)*$nb_res_per_page)."\">Precedent "; for($i = $first_number; $i <= $nb_numero + $first_number-1; $i++){ $k=$nb_res_per_page*($i-1)+1; $j=$nb_res_per_page*$i; if($i == $current_page){ $res .= "$k-$j "; } else{ $res .= "query->context}&_s=".(($i-1)*$nb_res_per_page)."\">$k-$j "; } } if ($current_page*10<$nb_hits) $res.="query->context}&_s=".(($current_page)*$nb_res_per_page)."\">Suivant"; $date=false; foreach($exalead_data->query->query_parameters as $parameter){ if($parameter->name=="_sf"){ if($parameter->value=="-date") $date=true; } } if($date) $res.=" - query->context}/_sf=relevance&_f=xml2\">[Classer par pertinence]"; else $res.=" - query->context}/_sf=-date&_f=xml2\">[Classer par date]"; return $res; } function _little_nav_barre($params, &$smarty){ if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } $box=false; if(!empty($params['where'])) if($params['where']=='box') $box=true; $date=false; foreach($exalead_data->query->query_parameters as $parameter){ if($parameter->name=="_sf"){ if($parameter->value=="-date") $date=true; } } $dizaine=10*(int)($exalead_data->start/10); $res=""; if ($box) $res .= ""; else $res.= "
"; $res.=""; if($box) $res.=""; if($box){ $res.=""; if($box) $res.="
"; else $res .=" "; if($exalead_data->start != 0){ $num=$exalead_data->start-1; $res .="query->context}&_s=".$num."\">Précédent"; } $num=$exalead_data->start+1; $res .= " CV : ".$num." / {$exalead_data->nhits}
"; } else{ $res.="
CV : ".$num." / {$exalead_data->nhits} -"; } if($date) $res.="query->context}/_sf=-date&_f=xml2&_s=".$dizaine."\">Retour à la recherche"; else $res.="query->context}/_sf=-relevance&_f=xml2&_s=".$dizaine."\">Retour à la recherche"; $res .=""; else $res .= ""; $num=$exalead_data->start+1; if( $exalead_data->start+1 < $exalead_data->nhits) $res .= "query->context}&_s=".$num."\">Suivant"; $res .="
"; return $res; } //categorie = true if this line is for a category, false if this is for a keyword function _display_3_columns($title, $count, $refine, $exclude, $categorie){ if ($title!='Inconnu'){ global $exa_max_length; if($categorie) $title_exclude = 'Ne pas afficher cette catégorie'; else $title_exclude = 'Ne pas afficher ce mot-clé'; $extract = ((strlen($title) > $exa_max_length + 3)?substr($title,0,$exa_max_length).'...':$title); return " $extract$count [-] "; } } //excluded = true if this line is an excluded result, = false if this line is a refined result //categorie = true if this line is for a category, false if this is for a keyword function _display_2_columns($title, $reset, $excluded, $categorie){ global $exa_max_length; if($excluded){ if($categorie) $title_link = 'Afficher de nouveau cette catégorie'; else $title_link = 'Afficher de nouveau ce mot-clé'; $link = '[+]'; $style = 'text-decoration: line-through;'; } else{ if($categorie) $title_link = 'Voir les autres catégories'; else $title_link = 'Voir les autres mots-clés'; $link = '[-]'; $style = 'text-decoration: none; font-weight: bold;'; } $extract = ((strlen($title) > $exa_max_length + 3)?substr($title,0,$exa_max_length).'...':$title); return " $extract $link "; } function _display_resume_groupe_category(&$group, $context, $padding = ''){ $result = ''; foreach($group->categories as $categorie){ $title = (empty($categorie->display)?$categorie->name:$categorie->display); $count = (empty($categorie->count)?'':' ('.$categorie->count.')'); $refine = $context.'/'.$categorie->refine_href; $exclude = $context.'/'.$categorie->exclude_href; $reset = $context.'/'.$categorie->reset_href; if($categorie->display != ''){ if($categorie->is_normal()){ $result .= _display_3_columns($padding.$title, $count, $refine, $exclude, true); } else{ $result .= _display_2_columns($padding.$title, $reset, $categorie->is_excluded(), true); } } if(count($categorie->categories) > 0){ $result .= _display_resume_groupe_category($categorie, $context, $padding.'-'); } } return $result; } /** * This function is used to resume database content for given group (template argument 'groupe') */ function _display_resume_groupe($params, &$smarty){ global $exa_max_length; if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } if(empty($params['groupe'])){ return ''; } $groupe = $params['groupe']; $name = $params['display']; foreach($exalead_data->groups as $group){ if($group->title == $groupe){ $result = ""; $result .= _display_resume_groupe_category($group, $exalead_data->query->context); $result .= "
".gettext($name)."
"; return $result; } } } /** * This function is used to resume database content for keywords */ function _display_resume_keywords($params, &$smarty){ global $exa_max_length; if(!empty($params['exalead_data'])){ $exalead_data = &$GLOBALS[$params['exalead_data']]; } else{ $exalead_data = &$GLOBALS['exalead_data']; } //if no keywrods, do not display anything if(count($exalead_data->keywords) == 0) return ''; $name=$params['display']; $result = ""; foreach($exalead_data->keywords as $keyword){ if($keyword->display != ''){ $title = (empty($keyword->display)?$keyword->name:$keyword->display); $count = (empty($keyword->count)?'':' ('.$keyword->count.')'); $refine = $exalead_data->query->context.'/'.$keyword->refine_href; $exclude = $exalead_data->query->context.'/'.$keyword->exclude_href; $reset = $exalead_data->query->context.'/'.$keyword->reset_href; if($keyword->is_normal()){ $result .= _display_3_columns($title, $count, $refine, $exclude, false); } else{ $result .= _display_2_columns($title, $reset, $keyword->is_excluded(), false); } } } $result .= "
".gettext($name)."
"; return $result; } function register_smarty_exalead(&$page){ $page->register_function('little_nav_barre','_little_nav_barre'); $page->register_function('exa_display_groupes', '_display_groupes'); $page->register_function('exa_display_resume_groupe', '_display_resume_groupe'); $page->register_function('exa_display_resume_keywords', '_display_resume_keywords'); $page->register_function('exa_display_keywords', '_display_keywords'); $page->register_function('exa_navigation_gauche', '_exa_navigation_gauche'); $page->register_function('exa_navigation_droite', '_exa_navigation_droite'); $page->register_function('exa_navigation_barre', '_exa_navigation_barre'); } if(isset($page)){ register_smarty_exalead($page); } ?>