Sélecteur de date avancé

  • Posts: 63
  • Thank you received: 6
  • Hikaserial Standard Hikashop Essential
2 months 1 week ago #363928

-- HikaShop version -- : 5.0.3
-- Joomla version -- : 4.4.9
-- PHP version -- : 8.1.27

Bonjour,
j'ai un problème curieux sur un site ou rien n'a changé depuis les derniers mois, ni la version de joomla 4.4.3, ni la version d'hikashop 5.0.3, ni aucune maj de quoi que ce soit.

j'ai un un champ personnalisé "date".
- je sélectionne une date, par exemple 1er novembre 2024, "01-11-2024" s'affiche (format %d-%m-%Y)
- j'enregistre le produit
- la date passe automatiquement à "31-10-2024"
par contre, dans la table hikashop_product, c'est bien 20241101000000 qui est enregistré.

dans les paramètres du champ perso, j'ai supprimé le formatage %d-%m-%Y et laissé vide
- dans la fiche produit c'est maintenant "2024-10-31 23:00" qui s'affiche
et dans la table hikashop_product, c'est toujours 20241101000000 qui est enregistré.

quelle que soit la date choisie, ce qui s'affiche dans le champ est toujours la date choisie - 1h, donc la date du jour d'avant

dois-je préciser que ça fonctionnait correctement depuis des mois ?!

j'ai mis joomla à jour en 4.4.9, idem
j'ai vérifié la time zone du serveur, ras
j'ai mis hikashop en 5.1.1, idem

qu'est-ce qui peut causer cela ?

PS : je ne parviens pas à mettre hikashop à jour mais j'y travaille…
j'ai réussi à installer la maj, c'était le plugin sogecommerce qui posait problème (voir www.hikashop.com/forum/5-support-en-fran...-0-echec.html#361969 ). Mais ça ne résout pas mon problème.

Merci

Last edit: 2 months 1 week ago by marcmarc.

Please Log in or Create an account to join the conversation.

  • Posts: 83024
  • Thank you received: 13403
  • MODERATOR
2 months 1 week ago #363929

Bonjour,

C'est surement un problème de configuration de fuseau horaire entre le site web, le compte utilisateur, PHP, et le serveur.

Le plus simple c'est d'éditer les options du plugin Datepicker field via le gestionnaire de plugins de Joomla. Vous y trouverez une option pour utiliser midi au lieu de minuit lors de la sauvegarde du jour sélectionné dans la base de données. Cela évitera les problèmes de décalage de fuseau horaire d'une ou deux heures.

The following user(s) said Thank You: marcmarc

Please Log in or Create an account to join the conversation.

  • Posts: 63
  • Thank you received: 6
  • Hikaserial Standard Hikashop Essential
2 months 1 week ago #363931

Ok, ce qui m'étonne c'est, sauf erreur, 0 maj de la config du serveur et/ou joomla.
Bref, en attendant de trouver, ça fonctionne !
Merci

Please Log in or Create an account to join the conversation.

  • Posts: 83024
  • Thank you received: 13403
  • MODERATOR
2 months 1 week ago #363932

En effet, c'est bizarre que cela arrive sans changement.
Peut être un changement du fuseau horaire dans les options du compte utilisateur utilisé dans le backend ?
Oui alors un changement fait par l'hébergeur que vous n'auriez pas vu passer ? Ou qui n'aurait pas un lien direct ? Par exemple, en passant de PHP 7 à PHP 8, peut être que le fuseau horaire de PHP aurait changé ?
En tout cas, le principal, c'est que le problème soit réglé avec cette option.

Please Log in or Create an account to join the conversation.

  • Posts: 63
  • Thank you received: 6
  • Hikaserial Standard Hikashop Essential
2 months 1 week ago #363938

J'aimerais bien trouver d'où ça vient quand même.
Pour info, le serveur est un VPS que j'autogère donc j'ai la certitude qu'il n'y a pas eu de maj du système et de version de php 8.1.27.
Le site est en ligne depuis le printemps, donc il a déjà passé un changement d'horaire depuis, sans problème.
Pas de modifs de paramétrage dans le backend non plus, le fuseau horaire est réglé sur Paris et n'a pas bougé.
Mystère…

Du coup j'ai profité de cet incident pour faire des MAJ, je suis maintenant en J5.2.0 et la version PHP est 8.2.24, HikaShop 5.1.1 & HikaSerial 5.0.0.
Rien de tout ça n'a changé quoi que ce soit sur le mystère.

Bref, si je trouve je posterai ici pour info.

PS : mais heureusement la solution du Datepicker sur midi fonctionne !

The following user(s) said Thank You: nicolas

Please Log in or Create an account to join the conversation.

  • Posts: 63
  • Thank you received: 6
  • Hikaserial Standard Hikashop Essential
2 months 2 days ago #364029

-- HikaShop version -- : 5.1.1
-- HikaSerial version -- : 5.0.0
-- Joomla version -- : 5.2.0
-- PHP version -- : 8.2.24

marcmarc wrote: PS : mais heureusement la solution du Datepicker sur midi fonctionne !

Bonjour Nicolas,
j'ai parlé trop vite et, comme ça semblait régler le problème je ne suis pas allé vérifier dans la bdd.
l'horaire ne change pas, c'est toujours enregistré à 000000, exemple 20241215000000 pour le 15/12/20204, que l'option "Définir l'heure à midi lors de la synchronisation" soit sur oui ou sur non.
je pensais que la date s'enregistrait désormais à 20241215120000

avec l'option Datepicker sur midi l'affichage est donc correct dans le formulaire produit et le listing des produits.
par contre je génère des billets avec attachserial.php et là le problème persiste.

une idée ?

Please Log in or Create an account to join the conversation.

  • Posts: 26165
  • Thank you received: 4029
  • MODERATOR
2 months 2 days ago #364041

Bonjour,

Les plugins "attach serial" et "pdf serial" ne savent pas invoquer le plugin "advanced date picker" pour s'occuper de l'affichage de la date ; ils vont transformer le format utilisé dans une donnée exploitable par le système de date de Joomla.
De ce fait, les options liés à l'affichage du champs personnalisé ne sont pas pris en compte.
Il faudrait une nouvelle gestion, plus orientée plugin, ou "attach serial" (et "pdf serial") irait demander à HikaShop de faire l'affichage du champs personnalisé afin de le traiter comme texte à afficher et non comme donnée brute de base de données.
Malheureusement ce n'était pas l'approche du plugin qui se voulait assez proche de la base de donnée ; cet ajout impliquerait donc un développement conséquent.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 63
  • Thank you received: 6
  • Hikaserial Standard Hikashop Essential
2 months 2 days ago #364046

Bonjour,
ok, j'ai modifié le script pour qu'il fasse ce que date picker fait avec la synchro sur midi, cad ajouter quelques heures à la date lue dans la bdd.
et de ce fait la date affichée est correcte.

Mais ça ne répond pas à ma question

l'horaire ne change pas, c'est toujours enregistré à 000000, exemple 20241215000000 pour le 15/12/20204, que l'option "Définir l'heure à midi lors de la synchronisation" soit sur oui ou sur non.
je pensais que la date s'enregistrait désormais à 20241215120000


Merci

Please Log in or Create an account to join the conversation.

  • Posts: 26165
  • Thank you received: 4029
  • MODERATOR
2 months 1 day ago #364060

Bonjour,

De ce fait, les options liés à l'affichage du champs personnalisé ne sont pas pris en compte.

Pour enlever le sous-entendu de mon précédent message :
L'option du Advanced Date Picker est une option d'affichage et non de sauvegarde de données.
Dans la fonction "getTimestamp" du plugin, il va changer le "00:00:00" en "12:00:00" et ainsi éviter des problématiques de fuseau horaire.

Les plugins "attach serial" et "pdf serial" ne vont même pas prendre en compte l'heure pour le calcul.
Par contre nous pouvons voir pour forcer le comportement de midi à cet endroit :
$dateValue = substr((string)$content,0,4) . '/' . substr((string)$content,4,2) . '/' . substr((string)$content,6,2);
via
$dateValue = substr((string)$content,0,4) . '/' . substr((string)$content,4,2) . '/' . substr((string)$content,6,2).' 12:00:00';;
Et idem pour
$dateValue = substr((string)$d['text'],0,4) . '/' . substr((string)$d['text'],4,2) . '/' . substr((string)$d['text'],6,2);
En
$dateValue = substr((string)$d['text'],0,4) . '/' . substr((string)$d['text'],4,2) . '/' . substr((string)$d['text'],6,2).' 12:00:00';

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

Time to create page: 0.072 seconds
Powered by Kunena Forum