IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

Question sur les dates ( saisie en français )


Sujet :

MkFramework

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 39
    Points : 34
    Points
    34
    Par défaut Question sur les dates ( saisie en français )
    Bonjour,

    Tout d'abord, je suis conquis par ce framework, qui m'a fait gagner un temps précieux.
    il est très agréable à utiliser !

    pour ce qui est de ma question :

    Je suis en mode bootstrap, génération des crud.
    la saisie des dates dans les formulaire se fait en français. d/m/Y ( via un datepicker que j'ai intégré )
    Dans la base c'est un champs date (Y-m-d)
    il faut donc faire des conversions à l'affichage et à la sauvegarde.

    j'ai ajouté ceci dans la méthode save du modèle correspondant ( très sympa le plugin date au passage ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $oDate = new plugin_date($this->date,'d/m/Y');        
    $this->date = $oDate->toString('Y-m-d');
    et dans les actions show et edit, je change également le format :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $oDate= new plugin_date($this->oEvent->date);
    echo  $oDate->toString('d/m/Y');
    alors vous allez peut être me trouver fainéant, certes ...
    mais recopier ça dans chaque modèle et chaque vue, me fait me demander si c'est bien la bonne solution.
    et s'il n'existe pas un moyen de factoriser ces traitements à un endroit quelconque afin que tous mes modèles/vues ( et ceux que je vais créer ) aient ce comportement vis a vis d'un champs date ?

    sachant que mes sites sont purement en français.
    Mais dans l'optique de site multilingues, j'aurai à faire ce traitement en global et en amont sur les dates en fonction de la langue.

    débutant avec ce framework, j'ai peut être/surement loupé quelque chose.

    Merci d'avance pour les éclaircissements

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Bonjour et merci d'utiliser ce framework

    Votre question est pertinence:

    Pour formater automatiquement un champ lors de la récupération des enregistrements, il faut surcharger le constructeur de la classe row (de la table concernée) pour reformater à la volée:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class row_maTable{
     
    (...)
     
    public function __construct($tRow){
     
    		//on modifie le champ date avant d'initialiser l'objet
    		$oDate = new plugin_date($tRow['date'],'d/m/Y');        
    		$tRow['date'] = $oDate->toString('Y-m-d');
     
    		//on appel le constructeur normal de la row
    		parent::__construct($tRow);
     
    	}

    Et pour l'enregistrement, toujours dans la classe row concerné
    Il suffit ici de modifier la méthode save pour y ajouter la conversion avant enregistrement
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    class row_maTable{
    (..)
    public function save(){
    		if(!$this->isValid()){
    			return false;
    		}
     
    		//conversion a la volee
    		$oDate = new plugin_date($this->date,'d/m/Y');        
    		$this->date = $oDate->toString('Y-m-d');
     
     
    		parent::save();
    		return true;
    	}

    Je rajouterais cette manipulation dans la FAQ car cela peut servir à d'autres personnes
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Merci !
    je n'avais pas pensé au __construct effectivement.

    alors je vais peut être pousser un peu le bouchon

    Mais si je voulais me faire quelque chose d'encore plus générique à tous les modèles.

    je pense à modifier le framework (dans abstract_row ? , je ne me suis pas plongé encore dans le framework en lui meme )

    dans lequel sur le construct je ferai un :

    - recuperer le type du champ ( PDOStatement->getColumnMeta ? )
    -- si on a un type date ( ou datetime ou timestamp )
    -----appel à une fonction de conversion ( charge au développeur de l'implémenter )
    -----recuperer un format avec le plugin de multilingue et la langue de la session
    -----faire la conversion qui va bien

    de meme pour le save.

    et hop plus de soucis de formats de date en fonction de la langue de l'utilisateur ( ou la langue par defaut ) ?
    et dans le respect de la philosophie de mkframework ?

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    L'idée serait pertinente si on utilisait que PDO
    Hors le framework permet d'utiliser d'autres "connecteur" que pdo (mysql,xml,json,csv)
    On pourrait egalement ajouter d'autres connecteurs tres facilement pour ses besoins comme "oci_connect()" pour les bases oracle, ou mysqli,sybase_connect()...

    mais sinon, vous pouvez simplemetn ajouter une classe abstraite "abstract_row2"
    ou vous pouvez modifier ce comportement et ainsi changer l'extends de vos classes modeles

    L'avantage: aux prochaines mises à jour du framework, vous ne perdrez pas vos customisations
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    ah oui effectivement, j'avais oublié ce détail qui n'en est pas un !
    j'étais resté dans mon scope Mysql.

    j'ai commencé oui à faire un my_abstract_row pour y intégrer ce comportement

    Merci beaucoup pour les réponses !

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Merci à vous pour votre implication et vos questions pertinentes
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur les dates dans VBA Excel
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/05/2010, 11h39
  2. [MySQL] question sur les dates (timestamp)
    Par nintendoplayer dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 03/12/2007, 11h52
  3. Question sur les dates EXE
    Par opernes dans le forum Windows
    Réponses: 1
    Dernier message: 15/03/2007, 18h28
  4. Question sur les dates
    Par othon_oda dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2006, 15h12
  5. question sur les dates
    Par mickael99 dans le forum Général Python
    Réponses: 3
    Dernier message: 28/07/2005, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo