essayez en plugin :
créez un dossier dans /plugin nommé 'patch'
dans /patch/maintain.inc.php :
<?php function plugin_install() { $query = ' SELECT id, path, has_high FROM '.IMAGES_TABLE.' ;'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { if ('true' == $row['has_high']) { $high_path = dirname($row['path']).'/pwg_high/'.basename($row['path']); if ( file_exists($row['path'])) { rename($row['path'], $row['path'].'.old'); } rename($high_path, $row['path']); } } } ?>
dans /patch/main.inc.php
<?php /* Plugin Name: Patch Version: auto Description: Patch Plugin URI: Author: Flop25 Author URI: http://www.planete-flop.fr/ */ ?>
activez le puis allez voir ce que ça a fait
Dernière modification par flop25 (2012-07-12 18:47:31)
Hors ligne
Il ne se passe rien, cela part en erreur.
On ne la voit pas lors de l'activation mais c'est lié au fait qu'il ne trouve aucun champs has_high.
Voici une ligne d'un select * from piwigo_images
"id";"file";"date_available";"date_creation";"name";"comment";"author";"hit";"filesize";"width";"height";"coi";"representative_ext";"date_metadata_update";"rating_score";"path";"storage_category_id";"level";"md5sum";"added_by";"lat";"lon";"rotation"
"52";"DSCF1001.JPG";"2011-04-03 05:30:59";"2011-02-05 14:16:01";"Titre image";NULL;"Utilisateur ayant ajouté";"4";"4144";NULL;NULL;NULL;NULL;"2011-04-03";NULL;"./upload/2011/04/03/20110403053059-462d871b.jpg";NULL;"0";"c1f618f242549bcfa07bee3a5b6b75c2";"1";"46.349383";"6.084202";"0"
Ce champs existait dans la DB en 2.3.4. Il a donc disparu avec la MAJ.
Du coup ma base est à jour et prend le fichier taille web comme le fichier original.
Hors ligne
Avec ce code là, cela fonctionne mieux ;) (un peu long à traiter si beaucoup d'images):
function plugin_install() { $query = 'SELECT id, path FROM '.IMAGES_TABLE.';'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { $high_path = dirname($row['path']).'/pwg_high/'.basename($row['path']); if (file_exists($high_path)) { rename($row['path'], $row['path'].'.old'); rename($high_path , $row['path']); } } }
Il me faut juste la confirmation que l'ID de l'image dans pwg_high est toujours le même que l'ID de l'image taille web :)!
Attention du coup ca traite même la partie \galleries\, je ne sais pas si ca a une incidence (même changement hierarchique en 2.4 que \upload\ ou pas ?) puisque je ne l'utilise pas.
Dernière chose, mon cas n°2 (http://photos.clockover.org/piwigo/pict … category/3), affiche bien la taille originale mais le menu "taille" de photos ne s'est pas mis à jour (pour lui la taille max reste 800*600) même si il affiche du 28xx*21xx.
Il y a une opération à effectuer :)?
Dernière modification par clockover (2012-07-13 02:35:45)
Hors ligne
Bonjour
oui les noms de fichiers sont les mêmes
Par curiosité vous pourriez faire
select id from piwigo_upgrade order by id+0 desc limit 10;
ce n'est pas la même que le dernier coup
ha ben oui suis je bête il n'y a plus has_high etc
sous galleries c'est la même organisation
pour les tailles il faudrait certainement un nouveau petit script de maj des tailles ; à suivre donc
Hors ligne
Merci, ça permet de confirmer que la maj122 a été 'appliquée' du moins selon le système
Hors ligne
Bon j'ai avancé par rapport au problème de menu:
Voici mes remarques:
1. j'ai modifiémanuellement dans la table piwigo_images les champs width et height d'une image erronée.
Du coup après un F5, le menu se recrée nickel.
2. En mettant les champs width et height à vide, le menu se met nickel après un F5 et la taille correcte apparait en meta-données au deuxième F5.
Donc piwigo met à jour la base si il n'a pas les données (j'ai remarqué que j'avais déjà pleins d'images justement à NULL niveau width height.
Quelle solution est la meilleur selon vous ?
Le code est simple pour les deux :)
Hors ligne
Si vous vs y connaissez, une requête pour vider ces 2 colonnes sera bien plus simple en effet ^^
Dernière modification par flop25 (2012-07-14 15:03:16)
Hors ligne
Du coup voila :)
<?php function plugin_install() { $query = 'SELECT id, path FROM '.IMAGES_TABLE.';'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { $high_path = dirname($row['path']).'/pwg_high/'.basename($row['path']); if (file_exists($high_path)) { rename($row['path'], $row['path'].'.old'); rename($high_path , $row['path']); $query_update = 'UPDATE '.IMAGES_TABLE.' SET width=NULL, height=NULL WHERE id='.$row['id'] mysql_query($query_update); } } } ?>
Hors ligne
ça m'a l'air bien mais si vous avez déjà déplacé les fichiers avec rename() il vaudrait mieux enlever cette partie
sinon testé et validé ?
Hors ligne
Est-ce que je passe le sujet en [Résolu] ?
Hors ligne
clockover a écrit:
Parfaitement :)
Par contre, je n'ai rien trouvé sur le premier post pour "résoudre" ce topic.
C'est normal, à l'époque vous aviez posté votre question en tant qu'invité. Les invités ne peuvent pas tout faire. Je le fais pour vous ;-)
Hors ligne