Ignore:
Timestamp:
May 22, 2014, 4:58:28 PM (7 years ago)
Author:
rastapopoulos@…
Message:

Tout comme pour indexer_sources(), on déporte la récupération d'un indexeur valide dans une fonction indexer_indexer() utilisable plusieurs fois.

On s'insère dans le pipeline "post_edition", et dès qu'il y a une modif sur un objet, on cherche si on a une ou plusieurs de nos sources enregistrées qui correspondent à l'objet en cours d'édition.

Si c'est le cas, on appelle l'indexeur et on lui donne à remplacer (ou ajouter) le document issu de la source en question (ou des sources).

Sans rien toucher, le mécanisme teste avec l'alias donné à la source ("articles", "fiches", etc) MAIS si on veut un truc plus bizarre, ou surtout si on a plusieurs sources différentes travaillant sur le même type d'objet, alors la classe de source peut implémenter une méthode getObjet() qui doit retourner "patate" (par exemple).

Testé aussi sur un objet non-spip, pour l'instant ça marche.

Là on réindexe le doc directement dans le pipeline, et ça ne me parait pas lent. Si on trouve que ça gêne, on pourra déporter l'indexation dans un job. Mais pour l'instant ça m'a l'air d'aller.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/indexer/trunk/prive/squelettes/contenu/indexer.html

    r82656 r82681  
    55if (_request('run') || _request('continue')) {
    66    include_spip('inc/indexer');
    7     $indexer = new Indexer\Indexer();
    8 
    9     try {
    10         $indexer->registerStorage(
    11             new Indexer\Storage\Sphinx(
    12                 new Sphinx\SphinxQL\SphinxQL(SPHINX_SERVER_HOST, SPHINX_SERVER_PORT), SPHINX_DEFAULT_INDEX)
    13         );
    14     } catch( \Exception $e ) {
    15         if (!$message = $e->getMessage())
    16             $message = _L('Erreur inconnue');
    17         die("<p class='erreur'>$message</p>");
    18     }
     7   
     8    // Appeler la fonction qui donne l'indexeur configuré pour ce SPIP
     9    $indexer = indexer_indexer();
    1910       
    2011        // Appeler la fonction qui liste les sources et qui comporte un pipeline pour étendre
Note: See TracChangeset for help on using the changeset viewer.