Bonjour,

J'ai créé une personnalisation d'url propres par un pipeline dédié dans mon plugin :

function objets_abreges_urls_dist() {
        $lasTab = array(
                'article' => 'art',
                'rubrique' => 'rub',
                'auteur' => 'aut',
                'mot' => 'mot',
                'site' => 'sit',
                'groupe_mot' => 'grp',
                'contact' => 'cnt',
                'organisation' => 'org',
                'newsletter' => 'nlt',
                'plugin' => 'plg',
        );

        return $lasTab;
}

function bsantonum_propres_creer_chaine_url( $x) {
 $objet = $x['objet'];

 $lasAbreges = objets_abreges_urls_dist();
 if (isset( $lasAbreges[ $objet['type']])) {
  $lsSuffixe = $lasAbreges[ $objet['type']];
 } else {
  $lsSuffixe = $objet['type'];
 }

$x['data'] .= '-'. $lsSuffixe. str_pad($objet['id_objet'], 3, "0", STR_PAD_LEFT);
 $x['data'] = strtolower( $x['data']);

 return $x;
}

Ça fonctionnait bien pendant des années. Maintenant ça ne va plus, peut-être depuis que j'ai ajouté le plugin ciarchive
https://contrib.spip.net/ciarchive-statut-archive-pour-les-articles
et mis des articles en statut /Archivé/.

Effet : ma fonction pipeline doit planter, et ne surcharge pas le flux passé en paramètre, renvoie donc l'url propre fournie par le flux, sans ajouter mes suffixes de type et numéro d'objet.

En allant voir spip.log, je trouve ceci :

2021-01-22 23:10:06 :Pri:!INFO: reattribue url Bienvenue de article#69 (parent 0) A article#1 (parent 0)
2021-01-22 23:10:06 :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur 1062 de mysql: Duplicate entry '0-Bernard-Palissy' for key 'PRIMARY' in /home/.../plugins-dist/urls_etendues/action/editer_url.php L155 [sql_insertq(),url_insert(),declarer_url_propre(),_generer_url_propre(),urls_propres_dist(),urls_explicites_dist(),generer_url_entite(),action_urls_actualiser_dist(),traiter_appels_actions()] INSERT INTO www20_urls (url,type,id_objet,id_parent,segments,langue) VALUES ('Bernard-Palissy','article',7,0,1,'') 2021-01-22 23:10:06 2a01:cb18:c25:eb00:4861:5ac1:9375:9f38 (pid 3598) :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur 1062 de mysql: Duplicate entry '0-Organigramme' for key 'PRIMARY' in /home/.../plugins-dist/urls_etendues/action/editer_url.php L155 [sql_insertq(),url_insert(),declarer_url_propre(),_generer_url_propre(),urls_propres_dist(),urls_explicites_dist(),generer_url_entite(),action_urls_actualiser_dist(),traiter_appels_actions()] INSERT INTO www20_urls (url,type,id_objet,id_parent,segments,langue) VALUES ('Organigramme','article',8,0,1,'')
2021-01-22 23:10:06 :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur 1062 de mysql: Duplicate entry '0-Plan-d-acces' for key 'PRIMARY' in /home/.../plugins-dist/urls_etendues/action/editer_url.php L155 [sql_insertq(),url_insert(),declarer_url_propre(),_generer_url_propre(),urls_propres_dist(),urls_explicites_dist(),generer_url_entite(),action_urls_actualiser_dist(),traiter_appels_actions()] INSERT INTO www20_urls (url,type,id_objet,id_parent,segments,langue) VALUES ('Plan-d-acces','article',10,0,1,'')
2021-01-22 23:10:06 :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur mysql 1062
2021-01-22 23:10:06 :Pri:ERREUR: Erreur 1062 de mysql: Duplicate entry '0-Charte-informatique' for key 'PRIMARY' in /home/.../plugins-dist/urls_etendues/action/editer_url.php L155 [sql_insertq(),url_insert(),declarer_url_propre(),_generer_url_propre(),urls_propres_dist(),urls_explicites_dist(),generer_url_entite(),action_urls_actualiser_dist(),traiter_appels_actions()] INSERT INTO www20_urls (url,type,id_objet,id_parent,segments,langue) VALUES ('Charte-informatique','article',12,0,1,'')

donc des entrées d'urls propres commençant per '0-' ... qui déclenchent un Erreur 1062 de mysql: Duplicate entry

Et je ne comprends pas le premier log "reattribue url Bienvenue de article#69 ..."

Et là je ne sais plus où chercher...

Quelqu'un peut-il m'aider...

Merci


--
Stéphane
17 Charente-Maritime
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip

Répondre à