Annonce

#16 2010-04-05 01:58:03

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [2.1RC1] Fonctions mysql manquantes ?

grum a écrit:

Eric a écrit:

Mais tous les plugins n'ont pas forcément le besoin de stocker leur configuration tout en utilisant des tables supplémentaires.

rajouter une entrée dans la table CONFIG de piwigo ne coûte rien ;-)

Un peu quand même...
Sachant que le contenu entier est lu à chaque fois...

Et ce qui me gêne, c'est que c'est une "bidouille" à faire pour chaque plugin.
On a une table #_plugin, des méthodes d'installations et d'activation. Pourquoi ne pas gérer le stockage de la version dans le coeur de piwigo (d'ailleurs, c'est déjà fait non?) et passer cette version en paramètre des fonctions d'installation et d'activations.

Hors ligne

#17 2010-04-05 07:56:11

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [2.1RC1] Fonctions mysql manquantes ?

+1


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#18 2010-04-05 08:32:33

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
16836

Re: [2.1RC1] Fonctions mysql manquantes ?

Eric a écrit:

Par exemple, prenons une galerie en 2.0.0 (il y en a qui ne migrent pas leurs galeries) avec des plugins compatibles pour cette version et qui n'ont pas le numéro de version inscrit dans la table Config. Quand il passeront sur Piwigo 2.1, ils devront forcément mettre à jour leurs plugins par la même occasion.

Si il n'y a rien dans la table config, c'est que le plugin n'est pas à jour ;-)

J'ai fait cela dans meta, lors de l'installation du plugin je crée ou met à jour le numéro de version du plugin dans la table config

Tant que le n' de version du plugin dans la table config ne correspond pas au dernier numéro de version du plugin, la partie admin ne propose que de faire une mise à jour du plugin (pour mettre à jour les tables je fini la mise à jour par la table config comme cela si problème lors de la requête l'utilisateur dois recommencer la mise à jour) ).

Si le n° de version du plugin correspond entre la table et mon fichier la partie admin du plugin devient autorisé.


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#19 2010-04-05 11:58:21

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [2.1RC1] Fonctions mysql manquantes ?

Oui mais question performances, comme l'a souligné Rub, la table config est parcourue à chaque fois. Ceci dit, faut que je fasse des tests pour mes plugins.
En général, une modification dans la structure ou le contenu des tables dédiées au plugin donne lieu à un changement de version majeure (2.14 vers 2.15 par exemple). Il faudrait que j'inscrive le numéro de version dans la table config et que je teste sur les 4 premiers digit. A voir...

Mais, pour revenir sur le problème de fond de ce topic, il serait tout de même bien de pouvoir vérifier les structures des tables. A un moment ou à un autre, ces fonctions viendront à manquer à quelqu'un.

Dernière modification par Eric (2010-04-05 11:59:02)

Hors ligne

#20 2010-04-05 13:29:18

P@t
Ex Equipe Piwigo
Nice
2007-06-13
5695

Re: [2.1RC1] Fonctions mysql manquantes ?

ddtddt parlait du numéro de version dans la tables des plugins.
Le numéro de version est inscrit à l'installation, mais ne bouge pas par la suite.

Perso, je préfèrerai largement rester aux tests de tables qui est bien plus sur, et bien plus pratique...
Nicolas, pourrais-tu vérifier que les requetes SHOW TABLES et SHOW FULL COLUMNS n'existent vraiment pas en postgre et mysql?
Comment comptes-tu gérer l'upgrade de piwigo par la suite?


P@t

Hors ligne

#21 2010-04-05 13:52:06

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [2.1RC1] Fonctions mysql manquantes ?

P@t a écrit:

ddtddt parlait du numéro de version dans la tables des plugins

N'as-tu pas lu un peu vite? Dans ses propos, ddtddt ne mentionne que la table Config et pas la table Plugins ;-)

Hors ligne

#22 2010-04-05 13:58:03

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [2.1RC1] Fonctions mysql manquantes ?

P@t a écrit:

Perso, je préfèrerai largement rester aux tests de tables qui est bien plus sur, et bien plus pratique...
Nicolas, pourrais-tu vérifier que les requetes SHOW TABLES et SHOW FULL COLUMNS n'existent vraiment pas en postgre et mysql?
Comment comptes-tu gérer l'upgrade de piwigo par la suite?

D'après cette doc et ces commentaires :

For functionality similar to mysql SHOW TABLES use:

select * from information_schema.tables where table_schema='public' and table_type='BASE TABLE'

[edit]

For those coming from MySQL:
SHOW TABLES    = \d
SHOW DATABASES = \l
SHOW COLUMNS   = \d table

However the \* commands only work in psql and not via other interfaces, such as queries via PHP. Similar data can be retrieved with the following SQL commands:

SHOW TABLES (\d) = SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'

SHOW DATABASES (\l) =  SELECT datname FROM pg_database;

SHOW COLUMNS FROM table (\d table) =  SELECT column_name FROM information_schema.columns WHERE table_name ='table';

Il semblerait que oui pour PostgreSql. A voir pour Sqlite.

Dernière modification par Eric (2010-04-05 13:59:53)

Hors ligne

#23 2010-04-16 18:30:28

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [2.1RC1] Fonctions mysql manquantes ?

Cette discussion semble au point mort. Pourtant elle a suscité des réactions intéressantes.

Alors? Où va nous?

Hors ligne

#24 2010-04-16 21:06:53

nicolas
Former Piwigo Team
2004-12-30
1564

Re: [2.1RC1] Fonctions mysql manquantes ?

Eric a écrit:

Cette discussion semble au point mort. Pourtant elle a suscité des réactions intéressantes.

Alors? Où va nous?

Nulle part. Je ne suis toujours pas convaincu de l'utilité.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#25 2010-05-06 17:07:57

nicolas
Former Piwigo Team
2004-12-30
1564

Re: [2.1RC1] Fonctions mysql manquantes ?

Mise à jour du [Bugtracker] ticket 1570. Eric la balle est dans ton camp !


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#26 2010-05-06 17:25:40

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [2.1RC1] Fonctions mysql manquantes ?

nicolas a écrit:

Mise à jour du [Bugtracker] ticket 1570. Eric la balle est dans ton camp !

Vu, merci Nicolas. Malheureusement, je ne fais que passer, en coup de vent. Pas beaucoup de dispo (proche de zéro) en ce moment et ce n'est pas prévu de s'arranger avant le début du mois de juin, dans le meilleur des cas.

Je veux m'attribuer le bug car mon point de vue sur le sujet n'a pas changer: Pourquoi se priver de fonction php/mysql sous prétexte qu'elles n'existent pas forcément nativement pour les autres SGBD supportés?
D'autant que MySql n'est pas mort et demeure une référence solide chez de nombreux hébergeurs. Quand bien même Oracle aurait sa peau, il y a déjà Maria (fork de MySql) sur les rails...

Bref, ok pour le relais. Je prends!

Mais faut me laisser du temps, beaucoup de temps, pour m'y mettre. Et quand je pourrais m'y mettre, j'aurais certainement besoin de quelques coups de main ;-)

Hors ligne

#27 2010-05-06 20:17:06

nicolas
Former Piwigo Team
2004-12-30
1564

Re: [2.1RC1] Fonctions mysql manquantes ?

Eric a écrit:

Mais faut me laisser du temps, beaucoup de temps, pour m'y mettre. Et quand je pourrais m'y mettre, j'aurais certainement besoin de quelques coups de main ;-)

Pas de problème.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#28 2010-05-28 18:50:53

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [2.1RC1] Fonctions mysql manquantes ?

Je m'attaque à l'ajout de deux fonctions MySql et leur équivalent Sqlite et PgSql: mysql_num_fields() et mysql_list_fields()

Pour le premier, trouver la correspondance était facile: mysql_num_fields() = sqlite_num_fields() = pg_num_fields(). Mais j'ai un problème avec la correspondance pdo_sqlite, ne connaissant absolument rien à cette mouture "orienté objet". Mes recherches et lectures sur le sujet m'ont amenées à cette solution mais j'ai de gros doutes:

Code:

function pwg_db_num_fields($result) 
{
  global $pwg_db_link;
  
  return $pwg_db_link->sqlite_num_fields($result);
}

C'est là que j'aurais bien besoin d'un coup de main ;-)

Pour mysql_list_fields(), cela va être une autre paire de manche... Il n'y a pas de correspondances "toutes faites" et il faudra construire le résultat attendu par des requêtes spéciales. Mais çà, ce sera dans un second temps.

Hors ligne

#29 2010-05-28 21:16:31

nicolas
Former Piwigo Team
2004-12-30
1564

Re: [2.1RC1] Fonctions mysql manquantes ?

Avant de te lancer tête dans le guidon tu ne veux pas faire une petite pause et réfléchir deux secondes. Je persiste à dire que ces fonctions n'ont aucun intérêt. De même que la fonction mysql_num_rows().
Ne veux-tu pas attendre le développement de la fonction upgrade pour les plugins : [Bugtracker] ticket 1681 ?

Eric a écrit:

Je m'attaque à l'ajout de deux fonctions MySql et leur équivalent Sqlite et PgSql: mysql_num_fields() et mysql_list_fields()

Pour le premier, trouver la correspondance était facile: mysql_num_fields() = sqlite_num_fields() = pg_num_fields(). Mais j'ai un problème avec la correspondance pdo_sqlite, ne connaissant absolument rien à cette mouture "orienté objet". Mes recherches et lectures sur le sujet m'ont amenées à cette solution mais j'ai de gros doutes:

Code:

function pwg_db_num_fields($result) 
{
  global $pwg_db_link;
  
  return $pwg_db_link->sqlite_num_fields($result);
}

C'est là que j'aurais bien besoin d'un coup de main ;-)

Je pense que tu t'es trompé. Ce n'est pas sqlite2 que nous utilisons mais sqlite3 :
http://fr2.php.net/manual/fr/book.sqlite3.php
Pas de méthode sqlite_num_fields() ou quoi que ce soit d'approchant mais tu as la méthode numColumns() :
http://fr2.php.net/manual/fr/sqlite3res … olumns.php

Dans le même esprit, tu as columnName() et columnType():
http://fr2.php.net/manual/fr/sqlite3res … mnname.php
http://fr2.php.net/manual/fr/sqlite3res … mntype.php

Pour PDO c'est la méthode columnCount() pour le nombre de colonnes.

Voilà pour le peu d'aide que je peux t'apporter.

Après je te conseille d'installer une base sqlite et une posgresql. Tu peux t'aider de mon plugin pour migrer et tester.


Donnez du peps à vos tags
Laissez vos visiteurs vous aidez à tagger vos images avec user_tags

Hors ligne

#30 2010-05-28 21:48:56

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [2.1RC1] Fonctions mysql manquantes ?

nicolas a écrit:

Avant de te lancer tête dans le guidon tu ne veux pas faire une petite pause et réfléchir deux secondes.

'suis pas certain de savoir vraiment comment prendre cette remarque... Quoi qu'il en soit, je ne suis pas "dans le guidon", je n'en suis qu'à la phase de réflexion et recherche de solutions. Je n'ai pas posé une seule ligne de code mais j'écris toutes les pistes que je trouve pour un problème donné.

nicolas a écrit:

Je persiste à dire que ces fonctions n'ont aucun intérêt. De même que la fonction mysql_num_rows().

Et pourtant mysql_num_rows() est utilisé dans les fichiers functions_sqlite.inc.php, functions_pdo-sqlite.inc.php et functions_pgsql.inc.php pour construire pwg_query(). D'après ce que j'en comprends (et je peux comprendre de travers), se passer de cette fonction à cet endroit est faisable mais cela ne reviendrait-il pas à passer par la lune pour aller à la boulangerie du coin?

nicolas a écrit:

Ne veux-tu pas attendre le développement de la fonction upgrade pour les plugins : [Bugtracker] ticket 1681 ?

De mon côté, y a pas le feu au lac. Je suppose que le but de cette fonction est de proposer un système de mise à jour normé pour les plugins avec une facilité de prise en charge des versions passées?

nicolas a écrit:

Je pense que tu t'es trompé. Ce n'est pas sqlite2 que nous utilisons mais sqlite3 :
http://fr2.php.net/manual/fr/book.sqlite3.php
Pas de méthode sqlite_num_fields() ou quoi que ce soit d'approchant mais tu as la méthode numColumns() :
http://fr2.php.net/manual/fr/sqlite3res … olumns.php

Dans le même esprit, tu as columnName() et columnType():
http://fr2.php.net/manual/fr/sqlite3res … mnname.php
http://fr2.php.net/manual/fr/sqlite3res … mntype.php

Pour PDO c'est la méthode columnCount() pour le nombre de colonnes.

Voilà pour le peu d'aide que je peux t'apporter.

Après je te conseille d'installer une base sqlite et une posgresql. Tu peux t'aider de mon plugin pour migrer et tester.

Je me disais aussi... Les infos que je trouvais étaient parfois contradictoires ou pas du tout en phase avec ce que je lis dans le code de Piwigo.
Sinon, je connais un peu postgresql pour utiliser ce SGBD au boulot (j'aime pas - question d'habitude, je suppose). Je saurais installer çà. Pour Sqlite, faut que je me documente d'abord.

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact