[spip-dev] champs homonymes et mises a jour de ces champs

Bonjour,
SPIP 1.9.1 [7502]
Afin de spécialiser ma table article pour certaines rubriques je viens d'écrire ca dans le fichier inc/extra du plugin champs homonymes( code plus bas ).
J'arrive trés bien a avoir ce que je veux en terme d'interface. C'est a dire que lors de la création d'un article ou lors de sa modification , s'il fait partie de la rubrique ou des sous rubriques concernées, j'ai bien la modification des champs ( textarea ).

par contre dés que je valide le formulaire, les données sont bien transmises , jusque la pas de soucis, mais elles ne sont jamais insérer dans la table.
Lors de la création d'un nouvel article
Le log mysql me dit :
Jun 12 09:33:18 81.252.74.6 (pid 9790) - SELECT id_version, (id_auteur= AND date > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND permanent!='oui') AS flag FROM `spip19`.spip_versions WHERE id_article=86 ORDER BY id_version DESC LIMIT 0,1
Jun 12 09:33:18 81.252.74.6 (pid 9790) 1064 You have an error in your SQL syntax near 'AND date > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND permanent!='oui') AS flag FROM `' at line 1

il semblerait que cette requete soit effectuée par la fonction "revisions_articles" du fichier action/editer_article ( du plugin champs homonymes en théorie ) étant donné qu'aucun autre plugin ne surcharge ce fichier.

Voyons maintenant la modification d'un article :

Jun 12 09:39:47 81.252.74.6 (pid 1758) - SELECT id_version, (id_auteur= AND date > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND permanent!='oui') AS flag FROM `spip19`.spip_versions WHERE id_article=86 ORDER BY id_version DESC LIMIT 0,1
Jun 12 09:39:47 81.252.74.6 (pid 1758) 1064 You have an error in your SQL syntax near 'AND date > DATE_SUB(NOW(), INTERVAL 1 HOUR) AND permanent!='oui') AS flag FROM `' at line 1
Jun 12 09:39:47 81.252.74.6 (pid 1758) POST /spip.php
Jun 12 09:39:47 81.252.74.6 (pid 1758) - INSERT `spip19`.spip_versions (id_article, id_version, titre_version, permanent, date, id_auteur, champs) VALUES (86, 1, '', 'non', NOW(), '', 'a:1:{s:5:\"titre\";s:1:\"2\";}')
Jun 12 09:39:47 81.252.74.6 (pid 1758) 1062 Duplicate entry '86-1' for key 1

Voila le code

////////////////////////////////////////////////////////////////////////////////////
// GESTION DES MARCHES PUBLIC

//configuration de la rubrique parente des marchés public
$rubriques_marches=array(27);

include_spip('base/db_mysql');

function get_ss_rubriques($rubriques_parent){
    if(is_array($rubriques_parent))
    foreach ($rubriques_parent as $r) {
        $tab_ss_rubriques[]=$r;
               $temp=spip_mysql_array(spip_query("select id_rubrique from spip_rubriques where id_parent=".$r));
        if($temp)
            foreach ($temp as $t)
            {
                $tab_ss_rubriques[]=$t['id_rubrique'];
                $tab_ss_rubriques=array_merge($tab_ss_rubriques,get_ss_rubriques($t['id_rubrique']));
            }
    }

return array_merge($rubriques_parent,$tab_ss_rubriques);
}

global $id_rubrique,$id_article;

$rubriques_marches=array_unique(get_ss_rubriques($rubriques_marches));

//récupération de l'id_rubrique sur l'édition de l'article
if(!$id_rubrique && $id_article)
{
    $temp=spip_mysql_array(spip_query("select id_rubrique from spip_articles where id_article=".$id_article));
    if($temp[0]['id_rubrique']) $id_rubrique=$temp[0]['id_rubrique'];
       //die(" ID_RUBRIQUE : ".$id_rubrique);
}

//var_dump($id_rubrique);
//var_dump($rubriques_marches);

if(in_array($id_rubrique,$rubriques_marches))
{//on fait le traitement relatif a la rubrique des marches public

$GLOBALS['champs_extra']['articles']= Array (
            "mp_concurrence"=>"bloc|brut|Avis d'appel Public à la concurrence",
            "mp_identification"=>"bloc|brut|Identification de la collectivité qui passe le marché",
            "mp_procedure"=>"bloc|brut|Type de procédure",
            "mp_objet"=>"bloc|brut|Objet du marché",
            "mp_paiement"=>"bloc|brut|Modalités essentielles de financement et de paiement",
            "mp_dateDepot"=>"date|brut|Date de fin de dépôt des offres",
    );

$GLOBALS['champs_extra_proposes']['articles'] = Array (
        // tous : par defaut tous les champs extra sur les articles
        //'tous' => 'mp_concurrence|mp_identification|mp_procedure|mp_objet|mp_paiement|mp_dateDepot'
        'tous' => 'mp_concurrence'
    );
   
$GLOBALS['meta']['articles_surtitre'] = 'non';
$GLOBALS['meta']['articles_soustitre'] = "non";
$GLOBALS['meta']['articles_descriptif'] = "non";
$GLOBALS['meta']['articles_urlref'] = "non";
$GLOBALS['meta']['articles_chapeau'] = "non";
$GLOBALS['meta']['articles_ps'] = "non";
$GLOBALS['meta']['articles_texte'] = "non";
$GLOBALS['meta']['articles_paragraphes'] = "non";

}

////////////////////////////////////////////////////////////////////////////////////

il semblerait aussi d'aprés les logs que ce soit le système de révision des articles qui plante ...
Vous n'auriez pas une idée de ce que je pourrais faire ou vers je pourrais chercher ?
merci par avance :slight_smile:

ps: je sais pas si dans la dernière version des champs homonymes il est gérer le type date