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 :

Deux petites questions


Sujet :

MkFramework

  1. #1
    Futur Membre du Club
    Deux petites questions
    Bonsoir,

    Sur le module guriddo, je bloque sur le format des dates. Ces dernières sont affichées avec le format YYYY/MM/DD et je tente de les remettre au format DD/MM/YYYY.
    Pour ce faire, j'ai rajouté le formateur:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $oTable->addColumn('RDV','RDV',array('sortable'=>false,'align'=>'center',"formatter"=>"date","formatoptions"=>array("srcformat"=>"YYYY-mm-dd","newformat"=>"dd/mm/YYY")));


    Cependant lorsque que je relancer mon tableau, je n'obtiens plus rien et le débogueur m'annonce : date est indéfini. J'ai loupé une étape ?

    Autre point qui n'a rien avoir avec le format des dates, je me demandais si il est possible de contrôler un champ précis du formulaire par rapport à une entrée dans une table MYSQL, ceci afin pour éviter les doublons.



    Au passage, encore merci pour ce framework qui me simplifie grandement la vie.

  2. #2
    Rédacteur

    Oui c'est normal, formatter demande une fonction

    comme ici sur cet exemple de demo,
    http://www.guriddo.net/demo/guriddoj...tom/index.html

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {
                            name: 'Rating',
                            width: 50,
                            formatter: formatRating
                        }


    ils ont créé une fonction js formatRating
    Code javascript :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function formatRating(cellValue, options, rowObject) {
                var color = (parseInt(cellValue) > 0) ? "green" : "red";
                var cellHtml = "<span style='color:" + color + "' originalValue='" +
                                     cellValue + "'>" + cellValue + "</span>";
     
                return cellHtml;
            }



    Et oui vous pouvez controler avant d'enregistrer en base grace à la methode getCheck() de votre classe row_votreTable
    http://mkframework.com/tutoriaux.html#formulaire

    merci à vous de l'utiliser
    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
    Rédacteur

    dans votre cas
    Code javascript :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <script>function formatDate(cellValue, options, rowObject) {
                var tDate=cellValue.split('/');
     
                var year=tDate[0];
    var month=tDate[1];
    var day=tDate[2];
     
                return day+'/'+month+'/'+year;
            }
     
     
    console.log(formatDate('2016/12/25'));
    </script>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Rédacteur

    Et votre appel change donc pour
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    $oTable->addColumn('RDV','RDV',array('sortable'=>false,'align'=>'center',"formatter"=>"formatDate"));


    Et le code javascript est à copier dans module/guriddo/view/build.php
    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
    Futur Membre du Club
    Merci pour la réponse hyper rapide, ca fonctionne super bien!
    Par contre je me retrouve avec un effet de bord.
    Lorsque je modifie une ligne avec une date qui est maintenant au bon format, lors de l'enregistrement le champ date passe automatique en 00-00-00 car j'ai l'impression que le masque de saisie attend encore le format YY-MM-DD.


    Pour la validation, j'y avais pensais mais je trouvais cela trop simple
    Pour tester j'ai décommenté la partie isNotEqual pour tester le champ "utilisateur', mais la vérification fonctionner.
    En fait, je n'ai aucun enregistrement et cela peut import la valeur du champ utilisateur.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     $oPluginValid->isNotEqual('utilisateur','toto','Le champ est &eacute;gal &agrave; '.$valeurB);

  6. #6
    Rédacteur

    Pour le javascript il faut checker avant:
    Code javascript :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
    17
    18
    19
    20
    21
    22
    23
    24
     
    <script>
    function formatDate(cellValue, options, rowObject) {
     
        var re = /^([0-9]{4})\/([0-9]{2})\/([0-9]{2})$/;
        if( cellValue.match(re) ){
     
            var tDate=cellValue.split('/');
     
            var year=tDate[0];
            var month=tDate[1];
            var day=tDate[2];
     
            return day+'/'+month+'/'+year;
        }else{
            return cellValue;
        }
     
    }
     
    console.log(formatDate('2016/12/25'));
     
    console.log(formatDate('25/12/2012'));
    </script>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Futur Membre du Club
    super, je n'y avais pas pensé!
    Maintenant il faut que je regarde pour implémenté cela sur la partie ajout d'une ligne.

    Je reviens sur la partie validation des données. Sur tes conseils j'essaie d'utiliser getCheck() pour contrôler la saisie des numéros de série.
    Pour cela, j'ai :
    - Créé la jointure pour chercher l'information qui m’intéresse dans une autre table
    - Rajouté la requête adéquate dans le modèle lié ma seconde table.
    - Activé isEqual.

    Mais lorsque je tente un test d'enregistrement, rien ne se passe. Je n'ai pas de message d'erreur et aucun n'ajout n'a été fait.
    Est-ce que tu peux m'aider à débugguer ?

    Voici le code de mon module guriddo:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private function getCheck(){
    $oSNUC=model_parc::getInstance()->findSNUC($this->newSNUC); --> jointure vers ma seconde table pour tester si la valeur du formulaire guriddo existe dans cette seconde table.
    $oPluginValid=new plugin_valid($this->getTab());
    $oPluginValid->isEqual($oSNUC,'1','l'enregistrement existe';'); --> Test $oSNUC=1 c'est que l'enregistrement existe, on peut donc procéder à la création de la nouvelle ligne dans le CRUD.


    voici un extrait de la requête qui est dans le modèle 'model_parc.php' lié à ma seconde table
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function findSNUC($uSNUC){
    return $this->findMany('SELECT count(*) as total FROM '.$this->sTable.' WHERE sn=?',$uSNUC ); --> je compte combien de fois la valeur existe. Si 0 c'est que la saisie est erronée.
    }


    La requête semble fonctionner car dans les logs je la vois bien s’exécuter : 2016-03-28;20:18:32;info;sql select:SELECT count(*) as total FROM parc WHERE sn=? [ 12345 ]
    Lorsque j’exécute cette même requête sur Adminer, j'ai bien le résultat =1
    Par contre, je n'ai aucun autre élément dans le log pour avancer sur le problème.

    j'espère avoir été clair dans mes explications.

    Merci et bonne soirée.

  8. #8
    Rédacteur

    Oui avec Guriddo je n'ai pas encore eu le temps d'implementer le retour d'erreur lors de l'enregistrement

    si vous passez par un CRUD "normal" vous verrez votre message d'erreur
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  9. #9
    Futur Membre du Club
    ok, je comprend mieux.
    Sans vouloir abuser, peux-tu me dire si tu as déjà planifié la mise en place de cette fonctionnalité ?

    Du temps, je vais tester la partie graphique

    Encore merci pour ton aide !

  10. #10
    Rédacteur

    Bonjour,
    Pour info il y a une roadmap pour le framework http://mkframework.com/roadmap.html

    je vais ajouter ceci dedans, vous n'etes pas le premier à demander, je vais le mettre dans la todo en cours
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  11. #11
    Futur Membre du Club
    Bonsoir,

    merci pour ton retour.
    Javais bien vu la roadmap et comme je n'y ai pas trouvé mon bonheur, je t'ai sollicité
    je vais patienter sagement la sortie de cette fonctionnalité.

    Encore merci pour ton aide précieuse

  12. #12
    Rédacteur

    Oui je dois l'ajouter à la roadmap histoire d'etre transparent sur les avancées
    Un peu sous l'eau cette semaine,mais je vais trouver le temps
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  13. #13
    Futur Membre du Club
    Salut,

    y'a pas le feu au lac, je comprend qu'il peut-être compliqué de tout concilier.

    A+

  14. #14
    Rédacteur

    J'ai déjà trouvé, je prend un peu de temps pour mettre à jour le module Gurrido ainsi que la génération

    Il y a en effet 2 choses:
    1. dans le fichier build de Guriddo il faut ajouter du code dans le paramétrage json
    2. dans la partie php, il faut sortir l'erreur en question en json dans un attribut error

    je finalise tout ça pour simplifier son implémentation pour tous
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  15. #15
    Futur Membre du Club
    Merci pour ta rapidité

  16. #16
    Rédacteur

    Vous pouvez mettre à jour (via le market) : le module Guriddo ET le module builder crud Guriddo ?

    Ensuite regenerer le CRUD guriddo pour voir si cela vous convient ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  17. #17
    Futur Membre du Club
    ah super !

    par contre faute de temps, je ne pourrai tester avant ce week-end.
    Je reviens vers toi dès que je peux.

    Encore merci pour ta rapidité !

###raw>template_hook.ano_emploi###