[Résolu] Débutant, problème front - Version imprimable +- Forum CMS Made Simple FR (https://www.cmsmadesimple.fr/forum) +-- Forum : Général (https://www.cmsmadesimple.fr/forum/forum-3.html) +--- Forum : Général (https://www.cmsmadesimple.fr/forum/forum-10.html) +--- Sujet : [Résolu] Débutant, problème front (/thread-3984.html) |
[Résolu] Débutant, problème front - debutems - 02/03/2017 Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~ Bonjour à tous, C'est une première pour moi, j'ai l'opportunité de pouvoir travailler sur ce CMS Made Simple (j'ai uniquement travaillé avec des frameworks tels que Symfony, Django etc...). Auparavant je n'avais jamais travaillé avec un CMS quel-qu’il soit. Il faut avouer que ça me change grandement Maintenant que j'ai préparé le contexte, je vais revenir au vrai sujet. (J'ai suivi la doc : Module_Writing_Tutorial.pdf J'ai dans un premier temps créé sur le back-office un fichier nommé action.defaultadmin.php avec une fonction CreateTemplate afin d’accéder à ma vue nommée defaultadmin.tpl qui elle comprend un formulaire. Suite au submit de mon formulaire, je peux peupler la BDD avec les informations du form ($PARAM['name']). Jusqu'ici pas de problème sur le back. Pour le Front, je voulais utiliser la même technique c'est à dire créer un fichier action.default.php puis accéder à ma vue avec mon formulaire mais lors du submit, impossible de récupérer les informations avec $PARAM. Du coup j'ai fait pas mal d'essai, en utilisant par exemple le module FormBuilder qui est quand même super pratique, mais idem, je n'arrive pas à revenir sur mon controller.. Quelqu'un aurait une idée ? :p Merci d'avance [Résolu] Débutant, problème front - jce76350 - 02/03/2017 Il me semble (réflexion personnelle) qu'il faudrait déjà que tu maîtrises bien le CMS avant de passer directement à la création de module. [Résolu] Débutant, problème front - airelibre - 02/03/2017 Bonjour et bienvenue, tu peux t'appuyer sur le module news et en particulier l'action de submit en frontend. Il faut bien penser à la restriction des $params lors de l'initialisation du module. Mais de manière générale, le fonctionnement est le même qu'en back - faire attention au returnid aussi Si tu as déjà réussis tout le tuto sur l'écriture de module, tu ne dois plus être très loin de la solution Tiens-nous au courant [Résolu] Débutant, problème front - debutems - 03/03/2017 Bonjour à tous, Merci pour les réponses jce76350 , concernant la création d'un module directement, tu as surement raison, mais je n'ai pas forcément trouvé de doc me permettant de comprendre globalement le CMS. Si tu en as en stock, je suis adepte de lecture airelibre, je vous remercie de votre réponse, je vais m'appuyer alors sur le module news pour bien comprendre le passage de la vue vers le controller suite à un submit ça me donnera des pistes, je reviendrais vers vous. J'ai en effet réussi le tuto sur l'écriture de module qui est vraiment très bon, on avance étape par étape, c'est très agréable. Je le trouve néanmoins un peu limité sur la partie front, ils proposent dans le tuto de simplement afficher par un foreach un objet me semble t'il, et donc pas de formulaires ce qui m'aurait grandement aiguillé. [Résolu] Débutant, problème front - jce76350 - 03/03/2017 Citation : mais je n'ai pas forcément trouvé de doc me permettant de comprendre globalement le CMSvoir ma signature et en particulier http://jc.etiemble.free.fr/abc/index.php/realisations/ressourcesfr/ressourcesfrV2#tutov2 [Résolu] Débutant, problème front - airelibre - 03/03/2017 debutems a écrit :Bonjour à tous, En théorie, tu récupères les paramètres via $params[NAME] après avoir posté tes données en n'oubliant pas l'ajout du {$actionid} devant tous les "name" dans ton formulaire Exemple : Code : <input type="text" name="{$actionid}nom"> est récupéré dans ton action cible avec : Code : $params['nom'] Utilises aussi les balises {form_start} et {form_end} pour générer le <form action= ... Bonne continuation, [Résolu] Débutant, problème front - debutems - 03/03/2017 airelibre a écrit :debutems a écrit :Bonjour à tous, Merci pour la réponse , Je vais vous faire un petit récapitulatif de mon code actuellement peut être que ça aidera J'ai dans ma vue (dans mon fichier nommé "default.tpl") Code : [== HTML ==] Tandis que dans mon controller j'ai : Code : [== PHP ==] J'ai mis un var_dump histoire de voir si je rentre dans mon submit mais rien à faire pas de exit ^^ J'ai de temps en temps une erreur du type : "Warning: Parameter submit is not known by module UserTest dropped in" Es-ce qu'il y a quelque chose qui vous choque ? [Résolu] Débutant, problème front - airelibre - 03/03/2017 Code : <input type = "submit" Les espace sont une erreur de copier/coller ou ils sont réellement dans ton code ? Tu as bien déclaré le type de variable qu'était submit dans l'initialisation du frontend du module ? [Résolu] Débutant, problème front - debutems - 03/03/2017 airelibre a écrit : Merci pour tes réponses Les espace étaient effectivement une erreur ^^. L'initialisation du frontend du module est configurable à quel endroit ? Pour l'interface admin du back j'avais fait comme cela : Le template : edit_user.tpl Code : [== HTML ==] Pour le controller : Code : [== PHP ==] J'ai l'impression que c'est très ressemblant avec le front mais je dois me tromper [Résolu] Débutant, problème front - airelibre - 03/03/2017 Commence par ne pas utiliser RestrictUnknownParams dans ta classe de module principale au niveau de la méthode InitializeFrontend (tu l'activeras une fois que ca fonctionne sans). Ensuite fais un print_r($params); en tête de ton contrôleur pour voir ce qui passe [Résolu] Débutant, problème front - debutems - 03/03/2017 airelibre a écrit :Commence par ne pas utiliser RestrictUnknownParams dans ta classe de module principale au niveau de la méthode InitializeFrontend (tu l'activeras une fois que ca fonctionne sans). Post submit le print_r affiche : "Array ( [returnid] => 49 [action] => default )" Pré submit le print_r affiche : "Array ( [module] => UserTest [action] => default )" Mais idem je ne rentre pas dans le isset($params['submit')) ce qui est logique vu qu'il n'existe pas... [Résolu] Débutant, problème front - airelibre - 03/03/2017 Scrute l'action fesubmit du module News pour voir les différences avec ton code Mais logiquement oui, il devrait avoir le "submit". Sinon regarde du côté de InitializeFrontend avec RestrictUnknownParams() et SetParameterType() (idem dans le module News) [Résolu] Débutant, problème front - debutems - 06/03/2017 airelibre a écrit :Sinon regarde du côté de InitializeFrontend avec RestrictUnknownParams() et SetParameterType() (idem dans le module News) L'erreur venait effectivement d'ici, je vous remercie j'ai ajouté mes nouveaux params avec SetParameterType(), et du coup aucune problème pour récupérer un input txt. Le soucis est maintenant de récupérer un input file : Code : [== HTML ==] Malgré l'ajout dans SetParameterType() de la variable Code : [== PHP ==] Je ne récupère pas mon fichier en question dans le controller... Ce qui est un poil embêtant Mais peut être que je suis à côté de la plaque et qu'il n'est pas possible de récupérer un fichier de cette manière. (Es-ce que je déplace le sujet en résolu ? ou je peux continuer pour ce petit problème de "file" ?) Le but étant de récupérer les informations du fichier dans le controller et de pouvoir ensuite le traiter, pourquoi pas le stocker dans le cloud ou autre. Merci d'avance pour les éventuelles pistes [Résolu] Débutant, problème front - airelibre - 06/03/2017 Pour les fichiers, il faut en effet attaquer directement $_FILES il me semble - les fichiers ne sont pas traités par le type de paramètre. Tu peux marquer en [Résolu] si c'est ok pour toi Bon dev |