Bonjour,
Ce message est principalement destiné a Zaphod pour faire une modification de son thème pour qu'il soit compatible avec la base Sqlite3.
J'ai un problème lors de l'activation du thème Stripped sur un base Sqlite3.
Warning: SQLite3::query(): Unable to prepare statement: 1, near "hideMenu": syntax error in /home/fox/www/piwigoDbg/include/dblayer/functions_sqlite.inc.php on line 129 INSERT INTO piwigo_config (param,value,comment) VALUES ("stripped" , "a:19:{s:8:"hideMenu";b:1;s:12:"animatedMenu";b:1;s:12:"animatedTabs";b:1;s:18:"replaceActionIcons";b:1;s:11:"noLowercase";b:0;s:15:"showThumbLegend";b:0;s:21:"showTitleOnBrowsePath";b:0;s:29:"showDescriptionInsteadOfTitle";b:0;s:19:"useNavigationArrows";b:1;s:16:"infoTabAdminOnly";b:0;s:13:"imageAutosize";b:1;s:18:"imageAutosizeTitle";b:1;s:19:"imageAutosizeMargin";i:60;s:22:"imageAutosizeMinHeight";i:200;s:13:"navThumbsFade";i:150;s:15:"marginContainer";i:30;s:16:"paddingContainer";i:10;s:15:"defaultZoomSize";s:4:"full";s:16:"highResClickMode";s:4:"zoom";}" , "stripped theme parameters"); near "hideMenu": syntax error
Pour corriger ce problème j'ai du modifier le fichier stripped/admin/maintain.inc.php comme ceci :
Code original :
$query = ' INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment) VALUES ("stripped" , "'.pwg_db_real_escape_string(serialize($config)).'" , "stripped theme parameters");';
par :
$query = " INSERT INTO " . CONFIG_TABLE . " (param,value,comment) VALUES ('stripped' , '".pwg_db_real_escape_string(serialize($config))."' , 'stripped theme parameters');";
Après cette on a une erreur lors de la désactivation du thème :
Warning: SQLite3::query(): Unable to prepare statement: 1, near "LIMIT": syntax error in /home/fox/www/piwigoDbg/include/dblayer/functions_sqlite.inc.php on line 129 DELETE FROM piwigo_config WHERE param="stripped" LIMIT 1; near "LIMIT": syntax error
Pour corriger ce problème j'ai du modifier le fichier stripped/admin/maintain.inc.php comme ceci :
Code original :
$query = 'DELETE FROM ' . CONFIG_TABLE . ' WHERE param="stripped" LIMIT 1;';
par :
$query = "DELETE FROM " . CONFIG_TABLE . " WHERE param='stripped';";
dans le même esprit je pense qu'il faudra changer ce fichier stripped/admin/upgrade.inc.php :
Code original :
$query = ' INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment) VALUES ("stripped" , "'.pwg_db_real_escape_string(serialize($config)).'" , "stripped theme parameters");';
par
$query = " INSERT INTO " . CONFIG_TABLE . " (param,value,comment) VALUES ('stripped' , '".pwg_db_real_escape_string(serialize($config))."' , 'stripped theme parameters');";
J'ai testé ce code sur une base MySql et je n'ai pas eu de problème avec.
Pour ce qui est de postgresql je n'ai pas testé.
Pour info j'utilise :
nginx, PHP5, sqlite3, piwigo 2.2.4
J'espère que cela sera utile.
merci.
Dernière modification par Fox074 (2011-07-27 15:40:32)
Hors ligne
Merci de faire remonter le bug.
Je le note comme à faire.
Si quelqu'un qui s'y connait peut confirmer que ça ne fera pas de problème...
Dernière modification par Zaphod (2011-07-22 18:56:34)
Hors ligne
Très intéressant, merci Fox074. Si tu vois d'autres soucis avec SQLite, n'hésites pas à les remonter (et à me notifier, sauf si c'est dans la section "beta test et développement" du forum auquel cas je suis automatiquement notifié)
Hors ligne
j'ai rapporté 2 autres bug dans le bug tracker :
http://piwigo.org/bugs/view.php?id=2385
http://piwigo.org/bugs/view.php?id=2383
Si je vois autre autre chose je ferais de mon mieu pour remonter l'info.
Votre gallery est vraiment sympa et la combinaison avec Sqlite3 donne quelque chose de vraiment léger a gérer.
Hors ligne
Oui il y a du mieu.
L'installation se passe bien et l'activation aussi.
Par contre quand on désactive le thème j'ai toujours cette erreur
Warning: SQLite3::query(): Unable to prepare statement: 1, near "LIMIT": syntax error in /home/fox/www/piwigoSqlite/include/dblayer/functions_sqlite.inc.php on line 129 DELETE FROM piwigo_config WHERE param='stripped' LIMIT 1; near "LIMIT": syntax error
Quand je consulte la doc SQLITE (http://www.sqlite.org/lang_delete.html) on devrait pouvoir utiliser l'instruction LIMIT avec le DELETE mais pour cela il faut compiler SQLite avec une option spécial qui n'est pas activée par défaut (http://www.sqlite.org/compile.html#enab … lete_limit).
De mon point de vu je ne pense pas qu'utiliser LIMIT dans ce DELETE soit utile.
Si c'est bien le cas retire le (voir le message pécédent) et ça fonctionnera pour moi.
Sinon il faudra trouver une clause WHERE plus restrictive pour avoir un thème générique qui fonctionne sur MySQL et Sqlite3.
PS:
Je pense que ton théme "Stripped & Columns" devra aussi être corrigé.
Dernière modification par Fox074 (2011-07-26 12:03:41)
Hors ligne
stripped & columns n'est pas de moi, c'est de flop25.
Il se base sur l'install de stripped donc si je corrige stripped, il bénéficiera de la modif.
Le coup du LIMIT c'est une erreur, je n'avais pas vu qu'il fallait l'enlever.
Je referai une correction dans les jours qui viennent.
Hors ligne
Zaphod a écrit:
stripped & columns n'est pas de moi, c'est de flop25.
Il se base sur l'install de stripped donc si je corrige stripped, il bénéficiera de la modif.
Le coup du LIMIT c'est une erreur, je n'avais pas vu qu'il fallait l'enlever.
Je referai une correction dans les jours qui viennent.
Oh shocking ! chacun chez soi et les poules seront bien gardées !!
^^
stripped & columns a aussi sa propre config en plus de celle de stripped. Fox074 pourrais-tu y jeter un œil stp ?
Hors ligne
oui c'est exactement ça en ce qui concerne les quotes.
Voilà ce que j'ai modifié pour "Stripped & Columns" :
Fichier /stripped_black_bloc/admin/maintain.inc.php
<?php function theme_activate($id, $version, &$errors) { global $prefixeTable, $conf; if (!isset($conf['stripped_black_bloc'])) { $config = array( 'color_main' => 'E6554F', 'column_width' => 170, 'thumbnail_width' => 150, 'thumbnail' => 'piwigo' //generated - auto - piwigo ); $query = " INSERT INTO " . CONFIG_TABLE . " (param,value,comment) VALUES ('stripped_black_bloc' , '".pwg_db_real_escape_string(serialize($config))."' , 'color_main#column_width#thumbnail_width#thumbnail(generated - auto - piwigo)');"; pwg_query($query); } } function theme_deactivate() { global $prefixeTable; $query = "DELETE FROM " . CONFIG_TABLE . " WHERE param='stripped_black_bloc' ;"; pwg_query($query); } ?>
Je ne sais pas trop a quoi sert le fichier /stripped_black_bloc/admin/upgrade.inc.php mais je pense qu'il faut aussi le mettre a jour :
<?php if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); global $prefixeTable, $conf; if (!isset($conf['stripped_black_bloc'])) { $config = array( 'color_main' => 'E6554F', 'column_width' => 170, 'thumbnail_width' => 150, 'thumbnail' => 'piwigo' //generated - auto - piwigo ); $query = " INSERT INTO " . CONFIG_TABLE . " (param,value,comment) VALUES ('stripped_black_bloc' , '".pwg_db_real_escape_string(serialize($config))."' , 'color_main#column_width#thumbnail_width#thumbnail(generated - auto - piwigo)');"; pwg_query($query); load_conf_from_db(); } elseif (count(unserialize( $conf['stripped_black_bloc'] ))!=4) { $config = array( 'color_main' => 'E6554F', 'column_width' => 170, 'thumbnail_width' => 150, 'thumbnail' => 'piwigo' //generated - auto - piwigo ); conf_update_param('stripped_black_bloc', pwg_db_real_escape_string(serialize($config))); load_conf_from_db(); } ?>
Dernière modification par Fox074 (2011-07-26 16:33:04)
Hors ligne
oki merci!
Hors ligne