Fork me on GitHub




« 1 2 (3)


Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
C'est du code amateur ... hem ..
Je suis revenu à BD_XoopsFormTextDateSelect et plus XoopsFormTextDateSelect.

Je n'utilise pas calendar.js , cela reste interne au module.

Je bidouille pour mon utilisation, je sais que le résultat ne sera pas du tout "dans les règles de l'art" !

Je vous communiquerai quand même le résultat final, et peut-être pourrez-vous le rendre "conforme" !?

Posté le : 23/08/2014 14:43

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Ok merci, je tenterai de voir si quelqu'un peut le rendre conforme par la suite, bien entendu, le but étant d'avoir un maximum de modules conformes

Posté le : 24/08/2014 10:33

Open in new window

Xoopseuse Mai 2012 | Responsable équipe internationale | Recherche avancée en bas de page !
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
Voici le lien du module Thisday que j'ai mis en partage :

https://mon-partage.fr/f/y9UtNDI2/

Il faudrait "en urgence" régler le problème d'affichage de la date dans le champ "date" en mode édition.

Au lieu d'afficher la date de l'évènement en édition cela affiche la date du jour ...

Cela se passe dans thisday/class/formtextdateselect.php , fonction render().

Sans doute pas grand chose à modifier mais je n'y parviens pas. Il n'y a quasi aucun changement par rapport au code initial mais dès que j'essaie de mettre un code plus récent, ne plus utiliser strtotime(..) ni date(..) cela ne marche pas.
Quelque chose m'échappe.

Posté le : 24/08/2014 11:27

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
La fonction est appelée depuis users_thisday.php:

users_thisday.php (1) --> formtextdateselect.php (2)


(1) : $date contient bien la date de l'évènement, comment l'utiliser dans la fonction render() ?

$date = new DateTime($item->getVar('thisday_date'));
echo 
'DATE: '.$date->format('d-m-Y'); /* Affichage test de la date */
$sform->addElement(new BD_XoopsFormTextDateSelect(_THISDAY_DATE'thisday_date'15$date));


(2) : code initial

return "<input type='text' name='".$ele_name."' id='".$ele_name."' size='".$this->getSize()."' maxlength='".$this->getMaxlength()."' value='".date("Y-m-d"$ele_value)."'".$this->getExtra()." />";



Il faudrait utiliser le $date du (1), qui est transmis en paramètre par addElement(new BD_XoopsFormTextDateSelect ...) dans le (2) à la place de
.date("Y-m-d"$ele_value).


Ca semble facile et pourtant ...

Posté le : 24/08/2014 11:53

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
En fait il faudrait disséquer la fonction render() !
Qu'est censé contenir ce $ele_value = $this->getValue(false);.
Pour l'instant il contient le timestamp courant ! Pourtant avant mes modif il ne contenait le timestamp courant QUE lors d'une création, et en mode édition celui de l'évènement édité.

Posté le : 24/08/2014 12:22

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
Je crois que le problème vient de ce bout de code dans thisday/class/formtextedateselect.php :

function BD_XoopsFormTextDateSelect($caption$name$size 15$value0)
{
$value = !is_numeric($value) ? time() : intval($value);
$value = ($value == 0) ? time() : $value;
$this->XoopsFormText($caption$name$size25$value);
}



Si je remplace time() par une constante le champ date affiche bien toujours la même constante ! donc cela semble bien être ici que cela se passe !

$value correspond au paramètre $date reçu depuis users_thisday.php.

Or ce paramètre était initialement un timestamp créé par strtotime, et moi j'ai remplacé ce strtotime par un new Datetime.

Comment adapter le test sur value dans BD_XoopsFormTextDateSelect ?

Posté le : 24/08/2014 12:46

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
Oâh ? Oâh ! Oâh oâh oâh oâh !!! Je crois que j'ai trouvé !!

- Dans users_thisday.php je ne transforme pas $date, je la transmets telle quelle dans DB_XoopsFormTextDateSelect.

- Dans function BD_XoopsFormTextDateSelect je ne transforme pas la variable transmise et l'utilise directement dans render() en la transformant en new Datetime.

Et ça fonctionne !!

Vous pouvez télécharger cette nouvelle version ici :
thisday-2.3-beta2_lionhell

Posté le : 24/08/2014 13:05

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
Voici une version plus "propre" où les lignes d'affichage pour tests variables sont supprimées:

thisday-2.3-beta3_lionhell

Posté le : 24/08/2014 13:27

signé: LionHell
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 3528
Merci !

Posté le : 24/08/2014 13:35

Open in new window

Xoopseuse Mai 2012 | Responsable équipe internationale | Recherche avancée en bas de page !
Partager Twitter Partagez cette article sur GG+
Re: Module Birthday et Xoops en général: Dates antérieures à 1900 ?
Semi pro
Inscrit: 13/04/2006 23:26
De Aix en Provence
Messages: 1751
Le module n'est pas finalisé mais fonctionnel.

La discussion ne concernant QUE les dates antérieures à 1900 le sujet a trouvé sa réponse je le considère comme résolu.

Posté le : 24/08/2014 18:49

signé: LionHell
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
« 1 2 (3)



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

33 Personne(s) en ligne (23 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 33 | Plus ...