je bloque : pas moyen de poster un commentaire.
Et pourtant :
1) j'ai paramétré le site avec :
- Support des commentaires : commentaires ouverts
- État par défaut des commentaires : en ligne
2) je visualise un article : le formulaire de saisie des commentaires
s'affiche bien en dessous.
3) je le remplis, le visualise, tout est ok, je soumets
Et là, rien : l'onglet Commentaires du manager me dit déséspérément :
Pas de commentaires,
la table comments de la base reste effectivment vide.
J'ai oublié quelque chose, ou peut-être y a-t-il un autre paramétrage
à faire ?
Merci de votre secours.
Gérard
Peut etre que ce n'est pas ca !
Les pro ils en pensent quoi ?
J'ai passé l'après-midi à tracker le code de la classe Comment.
Le problème est qu'il essaie d'insérer le commentaire avec un
'comment_user_id' vide, et que ça, ça plait pas à la base de données.
Voici la requête créée par la méthode commit de l'objet Comment :
INSERT INTO plume_comments SET resource_id = '8', comment_user_id =
'', comment_author = 'gerard', comment_email = 'xxx...@free.fr',
comment_website = '', comment_creation = '20070807173354',
comment_update = '20070807173354', comment_status = '1', comment_type
= '1', comment_content = 'bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla', comment_ip = '192.168.0.25'
Cette requête provoque une erreur SQL : Out of range value adjusted
for column 'comment_user_id' at row 1
Il suffirait qu'il y ait une valeur numérique quelconque dans
comment_user_id = '' pour que la requête soit acceptée.
Alors est-ce que c'est Vegetarian qui provoque cela ?
Je n'ai pas étudié son code, mais le fait est que lorsque je vire
purement et simplement l'appel au hook onNewPublicCommentBeforeSave
(c'est lui qui appelle Vegetarian), le comportement est exactement le
même.
Donc je ne pense pas que ce soit lui qui soit en cause.
J'ignore à quoi sert ce comment_user_id, mais je pense que je vais
provisoirement le virer de la requête...
Qu'en pensent les pros ?
Gérard
Ligne 95 de class.comment.php, on lit ceci :
function set($author, $email, $website, $content, $resource_id, $ip,
$status=PX_RESOURCE_STATUS_VALIDE,
$type=PX_COMMENT_TYPE_NORMAL, $user_id='')
J'ai remplacé par cela :
function set($author, $email, $website, $content, $resource_id, $ip,
$status=PX_RESOURCE_STATUS_VALIDE,
$type=PX_COMMENT_TYPE_NORMAL, $user_id='1')
De la sorte, tous mes comment_user_id vaudront 1 ...
Ce n'est évidemment pas une solution satisfaisante (car j'imagine
qu'il avait une utilité ce machin-là) mais ça va me permettre de
continuer à développer mon site en attendant la correction définitive.
A propos, si un développeur pouvait éclairer ma lanterne sur l'utilité
de ce comment_user_id. Une recherche dans tous les fichiers du site
montrent que c'est utilisé dans articles.php, news.php et dans
class.manager.php.
Pas pris le temps de regarder en détail...
A+
Gérard
Je suis en 5.0.27 pour MySQL.
Je vais tâcher d'updater ce week-end.
Je suis d'accord que le pb est sûrement dû à MySQL, ce qui explique
que je suis le seul à l'avoir.
J'avais d'ailleurs déjà un pb similaire évoqué dans un autre Thread à
propos du champ metadata de la table resources : mon mysql n'acceptant
pas qu'on ne lui affecte pas de valeur.
Cela étant, je crains que ce ne soit pas dû à la version de MySQL mais
plus probablement son paramétrage dans my.ini, et là je veux pas trop
y toucher parce que je souhaite que ça reste compatible avec ce que
j'ai au boulot (où ils ont des paramétrages plus sévères que celui par
défaut).
Donc je vais mettre 0 à la place de 1 et finalement tout semble bien
fonctionner.
Encore merci.
Gérard