* @version $Id$ * @access public * @license http://opensource.org/licenses/gpl-3.0.html */ include_once(override('../search/' . SQL . '.inc.php')); /** * MatchDataFormat() * * @param string $keywords * @param string $searchtype * @return string $formatted_keywords */ if(!function_exists('MatchDataFormat')) { function MatchDataFormat($keywords, $searchtype) { $keywords = trim(addslashes($keywords)); // if MODE_SEARCH is equal to 'WITH QUERY EXPANSION' we do not format keywords // or $searchtype === 'expanded' if((defined('SEARCH_MODE') && stripos(SEARCH_MODE, 'boolean') === false) || $searchtype === 'expanded') return $keywords; switch ($searchtype) { case 'one': if(strtolower(SQL)=='pgsql') { $words = explode(' ', $keywords); $formatted_keywords = ''; $op=''; foreach($words as $value) { $formatted_keywords .= $op . $value; $op=' | '; } trim($formatted_keywords); } if(strtolower(SQL)=='mysql') { $formatted_keywords = $keywords; } break; case 'all': $words = explode(' ', $keywords); $formatted_keywords = ''; $op=''; foreach($words as $value) { $formatted_keywords .= $op . $value; if(strtolower(SQL)=='pgsql') $op=' & '; if(strtolower(SQL)=='mysql') $op=' + '; } trim($formatted_keywords); break; case 'exp': if(strtolower(SQL)=='pgsql') { $words = explode(' ', $keywords); $formatted_keywords = ''; $op=''; foreach($words as $value) { $formatted_keywords .= $op . $value; $op=' & '; } trim($formatted_keywords); } if(strtolower(SQL)=='mysql') { $formatted_keywords = '"' . $keywords . '"'; } break; default: if(strtolower(SQL)=='pgsql') { $words = explode(' ', $keywords); $formatted_keywords = ''; $op=''; foreach($words as $value) { $formatted_keywords .= $op . $value; $op=' | '; } trim($formatted_keywords); } if(strtolower(SQL)=='mysql') { $formatted_keywords = $keywords; } break; } return $formatted_keywords; } } if(!function_exists('GetStatus')) { function GetStatus($short_status) { $write = ' - '; switch ($short_status) { case 'PA': $write .= _t('statut','PA'); break; case 'AA': $write .= _t('statut','AA'); break; case 'P': $write = ''; break; case 'Y': $write = ''; break; case 'D': $write .= _t('statut','draft'); break; default: $write = ''; } return $write; } } /** * DisplayPublicResults() * * @param string $keywords * @param string $searchtype * @return void (echo) **/ if(!function_exists('DisplayPublicResults')) { function DisplayPublicResults($keywords, $searchtype) { $type = 'PUBLIC'; if(defined('MOD_PROJECT') && MOD_PROJECT == true) DisplaySearchProject($keywords, $type, $searchtype); if(defined('MOD_NEWS') && MOD_NEWS == true) DisplaySearchNews($keywords, $type, $searchtype); //echo '
'; if(defined('MOD_PUBLICATION') && MOD_PUBLICATION == true) DisplaySearchPublication($keywords, $type, $searchtype); // echo '
'; if(defined('MOD_PUBLICATION') && MOD_PUBLICATION == true) DisplaySearchPubliContents($keywords, $type, $searchtype); //echo '
'; if(defined('MOD_WORKSHOP') && MOD_WORKSHOP == true) DisplaySearchWorkshop($keywords, $type, $searchtype); // echo '
'; if(defined('MOD_WORKSHOP') && MOD_WORKSHOP == true) DisplaySearchWorkshopRep($keywords, $type, $searchtype); // echo '
'; if(defined('MOD_WORKSHOP') && MOD_WORKSHOP == true) DisplaySearchWorkshopRepContents($keywords, $type, $searchtype); // echo '
'; if(defined('MOD_WORKSHOP') && MOD_WORKSHOP == true) DisplaySearchWorkshopCalendar($keywords, $type, $searchtype); // echo '
'; if(defined('MOD_WORKSHOP') && MOD_WORKSHOP == true) DisplaySearchWorkshopCom($keywords, $type, $searchtype); //echo '
'; if(defined('MOD_SDI') && MOD_SDI == true) DisplaySearchSdi($keywords, $type, $searchtype); //echo '
'; if(defined('MOD_YELLOWPAGES') && MOD_YELLOWPAGES == true) DisplaySearchYellowpages($keywords, $type, $searchtype); } } /** * DisplaySearchComment() * Affiche les projets répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchComment')) { function DisplaySearchComment($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_comment_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); // no search on comments from public app if($type == 'PUBLIC') return true; $content = '
'; $content .= '

' . _t('search','comment_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchProject() * Affiche les projets répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchProject')) { function DisplaySearchProject($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_project_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','project_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchPage() * Affiche les pages répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchPage')) { function DisplaySearchPage($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_page_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','page_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchNews() * Affiche les news répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchNews')) { function DisplaySearchNews($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_news_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','news_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchNews() * Affiche les news répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchNewsletter')) { function DisplaySearchNewsletter($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_newsletter_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','newsletter_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '
    ' . PHP_EOL; for($i = 0; $i < count($data); $i++) { /** * * NON IMPLEMENTE * if ($type == 'PUBLIC') { * $link_news = HrefMaker(array('rub' => $GLOBALS['links'][U_L]['news']['linkvalue'], 'id' => $data[$i]['news_id'])); * $published_display = _t('statut','published_on') . ' ' . $data[$i]['date_display']; * } */ if ($type == 'ADMIN') { $link_newsletter = 'index.php?rub=newsletter&todo=det&id=' . $data[$i]['newsletter_id']; $published_display = _t('divers','date_crea') . ' : ' . $data[$i]['date_display']; } $newsletter_title = formatText($data[$i]['newsletter_title'], '2HTML'); $pertinence = FormatPertinenceIndice($data[$i]['pertinence']); $content .= '
  1. ' . PHP_EOL; $content .= '' . $newsletter_title . ''; $content .= ' - ' . mb_ucfirst($published_display) . GetStatus($data[$i]['statut']) . ''; $content .= $pertinence; $content .= '
  2. ' . PHP_EOL; } $content .= '
' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchPublication() * Affiche les publications répondant à la requête sur $keywords * Requête éffectuée sur le titre et le résumé des publications * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchPublication')) { function DisplaySearchPublication($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_publication_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','publication_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchPubliContents() * Affiche les publications répondant à la requête sur $keywords * Requête éffectuée sur le contenu des publications ( titre & body ) * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchPubliContents')) { function DisplaySearchPubliContents($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_publication_content_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','det_publication_module') . '

' . PHP_EOL; //if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) return true; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchWorkshop() * Affiche les groupes de travail répondant à la requête sur $keywords * Requête éffectuée sur le libellé et le résumé des groupes de travail * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchWorkshop')) { function DisplaySearchWorkshop($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_workshop_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','workshop_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchWorkshopRep() * Affiche les groupes de travail répondant à la requête sur $keywords * Requête éffectuée sur le contenu des rapports de groupes de travail ( titre & body ) * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchWorkshopRep')) { function DisplaySearchWorkshopRep($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_workrep_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','workshoprep_module') . '

' . PHP_EOL; //if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) return true; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchWorkshopRepContents() * Affiche les groupes de travail répondant à la requête sur $keywords * Requête éffectuée sur le contenu des rapports de groupes de travail ( titre & body ) * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchWorkshopRepContents')) { function DisplaySearchWorkshopRepContents($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_workrep_content_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '
' . _t('search','workshoprepcon_module') . '
' . PHP_EOL; //if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) return true; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchWorkshopCalendar() * Affiche les groupes de travail répondant à la requête sur $keywords * Requête éffectuée sur les tâches du calendrier de groupes de travail ( libellé & contenu des tâches ) * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchWorkshopCalendar')) { function DisplaySearchWorkshopCalendar($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_workshop_calendar_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','workshopcal_module') . '

' . PHP_EOL; //if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) return true; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchWorkshopCom() * Affiche les groupes de travail répondant à la requête sur $keywords * Requête éffectuée sur les discussions du calendrier de groupes de travail ( titre & contenu ) * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchWorkshopCom')) { function DisplaySearchWorkshopCom($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_workshop_com_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','workshopcom_module') . '

' . PHP_EOL; //if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) return true; else { $stack = array(); $content .= '' . PHP_EOL; if ($content == '') return ''; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchSdi() * Affiche les indicateurs répondant à la requête sur $keywords * Requête éffectuée sur les informations générales des indicateurs * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchSdi')) { function DisplaySearchSdi($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_sdi_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); if(isset($_REQUEST['rub']) && $_REQUEST['rub']=='dashboard') { $rub = 'dashboard'; } else { $rub = 'sdi'; } $content = '
'; $content .= '

' . _t('search','sdi_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchYellowpages() * Affiche les organisations de l'annuaire répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchYellowpages')) { function DisplaySearchYellowpages($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_yellowpages_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','yellowpages_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchUser() * Affiche les utilisateurs répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchUser')) { function DisplaySearchUser($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_user_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','user_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchTag() * Affiche les tags répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchTag')) { function DisplaySearchTag($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_tag_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','tag_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchLevel() * Affiche les niveaux répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchLevel')) { function DisplaySearchLevel($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_level_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','level_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplaySearchScale() * Affiche les échelles répondant à la requête sur $keywords * * @param string $keywords * @return string $content */ if(!function_exists('DisplaySearchScale')) { function DisplaySearchScale($keywords, $type, $searchtype) { $data = $GLOBALS['sql_object']->DBSelect(SQL_scale_search(MatchDataFormat($keywords, $searchtype), $type, $searchtype)); $content = '
'; $content .= '

' . _t('search','scale_module') . '

' . PHP_EOL; if (count($data) == 1 && $data == 0) $content .= '

' . _t('search','no_result') . '

' . PHP_EOL; else { $content .= '' . PHP_EOL; } $content .= '
' . PHP_EOL; echo $content; } } /** * DisplayQueryTime() * Affiche le temps d'execution des requêtes * * @param float $start_time * @param float $end_time * @return string $content (echo) */ if(!function_exists('DisplayQueryTime')) { function DisplayQueryTime($start_time, $end_time) { $content = '
' . PHP_EOL; $content .= _t('search','query_time') . ' ' . (substr($end_time - $start_time, 0, 5)) . ' ' . _t('search','query_seconds'); $content .= '
' . PHP_EOL; echo $content; } } if(!function_exists('DisplayAdvancedSearchForm')) { function DisplayAdvancedSearchForm() { if(defined('SEARCH_MODE') && stripos(SEARCH_MODE, 'boolean') === false) $disabled=' disabled'; else $disabled=''; $action = $GLOBALS['links'][U_L]['search-result']['linkvalue']; $content = '
'; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= '
'; $content .= ''; $content .= ''; $content .= ''; $content .= ''; $content .= '
'; if(!empty($disabled)) { $content .= '
'._t('search', 'query_expansion_enabled').'
'; } $content .=''.PHP_EOL; $content .= '
'; $content .= '
'; echo $content; } } if(!function_exists('FormatPertinenceIndice')) { function FormatPertinenceIndice($float) { $pertinence_i = ($float != 0) ? number_format(round($float, 3), 3, ',', ' ') : _t('search','score_not_good'); $pertinence= ' - ' . _t('search','score_abbr') . ' : ' . $pertinence_i . ''; return $pertinence; } } ?>