[SPIP Zone] Passage de NoiZetier v2 vers NoiZetier v3, avec des compositions virtuelles

Bonjour à tous,

Après avoir réussi à installer par SVP le NoiZetier v3, je peux faire quelques petits retours. Du moins, voir avec vous si je ne me trompe pas dans ma migration.

Dans un site assez costaux en compositions virtuelles, je me rends compte sur la page ecrire/?exec=noizetier_pages toutes les compositions que j’avais auparavant ne sont pas référencées.
Toutes les compositions explicites (correspondantes à des fichiers physiques selon la documentation) sont bien référencées.

Par contre, les compositions virtuelles créées sous NoiZetier v2 ne sont pas migrées en v3. Dans la table spip_noisettes, j’y retrouve des références à ces compositions. Mais rien dans spip_noizetier_pages.
Le contenu de la meta « noizetier_compositions » n’a pas été migré complètement. :-/

Est-ce normal ? Doit-on lancer un script particulier pour la prise en compte de ces « old » compositions virtuelles ?

Bien à vous.

Re,

Le mer. 18 sept. 2019 à 11:31, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Bonjour à tous,

Après avoir réussi à installer par SVP le NoiZetier v3, je peux faire quelques petits retours. Du moins, voir avec vous si je ne me trompe pas dans ma migration.

Dans un site assez costaux en compositions virtuelles, je me rends compte sur la page ecrire/?exec=noizetier_pages toutes les compositions que j’avais auparavant ne sont pas référencées.
Toutes les compositions explicites (correspondantes à des fichiers physiques selon la documentation) sont bien référencées.

Par contre, les compositions virtuelles créées sous NoiZetier v2 ne sont pas migrées en v3. Dans la table spip_noisettes, j’y retrouve des références à ces compositions. Mais rien dans spip_noizetier_pages.
Le contenu de la meta « noizetier_compositions » n’a pas été migré complètement. :-/

Est-ce normal ? Doit-on lancer un script particulier pour la prise en compte de ces « old » compositions virtuelles ?

Bien à vous.

Après investigation (display_errors = on), j’ai une fatal error sur l’update. PHP ne trouve pas la fonction conteneur_noizetier_composer() dans le fichier noizetier_administrations.php à la ligne 174. Pourtant, Eric a bien mis l’appel au fichier contenant cette fonction à la ligne 160 (inc/noizetier_conteneur).

cf. https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L174
https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L160

En remplaçant:

include_spip(‹ inc/noizetier_conteneur ›);

par
require_once ‹ inc/noizetier_conteneur.php ›;
Cela a fonctionné.

J’ai le feu vert pour faire le correctif ?

Ybbet.

Non c’est pas le bon correctif. Y a un truc pas normal si le passage à require_once fait marcher le truc. Faut que jinvestigue.

La fonction en question est bien dans linclude?

Sinon obtiens tu la migration correcte des compositions virtuelles?

Le mer. 18 sept. 2019 à 12:53, Eric Lupinacci <eric@smellup.net> a écrit :

Non c’est pas le bon correctif. Y a un truc pas normal si le passage à require_once fait marcher le truc. Faut que jinvestigue.

La fonction en question est bien dans linclude?

Oui.

Sinon obtiens tu la migration correcte des compositions virtuelles?

Snif, non :-/

Pourtant j’ai mis un spip_log pour savoir ce que j’ai en entrée et en sortie du foreach($compositions_060) et j’ai bien mes éléments désirés de compositions virtuelles.

Le mer. 18 sept. 2019 à 12:14, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Re,

Le mer. 18 sept. 2019 à 11:31, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Bonjour à tous,

Après avoir réussi à installer par SVP le NoiZetier v3, je peux faire quelques petits retours. Du moins, voir avec vous si je ne me trompe pas dans ma migration.

Dans un site assez costaux en compositions virtuelles, je me rends compte sur la page ecrire/?exec=noizetier_pages toutes les compositions que j’avais auparavant ne sont pas référencées.
Toutes les compositions explicites (correspondantes à des fichiers physiques selon la documentation) sont bien référencées.

Par contre, les compositions virtuelles créées sous NoiZetier v2 ne sont pas migrées en v3. Dans la table spip_noisettes, j’y retrouve des références à ces compositions. Mais rien dans spip_noizetier_pages.
Le contenu de la meta « noizetier_compositions » n’a pas été migré complètement. :-/

Est-ce normal ? Doit-on lancer un script particulier pour la prise en compte de ces « old » compositions virtuelles ?

Bien à vous.

Après investigation (display_errors = on), j’ai une fatal error sur l’update. PHP ne trouve pas la fonction conteneur_noizetier_composer() dans le fichier noizetier_administrations.php à la ligne 174. Pourtant, Eric a bien mis l’appel au fichier contenant cette fonction à la ligne 160 (inc/noizetier_conteneur).

cf. https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L174
https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L160

En remplaçant:

include_spip(‹ inc/noizetier_conteneur ›);

par
require_once ‹ inc/noizetier_conteneur.php ›;
Cela a fonctionné.

J’ai le feu vert pour faire le correctif ?

Ybbet.


spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

++
Eric

Tu veux dire que le tableau des compositions est bien calculé mais pas inséré en base de données ?

Si c’est ça il doit y avoir une erreur dans le log SPIP de mysql. Peut être une erreur de colonne car j’ai fait pas mal de renommage dans le temps.

Je pense déjà voir un truc qui va pas mais j’ai pas les moyens la de corriger.

Pour les compositions virtuelles on a une boucle qui identifie une variable $_description qui représente la composition en meta. Et dans la boucle je modifie cette variable et c’est un peu n’importe quoi et sûrement un oubli. Il faut au début de la boucle sous le foreach initialiser une variable $description = array();
Et ensuite affecter à cette variable et pas à l’autre issue du foreach.

Si tu peux faire l’essai et me dire.

Le mer. 18 sept. 2019 à 13:58, Eric Lupinacci <eric@smellup.net> a écrit :

Je pense déjà voir un truc qui va pas mais j’ai pas les moyens la de corriger.

Pour les compositions virtuelles on a une boucle qui identifie une variable $_description qui représente la composition en meta. Et dans la boucle je modifie cette variable et c’est un peu n’importe quoi et sûrement un oubli. Il faut au début de la boucle sous le foreach initialiser une variable $description = array();
Et ensuite affecter à cette variable et pas à l’autre issue du foreach.

Si tu peux faire l’essai et me dire.

Je regarde en ce sens.

Le mer. 18 sept. 2019 à 13:40, Eric Lupinacci <eric@smellup.net> a écrit :

Tu veux dire que le tableau des compositions est bien calculé mais pas inséré en base de données ?

Si c’est ça il doit y avoir une erreur dans le log SPIP de mysql. Peut être une erreur de colonne car j’ai fait pas mal de renommage dans le temps.

Le mer. 18 sept. 2019 à 13:37, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Le mer. 18 sept. 2019 à 12:53, Eric Lupinacci <eric@smellup.net> a écrit :

Non c’est pas le bon correctif. Y a un truc pas normal si le passage à require_once fait marcher le truc. Faut que jinvestigue.

La fonction en question est bien dans linclude?

Oui.

Sinon obtiens tu la migration correcte des compositions virtuelles?

Snif, non :-/

Pourtant j’ai mis un spip_log pour savoir ce que j’ai en entrée et en sortie du foreach($compositions_060) et j’ai bien mes éléments désirés de compositions virtuelles.

Le mer. 18 sept. 2019 à 12:14, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Re,

Le mer. 18 sept. 2019 à 11:31, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Bonjour à tous,

Après avoir réussi à installer par SVP le NoiZetier v3, je peux faire quelques petits retours. Du moins, voir avec vous si je ne me trompe pas dans ma migration.

Dans un site assez costaux en compositions virtuelles, je me rends compte sur la page ecrire/?exec=noizetier_pages toutes les compositions que j’avais auparavant ne sont pas référencées.
Toutes les compositions explicites (correspondantes à des fichiers physiques selon la documentation) sont bien référencées.

Par contre, les compositions virtuelles créées sous NoiZetier v2 ne sont pas migrées en v3. Dans la table spip_noisettes, j’y retrouve des références à ces compositions. Mais rien dans spip_noizetier_pages.
Le contenu de la meta « noizetier_compositions » n’a pas été migré complètement. :-/

Est-ce normal ? Doit-on lancer un script particulier pour la prise en compte de ces « old » compositions virtuelles ?

Bien à vous.

Après investigation (display_errors = on), j’ai une fatal error sur l’update. PHP ne trouve pas la fonction conteneur_noizetier_composer() dans le fichier noizetier_administrations.php à la ligne 174. Pourtant, Eric a bien mis l’appel au fichier contenant cette fonction à la ligne 160 (inc/noizetier_conteneur).

cf. https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L174
https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L160

En remplaçant:

include_spip(‹ inc/noizetier_conteneur ›);

par
require_once ‹ inc/noizetier_conteneur.php ›;
Cela a fonctionné.

J’ai le feu vert pour faire le correctif ?

Ybbet.


spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

++
Eric

++
Eric

++
Eric

Le mer. 18 sept. 2019 à 14:17, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Le mer. 18 sept. 2019 à 13:58, Eric Lupinacci <eric@smellup.net> a écrit :

Je pense déjà voir un truc qui va pas mais j’ai pas les moyens la de corriger.

Pour les compositions virtuelles on a une boucle qui identifie une variable $_description qui représente la composition en meta. Et dans la boucle je modifie cette variable et c’est un peu n’importe quoi et sûrement un oubli. Il faut au début de la boucle sous le foreach initialiser une variable $description = array();
Et ensuite affecter à cette variable et pas à l’autre issue du foreach.

Si tu peux faire l’essai et me dire.

Je regarde en ce sens.

J’ai fait des tests… en vain. Je remarque que sql_insertq_multi() n’insère rien du tout dans la bdd… Pourtant j’ai bien un beau tableau avec des données construites.

Mais je me demande si le souci ne viendrait pas de la déclaration de l’objet spip_noizetier_pages. Dans lister_tables_principales() on a ceci :
[spip_noizetier_pages] => Array
(
[field] => Array
(
[page] => varchar(255) DEFAULT ‹  › NOT NULL
[type] => varchar(127) DEFAULT ‹  › NOT NULL
[composition] => varchar(127) DEFAULT ‹  › NOT NULL
[nom] => text DEFAULT ‹  › NOT NULL
[description] => text DEFAULT ‹  › NOT NULL
[icon] => varchar(255) DEFAULT ‹  › NOT NULL
[blocs_exclus] => text DEFAULT ‹  › NOT NULL
[necessite] => text DEFAULT ‹  › NOT NULL
[est_active] => varchar(3) DEFAULT ‹ oui › NOT NULL
[branche] => text DEFAULT ‹  › NOT NULL
[est_page_objet] => varchar(3) DEFAULT ‹ oui › NOT NULL
[est_virtuelle] => varchar(3) DEFAULT ‹ non › NOT NULL
[image_exemple] => varchar(255) DEFAULT ‹  › NOT NULL
[class] => varchar(255) DEFAULT ‹  › NOT NULL
[configuration] => varchar(255) DEFAULT ‹  › NOT NULL
[signature] => varchar(32) DEFAULT ‹  › NOT NULL
[maj] => timestamp
)

[key] => Array
(
[PRIMARY KEY] => page
[KEY type] => type
[KEY composition] => composition
[KEY est_page_objet] => est_page_objet
[KEY est_virtuelle] => est_virtuelle
)

)
On n’indique pas les champs éditables dans base/noizetier_tables.php

Je laisse mon cerveau se reposer pour le moment.

Le mer. 18 sept. 2019 à 13:40, Eric Lupinacci <eric@smellup.net> a écrit :

Tu veux dire que le tableau des compositions est bien calculé mais pas inséré en base de données ?

Si c’est ça il doit y avoir une erreur dans le log SPIP de mysql. Peut être une erreur de colonne car j’ai fait pas mal de renommage dans le temps.

Le mer. 18 sept. 2019 à 13:37, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Le mer. 18 sept. 2019 à 12:53, Eric Lupinacci <eric@smellup.net> a écrit :

Non c’est pas le bon correctif. Y a un truc pas normal si le passage à require_once fait marcher le truc. Faut que jinvestigue.

La fonction en question est bien dans linclude?

Oui.

Sinon obtiens tu la migration correcte des compositions virtuelles?

Snif, non :-/

Pourtant j’ai mis un spip_log pour savoir ce que j’ai en entrée et en sortie du foreach($compositions_060) et j’ai bien mes éléments désirés de compositions virtuelles.

Le mer. 18 sept. 2019 à 12:14, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Re,

Le mer. 18 sept. 2019 à 11:31, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Bonjour à tous,

Après avoir réussi à installer par SVP le NoiZetier v3, je peux faire quelques petits retours. Du moins, voir avec vous si je ne me trompe pas dans ma migration.

Dans un site assez costaux en compositions virtuelles, je me rends compte sur la page ecrire/?exec=noizetier_pages toutes les compositions que j’avais auparavant ne sont pas référencées.
Toutes les compositions explicites (correspondantes à des fichiers physiques selon la documentation) sont bien référencées.

Par contre, les compositions virtuelles créées sous NoiZetier v2 ne sont pas migrées en v3. Dans la table spip_noisettes, j’y retrouve des références à ces compositions. Mais rien dans spip_noizetier_pages.
Le contenu de la meta « noizetier_compositions » n’a pas été migré complètement. :-/

Est-ce normal ? Doit-on lancer un script particulier pour la prise en compte de ces « old » compositions virtuelles ?

Bien à vous.

Après investigation (display_errors = on), j’ai une fatal error sur l’update. PHP ne trouve pas la fonction conteneur_noizetier_composer() dans le fichier noizetier_administrations.php à la ligne 174. Pourtant, Eric a bien mis l’appel au fichier contenant cette fonction à la ligne 160 (inc/noizetier_conteneur).

cf. https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L174
https://zone.spip.net/trac/spip-zone/browser/spip-zone/plugins/noizetier/trunk/noizetier_administrations.php#L160

En remplaçant:

include_spip(‹ inc/noizetier_conteneur ›);

par
require_once ‹ inc/noizetier_conteneur.php ›;
Cela a fonctionné.

J’ai le feu vert pour faire le correctif ?

Ybbet.


spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

++
Eric

++
Eric

++
Eric

Yop,

Le mer. 18 sept. 2019 à 17:20, Ybbet Spip <teddy.spip@gmail.com> a écrit :

Mais je me demande si le souci ne viendrait pas de la déclaration de l’objet spip_noizetier_pages. Dans lister_tables_principales() on a ceci :

On n’indique pas les champs éditables dans base/noizetier_tables.php

Non, car on n’utilise pas l’API objet.
Avant de te reposer :wink: pourrais faire trois choses maintenant car là je peux m’en occuper.

  1. m’envoyer la meta des compos virtuelles avant leur mise en BD.
  2. m’envoyer ton mysql.log qui est dans tmp/log/.
  3. et me dire si le reste de la migration s’opère correctement ?

++

Eric