Jelix 1.6.19 admin.php ne fonctionne pas apres Maj depuis 1.4

20 views
Skip to first unread message

b-tzu

unread,
Oct 29, 2018, 6:08:22 PM10/29/18
to jelix-fr
Hello 
J'ai, apres quelques galeres, réussi a upgrader le site que je dois gerer en Jelix 1.6.19 (depuis la 1.2 tout de meme !)
Je cherche maintenant a faire fonctionner la partie administrateur du site. 
Je pense avoir suivi les principales étapes de migration a chaque étape, mais je n'ai pas trop regardé pour la partie admin. 
En mettant a jour vers la 1.5, je n'ai pas trop touché a tout ce qui est jForm, je le ferais quand j'en aurais besoin, sauf si ca me bloque dés maintenant, idem TCPDF (d'ailleurs dans quel dossier mettre le module téléchargé ? y a t il des étapes a faire pour le faire fonctionner aux endroits ou il est utilisé, ou ca fonctionne sans modification ?).
En mettant a jour vers la 1.6, j'ai vu que dans le code a plusieurs reprises on utilisait groupby et AddItemGroup, et que ce n'est pas recommandé. Comment les remplacer ?

Autre chose, dans la migration 1.5 on demande de faire

   jacl2.access=1
Est ce qu'il y'a autre chose a faire ? désactiver jacl2db ? ou  tout est auto, il y'a juste ca a rajouter ? 

Maintenant mon vrai problème c'est pour la partie admin, quand je la lance, j'ai un souci avec les droits il me semble, alors que avant je n'avais pas ce probleme (je ne sais pas quand c'est avant, peut etre la 1.3...). Voici l'erreur : 

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'r.canceled' in 'field list'

Si quelqu'un a une idée... merci ! 

Laurent

unread,
Oct 30, 2018, 6:17:20 AM10/30/18
to jeli...@googlegroups.com
Salut,

Le 29/10/2018 à 23:08, b-tzu a écrit :
> Hello
> J'ai, apres quelques galeres, réussi a upgrader le site que je dois
> gerer en Jelix 1.6.19 (depuis la 1.2 tout de meme !)

Bravo !

> Je cherche maintenant a faire fonctionner la partie administrateur du site.
> Je pense avoir suivi les principales étapes de migration a chaque étape,
> mais je n'ai pas trop regardé pour la partie admin.
> En mettant a jour vers la 1.5, je n'ai pas trop touché a tout ce qui est
> jForm, je le ferais quand j'en aurais besoin, sauf si ca me bloque dés
> maintenant,

Regarde si dans tes répertoires de plugins (tonappli/plugins/), tu as un
répertoire jforms avec des plugins dedans : si oui, il te faudra les
migrer vers le nouveau système de plugin un jour ou l'autre. Mais
normalement ça peut encore fonctionner avec 1.6


> idem TCPDF (d'ailleurs dans quel dossier mettre le module
> téléchargé ? y a t il des étapes a faire pour le faire fonctionner aux
> endroits ou il est utilisé, ou ca fonctionne sans modification ?).

Pour les modules externes, je créé souvent un répertoire vendor-modules,
que je déclare ensuite dans le modulesPath dans la config. Et puis comme
tout module, dans la section modules de la config : jtcpdf.access = 2

Et lancer le install/installer.php

> En mettant a jour vers la 1.6, j'ai vu que dans le code a plusieurs
> reprises on utilisait groupby et AddItemGroup, et que ce n'est pas
> recommandé. Comment les remplacer ?

Il n'y a pas de réponse toute faite. Comme il est dit, ce truc générait
du SQL qui au final :

1) n'est pas compatible avec toutes les bases de données (disons qu'on
ne pouvait pas faire la même chose dans les autres bases de données).
2) De l'aveu même de mysql, le résultat était hasardeux. (je ne retrouve
plus le lien)

En effet, ça génère un GROUP BY, mais sans fonction d'aggregations dans
le select, et avec un group by qui contient seulement une partie des
champs qui sont dans le select. Ce qui au final n'a pas de sens, mais
que Mysql permet (ou permettait).

Il faut donc pour chaque utilisation, comprendre la finalité du code
(pourquoi il a fallu faire ce genre de "groupby"), et changer le code
sans groupby, en faisant des requêtes qui aboutissent au même résultat.


Pour en savoir plus :

https://stackoverflow.com/questions/1591909/group-by-behavior-when-no-aggregate-functions-are-present-in-the-select-clause

Pour le moment, c'est juste déprécié dans 1.6, donc pour le moment tu
peux laisser comme ça. Mais faudra le faire quand tu passeras à 1.7 (pas
encore sortie).

>
> Autre chose, dans la migration 1.5 on demande de faire
>
> |jacl2.access=1
> |
>
> Est ce qu'il y'a autre chose a faire ? désactiver jacl2db ? ou  tout est
> auto, il y'a juste ca a rajouter ?

Oui. Le tonapp/install/installer.php fera le reste


>
> Maintenant mon vrai problème c'est pour la partie admin, quand je la
> lance, j'ai un souci avec les droits il me semble, alors que avant je
> n'avais pas ce probleme (je ne sais pas quand c'est avant, peut etre la
> 1.3...). Voici l'erreur :
>
> SQLSTATE[42S22]: Column not found: 1054 Unknown column 'r.canceled' in
> 'field list'
>
> Si quelqu'un a une idée... merci !

Visiblement, tu as raté une étape de migration au niveau du module
jacl2db, voir même plusieurs car l'une d'elles changent des droits, d'où
probablement ton souci pour l'admin.

As-tu lancé php install/installer.php à chaque version ? Il n'y a pas de
disableInstallers = on dans tes fichiers de conf ? Si c'est le cas, les
scripts de mises à jour n'auront pas été lancé. Il faudra alors savoir
pourquoi ils ont été désactivés (il y a peut-être une raison au niveau
de la manière dont l'appli est déployée..;)

Une chose que tu peux essayer : modifier ton
var/config/installer.ini.php (fais en une sauvegarde avant !). Dans
chaque section( [index], [admin] etc..), s'assurer d'avoir les valeurs
suivantes :

jacl2db.installed=1
jacl2db.version=1.2.13
jacl2db.version.date=2013-09-19

Est si jacl2db.firstversion est >= 1.3, changer aussi en
jacl2db.firstversion=1.2.13
jacl2db.firstversion.date=2013-09-19

puis relancer install/installer.php (en s'assurant qu'il n'y a pas de
disableInstallers = on !).

Avant de faire ça, fait une sauvegarde de tout (en particulier la config
et les bases)


Laurent

b-tzu

unread,
Nov 7, 2018, 9:09:34 AM11/7/18
to jelix-fr
Hello Laurent  ! 
Merci de ta super réponse, ultra exhaustive, c'est vraiment très intéressant. 
Je te réponds au fur et a mesure du texte :


Le mardi 30 octobre 2018 11:17:20 UTC+1, Laurent a écrit :
Salut,

Le 29/10/2018 à 23:08, b-tzu a écrit :
> Hello
> J'ai, apres quelques galeres, réussi a upgrader le site que je dois
> gerer en Jelix 1.6.19 (depuis la 1.2 tout de meme !)

Bravo !

> Je cherche maintenant a faire fonctionner la partie administrateur du site.
> Je pense avoir suivi les principales étapes de migration a chaque étape,
> mais je n'ai pas trop regardé pour la partie admin.
> En mettant a jour vers la 1.5, je n'ai pas trop touché a tout ce qui est
> jForm, je le ferais quand j'en aurais besoin, sauf si ca me bloque dés
> maintenant,

Regarde si dans tes répertoires de plugins (tonappli/plugins/), tu as un
répertoire jforms avec des plugins dedans : si oui, il te faudra les
migrer vers le nouveau système de plugin un jour ou l'autre. Mais
normalement ça peut encore fonctionner avec 1.6

J'ai vérifié, pas de jforms, donc ca devrait etre bon.  

> idem TCPDF (d'ailleurs dans quel dossier mettre le module
> téléchargé ? y a t il des étapes a faire pour le faire fonctionner aux
> endroits ou il est utilisé, ou ca fonctionne sans modification ?).

Pour les modules externes, je créé souvent un répertoire vendor-modules,
que je déclare ensuite dans le modulesPath dans la config. Et puis comme
tout module, dans la section modules de la config : jtcpdf.access = 2

Et lancer le install/installer.php

Premier lancement, j'ai eu la meme erreur que précédemment, par rapport aux droits. 
Deuxieme lancement, apres avoir fait la derniere étape de ton précedent message, avec jacl2db, ca marche un peu mieux, j'ai cette erreur : 
( ! ) Fatal error: Class 'jInstallerModule' not found in C:\xampp5\htdocs\cr16\croisiere\vendor-modules\jtcpdf\install\install.php on line 13
 

> En mettant a jour vers la 1.6, j'ai vu que dans le code a plusieurs
> reprises on utilisait groupby et AddItemGroup, et que ce n'est pas
> recommandé. Comment les remplacer ?

Il n'y a pas de réponse toute faite. Comme il est dit, ce truc générait
du SQL qui au final :

1) n'est pas compatible avec toutes les bases de données (disons qu'on
ne pouvait pas faire la même chose dans les autres bases de données).
2) De l'aveu même de mysql, le résultat était hasardeux. (je ne retrouve
plus le lien)

En effet, ça génère un GROUP BY, mais sans fonction d'aggregations dans
le select, et avec un group by qui contient seulement une partie des
champs qui sont dans le select. Ce qui au final n'a pas de sens, mais
que Mysql permet (ou permettait).

Il faut donc pour chaque utilisation, comprendre la finalité du code
(pourquoi il a fallu faire ce genre de "groupby"), et changer le code
sans groupby, en faisant des requêtes qui aboutissent au même résultat.


Pour en savoir plus :

https://stackoverflow.com/questions/1591909/group-by-behavior-when-no-aggregate-functions-are-present-in-the-select-clause

Pour le moment, c'est juste déprécié dans 1.6, donc pour le moment tu
peux laisser comme ça. Mais faudra le faire quand tu passeras à 1.7 (pas
encore sortie).


Tres interessant merci, je vais étudier tout ca.
 
>
> Autre chose, dans la migration 1.5 on demande de faire
>
> |jacl2.access=1
> |
>
> Est ce qu'il y'a autre chose a faire ? désactiver jacl2db ? ou  tout est
> auto, il y'a juste ca a rajouter ?

Oui. Le tonapp/install/installer.php fera le reste

Ok 
Alors merci pour ca, c'est le plus interessant on va dire. Bien sur j'ai lancé installer.php a chaque version, et ca semblait tout ok. Non, je n'ai pas de disable installers, je l'avais au début, je l'ai passé a off... Je ne sais pas pourquoi ils étaient sur on, et pas trop moyen de verifier...
Donc, sauvegarde éffectuée, j'ai fait les modifs demandées, et ca semble passer ! Voici le résultat de install.php : 

Installation start.. [notice] Installation pour le point d'entrée index Toutes les dépendances des modules sont valides Le module jacl2db est mis à jour à la version 1.3a1 Le module jacl2db est mis à jour à la version 1.3a2 Le module jacl2db est mis à jour à la version 1.3a3 Le module jacl2db est mis à jour à la version 1.3RC2.2100 Le module jacl2db est mis à jour à la version 1.6.16 Tous les modules sont installés ou mis à jour pour le point d'entrée index [notice] Installation pour le point d'entrée admin Toutes les dépendances des modules sont valides Le module jacl2db est mis à jour à la version 1.3a1 Le module jacl2db est mis à jour à la version 1.3a2 Le module jacl2db est mis à jour à la version 1.3a3 Le module jacl2db est mis à jour à la version 1.3RC2.2100 Le module jacl2db est mis à jour à la version 1.6.16 Tous les modules sont installés ou mis à jour pour le point d'entrée admin [notice] Installation pour le point d'entrée provisionnal Toutes les dépendances des modules sont valides Le module jacl2db est mis à jour à la version 1.3a1 Le module jacl2db est mis à jour à la version 1.3a2 Le module jacl2db est mis à jour à la version 1.3a3 Le module jacl2db est mis à jour à la version 1.3RC2.2100 Le module jacl2db est mis à jour à la version 1.6.16 [error] Une erreur est survenue durant l'installation du module jauth: (23)The file C:\xampp5\htdocs\cr16\croisiere/var/config/ doesn't exist Installation ended. 

Et du coup, la partie admin semble a nouveau accessible, sans le CSS, j'ai une page en pur HTML, il faut que je vois ce qui bloque. Je m'en occupe des que j'ai quelques minutes. 
Et la partie CRM du site ne fonctionne pas encore, pareil, a voir en step by step ce qui ne va pas. 
Encore merci pour ton aide ! 

b-tzu

unread,
Nov 7, 2018, 4:58:05 PM11/7/18
to jelix-fr
Sur la partie CRM j'ai cette erreur : 
Error in the main configuration. A plugin doesn't exist -- The coord plugin jacl2 is unknown.
J'ai l'impression que les mises a jour n'ont pas toutes été faites sur ce composant. Comment rattraper ca  ?
Cordialement 
Reply all
Reply to author
Forward
0 new messages