Changeset 42295 in spip-zone


Ignore:
Timestamp:
Nov 14, 2010, 10:51:43 AM (10 years ago)
Author:
eric@…
Message:

Corrections pour les cas ou la recherche en base ne renvoie pas de plugin ou pas paquet

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp/inc/svp_depoter.php

    r42256 r42295  
    574574        $plugins = array();
    575575        $scores = array();
    576         $resultats = array();
    577576        $ids_paquets = array();
    578577
     
    581580        if ($phrase) {
    582581                $liste = liste_des_champs();
    583                 $tables = array('plugin' => $liste['plugin'], 'paquet' =>$liste['paquet']);
     582                $tables = array('plugin' => $liste['plugin'], 'paquet' => $liste['paquet']);
    584583                $options = array('jointures' => true, 'score' => true);
    585584       
     
    587586                // correspondent a la phrase recherchee
    588587                // -- On obtient une liste d'id de plugins et d'id de paquets
     588                $resultats = array('plugin' => array(), 'paquet' => array());
    589589                $resultats = recherche_en_base($phrase, $tables, $options);
    590590                // -- On prepare le tableau des scores avec les paquets trouves par la recherche
    591591                if ($resultats) {
    592                         foreach ($resultats['paquet'] as $_id => $_score) {
    593                                 $scores[$_id] = intval($resultats['paquet'][$_id]['score']);
    594                         }
    595592                        // -- On convertit les id de plugins en id de paquets
    596                         $ids_plugin = array_keys($resultats['plugin']);
    597                         $where[] = sql_in('id_plugin', $ids_plugin);
    598                         $ids = sql_allfetsel('id_paquet, id_plugin', 'spip_paquets', $where);
     593                        $ids = array();
     594                        if ($resultats['plugin']) {
     595                                $ids_plugin = array_keys($resultats['plugin']);
     596                                $where[] = sql_in('id_plugin', $ids_plugin);
     597                                $ids = sql_allfetsel('id_paquet, id_plugin', 'spip_paquets', $where);
     598                        }
     599                        // -- On prepare les listes des id de paquet et des scores de ces memes paquets
     600                        if ($resultats['paquet']) {
     601                                $ids_paquets = array_keys($resultats['paquet']);
     602                                foreach ($resultats['paquet'] as $_id => $_score) {
     603                                        $scores[$_id] = intval($resultats['paquet'][$_id]['score']);
     604                                }
     605                        }
    599606                        // -- On merge les deux tableaux de paquets sans doublon en mettant a jour un tableau des scores
    600                         $ids_paquets = array_keys($resultats['paquet']);
    601607                        foreach ($ids as $_ids) {
    602608                                $id_paquet = intval($_ids['id_paquet']);
Note: See TracChangeset for help on using the changeset viewer.