[spip-dev] Gestion des plugins impossible dans install neuve de spip3

Bonjour
J'ai posté sur spip forum et, sans réponses, Gilles m'envoie finalement ici.
J'espère que vous allez pouvoir m'aider. Merci beaucoup.

Message sur spip forum:
Je viens d’installer Spip3.0.11 sur une bdd postgreSQL chez free à côté d’un
Dotclear.
L’espace privé du spip est accessible et fonctionne. Mais la "Gestion des
Plugins" (in "Configuration") est impossible avec un encart ("1 Erreur dans
le squelette") qui apparaît dès l’ouverture de ce menu de Gestion au-dessus
d’une succession de "Warning". On ne peut pas installer par cette interface.
Et les plugins déposés par ftp n’y sont pas visibles.
J’ai cherché partout sans trouver même si je connais un peu Spip (je
connaissais).
A noter que malgré le Spip tout neuf (der version 3.0.11), j’ai tout
désinstallé et réinstallé 2x, vidé le cache, changé de navigateur et de
machine, mais cela donne toujours la même chose.
Merci beaucoup de l’aide de quiconque passera par là. (je fais une
réadaptation pour personnes handicapées et faute de temps des admins je suis
contrainte de faire moi-même cette install ce qui n’est pas simple et aussi
très fatigant).

Ci-dessous les infos affichées :
Erreur SQL 1000
errcode: 1000 : invalid input syntax for integer: "" LINE 5: AND
((pl.id_plugin IN (''))) ^
SELECT pa.id_paquet, pl.prefixe, pa.version, pa.etatnum, pa.obsolete FROM
spip_paquets AS pa, spip_plugins AS pl WHERE pa.id_plugin = pl.id_plugin AND
id_depot='0' AND ((pl.id_plugin IN (''))) GROUP BY
pa.id_paquet,pl.prefixe,pa.version,pa.etatnum,pa.obsolete

Et la liste des Warning (une bonne cinquantaine) :

    Warning : strpos() [function.strpos] : Empty delimiter. in
/mnt/116/sdb/a/9/ikonoplast/spip/ecrire/req/pg.php on line 1034

qui se termine par :

    Warning : pg_query() [function.pg-query] : Query failed : ERROR : syntax
error at or near "," LINE 1 : …,obsolete,actif,attente,id_plugin) VALUES
(0,’’,0,’breves’,… ^ in
/mnt/116/sdb/a/9/ikonoplast/spip/ecrire/req/pg.php on line 168

    Warning : pg_query() [function.pg-query] : Query failed : ERROR :
invalid input syntax for integer : "" LINE 5 : AND ((pl.id_plugin IN (’’)))
^ in /mnt/116/sdb/a/9/ikonoplast/spip/ecrire/req/pg.php on line 168

Ca semble être le bug corrigé par
http://core.spip.org/projects/spip/repository/revisions/20678
qui est pourtant antérieur à la 3.0.11
Est-ce bien celle-là ?
Regarde en particulier si les lignes 820 et 1042 de ecrire/req/pg.php
sont bien celles aparaissant dans la modif ci-dessus.

Committo,Ergo:Sum

Bonjour
Oui j'ai bien installé la dernière livraison de Spip 3.0.11 et je constate que je n'ai pas tout à fait les mêmes champs que donne la révision 20678 de spip 2. J'efface et je remplace ?
j'ai ceci au niveau 820 :

  // recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
  $couples = spip_pg_ajouter_champs_timestamp($table $couples $desc $serveur)
  return spip_pg_insert($table (".join(',',array_keys($couples)).") (".join(',', $couples).") $desc $serveur $requeter)
}
            
// http://doc.spip.org/@spip_pg_insertq_multi
function spip_pg_insertq_multi($table $tab_couples=array() $desc=array() $serveur='' $requeter=true) {

et au niveau 1042 :
// IN (...) souvent limite a 255 elements d'ou cette fonction assistante
//
  // s'il n'y a pas de valeur eviter de produire un IN vide: PG rale.
  if (!$valeurs) return $not ? '0=0' : '0=1'
  if (strpos($valeurs "CAST(x'"") !== false)
    return ""($val="" . join(""OR $val=" explode(' ' $valeurs)).')'
  $n = $i = 0

Rita P.

Oui j'ai bien installé la dernière livraison de Spip 3.0.11 et je constate que je n'ai pas tout à fait les mêmes champs que donne la révision 20678 de spip 2.

c'est pas normal, il faudrait comprendre pourquoi

J'efface et je remplace ?

oui

Committo,Ergo:Sum

en 3.0 les lignes sont décalées, mais bien là :
   http://core.spip.org/projects/spip/repository/revisions/20680

j'avais remarqué le décalage mais j'ai bien repéré où étaient les champs.
Je vais effacer et remplacer avec cette révision 20680 que tu indiques.

Une fois la bonne ligne a sa place, à l'appel de la page du site j'ai maintenant :
Parse error: syntax error, unexpected T_VARIABLE in /mnt/116/sdb/a/9/ikonoplast/spip/ecrire/req/pg.php on line 50

mais qu'as-tu fait comme modification ?
a priori, il n'y avait rien à changer au fichier ecrire/req/pg.php
de spip 3.0.11 puisque la modification nécessaire y était déjà intégrée.

J'ai fait juste le changement...

Dans le spip 3.0.11 que j'ai installé j'avais bien ça (lignes 867 à 873):

// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
  $couples = spip_pg_ajouter_champs_timestamp($table $couples $desc $serveur)
  return spip_pg_insert($table (".join(',',array_keys($couples)).") (".join(',', $couples).") $desc $serveur $requeter)
}
function spip_pg_insertq_multi($table $tab_couples=array() $desc=array() $serveur='' $requeter=true) {

que j'ai changé par ça :
// recherche de champs 'timestamp' pour mise a jour auto de ceux-ci
// une premiere fois pour ajouter maj dans les cles
$les_cles = spip_pg_ajouter_champs_timestamp($table, $tab_couples[0], $desc, $serveur);
$c = isset($tab_couples[0]) ? $tab_couples[0] : array();
$les_cles = spip_pg_ajouter_champs_timestamp($table, $c, $desc, $serveur);
Par contre il n'y avait pas d'erreur dans les lignes 1089 à 1096.

Je viens de refaire l'opération en revidant le cache et cette fois :
Parse error: syntax error, unexpected ';' in /mnt/116/sdb/a/9/ikonoplast/spip/ecrire/req/pg.php on line 502
  voici la ligne :
. (!$limit ? '' : (" LIMIT $count" . (!$offset ? '' : " OFFSET $offset")));