Changeset 61861 in spip-zone


Ignore:
Timestamp:
May 30, 2012, 4:09:39 PM (8 years ago)
Author:
cedric@…
Message:

Dans les vieux pots... : mise a jour du plugin miroir_syndic pour lui permettre de syndiquer dans des breves ou des articles
compat SPIP 3 OK

Location:
_plugins_/miroir_syndic
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/miroir_syndic/genie/miroir_syndic.php

    r42630 r61861  
    22/*
    33 * Plugin miroir_syndic
    4  * (c) 2006-2010 Fil, Cedric
     4 * (c) 2006-2012 Fil, Cedric
    55 * Distribue sous licence GPL
    66 *
     
    3838
    3939
    40 // un nouvel article : le creer
    41 function miroirsyndic_creer_article($t) {
    42         lang_select(trim(preg_replace(',[-_].*,', '', $t['lang'])));
    43         $lang = $GLOBALS['spip_lang'];
    44         lang_select();
    45 
    46         spip_log('insert', 'miroirsyndic');
    47 
    48         include_spip('action/editer_article');
    49         include_spip('inc/autoriser');
    50         autoriser_exception('publierdans','rubrique',$t['id_rubrique']); // se donner temporairement le droit
    51         if ($id_article = insert_article($t['id_rubrique'])) {
    52                 autoriser_exception('modifier','article',$id_article); // se donner temporairement le droit
    53                 articles_set($id_article,array(
    54                                 'titre'=>$t['titre'],
    55                                 'nom_site'=>$t['titre'],
    56                                 'url_site'=>$t['url'],
    57                                 'statut'=>'prop',
    58                                 'date'=>$t['date'],
    59                                 'lang' => $lang,
    60                 ));
    61                 autoriser_exception('modifier','article',$id_article,false); // revenir a la normale
    62         }
    63         autoriser_exception('publierdans','rubrique',$t['id_rubrique'], false);
    64 
    65         spip_log($id_article, 'miroirsyndic');
    66         return $id_article;
    67 }
    68 
    6940// indique la rubrique d'un (nouvel) article en fonction de ses tags
    7041//
    71 function miroirsyndic_regler_rubrique($t) {
     42function miroirsyndic_regler_rubrique($t, $objet) {
    7243        $nom_rub = '';
    7344
     
    8657                include_spip('inc/rubriques');
    8758                $r = creer_rubrique_nommee($nom_rub, $t['id_rubrique']);
    88                 include_spip('action/editer_article');
     59                include_spip('action/editer_objet');
    8960                include_spip('inc/autoriser');
    9061                autoriser_exception('publierdans','rubrique',$r); // se donner temporairement le droit
    91                 articles_set($id_article,array('id_parent'=>$r));
     62                objet_modifier($objet,$t['id'],array('id_parent'=>$r));
    9263                autoriser_exception('publierdans','rubrique',$r,false);
    9364        }
     
    10172        include_spip('inc/filtres');
    10273        include_spip('base/abstract_sql');
    103         include_spip('action/editer_article');
    10474        include_spip('inc/rubriques');
    10575        include_spip('inc/autoriser');
     
    11282        // -- define('_MODE_RUBRIQUE_MIROIR', '') pour ne pas ranger
    11383        // -- define('_MODE_RUBRIQUE_MIROIR', 'mois') : par mois exclusivement
    114         define('_MODE_RUBRIQUE_MIROIR', 'tag');
     84        if (!defined('_MIROIR_OBJET')) define('_MIROIR_OBJET','article');
     85        if (!defined('_MODE_RUBRIQUE_MIROIR')) define('_MODE_RUBRIQUE_MIROIR', 'tag');
    11586
    116         define('_MIROIR_CHAMP_LESAUTEURS','surtitre');
    117         define('_MIROIR_CHAMP_DESCRIPTIF','chapo');
    118         define('_MIROIR_CHAMP_TAGS','soustitre');
     87        if (!defined('_MIROIR_CHAMP_LESAUTEURS')) define('_MIROIR_CHAMP_LESAUTEURS','surtitre');
     88        if (!defined('_MIROIR_CHAMP_DESCRIPTIF')) define('_MIROIR_CHAMP_DESCRIPTIF','chapo');
     89        if (!defined('_MIROIR_CHAMP_TAGS')) define('_MIROIR_CHAMP_TAGS','soustitre');
     90
     91        $objet = _MIROIR_OBJET;
     92        $table_sql = table_objet_sql($objet);
     93        $_id_table_objet = id_table_objet($objet);
     94
     95        $requeter_objet = charger_fonction('requeter_'.$objet,'miroir');
     96        $peupler_objet = charger_fonction('peupler_'.$objet,'miroir');
     97        $creer_objet = charger_fonction('creer_'.$objet,'miroir');
     98
     99        list($select,$from) = $requeter_objet();
    119100
    120101        $s = sql_select(
    121                 "s.*, a.id_article AS id_article,a.id_rubrique AS rubrique_article, src.nom_site as nom_site,
    122                 src.id_rubrique AS id_rubrique, src.id_secteur AS id_secteur",
    123                 // FROM
    124                 "spip_syndic_articles AS s
    125                 LEFT JOIN spip_articles AS a
    126                 ON s.url = a.url_site
    127                 LEFT JOIN spip_syndic AS src
    128                 ON s.id_syndic = src.id_syndic",
     102                $select,
     103                $from,
    129104                // WHERE
    130105                "src.statut='publie'
    131106                AND s.statut='publie'"
    132                 . ($force_refresh?'':' AND (a.id_article IS NULL OR s.maj > a.maj)')
     107                . ($force_refresh?'':" AND (o.$_id_table_objet IS NULL OR s.maj > o.maj)")
    133108                . (defined('_MIROIR_ID_SYNDIC')?" AND ".sql_in('src.id_syndic',explode(',',_MIROIR_ID_SYNDIC)):''),
    134109                '',
     
    137112                );
    138113
    139         $peupler_article = charger_fonction('peupler_article','miroir');
    140         spip_log('miroir:'.sql_count($s)." articles syndiques a mettre a jour (fonction $peupler_article)", 'miroirsyndic');
    141        
     114
     115        spip_log('miroir: '.sql_count($s)." articles syndiques a mettre a jour (fonction $peupler_objet)", 'miroirsyndic');
     116
     117        $nombre = 0;
    142118        while ($t = sql_fetch($s)) {
     119                #var_dump($t);
    143120                $nombre ++;
    144121                spip_log('miroir:'.var_export($t,1), 'miroirsyndic');
     
    151128                ){
    152129
    153                         // Si l'article n'existe pas, on le cree ; a priori sa rubrique
     130                        // Si l'objet n'existe pas, on le cree ; a priori sa rubrique
    154131                        // est la meme que la rubrique du site syndique (idem pour le secteur)
    155                         if (!$t['id_article']) {
    156                                 $t['id_article'] = miroirsyndic_creer_article($t);
    157                                 miroirsyndic_regler_rubrique($t);
     132                        if (!$t['id']) {
     133                                $t['id'] = $creer_objet($t);
     134                                miroirsyndic_regler_rubrique($t, $objet);
    158135                                $creation = true;
    159136                        }
    160137
    161                         $id_rubrique = sql_getfetsel("id_rubrique", "spip_articles", "id_article=".$t['id_article']);
     138                        $id_rubrique = sql_getfetsel("id_rubrique", $table_sql, "$_id_table_objet=".$t['id']);
    162139                        autoriser_exception('publierdans','rubrique',$id_rubrique); // se donner temporairement le droit
    163                         autoriser_exception('modifier','article',$t['id_article']); // se donner temporairement le droit
    164                         $peupler_article($t['id_article'],$t);
    165                         autoriser_exception('modifier','article',$t['id_article'],false); // revenir a la normale
     140                        autoriser_exception('modifier',$objet,$t['id']); // se donner temporairement le droit
     141                        $peupler_objet($t['id'],$t);
     142                        autoriser_exception('modifier',$objet,$t['id'],false); // revenir a la normale
    166143                        autoriser_exception('publierdans','rubrique',$id_rubrique,false);
    167144                }
    168145
    169                 spip_log($q, 'miroirsyndic');
     146                spip_log("$objet ".$t['id']." mis a jour", 'miroirsyndic');
    170147        }
    171148
  • _plugins_/miroir_syndic/miroir/peupler_article.php

    r41359 r61861  
    22/*
    33 * Plugin miroir_syndic
    4  * (c) 2006-2010 Fil, Cedric
     4 * (c) 2006-2012 Fil, Cedric
    55 * Distribue sous licence GPL
    66 *
     
    99function miroir_peupler_article_dist($id_article,$row) {
    1010       
     11        include_spip('action/editer_article');
    1112        articles_set($id_article,array(
    1213                'titre'=>$row['titre'],
  • _plugins_/miroir_syndic/miroirsyndic_installation.php

    r41315 r61861  
    22/*
    33 * Plugin miroir_syndic
    4  * (c) 2006-2010 Fil, Cedric
     4 * (c) 2006-2012 Fil, Cedric
    55 * Distribue sous licence GPL
    66 *
     
    1818        if (   (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
    1919                        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
    20                 if (version_compare($current_version,'0.1.0','<')){
     20                if (version_compare($current_version,'0.2.0','<')){
    2121                        include_spip('base/abstract_sql');
    2222
    2323                        sql_alter("TABLE spip_articles ADD INDEX url_site (url_site)");
     24                        sql_alter("TABLE spip_breves ADD INDEX lien_url (lien_url)");
    2425                        sql_alter("TABLE spip_syndic_articles ADD INDEX url (url)");
    25                         ecrire_meta($nom_meta_base_version,$current_version="0.1.0",'non');
     26                        ecrire_meta($nom_meta_base_version,$current_version="0.2.0",'non');
    2627                }
    2728        }
  • _plugins_/miroir_syndic/plugin.xml

    r41359 r61861  
    33        <auteur>fil@rezo.net</auteur>
    44        <licence>&#169; 2006 - Distribue sous licence GNU/GPL</licence>
    5         <version>1.0.2</version>
    6         <version_base>0.1.0</version_base>
    7         <etat>test</etat>
     5        <version>2.0.0</version>
     6        <version_base>0.2.0</version_base>
     7        <etat>stable</etat>
    88        <description>
    99Ce plugin recopie les articles syndiqu&#233;s {et publi&#233;s} de spip_syndic_articles vers spip_articles. Le code est suffisamment simple pour &#234;tre modifiable en fonction des besoins.
     
    2121                <inclure>genie/miroir_syndic.php</inclure>
    2222        </pipeline>
    23         <necessite id="SPIP" version="[2.0.0;]" />
     23        <necessite id="SPIP" version="[2.0.0;3.0.*]" />
    2424</plugin>
Note: See TracChangeset for help on using the changeset viewer.